Events & Client Socket mit Fritzbox via LAN

Hallo,
ich bin seit einer Woche stolzer Besitzer der IPS und blicke noch nicht richtig druch. Nachdem ich lange gesucht aber leider nicht gefunden habe, traue ich mich nun auch mal zu fragen.
Ich habe hier eine Beispiel mit einer Client Socket Verbindung für mich angepasst. Im DebugMode meldet sich die Fritzbox und übermittelt Daten.
Ich habe aber leider das Prinzip der Eventsteuerung wohl noch nicht verstanden. Meine Frage ist jetzt: Wie bekomme ich das Script bei Anruf zum starten?

<?
// In Array packen
$daten    = explode(";", $IPS_VALUE);
switch($daten[1]){
   case "RING":
      print "Telefonnummer: ".$daten[3];
      break;
   case "DISCONNECT":
      print "Gespräch beendet";
      break;
}
?>

Gruß Alois

Hallo Alois,

davon ausgehend das Du eine Registervariable benutzt, das Script der Registervariable zuweisen. Danach stehen deine Daten in $IPS_VALUE zur Verfügung.

Hallo,
danke für deine Info. Mein Problem ist, das ich das Konzept noch nicht richtig verstehe. Ich dachte, dass die Daten automatisch in die Variable $IPS_VALUE landen. Ich suche nun deinen Rat umzusetzen, finde jedoch keine Möglichkeit diese Registervariable zuzuweisen. Wie gesagt, ich bin Neuling:) :(.
Ich habe in der Doku das kapitel Registervariablen gelesen, aber nicht wirklich verstanden.
Vielleicht ist ja jemand so nett und hilft mir auf die Sprünge…
Vielen Dank
Alois

Hallo Alois,

im Objektbaum findest du unter Instanz hinzufügen -> Hersteller (none) -> Registervariable
Die übergeordnete Instanz zuweisen und in der Registervariable das Script angeben wo die Daten landen sollen, das Script wird automatisch befeuert wenn Daten ankommen, diese kannst Du dann über $IPS_VALUE im Script selber auswerten etc.

Damit $IPS_VALUE einen Wert haben kann muss der ja erstmal von irgendwo kommen. RegisterVariable ist eine Instanz, die Daten von I/O-Instanzen, wie deinem seriellen Anschluss, holt und dem eingestellten Skript in $IPS_VALUE zur Verarbeitung übergibt. Normale Ereignisse funktionieren hier nicht, da man die nur auf Variablen basierend erzeugen kann, die I/O-Instanzen nicht haben, da sonst binäre Daten die settings.xml zerstören können und Semaphoren auch nicht für serielle Ausführung garantieren würden. RegisterVariable hat darüber hinaus einen Buffer für Binärdaten, sodass Du Datenblöcke zum Zusammensetzen nicht in normale String-Variablen packen musst, was, wie gesagt, zu einer defekten settings.xml führen könnte.

Coole Aktion, nun klappts. Aller Anfang ist schwer… macht aber riesen Spass.
Bei Anruf schicke ich mir jetzt ne Mail auf meinen Blackberry.
Vielen Dank an Euch.

Gruß Alois.

:slight_smile: Ich werde bestimmt nochmal so’ne blöde Frage stellen :slight_smile: