NEWS
Stromzähler per Sonoff ESP8266 auslesen
-
Ja, einen ESPeasy habe ich hier schon und einen Drehstromzähler mit s0 Port auch.
Läuft soweit alles mit der ESPeasy Soft.
Tasmota sieht da allerdings besser aus...Ja gut, dann werde ich mal googeln... Wobei dort nicht viel rauskommt mit Tasmota und S0........ Alles immer nur D0......
-
Hallo,
dank der tollen Anleitung läuft bei mir nun auch schon einige Wochen ein Wemos für das Auslesen des Stromzählers.
Zum Zeitpunkt des Flashens war Tasmota 8.2 aktuell.
Inzwischen gibt es Tasmota 8.3.1.
Kann man dieses jetzt einfach per Standard Online Update einspielen oder muss man das Flashfile für die aktuelle Version auch immer erst nach der Anleitung erstellen ?
Einspielen müsste dann ja manuell über das Webinterface möglich sein.Gruß
MasterAndi -
@MasterAndi0815 also grundsätzlich wur5de ich sagen "never Change a running system"
. Wenn es dringende Bugfix oder neue Features gibt die du brauchst solltest du unbedingt vorher Backups machen. Ist im tasmota wiki beschrieben. Beim Update sollte die userconfig_override bestehen bleiben. Alles was du in der normalen userconfig angepasst hast wird beim Update vermutlich überschrieben.
Gruß Jaschkopf
-
Hallo zusammen und danke für dieses spannende Projekt
Das hat mich heute gut durch den verregneten Samstag begleitet, leider bin ich elektronisch nicht ganz 100% bewandert und "es geht noch nicht". Da ich momentan noch zuviele Fehlerquellen habe, könnte mich vielleicht einer auf den richtigen Weg bringen?
Tasmota mit SML kompiliert und auf NodeMCU v3 geflasht. Soweit, so gut.
Ich habe hier ein EasyMeter Q3M und habe dazu einen passenden IR-Lesekopf, welcher RS232 spricht (Lingg Janke 87220).
Die PIN-Belegung sieht hierbei wie folgt aus:
Hier ist schonmal die erste Fehlerquelle, wie ich auf den Western-Stecker schauen muss, damit die PIN-Reihenfolge passt. Ich gehe mal davon aus, dass der die Frontalansicht mit Kabel nach unten gemeint ist, dann passen immerhin die Adernfarben (rot = V, schwarz = GND, grün = RxD, gelb = TxD).
oder ist hier der Blick "von vorne" gemeint?
Dann wäre gelb = V, grün = GND, schwarz = RxD, rot = TxD.Das Ganze habe ich mit einem RS232-to-TTL-Adapter verbunden und wie folgt verkabelt:
Könnte ich hier auch direkt die seriellen PINs auf der NodeMCU nehmen oder grille ich mir da was mit 5 Volt? Wie hiesse dieser "RX" Pin (auf der NodeMCU rechts der dritte von unten) in Tasmota?Momentan erhalte ich nur Null-Werte. auch auf der Konsole. Ich habe aber viele potentielle Fehlerquellen:
- ist die Belegung des Western-Steckers von mir richtig interpretiert?
- Ist die Belegung der RS232-Steckers richtig interpretiert? Habe auch schon PIN 2 verwendet. Auf der Platine ist aber female montiert, nicht male.
- Ich muss von RX auf dem TTL-Board zum NodeMCU, richtig?
- PIN "D7" ist im Script schon als "PIN13" zu bezeichnen, oder bezeichne ich den mit D7?
Ich wäre ja schon froh, wenn ich überhaupt Daten hereinkommen sähe, um die passende Formatierung kann ich mich danach ja kümmern.
Vielleicht kann ja einer das Brett vor meinem Kopf nehmen
Danke! -
Hallo,
als Neuling habe ich überhaupt keine Ahnung wie man flashed mit Atom. Vielleicht kann einer mal eine Beschreibung geben was genau zu tun ist. Die diversen Dateien ändern bekomme ich gerade noch so hin.
Wie geht es dann weiter, Wie ist die Vorgehensweise im Programm?
Gruß
Holger -
@Holger-Etzel ich selbst habe das mit Visual Studio Code (VSC) gemacht, weil das bei mir mit Atom irgendwie nicht hingehauen hat.
Bei mir war das ein Wemos D1 Mini. Den habe ich über USB mit dem Rechner, auf dem VSC läuft verbunden. Dabei wird ein Com-Port erzeugt. Diesen musst du auswählen und darüber dein Gerät flashen.
Natürlich musst du, egal ob VSC oder Atom, gewisse Vorbereitungen bei den Editoren durchführen. Diese hat Jaschkopf in seinem Artikel beschrieben.Spezifischer geht es unter den Umständen leider nicht.
-
@RalfTh Die Dateien habe ich soweit geändert, wie funktioniert der Flash-Vorgang. was muss ich im VSC drücken?
-
Hallo, als neuling versuche ich schon seit etlichen Stunden das ganze zu Flaschen und bekomme es nicht hin. Bin schon am verzweifeln.
Entweder startet das ganze nicht oder es wird geflashed., aber nichts funktioniert. Zumindest die Zählerauslesung. Wlan geht.
Ganz zu schweigen ist bei mir dann was zum Skript aktivieren und eingeben zu sehen.Entweder habe ich die falsche Datei oder ich mache generell was falsch. Gibt es irgendwo eine flashbare Version ohne WLAN-Daten?
Wäre voll begeistert wenn es das gäbe
Gruss
Holger -
@Holger-Etzel So, jetzt mal der Reihe nach.
Hast du jetzt erfolgreich geflasht, oder nicht?
Aus deinem Post ist nämlich nicht mit Sicherheit zu entnehmen, welchen Stand dein Gerät hat.
Und gebe mal eine Info, welchen Zählertyp du hast, weil man in der Sektion >M nämlich entsprechende Anpassungen machen muss. -
@RalfTh also ich komme zumindest mit der IP auf den tasmota. da ich mich mit dem Thema flashen nicht so auskenne kann ich nicht sagen ob ich alles richtig gemacht habe. Habe alles nach der Anleitung im ersten Post gemacht.
Zählertyp muss ich heute abend mal nachsehhen.
-
@Holger-Etzel Es kann dir allerdings keiner weiterhelfen, wenn du nicht mal ein Bild oder eine Typenbezeichnung deines Zählers sendest. Wenn du nämlich so was siehst
dann musst du das Skript unter dem Menüpunkt Einstellungen und dann Skript konfigurieren eingeben.
>D s1="Tagesverbrauch: {m}<b><span style=" v2=0 hr=0 md=0 yr=0 ;Strom sm=0 sd=0 sma=50263.000 smn=0 sya=49239.000 syn=0 sspr=0.2502 yspr=0 ysgp=104.16 y€=0 >T v2=SML#DJ_TPWRIN >B ->sensor53 r tper=10 >S ;Tagesverbrauch hr=hours if chg[hr]>0 and hr==0 and v2>0 then sm=v2 svars endif if upsecs%tper==0{ sd=v2-sm } ;Monatsverbrauch md=day if chg[md]>0 and md==1 and v2>0 then sma=v2 svars endif if upsecs%tper==0{ smn=v2-sma } ;Jahresverbrauch yr=year if chg[yr]>0 and hr==0 and md==1 and v2>0 then sya=v2 svars endif if upsecs%tper==0{ syn=v2-sya ;Kosten yspr=syn*sspr+ysgp } >J ,"Verbrauch Tag":"%sd%" ,"Verbrauch Monat":"%smn%" ,"Verbrauch Jahr":"%syn%" ,"Zählerstand 0:00Uhr":"%3sm%" ,"Zählerstand Monatsanfang":"%2sma%" ,"Zählerstand Jahrsenanfang":"%2sya%" >W ============== Tagesverbrauch: {m} %2sd% KWh Monatsverbrauch: {m} %2smn% KWh Jahresverbrauch: {m} %2syn% KWh ============== Preis/kWh: {m} %4sspr% € Grundpreis: {m} %2ysgp% € -------------- Kosten lfd. Jahr:{m} %2yspr% € ============== Zählerstände: aktuell: {m} %2v2% KWh 0:00 Uhr: {m} %2sm% KWh Monatsanfang: {m} %2sma% KWh Jahresanfang: {m} %2sya% KWh ============== >M +1,13,s,16,9600,SML 1,77070100010800ff@1000,Verbrauch,KWh,DJ_TPWRIN,2 1,77070100020800ff@1000,Einspeisung,KWh,DJ_TPWROUT,2 1,770701000f0700ff@1,Akt. Verbrauch,W,DJ_TPWRCURR,0 1,77070100000009ff@#,Zaehler Nr,,Meter_number,0 #
Besonders für den letzten Teil, ab >M, ist es wichtig, welchen Stromzähler du hast sonst geht da gar nichts.
-
N’Abend zusammen,
Erstmal danke für das tolle Tutorial, hab den Lesekopf in Betrieb und er liefert fleißig Daten.
Hab jetzt aber den ganzen Thread durchgearbeitet und keine Möglichkeit gefunden, die Werte für den Jahresverbrauch zu ändern. Dort steht jetzt mein aktueller Zählerstand, was natürlich etwas hoch ist. Gibt es überhaupt eine Möglichkeit, diese Werte beim Start anzugeben?
-
@Feinfinger Ich habe mir das mittlerweile alles in ein Blockly geschrieben und berechne dort. Das hat auch den Vorteil, dass du noch flexibler bist und die Daten Aufzeichnen kannst.
Reicht dir das Skript aus, dann kannst du im Script ganz oben in der Variablen sya den Zählerwert deiner letzten Abrechnung eingeben (falls ungerade Werte bitte das "," durch "." ersetzen.)
-
Hallo zusammen ,
erst mal danke für die Anleitung .Mein Zähler ist ein MT691
Funktioniert soweit alles nur ich bekomme leider nur den Zählerstand und den Verbrauch ausgelesen.Wenn ich logge bekomme ich folgenden Code :
13:49:48 : 77 07 01 00 60 32 01 01 01 01 01 01 04 49 53 4b 01 13:49:48 : 77 07 01 00 60 01 00 ff 01 01 01 01 0b 0a 01 49 53 4b 00 04 20 2f f5 01 13:49:48 : 77 07 01 00 01 08 00 ff 65 00 1d 69 04 01 62 1e 52 ff 65 09 e4 ad aa 01 13:49:48 : 77 07 01 00 10 07 00 ff 01 01 62 1b 52 00 53 fd cd 01 01 01 63 55 f7 00 76 05 0e cc 8d 4b 62 00 62 00 72 63 02 01 71 01 63 29 cc 00 00 00 1b 1b 1b 1b 1a 02 80 13:49:49 : 8a 1b 1b 1b 1b 01 01 01 01 76 05 0e cc 8d 4c 62 00 62 00 72 63 01 01 76 01 01 05 04 ee d9 c4 0b 0a 01 49 53 4b 00 04 20 2f f5 13:49:49 : 72 62 01 65 04 ee dc 6e 01 63 43 f9 00 76 05 0e cc 8d 4d 62 00 62 00 72 63 07 01 13:49:49 : 77 01 0b 0a 01 49 53 4b 00 04 20 2f f5 07 01 00 62 0a ff ff 72 62 01 65 04 ee dc 6e 74 13:49:49 : 77 07 01 00 60 32 01 01 01 01 01 01 04 49 53 4b 01
Kann es sein das der nicht mehr ausspuckt ?
lG TheDuke
-
@Jaschkopf sagte in Stromzähler per Sonoff ESP8266 auslesen:
Lesekopf (Volkszähler
Hi, welchen Lesekopf kann ich von Volkszähler nehmen ? USV ,RS232 TDL oder welche Version ist die Richtige ? NodeNCU ist bereits vorhanden. 5V kommen direkt aus dem Sicherungskasten. Nur beim Lesekopf tue mich schwer. Erst wollte ich eine zusammenbauen , aber jetzt möchte ich doch ein fertiges Gerät kaufen.
-
Hallo, habe jetzt den Volkszähler zusammen gebaut und alles angeschlossen inkl. Flash.
Ich habe folgenden Zähler: Iskra MT175 SMLScript sieht so aus:
>D >B ->sensor53 r tper=10 >M +1,13,s,0,9600,SML 1,77070100010800ff@1000,Verbrauch,KWh,DJ_TPWRIN,3 1,77070100020800ff@1000,Einspeisung,KWh,DJ_TPWROUT,3 1,77070100100700ff@1000,Akt. Verbrauch,W,DJ_TPWRCURR,3 #
Leider kommt nichts an.
Hier mein Log:
kann ich irgentzwie die Diode testen ? Vielleicht habe ich ja beim zusammen löten nicht sauber (zu heiss) gearbeitet. -
@MyMeyer Du kannst den Lesekopf mit einem FTDI Adapter am Computer direkt testen. Wenn der Lesekopf mit 1cm Abstand über einem weißen Blatt Papier liegt und du Daten sendest, sollte er durch die Reflektion auf dem Papier den identischen Wert zurück lesen. So kannst du einen Hardwarefehler ausschließen.
Gruß Jaschkopf
-
Hallo zusammen,
mein Stromzähler lief jetzt gut ein halbes Jahr ohne Probleme, nun zerhaut es aber regelmäßig meine Flot Diagramme und auch teilweise die Berechnungen des letzten Tages.
Grund dafür: Der Zähler liefert ab und an eine 0 - die lässt sich ja im Diagramm unterdrücken, aber seit neustem sehe ich in der History auch des öfteren den Wert "1".
Meine Frage: Kann man diese falschen Werte direkt in Tasmota unterdrücken?
Notlösung wäre quasi ein Skript, das überprüft, ob der neue Wert > dem alten ist und in einem separaten Datenpunkt zu speichern. Falls nicht wird der Wert einfach verworfen...Danke euch im Voraus!
-
Hallo,
erstmal danke für die Ausführliche Anleitung.
Habe Tasmota auf dem NODEMCU8266 geflasht und mit dem TTL-Adapter von Jaschkopf verbunden hat alles super funktioniert.
Leider fehlen mir die Daten im Iobroker, unter dem Sonoff Adapter unter Objekte wird das ESP8266 angezeigt.
Der TTL-Adapter ist an 3,3V, GND, RX GPIO3 und TX an GPIO1.
Ich bekomme ich Tasmota Menü die Verbrauchdaten angezeigt nur unter Objekte ich Iobroker nicht.
Mein Zähler ist ein ISKRA MT175.Beim ersten Start des ESP8266 wurde mir OBIS angzeigt, erst als ich das Script editiert und aktiviert habe hat sich das in SML geändert. SML ist ja auch richtig. Wenn ich das Script deaktiviere bekomme ich unter Objekte im Iobroker 3 Zeilen Zähler OBIS Power_curr, Zähler Obis Total_in und Zähler OBIS Total_out diese Werte bleiben aber dauerhaft auf null da das Script deaktiviert wurde und ich ja auch SML benötige.
Jemmanf vielleicht eine Idee, warum die SML Daten unter Objekte fehlen.Danke
Gruß
MKMMWer lesen kann.......
Hat sich erledigt.
Habe eine Hinweiß von Jaschkopf überlesen.
Gruß
MKMM -
Sagtmal,
gibts solche Möglichkeit auch mit einem USB-Lesekopf? Also im Zweifel irgendwie den USB an einen Sonoff, NodeMCu o.ä. anschließen? Dann spare ich mir den Smartmeter-Adapter. Das wäre eine super Sache.
Ich habe aktuell so einen Weidmann-Opto-Kopf.