Hallo Zusammen,
ich bin neu hier, wollte euch aber dennoch mein Skript nicht vorenthalten.
Die Smarten Steckdosen NETIO4All wollte ich bei OpenHAB integrieren.
Jeweils vier Steckdosen können angesteuert und die Momentanleistung abgelesen werden.
Die Steckdosen waren mal bei Reich**t zu kaufen, jedoch kann ich nicht sagen ob es die noch gibt, ich hab die Steckdose als Austausch vom Hersteller bekommen. Leider muss auch eine der Austauschgeräte wieder dahin, ein Relais ist festgebraten.
Der Hersteller liefert ein Python Skript um den Status der Steckdose anzuzeigen. (Das Skript habe ich angepasst und das Passwort direkt in das Skript eingeben (default: admin), außerdem habe ich die Ausgabe Regex verträglich gemacht)
Bestimmt geht es auch anders, aber so finde ich es sehr performant.
Lange rede, kurzer Sinn, hier mein Skript für zwei Steckdosen (rules von OpenHAB)
Grüße
Dominic
ich bin neu hier, wollte euch aber dennoch mein Skript nicht vorenthalten.
Die Smarten Steckdosen NETIO4All wollte ich bei OpenHAB integrieren.
Jeweils vier Steckdosen können angesteuert und die Momentanleistung abgelesen werden.
Die Steckdosen waren mal bei Reich**t zu kaufen, jedoch kann ich nicht sagen ob es die noch gibt, ich hab die Steckdose als Austausch vom Hersteller bekommen. Leider muss auch eine der Austauschgeräte wieder dahin, ein Relais ist festgebraten.
Der Hersteller liefert ein Python Skript um den Status der Steckdose anzuzeigen. (Das Skript habe ich angepasst und das Passwort direkt in das Skript eingeben (default: admin), außerdem habe ich die Ausgabe Regex verträglich gemacht)
Bestimmt geht es auch anders, aber so finde ich es sehr performant.
Lange rede, kurzer Sinn, hier mein Skript für zwei Steckdosen (rules von OpenHAB)
Code:
rule "NETIO" when Time cron "*/20 * * * * ?" then var String command1 command1 = "python /volume1/public/OpenHAB/configurations/scripts/consumption.py 10.0.0.1" var String cons1 = executeCommandLine(command1, 2000) var Pattern power = Pattern::compile("::(ON|OFF):(ON|OFF):(ON|OFF):(ON|OFF):(.*):(.*):(.*):(.*):") var Matcher m1 = power.matcher(cons1) if (m1.matches()) { if(m1.group(1)!=Port1_1.state){ postUpdate(Port1_1, m1.group(1) )} if(m1.group(2)!=Port1_2.state){ postUpdate(Port1_2, m1.group(2) )} if(m1.group(3)!=Port1_3.state){ postUpdate(Port1_3, m1.group(3) )} if(m1.group(4)!=Port1_4.state){ postUpdate(Port1_4,m1.group(4) )} postUpdate(Port1_1c, Integer::parseInt(m1.group(5))) postUpdate(Port1_2c, Integer::parseInt(m1.group(6))) postUpdate(Port1_3c, Integer::parseInt(m1.group(7))) postUpdate(Port1_4c, Integer::parseInt(m1.group(8))) end rule "Port1_1" when Item Port1_1 changed then if(Port1_1.state==OFF) {sendHttpGetRequest("http://Smartmeter1/event?port=0uuu&pass=Smartmeter1")} else {sendHttpGetRequest("http://Smartmeter1/event?port=1uuu&pass=Smartmeter1")} end //Schalten eines Ausgangs
Dominic
Kommentar