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


Das man direkten SSH-Zugriff hat, ist allerdings ein enormer Vorteil. Kannst du noch etwas über die Schaltgeschwindigkeit sagen, erfolgt diese ohne grosse Verzögerung? Sind alle 6 Ports schalt-/messbar?
Kommentar