Das Konzept:

  • jeder der 4 Ports (=geschalteter 230V-Ausgang) soll aus IPS heraus schaltbar sein
  • jeder Status jedes Ports soll überwacht und in IPS angezeigt werden, unabhängig davon durch welche Instanz (z.B. manuell direkt am Gerät) der jeweilige Port geschaltet wurde

Die Umsetzung:

ich habe für das NETIO eine eigene Kategorie angelegt, so kann ich bei Bedarf das Gerät später an eine beliebige Stelle innerhalb des Kategorie-Baums verschieben. Für die Status-Anzeige im Webfrontend habe ich eine weitere Kategorie an anderer Stelle des Kategorie-Baums angelegt innerhalb derer sich 5 Links befinden: 1x für den Ping-Status der Box selbst und 4x für den Schaltzustand der 4 Ports der NETIO-Box.

Für den jeweiligen Schaltvorgang habe ich 1 Script für „On“ und ein Script für „Off“ für jeden Port angelegt.
Für jeden Port gibt es weiterhin eine Variable (Typ: Boolean, der Einfachheit halber nach der Portnummer bezeichnet) über die sich der Schaltzustand des jeweiligen auslesen lässt.

Weiterhin gibt es ein Ereignis-gesteuertes Script, welches zyklisch alle 60 Sekunden den Status der NETIO-Ports an der Box abfragt, die Rückgabewerte werden dann in die jeweils zum Port gehörige Variable geschrieben („0“ oder „1“). Um nun nicht in allen 8 Schall-Scripts jedesmal IP-Adresse, Username und Userpasswort der Box manuell hinterlegen zu müssen habe ich dafür ebenfalls dedizierte Variablen innerhalb der Kategorie „NETIO“ hinterlegt. So muss muss man evtl. Änderungen nur an einer Stelle pflegen.

Die Funktion

jeder Port wird über sein zugehöriges Script einoder ausgeschaltet. Wichtig: entgegen zu den im IPS-Forum geposteten Scripts (Link siehe unten) schalten meine Scripts nur, sie schreiben keinen Status in die Variablen! Jedes Einoder Aus-Script ruft anschließend dasAbfrage Portstatus„-Script auf, dieses liest den Status aller 4 Ports aus und schreibt diese in die Variablen für alle 4 Ports. Unabhängig davon wird dasAbfrage Portstatus„-Script ereignisgesteuert alle 60 Sekunden aufgerufen und verrichtet seinen Job wie oben beschrieben.

 

 

 

Die Scripts:

Das Einschalt-Script:

Sind die Variablen für IP-Adresse, Username und Userpasswort angelegt müssen deren ID’s noch im Einschalt-Script gepflegt werden. Für jeden Port wird ein dediziertes Einschalt-Script erstellt, der jeweilige zu schaltende Port wird einmalig über die Zeichenfolge „xxxx“ in Zeile 13 definiert (Bedeutungen sind in der NETIO-Anleitung zu finden)

 

 
Das Ausschalt-Script:

Gleiche Konfiguration und Bedingungen wie unter „Das Einschalt-Script“ beschrieben, Script unterscheidet sich ausschliesslich in Zeile 13 in der zu übergebenden Schaltkommando-Zeichenfolge

 
Statusabfrage

 

Da dies mein aller erster Gehversuch mit PHP ist bitte ich um Nachsicht (falls ´das Ein oder Andere etwas „schräg“ aussieht) , bin aber für jedes Feedback dankbar. Ich wills ja schliesslich lernen :)

Dieser Artikel ist auch hier im IPS-Forum veröffentlicht:  Link

 


 

Getagged mit
 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

css.php