Werte des Shelly 3EM auf TFT anzeigen

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Wer wie ich einen Shelly 3EM verbaut hat, der möchte die ermittelten Werte verarbeiten und visualisieren. Bei mir kommt hinzu, dass ich ein Balkonkraftwerk installiert habe, was der eigentliche Grund für den Shelly war. Die Werte nur in der App zu sehen reichte mir auf Dauer aber nicht, da es nervig ist, ständig das Handy zur Hand zu nehmen, nur um die aktuellen Werte zu sehen. Daher habe ich nach einer Lösung gesucht, wie die Werte der drei Phasen einzeln und als Summe in Echtzeit dargestellt werden können. Der Aufwand sollte sich in Grenzen halten. Ich wollte mir kein großes Display an die Wand hängen, auf dem alle erdenklichen Dinge angezeigt werden. Es sollte eine dezente Anzeige werden, der die Mitbewohner entnehmen können, wann es sinnvoll ist, einen Verbraucher einzuschalten.


    Als einfache und günstige Hardware bietet sich ein ESP8266 an, von dem ich noch diverse Modelle herumliegen habe. Da sich meine Programmierkenntnisse in engen Grenzen halten, habe ich nach einem Sketch gesucht, mit dem die Daten aus dem Shelly per Wlan ausgelesen werden. Der entscheidende Tipp kam von Leroy Cemoi. An dieser Stelle noch mal :danke_ATDE:


    Mit diesem Sketch als Basis habe ich zum Test ein 7-Segment Display angeschlossen. Als klar war, dass alles so läuft, wie ich es mir vorstelle, habe ich dieses gegen ein 1.8" TFT getauscht. Als Gehäuse dient ein defekter AVM Fritz!Powerline 510E. Die Beschriftung des Deckels lies sich mit Terpentin Ersatz sehr schnell entfernen.


    Die Original-Platine habe ich demontiert, ein passendes Loch in den Deckel gefräst und das Display von hinten eingeklebt. Ziemlich enge Geschichte in dem Gehäuse, aber wenn man die Kabel lang genug lässt, findet sich irgendwann eine Anordnung der Komponenten, bei der sich der Deckel schließen lässt.

    Wichtig: Alles gut isolieren. Da sind 230V AC sehr nah an den DC-Komponenten!!


    In der Nacht fiel mir auf, dass das Display den ganzen Raum erleuchtet. Daher habe ich zusätzlich noch einen LDR installiert, mit dessen Werten die Helligkeit des Backlights gesteuert wird. Für den LDR habe ich das im Gehäuse vorhandene Loch des Reset-Tasters genutzt, dass wie dafür gemacht zu sein schien.

    Das Mapping muss noch etwas angepasst werden, daher lasse ich mir den Wert in der ersten Zeile zum Debugging anzeigen. Der verschwindet natürlich demnächst.


    Updates werden der Einfachheit halber OTA aufgespielt.


    Rein technisch läuft das jetzt so, wie ich es mir vorgestellt habe. Optisch kann man die Anzeige vielleicht noch aufhübschen.

  • Go to Best Answer
  • Das kann ich gerne machen. Allerdings ist der Sketch mangels meiner Programmierfähigkeiten eher "Kraut und Rüben".

    Die Wlan und IP Daten Deines Netzes musst Du noch ergänzen.



  • Hallo,

    ich habe mich angemeldet um mich zu bedanken. Genau das habe ich gesucht! Funktioniert super bei mir.

    Ich hatte kein Leeres Gehäuse mehr, und ich wollte auch keine Steckdose opfern, deshalb habe ich mir das Gehäuse bei Reichelt bestellt. Als Spannungsversorgung habe ich einfach einen alten Handyladestecker aufgebrochen und die Adern angelötet

    Was man vielleicht noch erwähnen sollte bei dem Code, wenn ihr euren Shelly per Passwort geschützt habt müsst ihr den Benutzer und Passwort vor die IP schreiben. Also: http://Benutzername:Passwort@IPvomShelly/emeter/0

    Und wenn man zb das rote Display von AZ hat ist TFT_DC auf D2 bei dem Display TFT_A0 auf D2

    Ich habe noch mal ein Bild von meinem Spannungsteiler angehängt für den LDR.


    Vielen Dank und viele Grüße


    Michael


    PS.: Wenn man einen Shelly 3em Pro hat muss man hier mal gucken

    https://shelly-api-docs.shelly…ComponentsAndServices/EM/

    wegen der Kommandos

  • Hallo,

    habe es nachgebaut, und leicht modifiziert.

    Bin sehr begeistert, vielen Dank fürs veröffentlichen.


    Eine Sache hätte ich gerne verbessert.

    Das Display aktualisiert sich alle 5 Sekunden bei mir.

    dann wird es ganz kurz Schwarz, und die neuen Werte werden angezeigt.

    Das lenk aus dem Augenwinkel ein wenig ab. Geht es auch ohne Unterbrechung ?

  • Das stört mich auch, ich vermute es liegt an folgender Zeile

    tft.fillScreen(ST7735_BLACK);

    Aber ich weiß auch nicht wie man es anders machen soll. Wäre wahrscheinlich eine Frage für ein Arduino Forum

  • Vielen Dank für die Blumen.


    Das gute Stück war im Nachgang betrachtet bei mir nur eine Zwischenlösung. Inzwischen habe ich die (Strom)Hardware "etwas" erweitert, auf einem separaten RasPI ein Venus OS installiert und lasse mir (über GUI Mod) damit alles anzeigen.


    Das Thema mit dem Display Refresh hat mich seinerzeit ebenfalls bewegt, weshalb ich stundenlang nach einer Lösung gesucht habe. Letztendlich habe ich keine gefunden. Wenn man neue Werte dort hin schreiben möchte, muss man das Display einmal löschen, damit nicht alles übereinander geschrieben wird. Da die Hardware nicht die Schnellste ist, wird der Löschvorgang als Flackern empfunden.

  • Post by itschi77 ().

    This post was deleted by the author themselves ().
    • Best Answer

    Moin!


    Toshrtg stört das Flackern das Displays. Sprich das wieder alles schwarz wird bevor dann die Schrift kommt.

    Es liegt in der Tat daran das, bei jedem Schreiben, das komplette Display mit schwarz beschrieben wird.


    Aber es könnte eine Lösung geben. Ist von meiner Seite nur Theorie.

    Die Funktion setTextColor erwartet eigentlich 2 Übergabeparameter. Vordergrundfarbe und Hintergrundfarbe.

    Wenn nur eine Farbe übergeben wird, das ist die 2.te Farbe transparent.


    Mein Vorschlag:

    Diese Code aus loop() auskommentieren

    tft.fillScreen(ST7735_BLACK);

    Und diese Zeilen

    tft.setTextColor(ST7735_GREEN);

    so erweitern: tft.setTextColor(ST7735_GREEN, ST7735_BLACK);


    Da ja eigentlich immer ähnliche Daten geschrieben werden, sollte es so reichen.

    Probiert es aus.

    Und sagt Bescheid!


    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.

  • Moin.


    Bernd666 Ich war im Urlaub, und habe daher nichts mitbekommen.

    Jetzt konnte ich es ausprobieren.

    Es funktioniert jetzt einwandfrei, absolut kein Flackern mehr.


    Da ich drei verschieden Farben nehme (wenig-, mittlerer-, hoher- Verbrauch),

    musste ich die Änderung mehrmals einsetzen. Und auch das klappt wunderbar.


    Vielen Dank für die Mühe.


    Tosh