Hallo Leute, ich versuche gerade, meinen Stromverbrauch mitzuloggen. Ich habe einen "echten" Lesekopf, einen ESP32 (DevKitV1) und einen RPi. Und naiverweise dachte ich, das läuft in ein zwei Tagen. Erfahrung habe ich mit Elektronik und Linux durchaus, bin aber kein Profi. Als Unterbau wollte ich den Volkszähler nehmen, das "Projekt" ist ja recht bekannt. Aber damit komme ich schon mal gar nicht zu recht. Es gibt keinerlei brauchbare Beschreibung, nur die fehlerhafte Installationsanleitung? Dateien wie die vzlogger.conf fehlen nach der Installation gleich komplett. Egal, dachte ich, dann weiter mit dem ESP32, der per Lesekopf die Daten bereitstellen soll. Hm, gibt es überhaupt Software die das kann? Naja, einige Stunden Recherche: Tasmota soll wohl Zähler auslesen können. Aber dann, was macht es damit? Keine Beschreibung zur Funktion, nur zu den tausenden Einstell-Möglichkeiten. Gerne hätte ich auch mal mit Tasmota gespielt, aber es wird lediglich verlangt, sich komplett in das Projekt einzuarbeiten. Es gibt zu den 107MB Source und den 8 Zeilen die geändert werden müssen nur den Hinweis: Noch zu kompilieren. Hier fehlt gänzlich die Beschreibung, was wo wie gemacht werden soll. Ich such mir doch nicht aus 5000 Dateien die vielleicht passenden zusammen und lerne nebenbei noch PlattformIO? Bin ich tatsächlich als einzigster auf der Welt unfähig so ein Projekt umzusetzen? Kann ich kaum glauben. Genausowenig glaube ich, mich in alle Projekte bis in kleinste einarbeiten zu müssen. Ich bin total frustriert und völlig ratlos. Bitte entschuldigt. Wie muss ich an die Sache rangehen? Tipps? Danke für eure Erleuchtung.
Ein Shelly3EM wäre hier ratsam. Wenn du den Stromzähler selber auslesen willst: https://github.com/jomjol/AI-on-the-edge-device Da werden die Zahlen abgefilmt. Aber, ohne Fleiß kein Preis. Wenn dir das alles zu aufwändig ist, beauftrage einen Fachbetrieb deines Vertrauens mit der Umsetzung, er wird dir auch ein Display im Flur montieren wo du siehst was durch die Leitungen geht. Ganz ehrlich: Modelle aus Streichhölzern basteln ist sicher auch interessant.
Oliver S. schrieb: > Aber, ohne Fleiß kein Preis. Das ist mir klar, ich bin weder faul doch dumm. Ich habe kein Problem eine Dokumentation zu lesen. Wenn es denn eine geben würde. Oliver S. schrieb: > Wenn dir das alles zu aufwändig ist Es kann ja nicht sein, das ich der erste bin der sowas machen will. Also muss es doch da doch irgendwo eine vernünftige Beschreibung geben. Die Projekte sind ja nicht gerade klein. Gerade der Lesekopf ist hundderttausendfach nachgebaut, von Laien(!). Aber ich finde einfach keine Dokumentation/Beschreibung dazu. Oliver S. schrieb: > Ganz ehrlich: Modelle aus Streichhölzern basteln ist sicher auch > interessant. Du hattest in deiner Karriere noch nie Stolpersteine? Respekt.
Konstantin schrieb: > Ich habe einen > "echten" Lesekopf, einen ESP32 (DevKitV1) und einen RPi. Dann bietet sich doch Homeassistant und ESPhome an: Auf dem Raspi werden die Daten gesammelt und visualisiert: https://www.home-assistant.io/ Die ESP8266/32 liefern die Daten: https://esphome.io/ Funktioniert super. Sogar die Tintenstände im Drucker werden mitgeloggt :)
:
Bearbeitet durch User
Konstantin schrieb: > meinen Stromverbrauch mitzuloggen Zwei Links die ich im Beitrag vergaß, bzgl. EspHome: Je nach Stromzählerprotokoll: https://github.com/mampfes/esphome_obis_d0 https://esphome.io/components/sml.html?highlight=sml
Konstantin schrieb: > Bin ich tatsächlich als einzigster auf der Welt unfähig so ein Projekt > umzusetzen? Kann ich kaum glauben. Nein, bist du nicht. Die Nerds halfen erst ab einem bestimmten Level. Da werden Kenntnisse vorausgesetzt, die sie ungern der breiten Masse zur Verfügung stellen. Es gibt seltene Ausnahmen, ist aber reine Glückssache auf so jemanden zu Treffen.
Hallo Konstantin, lege Dir doch mal zu Anfang einfach paar Kanäle auf demo.volkszaehler.org an? Notfalls kann ich Dir auch auch einen VZ bei meinem Webhister zum testen zur Verfügung stellen ich habe hier ca. 100 Sensoren, aber keinen VZLogger - brauchts fast nie Wie liest Du den Zähler aus? Über SML? Dann hast Dir gleich für den ANfang das Schwierigste ausgesucht, versuch doch erst mal einen Temperatursensor usw
Der "echte Lesekopf" liest WIE den Zähler aus? Infrarot? Zählertyp?
Hallo, von Tosmota habe ich keine Ahnung. Ein Nerd bin ich auch nicht. Vielleicht kann ich Dir Anregungen geben, um weiter zu kommen. Du musst Dir genau überlegen, was Du sehen und auswerten möchtest. Ich habe zuerst den Lesekopf von Volkszähler nachgebaut und über die Serielle Schnittstelle an meinen Rechner geschlossen. Dann habe ich mit HTerm die Zeichen /?! an den Zähler gesendet. Das funktioniert mit anderen Zählern auch. Ob Deiner das macht, musst Du ausprobieren. Geantwortet hat er: /PAF5EC3g00006 [10][13][13]SLx[02]0.0.0(12345678) 0.0.1(PAF) F.F(00) 0.2.0(1.29) 1.8.0*00(001752.06) C.2.1(000000000000)( ) 0.2.2(:::::G11)! [03]N (12345678) ist die Zählernummer, die ich hier ersetzt habe und (001752.06) der Zählerstand. Wenn das funktioniert, bist Du einen Schritt weiter. Da der S0-Ausgang 1000 Impulse/KWh sendet und somit feiner ist, habe ich die einfach gezählt und ausgewertet. Um den Zählerstand zu bekommen, habe ich nach /?! einfach die Anzahl der Zeichen bis zum Zählerstand ignoriert und dann den Zählerstand gelesen. Gespeichert und gelesen werden meine Daten in einem kleinen ATTiny4313, den ich bei Bedarf über I2C von einem NET-IO auslese und in eine Webseite darstelle. Das funktioniert seit vielen Jahren problemlos. Viel Erfolg Carsten
:
Bearbeitet durch User
Carsten-Peter C. schrieb: > Um den Zählerstand zu bekommen, > habe ich nach /?! einfach die Anzahl der Zeichen bis zum Zählerstand > ignoriert und dann den Zählerstand gelesen. Gespeichert und gelesen > werden meine Daten in einem kleinen ATTiny4313, den ich bei Bedarf über > I2C von einem NET-IO auslese und in eine Webseite darstelle. [ironie] Ach so, das ist ja total easy. [/ironie] Carsten-Peter C. schrieb: > Ein Nerd bin ich auch nicht. Ich meine doch. Respekt.
Hallo Konstantin, sowas Ähnliches habe ich auch vor Kurzem realisiert. Wir warten z.Zt. auf die Komponenten für ein Balkonkraftwerk und haben uns vom Energieversorger einen neuen Stromzähler installieren lassen, der bei Einspeisung nicht rückwärts läuft. Der Zähler hat eine Infrarot-Schnittstelle und sendet Daten im Smart Message Language Format (SML). Da lag es nahe, die Daten auszulesen und aufzubereiten. Wir mußten allerdings vom Versorger einen PIN Code anfordern, um die Infrarot-Schnittstelle freizuschalten. Wir haben hier seit Jahren einen kleinen Raspberry Pi Server für die Musikbibliothek und um einige LoRa-Sensoren auszuwerten. Also ähnliche Voraussetzungen wie bei Dir. Hier mal meine Liste der verwendeten Komponenten: 1. Infrarot Datenlesekopf mit serieller Schnittstelle (RX/TX) 2. ESP8266 (hier ein Wemos D1 mini Klon), ESP32 geht natürlich auch 3. Raspberry Pi 4, 4GByte RAM, bootet über USB, d.h. ohne SD-Karte Software: 1. Tasmota für die Ansteuerung des Lesekopfes 2. Visual Studio Code mit Platform.io 3. Mosquitto MQTT Broker 4. MQTT.fx MQTT-Client zum Blick auf die ankommenden Daten 5. InfluxDB Zeitreihen-Datenbank 6. NodeRed als Daten-Vermittler Mosquitto ==> InfluxDB 7. Grafana zur Daten-Visualisierung Als Einstieg habe ich diese Artikel benutzt: https://homeitems.de/smartmeter-mit-tasmota-auslesen/ https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen/ Tasmota mußt Du leider kompilieren, weil du ein Define setzen mußt, um die Skriptunterstützung zu aktivieren. Ich bin kein Visual Studio Code oder Platform.io Experte (arbeite lieber ganz spartanisch mit Vim und Makefiles), das muß man auch nicht sein: Tasmote-Source von Github runterladen, Define setzen, Platformio.ini öffnen, übersetzen und flashen. Danach öffnet Tasmota einen Access-Point und kann weiter konfiguriert werden. Im wesentlichen ist das das Eintragen der Daten für Dein WLAN und Kopieren des Skipts zum Auswerten der Zählerdaten. Für das Skript kannst Du diese Tasmota-Seite als Start verwenden: https://tasmota.github.io/docs/Smart-Meter-Interface/ Dort siehst Du auch, ob sich schon mal jemand mit Deinem Zähler beschäftigt hat. Jetzt siehst Du auch schon die Daten, die der Zähler ausgibt in Echtzeit auf der Tasmota-Webseite. Tasmota gibt die Daten auch an einen MQTT-Broker weiter, wenn einer konfiguriert ist. Hier kommt der Mosquitto auf dem RPi und MQTT.fx ins Spiel. Damit sind die Daten schon mal auf dem RPi. Als Datenbank nutze ich InfluxDB schon länger für meine LoRa-Sensordaten. Wenn man klassische relationale Datenbanken gewohnt ist, muß man sich in die Continuous Queries und Retention Policies ein bißchen reindenken. Es gab mal einen Artikel in einem Heise-Sonderheft zu Docker. Den habe ich als Einstieg benutzt. Die InfluxDB-Doku ist allerdings auch ganz gut. Um die Daten vom MQTT-Broker in die Datenbank zu bekommen, gibt es zwei gängige Möglichkeiten: 1. NodeRed mit grafischer Oberfläche, setzt rudimentäre JavaScript Kenntnisse voraus. 2. Telegraf, sammelt Daten, konvertiert sie ggf. und gibt sie z.B. an InfluxDB weiter. Wird über eine Konfigurationsdatei gesteuert. Wenn Du jetzt noch Grafana auf dem RPi installierst, kannst Du die Daten ansprechend aufbereiten. Ist auch ganz gut dokumentiert, aber eigentlich ziemlich selbsterklärend und arbeitet problemlos mit InfluxDB zusammen. So, das war jetzt meine Bastellösung. Wie in anderen Beiträgen erwähnt, geht es sicher auch anders. Kommt halt auf die eigenen Vorlieben an. Und tausend Seiten Doku mußt Du sicher nicht lesen. Ich bin eigentlich immer ziemlich schnell mit einer Internet-Recherche weitergekommen. Mit Raspberry Pi und Linux beschäftige ich mich allerdings schon länger, würde mich aber auch da nicht als Experte bezeichnen. Das geringste Hindernis ist das Kompilieren von Tasmota, wenn man grundsätzlich bereit ist, die Voraussetzungen (Visual Studio Code, etc.) zu installieren. Ich hoffe, ein bißchen geholfen zu haben. Gruß, Uli
:
Bearbeitet durch User
Ulrich K. schrieb: > Tasmota mußt Du leider kompilieren, weil du ein Define setzen mußt, um > die Skriptunterstützung zu aktivieren. Hier gibt es fertige Kompilate: https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen/
Hallo zusammen, ich habe ein ähnliches "Problem" und komme nicht so richtig weiter.. Ich hab einen Hichi-IR-Lesekopf am Stromzähler, mit ESP32 und Tasmota bespielt. Derzeit kann ich per Browser über die IP die Zählerstände einsehen - das funktioniert soweit super! Nun möchte ich die Daten natürlich mitloggen, habe mir dafür einen Raspberry Pi Zero mit dem Volkszähler-Image bespielt und im Web-Frontend einen Kanal für den Stromverbrauch angelegt. Aber wie kommen die Daten vom Lesekopf nun dorthin? Freue mich über Hilfe! =) Danke + Gruß, Flo.
Hallo Flo, per Tasmota habe ich es zugegeben noch nicht versucht, nur per ESPEasy Aber es sollte hier sehr ähnlich sein Du musst wohl die Rules benutzen und dann den Wert per HTTP-Request an VZ schicken https://tasmota.github.io/docs/Rules/ Schicken musst Du es zu VZ in der Form: http://VZ_IPoderVZURL/volkszaehler.org/htdocs/middleware.php/data/UUID.json?operation=add&value=Wert UUID ist die des gewünschten Kanals in VZ, Wert den den Du schicken willst Versuch es erst mal im Browser um sicherzustellen das der Befehl passst Viele Grüße
Ich habe auch so einen Wlan IR Lesekopf. Was ich auch schön finde : Wer einen Alexa Show hat, kann die Tasmota Webseite auch schön auf dem Alexa Show anzeigen lassen. Ist zwar mehr Spielerei, aber auch interessant für die, die Alexa mögen. Dafür braucht man nur den auf Alexa vorinstallierten Browser Silk und den Skill Mypage. Dann einfach eine Routine erstellen, in der man zu Alexa etwas sagt (z.B. Stromzähler) und Mypage starten läßt. Jetzt brauche ich keinen PC mehr anzuwerfen oder mein Smartphone zur Hand nehmen.
Ich habe den Hichi WIFI Lesekopf mit Tasmota geflasht, mit meinem Router verbunden, im Debug Modus den Zähler erkannt und die die Daten via HTTP oder mqtt ausgelesen.
Rüdiger B. schrieb: > im Debug Modus den Zähler erkannt und die die Daten via HTTP > oder mqtt ausgelesen. Was mich auch noch interessieren würde ist, wie man die Daten ohne mqtt und iobroker, also nur mit http ausliest. Das kann auch der große Wust an Hexzahlen sein, den man auf Konsole mit
1 | sensor53 d1 |
bekommt. Rausziehen könnte ich mir dann das gewünschte mit regulären Ausdrücken.
Heinz B. schrieb: > Was mich auch noch interessieren würde ist, wie man die Daten > ohne mqtt und iobroker, also nur mit http ausliest. Hallo Heinz, ich lese und sammle die Daten mit einem ATtiny. Für die Anzeige nutze ich einen alten Net-IO von Pollin. Alle Werte sind nur im ATtiny gespeichert und werden über den I2C Bus bei Bedarf gelesen und angezeigt. Die Tages und Jahreswerte werden im EEPROM des ATtiny 4313 gespeichert. Bei einem Reset gehen nur die Stunden und Minutenwerte verloren. Die nötige Uhrzeit stellt der ATtiny bereit. Ist in Assembler geschrieben. Kannst Du Dir gerne mal anschauen, wenn Du möchtest. Ist kein Hexenwerk. Gruß Carsten
Hallo Carsten und danke für die Info. Basteln wollte ich eigentlich nicht mehr. Ich dachte, sowas ginge auch auf direktem Wege zum PC. Also so Client - Server mäßig. Programmiersprachen, die einen Server oder Clienten softwäremäßig erzeugen, hätte ich. Vielleicht ginge sowas auch über den Localhost 127.0.0.1. Als Speicherort könnte ich ja auch einen USB-Stick an den Router stecken. Habe zwar noch einen alten Raspi und auch ein paar AVRs rumliegen. Ich will aber damit nicht mehr anfangen, da meine Lötkenntnisse sehr rudimentär sind und ich auch keine bzw. sehr wenig Ahnung in Elektronik habe. Sollte also rein softwaremäßig sein.
:
Bearbeitet durch User
Hallo und Danke erstmal für die Antworten! Heinz R. schrieb: > Schicken musst Du es zu VZ in der Form: > http://VZ_IPoderVZURL/volkszaehler.org/htdocs/middleware.php/data/UUID.json?operation=add&value=Wert Mein Pi ist über 192.168.178.124 erreichbar, die UUID ist a2eee3a0-abac-11ed-b9a9-4b9ab211490c, als Beispielwert nehme ich mal 1000. Demnach wäre der Browserbefehl: http://192.168.178.124/volkszaehler.org/htdocs/middleware.php/data/a2eee3a0-abac-11ed-b9a9-4b9ab211490c.json?operation=add&value=1000 ..oder? Da bekomme ich folgende Ausgabe: {"version":"0.3","exception":{"message":"Unknown context: 'volkszaehler.org'","type":"Exception","code":0}} Woran liegt es? Danke + Gruß, Flo.
Hallo Flo, unter welcher URL erreichst Du das Webinterface von VZ? In diesem Bereich liegt vermutlich der Fehler: .124/volkszaehler.org/htdocs/ je nachdem wohin Du es installiert hast, sehr wahrscheinlich das /volkszaehler.org weg (as ...version 0.3 usw kommt bereits von Deinem VZ, er ist also erst mal erreichbar) Oder was in der Form: /mein_Unterverzeichnis/volkszaehler.org/...
:
Bearbeitet durch User
Hallo Heinz, das Webinterface erreiche ich über http://192.168.178.124. Wenn ich /volkszaehler.org oder /volkszaehler.org/htdocs weglasse kommen ebenfalls Fehler (welche genau kann ich morgen nachsehen, bin grad unterwegs). Gruß, Flo.
wenn Du es direkt über die IP erreichst - Du soltest da schon einen Unterordner anlegen? Evtl. willst ja auch mal zusätzliche Dienste auf dem Raspi haben? Direkt helfen kann ich Dir hier aber leider nicht - mein VZ liegt bei einem Webhoster Aber ich bin mir sicher Du bekommst das hin :-) Viele Grüße
:
Bearbeitet durch User
Beitrag #7352137 wurde von einem Moderator gelöscht.
KlimaGerechtikeit schrieb im Beitrag #7352137: > Für > eine heile welt sollten wir 1% CO2 anstreben. Hört sich wenig an, ist es aber nicht. Das sorgt dafür das die Insekten aussterben und das Ökosystem aus dem Gleichgewicht gerät. Zu allem Überfluss wurde sich die Erde dabei um mehr als 10°C erwärmen.
Beitrag #7352149 wurde von einem Moderator gelöscht.
Heinz R. schrieb: > wenn Du es direkt über die IP erreichst - Du soltest da schon einen > Unterordner anlegen? Ich hab das Image für den Raspberry von der Volkszählerseite direkt auf die SD gespielt, daher sollte ich da doch eigentlich nichts anpassen müssen oder? Lt. Ordnerstruktur erreiche ich den VZ so wie es aussieht direkt über die IP. Jedenfalls liegt die middelware.php z.B. in rootfs/home/pi/volkszaehler.org/htdocs/middleware.php. Bei Aufruf von http://192.168.178.124/middleware.php/data/a2eee3a0-abac-11ed-b9a9-4b9ab211490c.json?operation=add&value=1000 bekomme ich als Ausgabe: { "version": "0.3", "rows": 1 }
Flo schrieb: > bekomme ich als Ausgabe: > > { > "version": "0.3", > "rows": 1 > } dann passt doch alles? Im Kanal mit dieser UUID müsste dann jetzt 1000 stehen?
flo schrieb: > Hallo zusammen, > > ich habe ein ähnliches "Problem" und komme nicht so richtig weiter.. > > Ich hab einen Hichi-IR-Lesekopf am Stromzähler, mit ESP32 und Tasmota > bespielt. Derzeit kann ich per Browser über die IP die Zählerstände > einsehen - das funktioniert soweit super! > > Nun möchte ich die Daten natürlich mitloggen, habe mir dafür einen > Raspberry Pi Zero mit dem Volkszähler-Image bespielt und im Web-Frontend > einen Kanal für den Stromverbrauch angelegt. Aber wie kommen die Daten > vom Lesekopf nun dorthin? > > Freue mich über Hilfe! =) > > Danke + Gruß, Flo. Ich habe das direkt im Script von Tasmota gelöst. Hier mein Script mit Kommentaren:
1 | >D |
2 | power=0 ; Deklarierung der Variablen power |
3 | >B |
4 | ->sensor53 r |
5 | ; Die folgenden Zeilen sind abhängig vom Zähler siehe https://tasmota.github.io/docs/Smart-Meter-Interface/#smart-meter-descriptors |
6 | >M 1 |
7 | +1,14,s,1,9600,SML ; GPIO Port der RX Verbindung anpassen, in meinem Fall GPIO 14 |
8 | 1,77070100010800ff@1000,Total consumption,kWh,Total_in,4 ; erste ausgelesene Zeile |
9 | 1,77070100020800ff@1000,Total Feed,kWh,Total_out,4 ; zweite ausgelesene Zeile |
10 | 1,77070100100700ff@1,Current consumption,W,Power_curr,0 ; dritte ausgelesene Zeile .... usw. |
11 | 1,77070100200700ff@1,Voltage L1,V,Volt_p1,1 |
12 | 1,77070100340700ff@1,Voltage L2,V,Volt_p2,1 |
13 | 1,77070100480700ff@1,Voltage L3,V,Volt_p3,1 |
14 | 1,770701001f0700ff@1,Amperage L1,A,Amperage_p1,1 |
15 | 1,77070100330700ff@1,Amperage L2,A,Amperage_p2,1 |
16 | 1,77070100470700ff@1,Amperage L3,A,Amperage_p3,1 |
17 | 1,77070100240700ff@1,Current consumption L1,W,Power_curr_p1,0 |
18 | 1,77070100380700ff@1,Current consumption L2,W,Power_curr_p2,0 |
19 | 1,770701004c0700ff@1,Current consumption L3,W,Power_curr_p3,0 |
20 | 1,770701000e0700ff@1,Frequency,Hz,frequency,0 |
21 | # |
22 | >S ; alles nach >S wird jede Sekunde ausgeführt |
23 | power=sml[3] ; die Variable power wird mit dem Wert der 3. Zeile der SML Abfrage gefüllt |
24 | ; Da ich nur alle 5 Sekunden ein Wert zum Volkszähler senden möchte, wird über die if then Bedingung die Aussendung alle 5 Sekunden durchgeführt |
25 | if upsecs%5==0 |
26 | then |
27 | =>WebSend [volkszaehler-dns oder IP-Adresse] /middleware.php/data/abcdefa-1234-1234-0000-1234abcd1234.json?operation=add&value=%power% |
28 | ; DNS oder IP in eckige Klammern, Variable mit % davor und danach |
29 | endif |
sehr gut gelöst, werde es mir notieren - aber komplizierter als die Tasmota-Syntax geht wohl kaum?
Was spricht gegen fertige Lösungen wie die von Eugen Stall?
Wer keine Lust auf Tasmota hat der kann diese Möglichkeit nutzen, sendet alle Daten vom Zähler über MQTT. https://github.com/mruettgers/SMLReader
Gibt es hier mittlerweile etwas Neues oder ist Tasmota noch immer das Maß aller Dinge?
Fragender schrieb: > Gibt es hier mittlerweile etwas Neues oder ist Tasmota noch immer das > Maß aller Dinge? Letztes Update ist 2 Tage her. Was hat deine Frage mit dem Thema des Thread zu tun? Der TO hat Tasmota als Basis gesetzt - und so ist es dann.
Fragender schrieb: > Gibt es hier mittlerweile etwas Neues oder ist Tasmota noch immer das > Maß aller Dinge? Wenn man ein wenig sucht, gibt es noch etwas anderes. Beitrag "Digitale Stromzähler auslesen und in DB speichern"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.