Geräte-WIKI: MyStrom Button

Hallo zusammen,

ich habe mir einen MyStrom Button besorgt und möchte euch zeigen, wie ich ihn in Homee integriert habe. Das ganze funktioniert grundsätzlich ohne zusätzliche Hardware.

Alles, was ihr braucht ist der BrainCube, der MyStrom Button, ein funktionierendes WLAN und einen Computer zum einrichten. Zum Übertragen der Befehle habe ich curl im Terminal auf einem MacBook benutzt. Bei Windowsnutzern kann es sein, dass die Syntax etwas abweicht. Leider konnte ich das nicht testen, aber vielleicht kann ja jemand meine Befehle für Windowsnutzer übersetzen. :wink:

Ich habe meinen Button zusätzlich in Node-Red eingebunden. Das ist aber optional und für den Betrieb des Buttons nicht unbedingt notwendig. Das einzige, was euch ohne Node-Red fehlt ist die Anzeige des Akkustandes.

Hier die Schritte zum Einbinden:

In Homee Webhooks für die drei möglichen Aktionen anlegen
Bei mir lauten deren Namen: „EinfacherKlick“, „DoppelterKlick“ und „LangerKlick“. Wenn ihr zusätzlich NodeRed nutzen wollt, benötig ihr hier einen HTTP-IN Node. Bei den Webhooks von Homee müsst ihr „https://12345xyz.hom.ee/“ durch die lokale IP des Homee ersetzen. Bei mir wäre das: „http://192.168.2.107/“

Button mit der App verbinden, IP zuweisen und ein Firmwareupdate durchführen
Das Verbinden mit der App ist in der Anleitung gut erklärt und wird deshalb hier nicht ausführlich beschrieben. Gibt es eine neue Firmware, wird dies in der App angezeigt. Wenn eure Firmware mindestens 2.74.31 entspricht, könnt ihr diesen Schritt überspringen.

Terminalbefehle vorbereiten
Da der Konfigurationsmodus sich später nach fünf Minuten wieder deaktivieren wird, macht es Sinn sich jetzt die Terminalbefehle vorzubereiten. Bitte ersetzt dazu in meinen Befehlen 192.168.2.107 durch die IP eures Homees und ergänzt den richtigen Webhook-Key.
Anmerkung: Der Button wird während des Konfigurationsmodus die IP 192.168.254.1 haben.

Einfacher Klick:

curl --request POST 'http://192.168.254.1/api/v1/action/single' --data-raw 'get://192.168.2.107:7681/api/v2/webhook_trigger?webhooks_key=HIER_MUSS_EUER_KEY_STEHEN&event=EinfacherKlick'  

Doppelter Klick:

 curl --request POST 'http://192.168.254.1/api/v1/action/double' --data-raw 'get://192.168.2.107:7681/api/v2/webhook_trigger?webhooks_key=HIER_MUSS_EUER_KEY_STEHEN&event=DoppelterKlick'

Langer Klick:

curl --request POST 'http://192.168.254.1/api/v1/action/long' --data-raw 'get://192.168.2.107:7681/api/v2/webhook_trigger?webhooks_key=HIER_MUSS_EUER_KEY_STEHEN&event=LangerKlick'  

Generic Info an Raspberry (Nur für NodeRed) :

curl --request POST 'http://192.168.254.1/api/v1/action/generic' --data-raw 'get://raspberrypi:1880/mystrom'

Device Info abrufen:

 curl 'http://192.168.254.1/api/v1/device‘  

Mit WLAN verbinden:

 curl --request POST '192.168.254.1/api/v1/connect' --header 'Content-Type: application/x-www-form-urlencoded' --data-raw '{"ssid": „EURE WLAN SSID“, "passwd": „EUER WLAN PASSWORT}‘

.
Button auf Werkseinstellungen zurücksetzen
Taste etwa 10 Sekunden drücken, bis der Button anfängt, weiß-rot zu blinken Taste loslassen, Taste nochmals kurz drücken bis der Button beginnt weiß zu blinken

Den Button jetzt NICHT per WPS mit dem heimischen WLAN verbinden

Den Computer mit dem WLAN des Buttons verbinden
Dazu den Knopf einmal für etwa eine Sekunde drücken, loslassen und nochmals drücken bis die LED rot/weil blinkt. Den PC mit dem WLAN „my-button-xyz“ verbinden

Befehle absetzen
Jetzt öffnet ihr das Terminalprogramm und setzt die Befehle ab, die ihr oben vorbereitet habt. Wenn ihr die DeviceInfo abruft, könnt ihr sehen, ob eure vorigen Befehle übernommen wurden. Ihr bekommt als Antwort ein JSON Objekt, indem die URLs eingetragen sind, die zu jedem Ereignis gehören. Hat das funktioniert, setzt ihr den letzten Befehl ab und der Button verbindet sich mit eurem WLAN.

Fertig
Jetzt solltet ihr in Homee die Webhooks empfangen und, falls ihr NodeRed benutzt dort bei jedem Knopfdruck eine Info bekommen. Hier noch der NodeRed Flow zum auswerten des Buttons:

[{"id":"e880afd8.f7be1","type":"tab","label":"MyStrom","disabled":false,"info":""},{"id":"a1079a17.867fe8","type":"http in","z":"e880afd8.f7be1","name":"","url":"/mystrom","method":"get","upload":false,"swaggerDoc":"","x":300,"y":200,"wires":[["a0a55bb9.a1bfd8","fe8200de.14429"]]},{"id":"a0a55bb9.a1bfd8","type":"http response","z":"e880afd8.f7be1","name":"","statusCode":"","headers":{},"x":470,"y":160,"wires":[]},{"id":"fe8200de.14429","type":"function","z":"e880afd8.f7be1","name":"","func":"action = {payload: msg.payload.action};\nbattery = {payload: msg.payload.battery};\n\nreturn [action, battery];","outputs":2,"noerr":0,"initialize":"","finalize":"","x":480,"y":200,"wires":[["e3228cb6.3fdee"],["9d89e9c.e3bb718"]]},{"id":"e3228cb6.3fdee","type":"ui_text","z":"e880afd8.f7be1","group":"a5813bdc.978188","order":0,"width":0,"height":0,"name":"","label":"Action","format":"{{msg.payload}}","layout":"row-spread","x":630,"y":180,"wires":[]},{"id":"9d89e9c.e3bb718","type":"ui_gauge","z":"e880afd8.f7be1","name":"","group":"a5813bdc.978188","order":4,"width":0,"height":0,"gtype":"gage","title":"Battery","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#fc2125","#e6e600","#29c732"],"seg1":"30","seg2":"70","x":640,"y":220,"wires":[]},{"id":"a5813bdc.978188","type":"ui_group","name":"MyStrom","tab":"7eefb52.12b584c","order":3,"disp":true,"width":"6","collapse":false},{"id":"7eefb52.12b584c","type":"ui_tab","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]

.

Ich hoffe ich kann damit der Community etwas zurückgeben :slight_smile:

11 Like

Die Einstellungen bleiben erhalten, wenn die Batterie des Buttons mal leer laufen sollte?

Meiner war, seit ich ihn zum ersten Mal aufgeladen habe, noch nicht leer. Deshalb kann ich ich die Frage noch nicht beantworten.

Wenn der Akku sich weiter so verhält wie bisher, kann ich dir die Antwort aber Mitte März nachreichen :blush:

Er würde mich aber sehr wundern, wenn er die Einstellungen verlieren würde.

1 Like

Kurzer Zwischenstand:

Der Akku steht noch über 70%. Ich werde die Frage nach dem Verlust der Einstellungen bei leerem Akku also erst deutlich später beantworten als gedacht… :+1:

1 Like

Kannst du den Zustand des Schaltens erkennen? Sprich, siehst du ob an oder aus ist?

Carsten

Hi, nein, das geht leider nicht.
Der Button ist aber auch kein Schalter, sondern ein Taster.

Die Meldungen, die er ausgibt sind:
1: Einfacher Klick
2: Doppelter Klick
3: Langer Klick