Server Socket --> Cuttter --> Register Variable --> Script aber wie??

Hallo zusammen,

ich habe einen Server Socket angelgt, den Datenstrom mit dem Cutter auf das wesentliche reduziert, jetzt möchte ich in einem Script den Datenstrom vergleichen auf einen Bestimmten „Ausdruck“ reagieren. Wie gehts nach dem Cutter weiter?

Grüße

Hallo zusammen,

ich habe einen Server Socket angelgt, den Datenstrom mit dem Cutter auf das wesentliche reduziert, jetzt möchte ich in einem Script den Datenstrom vergleichen, und auf einen Bestimmten „Ausdruck“ reagieren.
Wie gehts nach dem Cutter weiter?

Grüße

Das funktioniert leider nicht:
$daten = $IPS_VALUE;

if $_daten == („bewegungserkennung“)

{ ModBus_WriteCoil(12299 /[09 Gäste WC und Diele\Lampe Diele kurz]/,true); }

?>

Nach dem Cutter kommt die RegisterVariable in deren Auswerteskript Du auf das Gesendete reagieren kannst.

Hallo, und wie genau fängt dieses Script an?

Mit

<?

In der Doku ist es wunderbar beschrieben:
RegisterVariable — IP-Symcon :: Automatisierungssoftware

Da ist leider etwas schief gelaufen, oder ist Ihre Antwort <? ??

Das ist meine Antwort. Damit beginnt das Skript. Wirklich. Ohne Witz.

Da drunter habe ich die Dokumentation verlinkt. Dort ist beschrieben, wie RegisterVariablen funktionieren und dort sind auch zwei Skript-Beispiele, wie das Auswertungsskript einer RegisterVariable aussehen könnte.

Einfach mal ausprobieren. Wenn es nicht funktioniert, dann das Skript hier posten.

Wie füge ich einen PHP-Code hier richtig ein?

<?
$_IPS[‚VALUE‘]
if ($_IPS[‚VALUE‘] == „bewegungserkennung“)
ModBus_WriteCoil(12299 /[09 Gäste WC und Diele\Lampe Diele kurz]/,true)
?>

Indem Du im Editor in der zweiten Zeile rechts auf das php Symbol klickt und zwischen die erscheinenden Tags den Code schreibst.

Anfangen könntest Du zum Beispiel mit:

<?
echo IPS_LogMessage("RegVar", $_IPS['VALUE']);
?>

Dann siehst Du im Log schon mal, was kommt. Wenn im Log nix kommt, dann schau im Debug der RegisterVariable nach. Wenn da nix kommt, schau im Debug vom Cutter, ob der richtig arbeitet.

Im Debug der RegisterVariable kommt meine Meldung Bewegungserkennung an.

Im Meldungsfenster sieht es so aus

30.05.2018 14:31:42 | Server Socket | Incoming connection…
30.05.2018 14:31:42 | RegVar | bewegungserkennung
30.05.2018 14:31:42 | Register Variable | 1

So wie ich es verstanden habe, soll das Wort bewegungserkennung doch in meinem Script passend zur RegisterVariable in $_IPS[‚VALUE‘] stehen, oder?

Richtig …

Das Skript


<?
if ($_IPS['VALUE'] == "bewegungserkennung"){
  ModBus_WriteCoil(12299 /*[09 Gäste WC und Diele\Lampe Diele kurz]*/, TRUE);
}
?> 

müsste so funktionieren.

Muss diese Zeile noch mit in das Script?

echo IPS_LogMessage("RegVar", $_IPS['VALUE']); 

Beim ausführen von

<? 
echo IPS_LogMessage("RegVar", $_IPS['VALUE']); 
if ($_IPS['VALUE'] == "bewegungserkennung"){ 
  ModBus_WriteCoil(12299 /*[09 Gäste WC und Diele\Lampe Diele kurz]*/, TRUE); 
} 
?>

kommen die Fehler:
Notice: Undefined index: VALUE in C:\IP-Symcon\scripts\33133.ips.php on line 2
1
Notice: Undefined index: VALUE in C:\IP-Symcon\scripts\33133.ips.php on line 3

Muss Value durch die Nummer vom Cutter ersetzt werden?

Das Skript wird beim Eingang von Daten in die RegisterVariable automatisch ausgeführt. $_IPS[‚VALUE‘] steht nicht zur Verfügung wenn $_IPS[‚SENDER‘] == „Execute“ ist.

Ich verstehe es nicht, was soll es bedeuten?

Jetzt geht es

<?  

if ($_IPS['VALUE'] == "bewegungserkennung");
{  
  ModBus_WriteCoil(12299 /*[09 Gäste WC und Diele\Lampe Diele kurz]*/, TRUE);  
}  
?>

Also wenn ich auf den Ausführen-Button drücke gibt es den Ausdruck $_IPS[‚VALUE‘] in diesem Moment nicht.

Auf jeden Fall vielen Dank für Deine Hilfe

Grüße

Korrekt. Den gibt es nur, wenn eine Variable das Skript auslöst.
Systemvariablen — IP-Symcon :: Automatisierungssoftware

Gerne