Daten des Shelly EM3 per Wlan mit ESP8266 auslesen - wie?

  • Ich lese die Werte der drei Phasen am Hausanschluss mit einem Shelly EM3 aus. Diese stehen per Wlan vor Ort zur Verfügung und werden mir unterwegs auch in der App angezeigt. Das funktioniert alles einwandfrei.


    Nun würde ich die Werte der drei Phasen so wie den Summenwert aller Phasen gerne mit einem ESP8266 über das heimische Wlan auslesen.


    Hintergrund ist, dass ich in der Küche ein kleines Display installieren möchte, auf dem der aktuelle Verbrauch angezeigt wird und in möglichst kurzen Abständen aktualisiert wird.


    Kennt jemand einen fertigen Sketch oder ein Projekt, mit dem es möglich ist, die Daten per ESP8266 auszulesen? Dann müsste ich das Rad nicht neu erfinden.

  • Steinardo

    Danke für die Info. Nur leider kann ich noch immer nicht programmieren.


    Leroy Cemoi

    Der Link enthält genau das, was ich gesucht habe, nach einigem Herumprobieren habe ich die Ausgabe im seriellen Monitor und auf einem Display :)




    Nun muss ich nur noch ein Gehäuse finden und dann schauen, ob ich nicht doch noch ein anderen Display nehme. Aber das grundsätzliche Problem ist gelöst. Ich komme mit dem ESP an die Daten des Shelly :danke_ATDE:


    Testweise wollte ich die Daten im seriellen Plotter ausgeben. Leider klappt das aber nicht. Ich nehme an, dass es ein banaler Fehler ist. Vielleicht sieht jemand das Problem?


  • Wenn man deine Ausgabe mit dem Beispiel aus der Arduino-Dokumentation vergleicht findet man keine grossen Unterschiede:

    Code
    Serial.print("Variable_1:");
    Serial.print(potentiometer);
    Serial.print(",");
    Serial.print("Variable_2:");
    Serial.println(static_variable);

    Putz mal die Spaces und das Komma am Ende weg und probier es nochmals.


    Eventuell liegt es an den Datentypen. Im Beispiel sind es Integer. Caste deine Variablen in einen Integer und probier es mal so.

  • Ich bin von der Shelly-Doku positiv überrascht. Also wenn man einen MQTT-Broker (mosquitto) bereits hat, weil man z.B. die Daten sammelt, kann man MQTT auch beim ESP8266 nutzen.


    Wenn du in C/C++ entwickeln willst, gibt es sicherlich auch Bibliotheken für: MQTT und JSON

    Via MQTT werden die Nachrichten empfangen und mittels JSON wird der Payload (die Daten) deserialisiert.

    Wenn MQTT beim Shelly EM3 aktiviert wird, sendet der die Daten automatisch alle 30 Sekunden (meine ich gelesen zu haben).


    Ich bin ein Fan von Micropython, weiß aber auch, dass umqtt ziemlich problematisch auf dem ESP8266 ist, da der RAM nicht so groß ist.


    Mit C wird man da sicherlich bessere Ergebnisse erzielen, da es weniger RAM benötigt.


    Alternativer Controller: https://www.berrybase.de/seeed…cu-board-mit-wlan-und-ble


    Der hat 400 KB RAM, anstatt nur 96 KB RAM beim ESP8266.