Hallo zusammen,
Habe den Stromzähler eBZ ddr3 hat den jemand mit tasmota auf einem Nodemcu mit einem tekt 5400s schon ans laufen bekommen. Ich denke ich muss dafür einen neuen definieren. Aber die zeichenlänge passt nicht.
Hallo zusammen,
Habe den Stromzähler eBZ ddr3 hat den jemand mit tasmota auf einem Nodemcu mit einem tekt 5400s schon ans laufen bekommen. Ich denke ich muss dafür einen neuen definieren. Aber die zeichenlänge passt nicht.
Habe den Zähler auch vor ca. 4 Wochen bekommen.
Aktuell ist bei mir der folgende Stand.
Meine Hardware ist der Volkszähler Lesekopf und ein Sonoff S20. Der Lesekopf kann an die Pins angeschloßen werden, die auch zum flashen genutzt werden. RxD & TxD müssen aber genau wie beim UART getauscht werden.
Ich bin mir nicht sicher, aber eventuell muss die PIN deaktiviert sein, bevor man über die Schnittstelle Daten geliefert bekommt.
Habe zuerst Tasmota mit dem Zählertyp "#define **METER EHZ161_1" geflasht. Mit der Einstellung wurde die Zählernummer an angezeigt. Bei Verbrauch und aktueller Verbrauch wurde aber nichts angezeigt.
In der Konsole wurde aber nach dem Kommando "Sensor95 d1" folgendes ausgegeben (Zählernummer für Forum verändert).
6:57:06 : !
16:57:06 : EBZ0100123456)
16:57:06 :
16:57:06 : 1-0:96.1.0*255(1EBZ0100123456)
16:57:06 :
16:57:06 : 1-0:1.8.0*255(000576.48414078*kWh)
16:57:06 :
16:57:06 : 1-0:16.7.0*255(000582.22*W)
16:57:07 :
16:57:07 : 1-0:36.7.0*255(000054.56*W)
16:57:07 :
16:57:07 : 1-0:56.7.0*255(000269.04*W)
16:57:07 :
16:57:07 : 1-0:76.7.0*255(000258.62*W)
16:57:07 :
16:57:07 : 1-0:96.5.0*255(001C0104)
16:57:07 :
16:57:07 : 0-0:96.8.0*255(002FA73A)
16:57:07 :
16:57:07 : !
Alles anzeigen
Habe mir dann (gerade vor 1h) einen eigenen Zählertyp in der xsns_95_sml.ino angelegt, weil beim EHZ161_1 nur 4 Nachkommastellen angegeben sind und unser 8 hat. Außerdem tauchte die Einspeisung nicht in der Konsole auf.
Meine Definition für den Zähler sieht aktuell so aus.
#if METER==EBZ06_1
#define METERS_USED 1
struct METER_DESC const meter_desc[METERS_USED]={
[0]={0,'o',0,SML_BAUDRATE,"OBIS"}};
const uint8_t meter[]=
"1,1-0:1.8.1*255(@1," D_TPWRIN ",KWh," DJ_TPWRIN ",8|"
"1,1-0:16.7.0*255(@1," D_TPWRCURR ",W," DJ_TPWRCURR ",2|"
"1,1-0:0.0.0*255(@#)," D_METERNR ",," DJ_METERNR ",0";
#endif
Leider wird aktuell auch damit nicht mehr die Zählernummer angezeigt.
Mein Verdacht war, dass ich die richtige Anzahl der Nachkommastellen in der Definition angeben muss. Eventuell ist das aber auch nur für die Anzeige. Vielleicht kennt Sicht ja jemand anders damit aus und kann uns da weiter helfen.
Bin ab Sonntag für 5 Tage im Kurzurlaub und habe auch erst danach wieder Zeit das Problem weiter zu verfolgen.
Roadrunner Danke für deine Infos.
Du bekommst doch schon alle Daten im debug geliefert.
Welchen Volkszähler hast du im Einsatz ?
Gruß aus KR
Habe den Volkszähler mit TTL im Einsatz. Habe in bei Ebay fertig gekauft, weil ich keine Lust hatte, mir das selber zu bauen. Das Kabel habe ich dann noch mit Kabelklemmen fixiert. Der Lesekopf sitz nicht besonders fest mit dem Magneten und so kann er nicht verrutschen. Die Klemmen habe ich von Amazon.
Das ganze sieht jetzt so aus.
Ich habe noch etwas an der Konfiguration angepasst. Als ich die dann flashen wollte, habe ich festgestellt, dass ein Kabel vom Lesekopf nicht mehr verbunden war. Das hatte ich scheinbar nur geklebt und nicht gelötet. Deswegen wurde dann auch nichts angezeigt.
Nachdem ich die Änderungen geflasht habe, wurden auch Werte angezeigt.
Hier noch mal meine Änderungen an der xsns_95_sml.ino (nur die Stellen, die ich eingefügt habe).
// Neuen Zähler in die Zählerliste aufnehmen
#define EBZ06_1 14
// diesen Zähler auswählen
#define METER EBZ06_1
...
// Protokoll für Zähler eBZ06
#if METER==EBZ06_1
#define METERS_USED 1
struct METER_DESC const meter_desc[METERS_USED]={
[0]={0,'o',0,SML_BAUDRATE,"OBIS"}};
const uint8_t meter[]=
"1,1-0:1.8.0*255(@1," D_TPWRIN ",KWh," DJ_TPWRIN ",8|"
"1,1-0:16.7.0*255(@1," D_TPWRCURR ",W," DJ_TPWRCURR ",2|"
"1,1-0:0.0.0*255(@#)," D_METERNR ",," DJ_METERNR ",0";
#endif
Alles anzeigen
Wie ich zuvor geschrieben habe funktioniert die Anbindung für meine Zähler eBZ06 inzwischen und die Werte werden auch per MQTT an FHEM übertragen und ausgewertet. Zwei Dinge stören mich aber noch.
1. Per MQTT werden die Daten des Zähler nur alle 5 Minuten verschickt. In der Web-Oberfläche von Tasmota werden die Werte jede Sekunde aktualisiert. Ich würde gerne die Werte per MQTT jede Minute übertragen lassen, habe aber im Wiki von arendst nicht dazu gefunden. Ist das eventuell nur speziell für die Version von gemu2015 machbar, da ist die Doku aber dünn.
2. Die Anzeige des aktuellen Verbrauch schwankt in der Web-Oberfläche z.T. sehr start (ca. um 150 W). Direkt am Zähler schwankt der Wert auch, aber nicht so extrem. Kennst jemand dieses Problem und die Ursache?
Dann ist noch eine Sache, die mir nicht zu 100% klar ist. Wenn z.B. alle 5 Minuten ein Wert per MQTT übertragen wird, dann tippe ich mal, das der Wert der Verbrauch zum Zeitpunkt der Übertragung ist. Das ist aber nach meiner Sicht dann nicht so sinnvoll. Wenn ich zwischen zwei Übertragungen ein Gerät mit hohem Verbrauch kurz einschalte, würde das beim aktuellem Verbrauch unter den Tisch fallen und nur im Gesamtverbrauch mit einfließen. Daher wäre es eventuell sinnvoll den Mittel- oder Max-Wert der Zeitspanne zwischen zwei Übertragungen zu übermitteln. Eventuell ist das auch schon so, ich bin mir da aber nicht sicher.
Hallo Roadrunner,
wenn du das senden über rule und Websend machst dann sieht es bei mir so aus:
zu Frage 1
zu Frage 2
So könntest das mal testen, vielleicht hilft das schon.
Selbst nutze ich kein MQTT
Hallo @all,
so ich habe mich entschieden den Cyble Sensor zurückzugeben, keine ordentliche Funktion möglich.
Vor ein paar Tagen kam mein Näherungsschalter (Näherungsschalter Heschen LJ12 A3-4-Z/BX), den ich dann Morgens montiert habe.
Zum Anschliesen:
Der esp 8266 mit CP2102 NodeMCU gibt bei Spannungsversorgung über seine Micro USB Schnittstelle bei den Anschlüssen Vin und GND auch ca. 5V aus, das macht der esp8266 mit CH340 Chip nicht.
So jetzt mein Fazit:
Einstellungen zu meinen Zählern in "xsns_95_sml.ino" :
//======================WGS_COMBO============================================================
#if METER==WGS_COMBO
#define METERS_USED 3
struct METER_DESC const meter_desc[METERS_USED]={
[0]={5,'c',0,50,"H20"}, // GPIO5 (D1) Wasser Zähler
[1]={4,'c',0,50,"GAS"}, // GPIO4 (D2) Gas Zähler
[2]={3,'s',0,SML_BAUDRATE,"SML"}}; // SML hardware serial RX pin
// 3 Zähler definiert
const uint8_t meter[]=
//----------------------------Wasserzähler--sensor95 c1------------------------------------
"1,=h==================|"
"1,1-0:1.8.0*255(@1000," D_H20IN ",m³," DJ_COUNTER ",3|"
//----------------------------Gaszähler-----sensor95 c2------------------------------------
// bei gaszählern (countern) muss der Vergleichsstring so aussehen wie hier
"2,=h==================|"
"2,1-0:1.8.0*255(@100," D_GASIN ",m³," DJ_COUNTER ",2|"
Alles anzeigen
Hallo meierchen,
schön das es bei dir jetzt klappt.
Ich ärgere mich noch mit dem Lichtsensor an meinem Wasserzähler herum. Er zählt auch immer etwas zu viel. Die Zeit habe ich schon erhöht aber vielleicht muss ich auch das Signal "verbessern".
Kannst du hier mal bitte ein Foto von deiner Metallscheibe posten? Bei mir hat die LED am Sensor nicht regiert. Würde auch lieber den Näherungsschalter benutzen.
Hallo,
meierchen006 kannst du bitte ein Bild vom Aufbau/montierten Schalter posten?
Ich würde diesen mir bestellen:
https://www.amazon.de/Heschen-Indukt…e/dp/B071ZQ6VV6
Entspricht dem deinen, oder?
Das Bild ist nicht anzeigbar. Kannst du das auch noch mal bitte korrigieren?
Hattest du evtl auch einen Wemos D1 probiert? Der gibt doch auch 5V aus obwohl CH340...
Obwohl der NodeMCU Lua Lolin V3 sollte 5V aber auch können:
Vielen herzlichen Dank!
Bye
URBANsUNITED
Hallo URBANsUNITED,
Heute mal wieder eine Falschzählung gehabt +7 Liter??
Ich habe heute mit dem Hochdruckreiniger den Hof gesäubert danach +7 Liter, auch kein Powerline in Betrieb.
Habe die Pollzeit jetzt mal auf 100 geändert.
Zitat
- struct METER_DESC const meter_desc[METERS_USED]={
- [0]={5,'c',0,100,"H20"}, // GPIO5 (D1) Wasser Zähler
- [1]={4,'c',0,50,"GAS"}, // GPIO4 (D2) Gas Zähler
- [2]={3,'s',0,SML_BAUDRATE,"SML"}}; // SML hardware serial RX pin
So der esp8266 Node MCU V3 mit CH340 Chip ist jetzt wieder in Betrieb und läuft auch.
Mit Pollzeit 100 werde ich jetzt wieder beobachten.
Zu der Befestigung des Sensor:
TOP!!!! Vielen herzlichen Dank!! Klasse Bilder und Erklärung ! Alles so picko bello bei dir
Ich hatte in der Zwischenzeit bei mir auf der Arbeit nach einer Montagelösung gesucht und gefunden ohne deine vorher zu kennen:
Wandhalter
Lochbohren und den Schieber umdrehen, passt!
Dein Bild wird bei mir nicht angezeigt. So sieht es aus. Hatte mich auch deswegen abgemeldet, um zu sehen, ob es dann angezeigt wird:
Mein Schalter kommt Samstag und werde mich dann direkt ranmachen und berichten.
Nochmals vielen Dank!! Schönen Vatertag morgen
URBANsUNITED
Hallo URBANsUNITED,
ich habe das Bild in Beitrag #408 neu eingefügt, sollte jetzt verfügbar sein.
So nachdem der Stromzähler jetzt funktioniert, wollte ich mal den Wasserzähler versuchen.
Moin Leute,
habe heute auch meinen Stromzähler DDWS7412.2 entsprechend euren Anleitungen verkabelt und war zunächst guter Dinge weil es scheinbar funktionierte. Der Verbrauch unter Tasmota und am Zähler waren identisch. Nun guck ich gerade eben noch einmal drauf und muss feststellen, dass die Werte nicht stimmen. Ist der akt. Verbrauch über 1000W wird der Wert in Tasmota richtig angezeigt. Schalte ich die 500W Pumpe aus wird am Zähler entsprechend 500 angezeigt über Tasmota allerdings -80W. Ich habe keine Photovoltaikanlage
Habe ich evlt. was beim Flashen falsch gemacht? Meine Schritte waren user_config_override.h geändert und zwar WLAN und den Befehl #define USE_SML_M hinzugefügt. Mehr nicht! Hätte ich irgendwo noch was ändern müssen?
Da dieser Beitrag schon sehr viele Seiten und Kommentare hat ist es evtl. sinnvoll für Gas und Wasser einen separaten anzulegen?
Hallo Surfrobbe,
da kannst du ja Froh sein das was angezeigt wird, die "xsns_95_sml.ino" ist die Hauptdatei um am Zähler was einzustellen, was gelesen werden soll.
Dort muss der Zähler angepasst werden.
Bezüglich auslagern von Gas und Wasserzähler, finde ich nicht gut da alles in der eben genannten Datei bearbeitet wird. Lesen muss man das ganze schon.
Evtl. sollte/könnte ein "Moderator" den Beitragstitel anpassen in:
SML, OBIS, GAS- u. Wasser- Zähler mit Tasmota
@all
mit der Pollzeit von 100 habe ich gestern Abend schon ein Liter zu wenig Wasserverbrauch gehabt, heute Morgen wieder ein Liter zu wenig.
Also 100 ist zuviel, jetzt mal 75 eingestellt.
Zitat
- struct METER_DESC const meter_desc[METERS_USED]={
- [0]={5,'c',0,75,"H20"}, // GPIO5 (D1) Wasser Zähler
- [1]={4,'c',0,50,"GAS"}, // GPIO4 (D2) Gas Zähler
- [2]={3,'s',0,SML_BAUDRATE,"SML"}}; // SML hardware serial RX pin
Dann ist noch eine Sache, die mir nicht zu 100% klar ist. Wenn z.B. alle 5 Minuten ein Wert per MQTT übertragen wird, dann tippe ich mal, das der Wert der Verbrauch zum Zeitpunkt der Übertragung ist. Das ist aber nach meiner Sicht dann nicht so sinnvoll. Wenn ich zwischen zwei Übertragungen ein Gerät mit hohem Verbrauch kurz einschalte, würde das beim aktuellem Verbrauch unter den Tisch fallen und nur im Gesamtverbrauch mit einfließen. Daher wäre es eventuell sinnvoll den Mittel- oder Max-Wert der Zeitspanne zwischen zwei Übertragungen zu übermitteln. Eventuell ist das auch schon so, ich bin mir da aber nicht sicher.
Du hast Recht, dass wenn du die Werte nur alle 5 Minuten sendest, Verbraucher die z.B. nur 1 Minute laufen beim aktuellen Verbrauch vielleicht nicht erfasst werden.
Bei mir habe ich es so eingestellt, dass der aktuelle Verbrauch und die beiden Zählerstände für Bezug und Einspeisung einmal pro Minute gesendet werden.
In ioBroker werden diese 3 Werte in einer Datenbank gespeichert.
Über Grafana habe ich mir Diagramme erstellt.
Was ich eigentlich sagen wollte, anstatt den aktuellen Verbrauch kannst du die Auswertung auch über die Zählerstände erstellen. Dort erkennst du dann auch das in den 5 Minuten ein größerer Verbrauch erfasst wurde. In Grafana gibt es z.B die Einstellung Difference für den eingestellten Zeitraum.
Vielen Dank für die Info bzgl. der Datei meierchen006 . Die Argumentation für Gas/Wasser kann ich Teilen.
Kalli01 da du den gleichen Zähler hast wie ich, wäre es interessant was du in der xsns_95_sml.ino eingestellt hast. Funktioniert bei dir der aktuelle Verbrauch immer? Ich habe den Zähler noch einmal beobachtet und er springt teilweise gerade bei schnelleren Abweichungen in Tasmota in den negativen Bereich. Der ges. Verbrauch wird richtig dargestellt.
Hallo Surfrobbe,
Wenn du den gleichen Zähler hast wie Kalli, hast du womöglich auch denselben Firmwarefehler im Zähler.
Um den zu umgehen musst du in der Zeile => //#define DWS74_BUG die Kommentarstriche entfernen.
Mein letzter Stand ist die Sonoff-Tasmota-Universal3 vom ca 10 Mai 2019. Dort habe ich mir einen neuen Zählereintrag erstellt "#define DWS74 14"
Für meinen Zähler hat gemu2015 extra sein Programm angepasst, da der Zähler komische Dinge tut. Also so wie bei dir.
Das ganze steht in der xsns_95_sml Datei als "#define DWS74_BUG"
Nach gemus Anpassung stimmt der aktuelle Verbrauch. Bis auf meinen Eintrag musste ich nichts umstellen.
Unter Zählernummer wird mir auch etwas angezeigt aber die Zahlen und Buchstaben habe ich mir nicht weiter angeschaut.
#if METER==DWS74
#define METERS_USED 1
struct METER_DESC const meter_desc[METERS_USED]={
[0]={0,'s',0,SML_BAUDRATE,"SML"}};
// 2 Richtungszähler EHZ SML 8 bit 9600 baud, binär
const uint8_t meter[]=
//0x77,0x07,0x01,0x00,0x01,0x08,0x00,0xff
"1,77070100010800ff@1000," D_TPWRIN ",KWh," DJ_TPWRIN ",4|"
//0x77,0x07,0x01,0x00,0x02,0x08,0x00,0xff
"1,77070100020800ff@1000," D_TPWROUT ",KWh," DJ_TPWROUT ",4|"
//0x77,0x07,0x01,0x00,0x10,0x07,0x00,0xff
"1,77070100100700ff@1," D_TPWRCURR ",W," DJ_TPWRCURR ",0|"
//0x77,0x07,0x01,0x00,0x60,0x01,0x00,0xff
"1,77070100600100ff@#," D_METERNR ",," DJ_METERNR ",0";
//"1,=h--------------------------------";
#endif
Alles anzeigen