Einbinden der NETZWERKSTECKDOSEN Netio-230A

NETZWERKSTECKDOSEN Netio-230A
Hat jemand mit dieser Hardware Erfahrung,
und kann man diese in IPS einbinden?

http://www.koukaam.se/koukaam/downloads/MAN_DE_NETIO-230A_2.20.pdf
Solltest mit IPS entweder per Client-Socket (telnet) steuern können oder mit SYS_GetURLContent die CGI-Befehle schicken. Unter IP-Phone-Forum - Einzelnen Beitrag anzeigen - Steckdosenleiste mit FB steuern? wird erwähnt, dass der in der c’t recht gut bewertet worden ist.

Hab mir das Teil mal bestellt,
werde dann meine Erfahrungen berichten.
Gruß

Hab mal den Netio-230A testweise erfolgreich eingebunden.:slight_smile:

Zur Steuerung habe ich einen Status angelegt und 2 Scripte zum ein und ausschalten.

Script zum einschalten

<?

$loginremote = "http://192.168.0.242/tgi/control.tgi?login=p:user:user";
$schaltremote = "http://192.168.0.242/tgi/control.tgi?p=1uuu";
$logoutremote = "http://192.168.0.242/tgi/control.tgi?quit=quit";

$content = Sys_GetURLContent($loginremote);
$content = Sys_GetURLContent($schaltremote);
$content = Sys_GetURLContent($logoutremote);+
         
SetValueBoolean (55458 /*[Untergeschoss\Raum FEWO Wohnzimmer\Schalter Heizung\Heizung Status]*/, true);

?>

Script zum ausschalten

<?

$loginremote = "http://192.168.0.242/tgi/control.tgi?login=p:user:user";
$schaltremote = "http://192.168.0.242/tgi/control.tgi?p=0uuu";
$logoutremote = "http://192.168.0.242/tgi/control.tgi?quit=quit";

$content = Sys_GetURLContent($loginremote);
$content = Sys_GetURLContent($schaltremote);
$content = Sys_GetURLContent($logoutremote);

SetValueBoolean (55458 /*[Untergeschoss\Raum FEWO Wohnzimmer\Schalter Heizung\Heizung Status]*/, false);

?>

Am ende der Scripts wird der Status gesezt.

netio.jpg

Bitte im Editor die PHP Tags benutzen.:wink:

Hallo @ll,

ich wage mich mal aufs Eis und präsentiere hier mal meine, auf den oben geposteten Scripts basierende Einbindung des NETIO 230A. Da ich gerade am eigenen Leibe erlebe wie schwer der Einstieg in PHP und IPS ist beschreibe ich dies etwas ausführlicher (vielleicht erleichtert das Anderen den Einstieg). Vielleicht hat der Ein- oder Andere auch ein paar Optimierungstipps :wink:

Das Konzept:

[ul][li]jeder der 4 Ports (=geschalteter 230V-Ausgang) soll aus IPS heraus schaltbar sein
[/li][li]jder 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
[/li][/ul]

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 ein- oder ausgeschaltet. Wichtig: entgegen zu den oben geposteten Scripts schalten meine Scripts nur, sie schreiben keinen Status in die Variablen! Jedes Ein- oder Aus-Script ruft anschließend das „Abfrage 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 das „Abfrage 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)


<?
//Konfigurationsdaten in dediziert dafür angelegten Variablen ablegen,
//anschliessend die ID's der Variablen hier eintragen:

$IP = GetValue(49869 /*[NETIO 230A\z NETIO IP-Adress]*/);
$Username = GetValue(35911 /*[NETIO 230A\z NetIO Username]*/);
$Password = GetValue(56732 /*[NETIO 230A\z NetIO Password]*/);

//Absetzen des Schaltkommandos an das NETIO-230A:
$loginremote = "http://$IP/tgi/control.tgi?login=p:".$Username.":".$Password;
$schaltremote = "http://$IP/tgi/control.tgi?p=1uuu"; // Definition des zu schaltenden Ports: 1uuu = Port 1 wird eingeschaltet, die anderen bleiben unberücksichtigt;
$logoutremote = "http://$IP/tgi/control.tgi?quit=quit";

$content = Sys_GetURLContent($loginremote);
$content = Sys_GetURLContent($schaltremote);
$content = Sys_GetURLContent($logoutremote);

IPS_RunScript(56204 /*[NETIO 230A\Abfrage Portstatus]*/);


?>

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


<?

//Konfigurationsdaten in dediziert dafür angelegten Variablen ablegen,
//anschliessend die ID's der Variablen hier eintragen:

$IP = GetValue(49869 /*[NETIO 230A\z NETIO IP-Adress]*/);
$Username = GetValue(35911 /*[NETIO 230A\z NetIO Username]*/);
$Password = GetValue(56732 /*[NETIO 230A\z NetIO Password]*/);

//Absetzen des Schaltkommandos an das NETIO-230A:
$loginremote = "http://$IP/tgi/control.tgi?login=p:".$Username.":".$Password;
$schaltremote = "http://$IP/tgi/control.tgi?p=0uuu"; // Definition des zu schaltenden Ports: 0uuu = Port 1 wird ausgeschaltet, die anderen bleiben unberücksichtigt;
$logoutremote = "http://$IP/tgi/control.tgi?quit=quit";

$content = Sys_GetURLContent($loginremote);
$content = Sys_GetURLContent($schaltremote);
$content = Sys_GetURLContent($logoutremote);

//Aufruf des Abfrage-Portstatus Scripts nach Schaltvorgang:
IPS_RunScript(56204 /*[NETIO 230A\Abfrage Portstatus]*/);


?>

Das Abfrage Portstatus-Script:
Hier sind nur die Zugangs-Variablen-IDs der NETIO-Box und die IDs der zuvor angelegten Port-Variablen zu pflegen, das wars. Ich habe diesem Script ein Ereignis zugeordnet, welches das Script alle 60 Sekunden aufruft.


<?

//Konfigurationsdaten in dediziert dafür angelegten Variablen ablegen,
//anschliessend die ID's der Variablen hier eintragen:

$IP = GetValue(49869 /*[NETIO 230A\z NETIO IP-Adress]*/);
$Username = GetValue(35911 /*[NETIO 230A\z NetIO Username]*/);
$Password = GetValue(56732 /*[NETIO 230A\z NetIO Password]*/);

//Statusabfrage des NETIO-230A:
$loginremote = "http://".$IP."/tgi/control.tgi?login=p:".$Username.":".$Password;
$Statusabfrage = "http://".$IP."/tgi/control.tgi?p=l";
$logoutremote = "http://".$IP."/tgi/control.tgi?quit=quit";

$content0 = Sys_GetURLContent($loginremote);
$Portstatus = Sys_GetURLContent($Statusabfrage);
$content3 = Sys_GetURLContent($logoutremote);+

//Schreiben der ausgelesenen Statuswerte in die jeweilige - pro Port angelegte Variable (die jeweiligen Variablen-ID's
// hier eintragen:
SetValue(31211 /*[NETIO 230A\NETIO Port1]*/, substr($Portstatus,6,1));
SetValue(49150 /*[NETIO 230A\NETIO Port2]*/, substr($Portstatus,8,1));
SetValue(38388 /*[NETIO 230A\NETIO Port3]*/, substr($Portstatus,10,1));
SetValue(21425 /*[NETIO 230A\NETIO Port4]*/, substr($Portstatus,12,1));


?>

Im Anhang noch ein paar Bilder zur Erläuterung. Da dies mein alkler 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 :slight_smile:

NETIO Status Webfrontend.PNG

Hallo Raketenschnecke,

vielen Dank für die Anregungen. Ich habe die Steckdosenleiste hier erfolgreich am Laufen. Da ich mir noch 1-2 davon anschaffen möchte und keine Lust habe, die ganzen Scripte und Variablen jedes Mal per Hand einzubauen, habe ich mir erlaubt, Dein Script etwas zu modifizieren und ein Install-Script drumrumzubasteln.

Näheres dazu hier.

Grüße,
Christoph

welch Frevel!!

:D:D:D

immer cool bleiben, „mein“ Script basiert auch nur auf Basis der Vorleistung vom „Computer Kübler“ angepasst, so gross ist meine Wertschöpfung nicht. Ich hoffe aber dass ich Dein Script nutzen darf :smiley:

is ja richtig vorbildlich hier … mit Quellenangaben … :smiley:

Gruß
Bruno

@Raketenschnecke:
Nein, Du darfst es nicht nutzen, ich habe es nur zum Angucken veröffentlich :slight_smile:

Ja, mit Quellenangabe. Die Medien haben in den letzten Tagen gezeigt, dass es besser ist, eine Quelle anzugeben. Ich habe nämlich keine Lust, den Titel „Senior Member“ an die Forenleitung zurückzugeben :smiley:

Hoffe, das Script funktioniert bei Euch. Konnte es nur hier testen…

Gruß,
Christoph

ich seh schon: Du verstehst mich :smiley:

Mal ne andere Frage:
Hat zufällig jemand Erfahrung mit der neuen Version von dem Ding? Ich habe hier die mit den 4 Kaltgerätebuchsen an der Rückseite. Es gibt seit kurzem auch eine Version mit 4 Schuko-Steckdosen. Bin am überlegen, welche Version die nächste ist, die hier Einzug hält …

Ich selbst nicht, aber andere :smiley:

Aw: NetIO 230A vs. NetIO 230B - CasaLive Forum

Gruß
Bruno

Hmm … das hört sich ja gut an. Hätte in einem Fall nämlich eher Verwendung für Schuko-Steckdosen. Wobei eine 8-fach Version (egal mit welchen Anschlüssen) noch viel viel besser wäre.

Meine alte 8-Fach IP-Steckdosenleiste hat hier das zeitliche gesegnet. Das NetIO tut bisher zuverlässig seinen Dienst und verbraucht wenn kein Gerät angeschlossen ist, so gut wie nix im Gegensatz zu meiner alten IP-Steckdosenleiste.

Mal schauen, vielleicht wird die nächste eine 230B …