NEWS
[geloest] Gembird, Energenie Lan-Steckdosen
-
Moin,
Erstmal grosses Danke.
Dein Skript spuckt soweit keine Fehler aus, aber schalten tut es auch nicht.
Nur um Sicher zu gehen, ich habe einfach ein neues Objekt erstellt mit Standard Einstellungen.
filename="Capture.PNG" index="1">~~
Ist das richtig, muss ich was besonderes beachten? Brauche ich ein bestimmtes Widget was das schalten kann?
Hier mein Skript was ich mir deinem Code erstellt habe.
filename="Capture02.PNG" index="0">~~
Danke fuer euren Support,
Axel
-
@Jey Cee:Du hast einen Fehler in deinem Skript. Bei 'on' stimmt die ID von deinem Objekt nicht.
Füg die ID mal mit dem Button oben rechts im Editor ein. `
Mhm, das hatte ich schon getan. Meinst du das /Gembird1_Port4_aus/ sollte weg?
So sieht die ID aus wenn ich sie via dem button einfuege…
"Gembird1_Port4_aus"/Gembird1_Port4_aus/
Danke,
-
Wenn ich das Skript starte mit dem selbsterstellten Objekt bekomme ich diese Fehlermeldung.
ReferenceError: request is not defined at doPostRequest (script.js.common.Gembird_Test.Gembird:28:5) at chainPostRequests (script.js.common.Gembird_Test.Gembird:38:5) at Object. (script.js.common.Gembird_Test.Gembird:22:9) at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1325:48) at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:585:48 at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3210:17) at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:581:17) at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:253:17) at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2866:37) at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30)
Keine Ahnung was das bedeutet :?
Ich weiss leider auch nicht wie das Objekt aussehen sollte, sprich mit welchen Einstellungen es erstellt werden sollte.
-
Hier mal ein Beispiel wie so ein Objekt aussehen sollte:
filename="objekt.PNG" index="0">~~Wie meinst du beschreiben? Steh auf dem Schlauch `
Damit meinte ich wie du den Status (Wert/Value) deines Objekts von "false" auf "true" setzt.Wenn ich das Skript starte mit dem selbsterstellten Objekt bekomme ich diese Fehlermeldung.
ReferenceError: request is not defined at doPostRequest (script.js.common.Gembird_Test.Gembird:28:5) at chainPostRequests (script.js.common.Gembird_Test.Gembird:38:5) at Object. (script.js.common.Gembird_Test.Gembird:22:9) at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1325:48) at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:585:48 at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:3210:17) at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:581:17) at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:253:17) at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2866:37) at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30) `
Der Fehler sagt dir das du den Befehl request nicht definiert hast. Der kommt von einem Modul das du in deinem Skript aufrufen musst.
var request = require('request');Am Anfang deines Scripts einfügen. Dann sollte es gehen.
Lies dich hier mal ein: http://www.iobroker.net/?page_id=5385&lang=de
-
Ich habe die CURL mit Chrome Dev-Inspector ausgelesen und in ein shellskript gepackt. Dieses starte ich nun per skript aus iobroker. Damit funktioniert es super…
so sieht der CURL vom Socket01 aus, aufgeteilt in Login, Delay 2 Sekunden, An oder aus, Delay 2 Sekunden, Logout
#!/bin/bash curl 'http://192.168.1.9/login.html' -H 'Origin: http://192.168.1.9' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.8,de;q=0.6' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Cache-Control: max-age=0' -H 'Referer: http://192.168.1.9/' -H 'Connection: keep-alive' --data 'pw=1' --compressed sleep 2 curl 'http://192.168.1.9/' -H 'Origin: http://192.168.1.9' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.8,de;q=0.6' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Cache-Control: max-age=0' -H 'Referer: http://192.168.1.9/login.html' -H 'Connection: keep-alive' --data 'cte1=0&cte2=&cte3=&cte4=' --compressed sleep 2 curl 'http://192.168.1.9/login.html' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en-US,en;q=0.8,de;q=0.6' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Referer: http://192.168.1.9/' -H 'Connection: keep-alive' --compressedUnd so das Script was aus iobroker gestartet wird. Hier werden jeweils der An oder Aus Befehl getriggert in abhaengigkeit zum Status.
on({id: "javascript.0.scriptEnabled.common.HardShutdown.LeftSocket-1_Dummy"/*scriptEnabled.common.HardShutdown.LeftSocket-1_Dummy*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("javascript.0.scriptEnabled.common.HardShutdown.LeftSocket-1_Dummy").val == true) { exec('bash /home/pi/GembirdPowerSocket/LeftSocket1-on.sh'); console.log("exec: " + 'bash /home/pi/GembirdPowerSocket/LeftSocket1-on.sh'); } else if (getState("javascript.0.scriptEnabled.common.HardShutdown.LeftSocket-1_Dummy").val == false) { exec('bash /home/pi/GembirdPowerSocket/LeftSocket1-off.sh'); console.log("exec: " + 'bash /home/pi/GembirdPowerSocket/LeftSocket1-off.sh'); } }); -
Hat jemand eine Lösung für die Gembird Steckdose gefunden um sie in iob zu integrieren?
-
Hallo,
Ich wuerde gerne meine LAN Steckdosen (http://energenie.com/item.aspx?id=7416) in iobroker implementieren.
Einfache Befehle wie Ein oder Aus wuerden schonmal reichen. Ich habe im Netz nicht viel gefunden was mich weiter bringt.
FHEM oder OpenHab haben das schon implementiert. Soweit so gut, es soll gehen und die Befehle sehen wohl wie folgt aus.
1. Befehl: http://Deine-IP/login.html
Dann einen POST Befehl –> pw=1 (Dein Passwort um dich auf die Seite zu loggen)
2. Befehl: http://192.168.1.90/status.html
Dann einen POST Befehl –> cte1=0 (cteX steht fuer die jeweilige Steckdose, 0 oder 1 fuer Aus oder An)
Auf der Seite gibt es mehr Infos. http://forum.micasaverde.com/index.php/ … ek8u6jn3m0
Ich bin auf eure Hilfe angewiesen - Komme bei diesem einfachen Tasks nicht mehr weiter.
Vielen Dank
@mickyboys Hast du das irgendwie hinbekommen die Steckdose in iob zu integrieren bzw zu steuern da dein Post als gelöst markiert wurde. Ich habe es nun mehrmals mit meiner Steckdose probiert und bekomme es einfach nicht hin.
-
Ich habe die CURL mit Chrome Dev-Inspector ausgelesen und in ein shellskript gepackt. Dieses starte ich nun per skript aus iobroker. Damit funktioniert es super…
so sieht der CURL vom Socket01 aus, aufgeteilt in Login, Delay 2 Sekunden, An oder aus, Delay 2 Sekunden, Logout
#!/bin/bash curl 'http://192.168.1.9/login.html' -H 'Origin: http://192.168.1.9' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.8,de;q=0.6' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Cache-Control: max-age=0' -H 'Referer: http://192.168.1.9/' -H 'Connection: keep-alive' --data 'pw=1' --compressed sleep 2 curl 'http://192.168.1.9/' -H 'Origin: http://192.168.1.9' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.8,de;q=0.6' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Cache-Control: max-age=0' -H 'Referer: http://192.168.1.9/login.html' -H 'Connection: keep-alive' --data 'cte1=0&cte2=&cte3=&cte4=' --compressed sleep 2 curl 'http://192.168.1.9/login.html' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en-US,en;q=0.8,de;q=0.6' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Referer: http://192.168.1.9/' -H 'Connection: keep-alive' --compressedUnd so das Script was aus iobroker gestartet wird. Hier werden jeweils der An oder Aus Befehl getriggert in abhaengigkeit zum Status.
on({id: "javascript.0.scriptEnabled.common.HardShutdown.LeftSocket-1_Dummy"/*scriptEnabled.common.HardShutdown.LeftSocket-1_Dummy*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("javascript.0.scriptEnabled.common.HardShutdown.LeftSocket-1_Dummy").val == true) { exec('bash /home/pi/GembirdPowerSocket/LeftSocket1-on.sh'); console.log("exec: " + 'bash /home/pi/GembirdPowerSocket/LeftSocket1-on.sh'); } else if (getState("javascript.0.scriptEnabled.common.HardShutdown.LeftSocket-1_Dummy").val == false) { exec('bash /home/pi/GembirdPowerSocket/LeftSocket1-off.sh'); console.log("exec: " + 'bash /home/pi/GembirdPowerSocket/LeftSocket1-off.sh'); } });@mickyboys Denkst du da man das Script auch direkt per iobroker auslösen kann. Ich weiß der Beitrag ist schon alt aber vielleicht hast du es ja in der zwischen Zeit laufen?