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.

  • Daten des Shelly EM3 per Wlan mit ESP8266 auslesen - wie?? Schau mal ob du hier fündig wirst!

  • 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-xiao-esp…it-wlan-und-ble

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

  • Kein MQTT, Raspberry, Homeserver, etc wird benötig. Nur WLAN und ein ESP8266

    Ich hab dazu eine Funktion um Shelly EM, 1PM, 3PM und PRO_3PM auszulesen
    Leider hat der PRO_3PM eine andere HTTP Seite und deshalb muss der Shelly_Typ auf 1 gesetzt werden

    Edited 5 times, last by jens869 (July 31, 2023 at 11:48 AM).

  • Hallo in die Runde,

    ich bin ein absoluter Neuling. Aber habe genau das gefunden was ich gesucht habe!

    Ich habe mit ein esp32 mit display (

    LILYGO® T-Display-S3 ESP32-S3 1.9 inch) gekauft um genau das gleiche damit zu machen.

    Meine Frage: muss man den code für den esp32 anpassen oder so lassen wie für den 8266?

    Danke schon mal…

  • Moin Dammy,

    erstmal: Herzlich Willkommen im Forum!

    Mach es so wie @DeaD_EyE es geschrieben hat. Dann übersetze es mit der Arduino Ide. Wenn es Fehler gibt, einfach melden.

    Dann aber mit einem eigenem Thread/Thema.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Huhu, hast etwas gedauert... aber jetzt läuft es auf dem lilygo s3 mit T-Display. Vielen Dank für den Code!

    Hallo,

    das Thema ist zwar schon etwas älter, aber ich stehe vor dem gleichen Problem. Hast Du den funktionierenden Code noch?

    Würde Ihn auch gerne mit einem Lilygo T Display S3 nutzen. Allerdings bin auch ich absoluter Neuling. Habe es mit dem Code von jens869 versucht und auch den HTTPP Clienten geändert aber ohne Erfolg.

  • Moin vdbist,

    erstmal: Herzlich Willkommen im Forum!

    Der Dammy war seit dem 25.09.2023 nicht mehr in diesem Forum.
    Da kannst du nur selber was versuchen.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • vdbist :

    WAS geht denn nicht? Hast du Fehlermeldungen? Ggf. musst du den Code mit ein paar Debug-Meldungen anreichern, um zu ergründen, warum es nicht geht.

    Eines meiner "liebsten" FM ist, dass die DNS-Auflösung der Namen der Shellys nicht funktioniert.
    Deswegen haben alle meine Shellys "feste IPs"* und werden darüber angesprochen.

    *) : Feste IPs in diesem Fall heißt, dass die Shellys ihre IP per DHCP aus der Fritte beziehen, aber dort eine fixe IP per MAC zugeteilt wird.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!