myStrom WiFi Button an ioBroker anbinden


Wie man den myStrom WiFi-Switch anbindet, habe ich ja schon an anderer Stelle gezeigt.

Jetzt möchte ich den myStrom WiFi Button nutzen, um das Licht an der Aussentreppe für einige Minuten einzuschalten, damit Gäste heil hinauf und hinunter kommen.

Dazu erstellen wir in der ioBroker Script-Konsole zunächst einen softwareseitigen Schalter, einen State namens "aussenlicht_schalter".

1 createState("aussenlicht_schalter",false)
2 
3 on({id: "javascript.0.aussenlicht_schalter", val: true}, function(){
4   setState("lightify,0,72EC982223.on",true)
5   setTimeout(function(){
6     setState("javascript.0.aussenlicht_schalter",false)
7     setState("lightify,0,72EC982223.on",false)
8   },180000)
9 })

Dann setzen wir in Zeile 3 eine Subscription auf den Zustand "einschalten" dieses Schalters, schalten damit das Licht an und starten einen Timer, der es nach drei Minuten wieder ausschaltet und den State wieder zurücksetzt:
Dieses Script kann man, wenn der ioBroker SimpleAPI-Adapter installiert ist, direkt mit dem Browser testen:

http://<adresse>:8087/set/javascript.0.aussenlicht_schalter?value=true 

Damit setzen wir den im Script definierten State auf true.

Das Script reagiert auf diese Statusänderung, schaltet die Lampe ein und startet einen Timer, der sie nach 180000 Millisekunden wieder ausschaltet.

Nun wollen wir natürlich nicht jedesmal einen Web-Browser starten, um das Licht einzuschalten. Der myStrom WiFi Button erledigt dasselbe auf Knopfdruck. Allerdings müssen wir ihn dazu entsprechend anlernen.

Binden Sie den WiFi Button so in Ihr WLAN ein, wie in der Anleitung vorgeschlagen. Am einfachsten mit der WPS Funktion Ihres Routers.
Finden Sie heraus, welche IP-Adresse und welche MAC der Button hat. Sie können das zum Beispiel in der Client-Liste des Routers nachsehen. Falls Sie einen Linux- oder Mac- Computer haben, können Sie auch das nmap-Tool benutzen: sudo nmap -sP 192.168.16.*

Im Folgenden werde ich die so herausgefundene IP als [IP] bezeichnen, die MAC als [MAC], und die IP-Adresse des ioBroker als [ADRESSE]. ACHTUNG: bei der MAC müssen Sie allfällige (nur der Lesbarkeit dienende) Doppelpunkte entfernen. Also nicht E5:22:44:AA:26 sondern E52244AA26.

Schliessen Sie den Button mit dem mitgelieferten Kabel an ein USB-Ladegerät oder an einen USB-Port eines Computers an (sonst nimmt er keine Konfigurationsbefehle entgegen). Drücken Sie ausserdem vor Absetzen eines Befehls kurz auf den Knopf. Das Lämpchen wird dann weiss. Wenn es wieder grün wird, ist der Button einige Minuten lang bereit, Befehle und Anfragen entgegen zu nehmen.

Geben Sie dann folgenden Befehl in der Konsole ein:

curl -v -d "single=get://[ADRESSE]%3A8087%2Fset%2Fjavascript.0.aussenlicht_schalter%3Fvalue%3Dtrue" http://[IP]/api/v1/device/[MAC]

Wie Sie sehen, wurde aus

http://[adresse]:8087/set/javascript.0.aussenlicht_schalter?value=true

 der Ausdruck:

"get://[ADRESSE]%3A8087%2Fset%2Fjavascript.0.aussenlicht_schalter
     %3Fvalue%3Dtrue"

get:// statt http:// entstammt der myStrom Konvention, um dem Button anzuzeigen, dass er einen GET request absetzen soll. Der Rest ist die URLEncoded Form des Request-Strings. Sie können die Konvertierung zum Beispiel hier erledigen.

Wenn der Button "connection refused" motzt, dann drücken Sie kurz auf den Knopf und vergewissern Sie sich, dass er wirklich Strom vom USB Kabel bekommt. Wenn er eine Antwort gibt, die "error" enthält (meist 404, Not found), dann war etwas am Request-String falsch. Ansonsten sagt er "OK" und ist fortan darauf spezialisiert, auf einen kurzen Druck hin das Aussenlicht einzuschalten. Oder genauer gesagt: Den ioBroker-State auf "true" zu setzen, der das Script auslöst, welches das Aussenlicht für drei Minuten einschaltet.
Man könnte in analoger Weise auch das Verhalten auf langen Druck (long) und Doppelklick (double) programmieren, wie hier:

"single=get://[aktion1]&long=post://[aktion2]&double=get://[aktion3]" http://[IP]/api/v1/device/[MAC]



Die momentane Einstellung des Buttons können Sie auch mit einem Web-Browser prüfen:

http://[IP]/api/v1/device/[MAC]


ergibt etwas wie:


{
 "[MAC]": {"type": "button", "battery": true, "reachable": true, "meshroot": false, "charge": true, "voltage": 4.292, "fw_version": "2.56", "single": "get:\/\/http:\/\/[Adresse]:8087\/set\/javascript.0.aussenlicht_schalter?value=true", "double": "", "long": "", "touch": ""}
}

(Auch das geht aber nur, wenn der Button am USB-Kabel angeschlossen ist, und nachdem man kurz auf den Knopf gedrückt hat)

Kommentare

  1. Baccarat - FEB Casino
    As deccasino a way to play casino games, the two teams of players present at the table have the best possible odds 바카라사이트 of winning. The game 샌즈카지노 will take you to

    AntwortenLöschen

Kommentar veröffentlichen

Beliebte Posts aus diesem Blog

von Schedules und Triggern

Einfache Script-Beispiele