IPS Start - Hilfe

Ich schreibe mal, was ich getan habe.

IPS-Tray - Instanz hinzufügen.
Client Socket, IP und Port eingetragen

So, und jetzt ?
Jemand sagte, Registervariable hinzufügen, leider weiss ich nicht wie
das geht.

Ich weiss nicht wie es anderen Neulingen geht, aber die Doku 2.0
ist nur eine Aneinanderreihung von Begriffen, bei der der Punkt
„wie kann ich“ ironischerweise keinen Text besitzt.
(edit : das stimmt nicht, ich habe nur einen veralteten Browser benutzt)

Mein Ziel vor einem Monat war (wie ich dachte) wirklich simpel, aber
heute muss ich sagen, die Software erschließt sich mir nicht.

Es gibt wohl keine Schritt für Schritt Anleitung für Einsteiger ?
Brauche Startsupport, bin sogar bereit dafür zu zahlen oder 100km zu
fahren, ganz egal.

Vor dem Kauf hat Paresy geschrieben, man könnte sich die meisten
Funktionen einfach auf einer komfortablen Oberfläche zusammenklicken.
hmmm.

Ich möchte fürs erste nur eine Instanz mit einem Client Socket
erzeugen und per ifront ca. 10 verschiedene Befehle auslösen.
Dazu die Schaltflächen und Aktor-Icons anzeigen.

Ich möchte fürs erste nur eine Instanz mit einem Client Socket
erzeugen und per ifront ca. 10 verschiedene Befehle auslösen.
Dazu die Schaltflächen und Aktor-Icons anzeigen.
Ein paar mehr Infos wären hier ja wohl angebracht. Der Client Socket alleine wird dir nicht viel nutzen.
Wie man Instanzen anlegt kann man hier als Beispiel sehen. http://www.ip-symcon.de/forum/70613-post2.html
Dann brauchst Du noch eine Webserver Instanz und eventuell Instanzen für deine Geräte die Du schalten willst.

Das ist zwar für XBee aber als Beispiel sollte es reichen.

Im Beispiel :

(I/O) => Serial Port anlegen
(Splitter) => XBee Gateway anlegen
(Splitter) => XBee Splitter anlegen
(None) => Register Variable anlegen

Für mich gilt wahrscheinlich nur

(I/O) => Client Socket anlegen
(None) => Register Variable anlegen

Brauch ich auch einen Splitter ?

Skript hab ich auch keins, werden hier die Buttons abgefragt ?

Hallo Sonopanic,

etwas mehr Infos wären schon nötig um Dir zu helfen.
Was willst Du über das Netzwerk schalten/einbinden?

Es gibt wohl keine Schritt für Schritt Anleitung für Einsteiger ?
Brauche Startsupport, bin sogar bereit dafür zu zahlen oder 100km zu
fahren, ganz egal.

Mal ganz abgesehen das wir nach einer vernünftigen Beschreibung auch gerne „fast“ alles im Forum lösen, es gibt auch den IP-Symcon Premium Support Gold. im Webshop zu erwerben, wenns mal am Anfang klemmt.:wink:

Hmm, es ist schwer, Infos zu geben, da ich ja nicht weiss, was ihr braucht.

Der Client Socket läuft auf 192.168.1.108 : Port 4998

Ein Befehl sieht z.B. so aus :

sendir,2:1,222,44600,10,1,16,48,16,48,16,48,16,48,16,48,48,16,16,48,48,16,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,48,16,16,48,48,16,16,48,16,48,16,500

Diese Abfolge schaltet eine Funksteckdose.

Wie bringe ich das ganze jetzt zusammen, dass ein solcher Befehl durch
einen Button ausgelöst wird ?
Und wie bekomm ich das ganze auf den Ipod ?

Zunächst wäre es schön wenn wir wüßten welche Hardware Du hast und ist diese in IPS schon als Instanz angelegt.

Die Anzeige im IFront ist analog zu WebFront.
Siehe hier: WebFront - IP-Symcon :: Automatisierungssoftware

Die Hardware gibt es in IPS nicht.
Es ist eine Global Cache GC-100-6

http://www.globalcache.com/files/Documentation/API_GC-100.pdf
Seite 7 beschreibt den Sendestring, der ist aber bereits getestet.

Als Instanz hab ich nur den Client Socket angelegt und wie oben beschrieben
ausgefüllt mit IP und Port.

Ok schon mal gut, dann solltest Du wenn Du das Protokoll verstehst über die Registervariable an die Daten kommen, wie sieht es mit Deinen PHP Kenntnissen aus?

Hallo Sonopanic,

also mal ganz von Anfang.

  1. ClientSocket Instanz anlegen . Ip Adresse und Port eingeben.

  2. RegisterVariablen Instanz anlegen.


    Als übergeordnete Instanz die von Punkt 1.
    Als ZielScript folgendes angeben:

<?
if($IPS_SENDER == "RegisterVariable") {

	$daten = explode(",",$IPS_VALUE);  //auftrennen des Datenstrings an den Kommata
	switch ($daten[0]){
		case "device":
	   	IPS_LogMessage("GC-100","In Moduladresse $daten[1] ist der Modultyp > $daten[2] < eingebaut");
		break;

      case "endlistdevice":
	   	IPS_LogMessage("GC-100","Datenende");
		break;
		
		case "completeir":
		   IPS_LogMessage("GC-100","Der IR Datensatz wurde auf Adresse $daten[1] mit der ID $daten[2] versendet");
		break;

	}
}
else echo"Das Ausführen des Scriptes per Hand ist nicht möglich. Es kann nur über die Registervariableninstance gestartet werden";
?>
  1. jetzt legts Du Dir ein TestScript an, daß beinhaltet folgendes:

$ID = 12345; //hier die ID Nummer der ClientSocket Instanz angeben
$Packet = "getdevices\x0d";
CSCK_SendText($ID,$Packet);

Nach Ausführen des Scriptes, sollten Einträge im Meldungsfenster bzw. im Logfile von IPS sein.
Nach dem selben Prinzip kannst Du dann auch andere Befehle an das Gerät senden.
Die Antwoten werden alle vom 1. Script empfangen. Du brauchst nur die case- break Anweisungen, entsprechend Deiner Bedürfnisse, zu erweitern.
ICh hoffe nun wird es etwas klarer für Dich.

Die Scripte sind, aus Mangel der Hardware, ungetestet. Ich denke trotzdem das alles richtig ist.
Gruß

Super !

Das Empfangsscript ist mir fast klar.
Also wird für eine Instanz ein Skript angelegt, was immer abläuft, sobald
die Bedingung erfüllt ist.
Es dient nur zur Anzeige des Status.

Ah so, du hast den Befehl „getdevices / Return“ abgeschickt.

Wie schaffe ich jetzt den Sprung auf eine Bedienoberfläche ?
Das Script läuft ja nur einmal ab, oder ?

Meine PHP Kenntnisse sind nahe null, aber mit html und früher mit Pascal
hab ich schon was gebastelt. Ich denke, ich bekomme das hin, wenn ich erstmal den kompletten Ablauf verstanden habe.
Nen PHP Buch hab ich mir schon besorgt.

Den Link für das IFront habe ich Dir ja schon gegeben und Attain hat ja schon mal tolle Vorarbeit geleistet. Im Prinzip ist der Objektbaum das Spiegelbild für Dein Webinterface, d.h. alles was die entsprechenden Voraussetzungen erfüllt wird Dir im WebFront bzw. IFront automatisch angezeigt, ohne das Du etwas machen mußt, außer die IP Adresse und den Port dazu einzugeben.
Beispiel: http://192.168.x.x:82/
Dabei ist die IP die Adresse des Rechners von IPS.
Nun kannst Du Deine Variablen mit Variablenprofil versehen und diese anzeigen oder PHP Scripte per Klick ausführen die Deine Hardware schalten, diese müssen halt nur im Objektbaum vorhanden sein. Dazu gibt es eine Menge Beispiele und Beschreibungen im Forum oder in der Doku.

Richtig. Sobald das Gerät eine Antwort sendet wird das Script gestartet. Der Inhalt der „Message“ landet automatisch in der Variablen $IPS_VALUE.

Ja. Dann sollte er laut Anleitung mit "device,<moduleaddress>,<moduletype>↵ " Antworten.
Im Empfangsscript wird daraus nur nen LogFileEintrag gemacht. Du kannst da auch später noch andere Dinge mit anstellen.

Schau Dir mal die Anleitung vom Webfront an. Im Webfront sollte das Testscript als Ausführbares Objekt zu sehen sein.

Ja.

Das kommt schnell.

Gruß

Es funktioniert, wow.
Allerdings nur über den PC, auf dem IPS auch läuft.

Der Ipod oder ein anderer PC kann die Seite nicht aufrufen.
Habe im Router nun Port 80-82 auf dem IPS Server freigegeben,
habe aber dennoch keinen Zugriff.

Ah, geschafft. Portfreigabe ist sicher richtig, aber die Windows Firewall hat auch noch ein Wort
mitzureden. Schalte ich diese aus, geht es. Jetzt muss ich nur noch die richtigen Freigaben der XP Firewall
eintragen. Nur Port 82 reicht anscheinend nicht.

Problem ifront : das Wetter wird nicht angezeigt. Der Reiter ist nicht vorhanden.
Mit einem PC funktioniert das.