Hallo ich habe so ein Smart meter wie im Bild zusehen als Stromzähler, wie könnte ich diesen in Fhem anbinden?
Danke
IR-Lesekopf und OBIS-Modul.
Für Homematic gibt des dafür den Stromzähler HM-ES-TX-WM mit Smartmetersensor ES-IEC, ist aber ein verhältnismäßig teurer Spaß - ca. 130€
Empfänger für Lesekopf:
https://www.elv.de/homematic-zaehlersensor-strom-gas-bausatz.html
Gibts auch fertig, bisschen teurer.
Unter "Zubehör" siehst Du die Produkte zum Ablesen des Zählers, je nachdem welchen Du hast.
Summe ca 80 EUR. Beim Stromzähler kommt man aber kaum günstiger weg.
Ich lese meinen Stromzähler mit Volkszähler aus.
Habe auch der Lesekopf dafür. Hat mich ca 30 € gekostet.
Mit Fhem kannst du dann auf Volkszähler zugreifen und die Werte in Fhem ausgeben.
Ein Grund warum ich Volkszähler nutze, ist die Tatsache, dass meine Übertragung vom Zähler verschlüsselt erfolgt und dass es für meinen Zähler kein Fhem Modul gibt. Mein Zähler gibt im AMIS Format aus.
Ich habe auch die Leseköpfe vom Volkszähler-Projekt. Zwei Stück um die 30€. Aber scheinbar gibt es die bei Udo (Volkszähler) nicht mehr. Ich habe jedenfalls nichts mehr gefunden wo man noch welche bestellen könnte.
Oben rechts am Zähler ist der IR-Port. Daran einfach einen IR-Lesekopf mit dem integrierten Magnet anheften.
Dann per USB mit OBIS-Modul in FHEM auslesen...
z.B. sowas hier:
https://www.amazon.de/Weidmann-Elektronik-Stromzähler-Infrarot-Lesekopf/dp/B01B8N0ASY/ (https://www.amazon.de/Weidmann-Elektronik-Stromz%C3%A4hler-Infrarot-Lesekopf/dp/B01B8N0ASY/)
Du bekommst Nachrichten im OBIS-Format, also richtige Kommunikation mit dem Zähler, Momentanverbrauch, Gesamtverbrauch, Seriennummer, ... usw. usf.
Impulszähler dagegen usw. zählen nur Impulse und geben sonst keine Information.
Hallo,
erstmal Danke für die vielen Tips, da ich kein Gerät in der nähe des Zählers habe und auch keine Pie oder ähnliches dort anbringen kann, wäre eine Funklösung schon das richtige für mein Vorhaben, wäre dann diese Variante das richtige?
Zitat von: dkreutz am 27 Februar 2019, 21:11:58
Für Homematic gibt des dafür den Stromzähler HM-ES-TX-WM mit Smartmetersensor ES-IEC, ist aber ein verhältnismäßig teurer Spaß - ca. 130€
und da würde ich dann diese beiden Komponenten benötigen?
https://www.elv.de/homematic-zaehlersensor-strom-gas-bausatz.html
https://www.elv.de/homematic-energie-sensor-fuer-smart-meter-es-iec-komplettbausatz.html
oder brauche ich noch was?
Danke
Wären das die richtigen?
Ich habe einen neuen WS74 Stromzähler (https://www.dzg.de/fileadmin/dzg/content/downloads/produkte-zaehler/ws74/dzg_ws74_Handbuch.pdf) bekommen.
Meinen HM-ES-TX-WM habe ich statt dem alten Ferrari-Sensor einen ES-IEC spendiert, dieser wird auch beim Starten erkannt.
Nur leider bekomme ich überhaupt keine Werte in FHEM!
Weiß jemand einen Rat?
Gruß
Dan
Zitat von: Frood42 am 28 Februar 2019, 10:57:36
Empfänger für Lesekopf:
https://www.elv.de/homematic-zaehlersensor-strom-gas-bausatz.html
Gibts auch fertig, bisschen teurer.
Ich hab drei solcher Teile im Einsatz und bin nicht begeistert. War am überlegen, ob man nicht die Sensorköpfe an ein ESPEasy nach dieser Dokumentation http://www.frank-schuetz.de/index.php/1-gaszaehler-mit-espeasy-und-fhem anbindet...
Ciao, -MN
Zitat von: DeeSPe am 03 Mai 2019, 12:06:42
Ich habe einen neuen WS74 Stromzähler (https://www.dzg.de/fileadmin/dzg/content/downloads/produkte-zaehler/ws74/dzg_ws74_Handbuch.pdf) bekommen.
Meinen HM-ES-TX-WM habe ich statt dem alten Ferrari-Sensor einen ES-IEC spendiert, dieser wird auch beim Starten erkannt.
Nur leider bekomme ich überhaupt keine Werte in FHEM!
Weiß jemand einen Rat?
Gruß
Dan
Ich kenne den HM-ES-TX-WM jetzt nicht direkt... habe einen Weidmann Optokopf, der über FTDI direkt am Raspberry Pi hängt und an FHEM OBIS-Daten liefert.
Ich nehme an, der HM-ES-TX-WM liefert auch OBIS-Daten an Homematic?
Ist er an der richtigen Schnittstelle am Zähler montiert?
Der WS74 hat laut Handbuch eine Optische Schnittstelle (4) und eine Datenschnittstelle (5).
Die optische (4) sollte für die Impulszählung ohne weitere Info sein. Die würde ich nicht verwenden wollen...da fehlen einem die Umgebungsdaten bzw. man muss sie selbst errechnen.
Für "smarte" Kommunikation sollte es die Datenschnittstelle (5) sein, auf der via OBIS kommuniziert werden sollte.
Zitat von: connormcl am 03 Mai 2019, 23:38:23
Ich nehme an, der HM-ES-TX-WM liefert auch OBIS-Daten an Homematic?
Der HM-ES-TX-WM unterstützt mit dem LED-Lesekopf nur die optische Schnittstelle (Impulsausgang) und liefert keine OBIS-Daten an FHEM. Mit dem Ferraris-Zähler prinzipbedingt auch nicht.
So wie du habe ich auch einen USB-IR-Lesekopf an einen Satelliten-Raspi (als Bridge zu MQTT → Haupt-FHEM) an meinen easymeter gebaut; die Daten werte ich mit EnergyCalculator aus, was auch wunderbar funktioniert. Alles andere ist ein teurerer Spaß mit weniger Infos. Würde ich auch immer dem HM-ES-TX-WM vorziehen.
ich habe einen Wemos D1 mini am Stromzähler.
Bei mir mit reedkontakt, geht aber wohl auch mit IR-Empfangs-LED.
Als System habe ich esp-easy drauf.
Der liefert mir per WLAN die Impulse an FHEM, wo ich diese zähle und weiter auswerte.
Kosten < 5 Euro.
Zitat von: Christoph Morrison am 04 Mai 2019, 11:50:56
Der HM-ES-TX-WM unterstützt mit dem LED-Lesekopf nur die optische Schnittstelle (Impulsausgang) und liefert keine OBIS-Daten an FHEM.
Es gibt auch einen Lesekopf als Bausatz: https://www.elv.de/homematic-energie-sensor-fuer-smart-meter-es-iec-komplettbausatz.html
Scheinbar sind die Stromzähler aber nicht alle kompatibel, mein echelon hat zwar auch eine solche Schnittstelle - ein kompatibles Lesegerät konnte ich aber noch nicht finden.
Mein Zähler im Garten hat auch einen IR-Daten-port.
Dort können wohl alle Werte direkt gelesen werden. Zumindest vom herstellereigenen Lesegerät.
Das ist zwar ganz brauchbar dokumentiert, aber das zu lesen und die Daten zu dekodieren ist doch ein ganz schönes Stück Arbeit.
ABER ... ich habe eine bei Stromverbrauch rot blinkende LED an dem Zähler und genau wie der TO die Angabe "1000Imp/KwH".
Damit sollten 10000 mal blinken = 1KwH sein.
Zusammen mit FHEM deutlich einfacher zu verarbeiten.
Zitat von: roedert am 04 Mai 2019, 17:35:23
Es gibt auch einen Lesekopf als Bausatz: https://www.elv.de/homematic-energie-sensor-fuer-smart-meter-es-iec-komplettbausatz.html
Tatsache, man lernt nie aus.
Das ist aber nur der Lesekopf, der allein reicht nicht.
Gehört noch Zählersensor-Sendeeinheit HM-ES-TX-WM dazu.
Ob man das Teil auch alleine betreiben kann, weiß ich nicht.
Zitat von: Neuhier am 04 Mai 2019, 21:05:52
Das ist aber nur der Lesekopf, der allein reicht nicht.
Gehört noch Zählersensor-Sendeeinheit HM-ES-TX-WM dazu.
Ja natürlich nur der Lesekopf, die Antwort bezog sich ja auch speziell auf den HM-ES-TX-WM aus #12.
Zitat von: connormcl am 03 Mai 2019, 23:38:23
Ich kenne den HM-ES-TX-WM jetzt nicht direkt... habe einen Weidmann Optokopf, der über FTDI direkt am Raspberry Pi hängt und an FHEM OBIS-Daten liefert.
Ich nehme an, der HM-ES-TX-WM liefert auch OBIS-Daten an Homematic?
Ist er an der richtigen Schnittstelle am Zähler montiert?
Der WS74 hat laut Handbuch eine Optische Schnittstelle (4) und eine Datenschnittstelle (5).
Die optische (4) sollte für die Impulszählung ohne weitere Info sein. Die würde ich nicht verwenden wollen...da fehlen einem die Umgebungsdaten bzw. man muss sie selbst errechnen.
Für "smarte" Kommunikation sollte es die Datenschnittstelle (5) sein, auf der via OBIS kommuniziert werden sollte.
Ich habe den ES-IEC direkt an die Datenschnittstelle (5) angeschlossen, dort rastet er auch magnetisch ein.
Leider sind bis heute immer noch keine Verbrauchsdaten eingetrudelt.
Der alte Ferrari Zählersensor ES-Fer hatte vorher immer den Gesamtstromverbrauch (kWh) und den momentanen Verbrauch (W) ausgegeben.
Gruß
Dan
Oben wird behauptet, der HM-ES-TX-WM mit ES-IEC würde nur Impulse zählen können...das kann aber laut ELV-Seite nicht stimmen. Eine "Datenerfassung nach IEC 62056-21" ist OBIS...
Leider schreibst du nicht, wie das Ding an FHEM angebunden ist...
Die Randparameter stehen ja auf der ELV-Seite zum Produkt:
ZitatWichtig: Für die Nutzung des Auslesekopfs ES-IEC in Verbindung mit dem HM-ES-TX-WM ist unbedingt das Aktualisieren mit der Gerätefirmware ab Version 1.1 und eine HM-Zentrale CCU2, Version ab 2.17.15 (Februar/März 2016) erforderlich. Ob der Zähler im Haus diesem Standard entspricht und welche Einstellungen in der CCU2 erforderlich sind, lässt sich beim Energieversorger erfragen bzw. über Zählerhersteller und Typenbezeichnung recherchieren.
Sollte er ohne CCU via CUL oder anders direkt am FHEM hängen, gibts evtl. ein Unterstützungsproblem der Homematic Komponente, oder dein Zähler ist inkompatibel. Oder es liegt ein Hardwaredefekt vor oder der Kopf sitzt nicht richtig (wobei da nicht viel schief gehen kann).
Evtl. auch mal im Homematic Forum jemand suchen, der sowas einsetzt.
Zitat von: connormcl am 08 Mai 2019, 00:11:26
Oben wird behauptet, der HM-ES-TX-WM mit ES-IEC würde nur Impulse zählen können...das kann aber laut ELV-Seite nicht stimmen. Eine "Datenerfassung nach IEC 62056-21" ist OBIS...
Nein, ich wusste nicht mal dass es den ES-IEC gibt. Ich habe vom LED-Lesekopf ES-LED geschrieben - und der zählt tatsächlich nur Impulse.
Zitat von: connormcl am 08 Mai 2019, 00:11:26
Leider schreibst du nicht, wie das Ding an FHEM angebunden ist...
Ich betreibe den Sensor an einer VCCU mit 2x HM-MOD-RPI-PCB.
Bei mir haben alle Geräte die aktuelle Firmware.
Gruß
Dan
Hallo zusammen
Vielleicht könnte Euch das hier interessieren:
https://forum.creationx.de/forum/index.php?thread/1095-d0-z%C3%A4hler-sml-auslesen-mit-tasmota/&pageNo=1
Es lohnt sich auf jeden Fall einen Blick darauf zu werfen.
Gruß
billy-boy
Hallo zusammen :)
heute wurde unser alter Zähler durch ein SmartMeter ausgetauscht. Es ist ein Zähler der Firma EFR und der Zähler hört auf die bezeichnung SGM-DD siehe auch hier (https://50komma2.de/ww/2019/01/21/facelift-zweite-generation-der-efr-smart-meter-in-den-startloechern/) Was mich ein wenig irritiert ist der Punkt das bei der Datenschnittstelle rechts oben drei Dioden und nicht wie üblich zwei Dioden zu sehen sind.
Leider finde ich zu dem Teil keine Anleitung beim Hersteller und auch sonst keine Infos. Ich gehe aber davon aus das ich das SmartMeter mit Volkzähler oder dem OBIS Modul in FHEM und dem IR Kopf von Weidmann (https://www.amazon.de/Weidmann-Elektronik-Stromz%C3%A4hler-Infrarot-Lesekopf/dp/B01B8N0ASY/ref=cm_cr_arp_d_product_top?ie=UTF8) auslesen könnte? um dann auch die Daten in den Fhem zu bekommen.
Vielleicht kennt jemand von euch diesen Zähler? Für mehr Informationen wäre ich dankbar :)
Zitat von: hgw77 am 31 Juli 2019, 10:33:25
Hallo zusammen :)
heute wurde unser alter Zähler durch ein SmartMeter ausgetauscht. Es ist ein Zähler der Firma EFR und der Zähler hört auf die bezeichnung SGM-DD siehe auch hier (https://50komma2.de/ww/2019/01/21/facelift-zweite-generation-der-efr-smart-meter-in-den-startloechern/) Was mich ein wenig irritiert ist der Punkt das bei der Datenschnittstelle rechts oben drei Dioden und nicht wie üblich zwei Dioden zu sehen sind.
Hast du schon dem Hersteller geschrieben?
Zitat von: DeeSPe am 08 Mai 2019, 12:03:47
Ich betreibe den Sensor an einer VCCU mit 2x HM-MOD-RPI-PCB.
Bei mir haben alle Geräte die aktuelle Firmware.
Gruß
Dan
Moin Dan
Hast Du Dir das mal durchgelesen? https://files.elv.com/Assets/Produkte/14/1421/142148/Downloads/142148_zaehlerliste_data.pdf
Ist das in fhem auch so abgebildet? Nur den Kopf tauschen wird definitiv nivht reichen! Ich denke das device loeschen und neu anlegen sollte evtl. zum Ziel fuehren!?
Gruss Christoph
Zitat von: pc1246 am 31 Juli 2019, 11:30:03
Moin Dan
Hast Du Dir das mal durchgelesen? https://files.elv.com/Assets/Produkte/14/1421/142148/Downloads/142148_zaehlerliste_data.pdf
Ist das in fhem auch so abgebildet? Nur den Kopf tauschen wird definitiv nivht reichen! Ich denke das device loeschen und neu anlegen sollte evtl. zum Ziel fuehren!?
Gruss Christoph
Moin Christoph,
ich hatte mich bisher nicht weiter damit beschäftigt.
Danke für die Info, das PDF kannte ich so noch nicht. Zumindest wird dort mein Zähler aufgeführt und auch beschrieben dass es nur mit PIN möglich ist die Datenübertragung zu aktivieren.
Werde mich dann demnächst mit den neu gewonnenen Informationen noch einmal dran machen.
Gruß
Dan
Zitat von: Christoph Morrison am 31 Juli 2019, 11:24:58
Hast du schon dem Hersteller geschrieben?
Bei dem Zähler war ein Infoblatt mit dabei. Da stand drin das man sich den Aktivierungscode (zum Freischalten der zusätzlichen Informationen) und die Anleitung beim Kundenservice anfordern kann. Das habe ich getan und warte mal wann die sich melden. Seltsamerweise findet man nicht einmal auf der Herstellerseite eine Info zu dem Zähler. Das Gerät ist wohl zu neu ;D
Ich hoffe in der Anleitung stehen ein paar nützliche Informationen
Ich würde mir einfach den Weidmann-Kopf holen und testen, was er liest.
Bei unseren ISKA MT681 war auch dieses Schreiben dabei bzw. kam vom Versorger.
Der Code ist für die Kommunikation mit der "Taschenlampe", wo man damit reinleuchten und der am Display dann Dinge anzeigt.
Damit kann man in diesem Fall nur absolut unwichtige Dinge einsehen, die ich schon nicht mehr weis.
Zudem ist das reinleuchten bzw. reinmorsen das absolut schlechteste interagieren mit einem Gerät, was mir je untergekommen ist.
Man kann quasi nicht reproduzierbar irgendwas gezielt eingeben, geschweige denn eine PIN. -> 8314 ...: Leuchte 8 mal rein, Pause, leuchte 3 mal rein usw. -> völlig bescheuert!
Die relevanten Sachen, wie Gesamtverbrauch, Momentanverbrauch, Cycling durch HT/NT usw. senden die Dinger völlig ohne weitere Konfiguration von sich per OBIS über Infrarot raus und da hat man alles was man braucht in FHEM.
Habe den selben Zähler und muss Dir recht geben, die Codeeingabe ist der letzte Krampf. Bin aber am Überlegen ob ich mir nicht den Homematic Kopf mit dem HM-ES-TX-WM hole, da ich dort nicht noch einen Raspi verbauen will. Oder kann man den Schreib/Lesekopf in Kombination mit einem Wemos auch über WLAN an FHEM mit Obis verbinden?
Gruß
Markus
cs-online hat es scheinbar mit ESP8266 (https://forum.fhem.de/index.php/topic,51948.msg970158.html#msg970158) realisiert.
Hallo,
mich beschäftigt dieses Thema auch, ich habe auch schon folgenden Eintrag im Wiki gefunden:
https://wiki.fhem.de/wiki/Stromz%C3%A4hler_auslesen
Daraus geht für mich aber nicht hervor, wie genau das Auslesen in FHEM denn nun funktioniert. Also dass man das ganze per USB-Seriell Adapter, oder direkt über die GPIO Pins auslesen kann habe ich ja kapiert, aber mir fehlt jetzt der nächste Schritt, was in FHEM nun wie genau zu konfigurieren ist, damit man die Werte auch auswerten und visualisieren kann. Gibt es dazu irgendwo ein konkretes, lauffähiges Beispiel? Danke!
Hallo,
ich habe das am Wochenede bei mir so gelöst:
Lesekopf bei ebay bestellt:
https://www.ebay.de/itm/313460034498 (https://www.ebay.de/itm/313460034498)
An einen WemosD1 mini angelötet:
https://haus-automatisierung.com/hardware/2021/09/25/infrarot-lesekopf-stromzaehler.html (https://haus-automatisierung.com/hardware/2021/09/25/infrarot-lesekopf-stromzaehler.html)
Tasmota mit Scripting kompiliert, siehe Tasmota Smart Meter Interface:
https://tasmota.github.io/docs/Smart-Meter-Interface/ (https://tasmota.github.io/docs/Smart-Meter-Interface/)
(die kompilierte Firmware könnte ich notfalls hier hochladen)
Damit schickt der D1mini die gelesenen Daten per MQTT raus, was sich wunderbar in fhem darstellen lässt :-), siehe Screenshots.
Also ich hab einen seriellen Lesekopf (den gibts bei Ebay glaube ich für ~17 EUR) an einen Wemos D1 gelötet und mit ESP-Link geflashed.
Ich binde den Leser dann per WLAN und dem OBIS Modul an:
Funktioniert einwandfrei seit bald 1 Jahr...
Update: Genau den oben verlinkten Leser habe ich auch von Ebay ;-)
Internals:
DEF 192.168.178.11:23 SML
DeviceName 192.168.178.11:23
FD 15
FUUID -----
MeterType SML
NAME UG_Stromzaehler
NR 202
PARTIAL
STATE 9 W
TYPE OBIS
Helper:
DBLOG:
power:
DbLog_DB:
TIME 1643724023.73473
VALUE 9
total_consumption:
DbLog_DB:
TIME 1643724023.73473
VALUE 2172557.7
READINGS:
2021-05-25 18:13:39 0.118.5.0.108.255 `2
2021-05-28 13:34:08 0.118.5.0.119.255 rb
2021-05-29 12:16:41 0.118.5.0.123.255 0
2021-05-30 20:42:19 0.118.5.0.128.255 -1e+30
2021-05-19 03:15:46 0.118.5.0.81.255 0
2021-05-21 22:18:07 0.118.5.0.93.255 `2
2021-08-02 23:16:33 1.0.96.50.1.255 EMH
2022-02-01 15:00:23 ManufID2 EMH
2022-02-01 15:00:23 power 9
2022-02-01 15:00:23 powerL1 192
2022-02-01 15:00:23 powerL2 -154
2022-02-01 15:00:23 powerL3 -28
2022-01-26 14:05:55 state opened
2022-02-01 15:00:23 total_consumption 2172557.7
helper:
BUFFER
DIRECTIONSUM >
EoM 1
LastPacketTime 1643724023.77171
NETDEV 1
SPEED 5
TRIGGERTIME 1643202350.45722
Channels:
1.0.36.7.0.255 powerL1
1.0.56.7.0.255 powerL2
1.0.76.7.0.255 powerL3
DEVICES:
5
RULECACHE:
1-0:1.8.0*255 Counter
1-0:16.7.0*255 Channels
1-0:96.50.1*1 ManufID2
255-255:255.255.255*255 unknown
directions:
Attributes:
DbLogInclude power,total_consumption
channels {"1.0.36.7.0.255"=>"powerL1", "1.0.56.7.0.255"=>"powerL2", "1.0.76.7.0.255"=>"powerL3"}
event-on-change-reading .*
group # Strommessung
interval 5
pollingMode on
room Energie,Steuerung
stateFormat power W
Zitat von: hapege am 31 Januar 2022, 09:45:41
(die kompilierte Firmware könnte ich notfalls hier hochladen)
Das wäre super ;D
Ich wollte nicht selber basteln und habe einen DvLIR Lesekopf, der dann mit HTTPMOD ausgelesen werden kann.
Der kostet zwar einiges, ist aber profie Ware und ich durfte Ihn für einen Bericht über die Implemenierung testen ;-)
VG
Christian
Zitat
Zitat
(die kompilierte Firmware könnte ich notfalls hier hochladen)
Das wäre super
Bitteschön :)
Basis Tasmota 9.5.0, kompiliert mit
#define USE_SCRIPT
#define USE_SML_M
#undef USE_RULES
#define USE_SCRIPT_JSON_EXPORT
#define USE_SCRIPT_WEB_DISPLAY
Ne Frage hat jemand diesen hier
https://www.ebay.de/itm/154873080542
oder
https://www.ebay.de/itm/313892218073
und weiss ob die Dinger mit den AMIS Geräte funktionieren also den Siemens TD-3511, die benötigen ja eine AES128 Key (den Key erhält man eh beim NEtzbetreiber, aber kann der das auch entschlüsseln?
Angeregt durch diesen Artikel (https://www.mwinklerblog.de/smarthome/aktoren-sensoren/stromz%C3%A4hler-digital/ (https://www.mwinklerblog.de/smarthome/aktoren-sensoren/stromz%C3%A4hler-digital/)) habe ich mit einem Fototransistor und einem Widerstand sowie einem D1-Mini mit ESPEasy und dem OBIS-Modul meinen Zähler eingebunden.
Mein Zähler liefert die Werte im Sekundentakt über die IR-Schnittstelle. Die gesamte Datenauswertung erfolgt dabei FHEM-seitig. Dies gefiel mir nicht und ich habe mit Tasmota eine Lösung gefunden, bei der die gesamte Vorverdichtung auf ESP-Seite passiert.
Über den TasmoCompiler habe ich (wie schon von "hapege" beschrieben) mir die Tasmota-Software mit folgenden Erweiterungen kompiliert:
#ifndef USE_SCRIPT
#define USE_SCRIPT
#endif
#ifndef USE_SML_M
#define USE_SML_M
#endif
#ifdef USE_RULES
#undef USE_RULES
#endif
Siehe hierzu auch: https://tasmota.github.io/docs/Smart-Meter-Interface/ (https://tasmota.github.io/docs/Smart-Meter-Interface/)
Für meinen Zähler waren folgende Meter-Definitionen erforderlich:
>D
>B
->sensor53 r
>M 1
+1,3,s,0,9600,SML
;1-0:1.8.0*255(
1,77070100010800ff@1000,Verbrauch,kWh,total_consumption,4
;1-0:16.7.0*255(
1,77070100100700ff@1,akt. Leistung,W,power,0
;1-0:32.7.0*255(
1,77070100200700ff@1,Spannung L1,V,voltage_L1,1
;1-0:52.7.0*255(
1,77070100340700ff@1,Spannung L2,V,voltage_L2,1
;1-0:72.7.0*255(
1,77070100480700ff@1,Spannung L2,V,voltage_L3,1
;1-0:31.7.0*255(
1,770701001F0700ff@1,Strom L1,A,current_L1,2
;1-0:51.7.0*255(
1,77070100330700ff@1,Strom L2,A,current_L2,2
;1-0:71.7.0*255(
1,77070100470700ff@1,Strom L3,A,current_L3,2
;1-0:81.7.4*255(
1,77070100510704ff@1,Phase L1,°,angle_L1,0
;1-0:81.7.15*255(
1,7707010051070Fff@1,Phase L2,°,angle_L2,0
;1-0:81.7.26*255(
1,7707010051071Aff@1,Phase L3,°,angle_L3,0
;1-0:14.7.0*255(
1,770701000E0700ff@1,Frequenz,Hz,frequency,1
#
Es ergibt sich dann eine Anzeige entsprechend beigefügtem Bild. Die entsprechenden Werte werden per MQTT übertragen.
So habe nun so eine Adapter erworben, ist eine kleine Platine mit einem ESP8266.
der kann den SmartMEter per RFID auslesen, und funktioniert dabei auch der AMIS Key (die verschlüsselung)
und nun schickt das Teil fröhlich jede Sekunde die Daten an meinen MQTT Server - perfekt!
Hallo @sn0000py
Du hast den Weidmann? - der hängt an einem RPi?
Wie schickst du die Daten an MQTT?
Mit dem OBISV2 Modul?
Danke
Gruß
Helmut
nein das ist ein AMIS Leser
ist eine kleine Platine die du mit 3 Magnete an den Zähler draufploppst, und mit USB mit stromversorgt.
Der schickt dann per WLAN das ganze ins Netz.
der hier: https://www.mitterbaur.at/amis-leser.html
funkt bei mir nun schon tag 3 super - aber weiss ned ob der auch bei anderen als denen von der NEtzOÖ (Siemens TD-3511) auch geht?
Danke für die rasche Antwort.
Muss mal nachsehen was ich da heute in NÖ bekommen habe
Ggfs. melde ich mich nochmals
Schönen Tag
Helmut
Ich habe es nun geschafft alle meine Zähler in einem esp8266 unterzubringen.
Ich habe zwei Counter S0-Zähler für Wasser und PV und einen Zweirichtungszähler eingebunden.
Damit konnte ich einen ELV Stromzähler EM 1000-S und einen Lesekopf über serielle Schnittstelle zum Raspi mit OBIS-Stromzähler-Device in Rente schicken.
Die Daten werden über MQTT an FHEM geschickt.
Die erforderlichen Bauteile (esp8266, Fototransistor, Neodym-Magnet) hatte ich noch in der Grabbelkiste. Den Wasserzähler über TCRT5000 Infrarot-Reflexionsschalter hatte ich zuvor über espeasy eingebunden gehabt.
Visualisierung erfolgt hierrüber:
https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler
@Damian
danke für die Beispiele.
Ich hatte anfangs ebenfalls vor meine Wasseruhr mit einer Lichtschranke zu erfassen.
Hatte mir dazu das hier https://www.stall.biz/project/intelligenter-impulsgeber-w-mit-s0-schnittstelle-zum-nachruesten-fuer-konventionelle-wasserzaehler (https://www.stall.biz/project/intelligenter-impulsgeber-w-mit-s0-schnittstelle-zum-nachruesten-fuer-konventionelle-wasserzaehler)
bestellt. Nach dem ich nach einiger Zeit auf der Seite war hat mich der Hinweis zum Thema "Algenbildung" aber wieder davon abgebracht.
Verwende nun die ESP32CAM-Lösung.
Der eHZ wird bei mir nun wie bei Dir abgefragt. Leider stellt mein Versorger nur die Momentane Leistung und den Zählerstand zur Verfügung :(
Jetzt werde ich erst einmal versuchen deine Lösung umzusetzen :D
Gruss Gerd
Zitat von: Maista am 20 März 2022, 16:03:02
@Damian
danke für die Beispiele.
Ich hatte anfangs ebenfalls vor meine Wasseruhr mit einer Lichtschranke zu erfassen.
Hatte mir dazu das hier https://www.stall.biz/project/intelligenter-impulsgeber-w-mit-s0-schnittstelle-zum-nachruesten-fuer-konventionelle-wasserzaehler (https://www.stall.biz/project/intelligenter-impulsgeber-w-mit-s0-schnittstelle-zum-nachruesten-fuer-konventionelle-wasserzaehler)
bestellt. Nach dem ich nach einiger Zeit auf der Seite war hat mich der Hinweis zum Thema "Algenbildung" aber wieder davon abgebracht.
Verwende nun die ESP32CAM-Lösung.
Der eHZ wird bei mir nun wie bei Dir abgefragt. Leider stellt mein Versorger nur die Momentane Leistung und den Zählerstand zur Verfügung :(
Jetzt werde ich erst einmal versuchen deine Lösung umzusetzen :D
Gruss Gerd
Unser Stromzähler liefert auch nur Momentanleistung und Zählerstände - das reicht. Beim Stromversorger habe ich die dazugehörige PIN zum Zähler nach Beantragung erhalten, mit der man die Genauigkeit der Angaben erhöhen kann.
Für den S0-Zähler kann man sich relativ einfach aus den Impulsen nicht nur den Stromverbrauch, sondern über userReadings auch die momentane Leistung errechnen:
power_pv {OldReadingsAge($name,"SENSOR_COUNTER_C1",0) == 0 ? 0 : (ReadingsVal($name,"SENSOR_COUNTER_C1",0)-OldReadingsVal($name,"SENSOR_COUNTER_C1",0))*3.6/OldReadingsAge($name,"SENSOR_COUNTER_C1",0)}
Die Wasserzählerlösung hat mich nicht mal 2 Euro gekostet :)
Zitat von: Damian am 20 März 2022, 10:38:55
Ich habe es nun geschafft alle meine Zähler in einem esp8266 unterzubringen.
Ich habe zwei Counter S0-Zähler für Wasser und PV und einen Zweirichtungszähler eingebunden.
Damit konnte ich einen ELV Stromzähler EM 1000-S und einen Lesekopf über serielle Schnittstelle zum Raspi mit OBIS-Stromzähler-Device in Rente schicken.
Die Daten werden über MQTT an FHEM geschickt.
Die erforderlichen Bauteile (esp8266, Fototransistor, Neodym-Magnet) hatte ich noch in der Grabbelkiste. Den Wasserzähler über TCRT5000 Infrarot-Reflexionsschalter hatte ich zuvor über espeasy eingebunden gehabt.
Visualisierung erfolgt hierrüber:
https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler
Sehr cool, vielen Dank dafür.
Aber hilf bitte einem alten Mann mal, diese Fehlermeldung bekomme ich
condition c02: syntax error, line 1, at EOF
...
Weiss aber garnicht, wo der zweite Timer versteckt ist. Zum Test habe ich erstmal nur einen Zähler (PV) eingebunden.
"mid" ist doch der erste Timer... und dann ?
mid {[00:01];; ## Sicherung der Daten um Mitternacht
for (my $i=0;;$i<@{$_counter};;$i++) { ## Für jeden Zähler wird die Funktion midnight aufgerufen
midnight($_counter[$i][0],$_counter[$i][1],$mday,$yday);;
}
}
init { ## initialisierung aller Readings
for (my $i=0;;$i<@{$_counter};;$i++) {## Für jeden Zähler werden Readings über die Funktion init_readings initialisiert
init_readings($_counter[$i][0],$_counter[$i][1]);;
}
}
DEF TPL_stat (
day_count_$1_$2 { ## bei einem Event des Zählers, wird der tägliche, monatliche und jährliche Verbrauch im jeweiligen Reading festgehalten
## $1 Zählerdevice, $2 Zählerreading
my $diff = int(([$1:$2,0]-(get_Reading("$1.$2.last_counter",0)))*1000)/1000;;
if ($diff < 0 and get_Reading("$1.$2.last_counter",0) > 0 or $diff > 0 and get_Reading("$1.$2.last_counter",0) < 0) { ## Wenn der Zähler zurückgesetzt wurde, dann Zählerstände zurückrechnen
set_Reading("$1.$2.day_counter",-(get_Reading("$1.$2.day",0)));;
set_Reading("$1.$2.month_counter",-(get_Reading("$1.$2.month",0)));;
set_Reading("$1.$2.year_counter",-(get_Reading("$1.$2.year",0)));;
}
set_Reading ("$1.$2.last_counter",[$1:$2,0]);;
set_Reading ("$1.$2.day",int(([$1:$2,0]-(get_Reading("$1.$2.day_counter",0)))*1000)/1000,1);;
set_Reading ("$1.$2.month",int(([$1:$2,0]-(get_Reading("$1.$2.month_counter",0)))*1000)/1000,1);;
set_Reading ("$1.$2.year",int(([$1:$2,0]-(get_Reading("$1.$2.year_counter",0)))*1000)/1000,1);;
}
)
## Pro Zähler wird über eine FOR-Schleife ein day_count_<Device>_<Reading>-Block generiert
FOR(@{$_counter},TPL_stat($1$1,$1$2)) ## $1$1 entspricht dem Device, $1$2 entspricht dem Reading
Du zeigst mir aber nicht die ganze Definition?
Es gibt nur einen Timer, der kümmert sich um all deine Devices ;)
Nope, war nur der Abschnit der IMO den Timer beinhaltete. Weil die Fehlermeldung sich auf C02 bezieht.
Hier die ganze Definition: :-[
subs {
## Device Reading
push (@{$_counter},["Shelly.DachbodenPV","TagesErtragPV"]);; ## Solarenergie
sub midnight { ## Diese Funktion wird um Mitternacht ausgeführt
my ($device,$reading,$mday,$yday)=@_;;
set_Reading("$device.$reading.day_counter",ReadingsVal($device, $reading,0));;
set_Reading("$device.$reading.last_day",get_Reading("$device.$reading.day",0),1);;
set_Reading("$device.$reading.day",0,1);;
if ($mday == 1) {
set_Reading("$device.$reading.month_counter",ReadingsVal($device, $reading,0));;
set_Reading("$device.$reading.last_month",get_Reading("$device.$reading.month",0),1);;
set_Reading("$device.$reading.month",0,1);;
}
if ($yday == 1) {
set_Reading("$device.$reading.year_counter",ReadingsVal($device, $reading,0));;
set_Reading("$device.$reading.last_year",get_Reading("$device.$reading.year",0),1);;
set_Reading("$device.$reading.year",0,1);;
}
}
sub init_readings {
my ($device,$reading)=@_;;
if (get_Reading("$device.$reading.day_counter","") eq "") { ## Initialisierung der Readings
## aktuellen Zählerstand initialisieren
set_Reading("$device.$reading.last_counter",ReadingsVal($device, $reading,0));;
set_Reading("$device.$reading.day_counter",ReadingsVal($device, $reading,0));;
set_Reading("$device.$reading.month_counter",ReadingsVal($device, $reading,0));;
set_Reading("$device.$reading.year_counter",ReadingsVal($device, $reading,0));;
set_Reading ("$device.$reading.day",0);; ## aktueller Tagesverbrauch
set_Reading ("$device.$reading.month",0);; ## aktueller Monatsverbrauch
set_Reading ("$device.$reading.year",0);; ## aktueller Jahresverbrauch
set_Reading ("$device.$reading.last_day",0);; ## Verbrauch des letzten Tages
set_Reading ("$device.$reading.last_month",0);; ## Verbrauch des letzten Monats
set_Reading ("$device.$reading.last_year",0);; ## Verbrauch des letzten Jahres
## Log definieren
fhem ("defmod log.counter.$device.$reading FileLog ./log/counter.$device.$reading.log $SELF:$device.$reading.last_(day|month|year):.*");;
fhem ("attr log.counter.$device.$reading room Filelogs");;
}
}
} ## Ende subs-Block
mid {[00:01];; ## Sicherung der Daten um Mitternacht
for (my $i=0;;$i<@{$_counter};;$i++) { ## Für jeden Zähler wird die Funktion midnight aufgerufen
midnight($_counter[$i][0],$_counter[$i][1],$mday,$yday);;
}
}
init { ## initialisierung aller Readings
for (my $i=0;;$i<@{$_counter};;$i++) {## Für jeden Zähler werden Readings über die Funktion init_readings initialisiert
init_readings($_counter[$i][0],$_counter[$i][1]);;
}
}
DEF TPL_stat (
day_count_$1_$2 { ## bei einem Event des Zählers, wird der tägliche, monatliche und jährliche Verbrauch im jeweiligen Reading festgehalten
## $1 Zählerdevice, $2 Zählerreading
my $diff = int(([$1:$2,0]-(get_Reading("$1.$2.last_counter",0)))*1000)/1000;;
if ($diff < 0 and get_Reading("$1.$2.last_counter",0) > 0 or $diff > 0 and get_Reading("$1.$2.last_counter",0) < 0) { ## Wenn der Zähler zurückgesetzt wurde, dann Zählerstände zurückrechnen
set_Reading("$1.$2.day_counter",-(get_Reading("$1.$2.day",0)));;
set_Reading("$1.$2.month_counter",-(get_Reading("$1.$2.month",0)));;
set_Reading("$1.$2.year_counter",-(get_Reading("$1.$2.year",0)));;
}
set_Reading ("$1.$2.last_counter",[$1:$2,0]);;
set_Reading ("$1.$2.day",int(([$1:$2,0]-(get_Reading("$1.$2.day_counter",0)))*1000)/1000,1);;
set_Reading ("$1.$2.month",int(([$1:$2,0]-(get_Reading("$1.$2.month_counter",0)))*1000)/1000,1);;
set_Reading ("$1.$2.year",int(([$1:$2,0]-(get_Reading("$1.$2.year_counter",0)))*1000)/1000,1);;
}
)
## Pro Zähler wird über eine FOR-Schleife ein day_count_<Device>_<Reading>-Block generiert
FOR(@{$_counter},TPL_stat($1$1,$1$2)) ## $1$1 entspricht dem Device, $1$2 entspricht dem Reading
Du hast dir da was verbastelt, damit geht es, als RAW-Definition:
defmod di_counter_new DOIF subs {\
## Device Reading \
push (@{$_counter},["Shelly.DachbodenPV","TagesErtragPV"]);; ## Wasserzähler\
\
sub midnight { ## Diese Funktion wird um Mitternacht ausgeführt\
my ($device,$reading,$mday,$yday)=@_;;\
set_Reading("$device.$reading.day_counter",ReadingsVal($device, $reading,0));; \
set_Reading("$device.$reading.last_day",get_Reading("$device.$reading.day",0),1);;\
set_Reading("$device.$reading.day",0,1);;\
if ($mday == 1) {\
set_Reading("$device.$reading.month_counter",ReadingsVal($device, $reading,0));;\
set_Reading("$device.$reading.last_month",get_Reading("$device.$reading.month",0),1);;\
set_Reading("$device.$reading.month",0,1);;\
}\
if ($yday == 1) {\
set_Reading("$device.$reading.year_counter",ReadingsVal($device, $reading,0));;\
set_Reading("$device.$reading.last_year",get_Reading("$device.$reading.year",0),1);;\
set_Reading("$device.$reading.year",0,1);;\
}\
}\
\
sub init_readings {\
my ($device,$reading)=@_;;\
if (get_Reading("$device.$reading.day_counter","") eq "") { ## Initialisierung der Readings\
## aktuellen Zählerstand initialisieren\
set_Reading("$device.$reading.last_counter",ReadingsVal($device, $reading,0));;\
set_Reading("$device.$reading.day_counter",ReadingsVal($device, $reading,0));; \
set_Reading("$device.$reading.month_counter",ReadingsVal($device, $reading,0));;\
set_Reading("$device.$reading.year_counter",ReadingsVal($device, $reading,0));;\
\
set_Reading ("$device.$reading.day",0);; ## aktueller Tagesverbrauch\
set_Reading ("$device.$reading.month",0);; ## aktueller Monatsverbrauch\
set_Reading ("$device.$reading.year",0);; ## aktueller Jahresverbrauch\
set_Reading ("$device.$reading.last_day",0);; ## Verbrauch des letzten Tages\
set_Reading ("$device.$reading.last_month",0);; ## Verbrauch des letzten Monats\
set_Reading ("$device.$reading.last_year",0);; ## Verbrauch des letzten Jahres\
## Log definieren\
fhem ("defmod log.counter.$device.$reading FileLog ./log/counter.$device.$reading.log $SELF:$device.$reading.last_(day|month|year):.*");;\
fhem ("attr log.counter.$device.$reading room Filelogs");;\
}\
\
}\
} ## Ende subs-Block\
\
mid {[00:01];; ## Sicherung der Daten um Mitternacht\
for (my $i=0;;$i<@{$_counter};;$i++) { ## Für jeden Zähler wird die Funktion midnight aufgerufen\
midnight($_counter[$i][0],$_counter[$i][1],$mday,$yday);;\
}\
}\
\
init { ## initialisierung aller Readings\
for (my $i=0;;$i<@{$_counter};;$i++) {## Für jeden Zähler werden Readings über die Funktion init_readings initialisiert\
init_readings($_counter[$i][0],$_counter[$i][1]);;\
}\
}\
\
DEF TPL_stat (\
day_count_$1_$2 { ## bei einem Event des Zählers, wird der tägliche, monatliche und jährliche Verbrauch im jeweiligen Reading festgehalten\
## $1 Zählerdevice, $2 Zählerreading\
\
my $diff = int(([$1:$2,0]-(get_Reading("$1.$2.last_counter",0)))*1000)/1000;;\
if ($diff < 0 and get_Reading("$1.$2.last_counter",0) > 0 or $diff > 0 and get_Reading("$1.$2.last_counter",0) < 0) { ## Wenn der Zähler zurückgesetzt wurde, dann Zählerstände zurückrechnen\
set_Reading("$1.$2.day_counter",-(get_Reading("$1.$2.day",0)));;\
set_Reading("$1.$2.month_counter",-(get_Reading("$1.$2.month",0)));;\
set_Reading("$1.$2.year_counter",-(get_Reading("$1.$2.year",0)));;\
}\
set_Reading ("$1.$2.last_counter",[$1:$2,0]);;\
set_Reading ("$1.$2.day",int(([$1:$2,0]-(get_Reading("$1.$2.day_counter",0)))*1000)/1000,1);;\
set_Reading ("$1.$2.month",int(([$1:$2,0]-(get_Reading("$1.$2.month_counter",0)))*1000)/1000,1);;\
set_Reading ("$1.$2.year",int(([$1:$2,0]-(get_Reading("$1.$2.year_counter",0)))*1000)/1000,1);;\
}\
)\
\
## Pro Zähler wird über eine FOR-Schleife ein day_count_<Device>_<Reading>-Block generiert\
FOR(@{$_counter},TPL_stat($1$1,$1$2)) ## $1$1 entspricht dem Device, $1$2 entspricht dem Reading
Wow, vielen lieben Dank Schaue ich mir morgen im Detail mal an, damit ich vielleicht auch verstehe was ich falsch gemacht habe...
Edith: Sch... Sommerzeit, kann nicht einschlafen, also Zeit versucht sinnvoll zu nutzen.
Fehler gefunden... habe Deinen Code zuerst in Notepad++ kopiert, darin editiert, und nicht gemerkt das jedes Semikolon verdoppelt wurde......
Jetzt habe ich auch direkt meinen Strombezugszähler + Ölzähler eingebunden. Bin gespannt.
Hier noch mal ein Update zu meiner Zählerlösung hier: https://forum.fhem.de/index.php/topic,97959.msg1214276.html#msg1214276
Überrascht war ich, dass bei Tasmota auch die einfachen Counter im Gegensatz zu EspEasy offenbar ihren Stand ohne Stromversorgung behalten, allerdings werden sie natürlich nicht weiter gezählt, wenn der Stecker abgezogen ist.
Falls man einen einfachen Counter für Strom, Gas, Wasser benötigt, auf den man sich auch beim Stromausfall verlassen kann, weil man seine Zählerstände nicht dauerhaft anpassen will, so kann man sich das Leben recht einfach machen.
Ich habe eine kaum benutzte USV-Minipowerbank (Werbegeschenk) in der Schublade gefunden, aufgeladen, dazwischen geschaltet und mit Stromausfall getestet - funktioniert.
Rein rechnerisch sollte eine Unterbrechung der Stromversorgung von 10 Stunden und mehr nun kein Problem darstellen :)
Zitat von: Damian am 06 April 2022, 18:15:41
Ich habe eine kaum benutzte USV-Minipowerbank (Werbegeschenk) in der Schublade gefunden, aufgeladen, dazwischen geschaltet und mit Stromausfall getestet - funktioniert.
Rein rechnerisch sollte eine Unterbrechung der Stromversorgung von 10 Stunden und mehr nun kein Problem darstellen :)
Sehr interressant! Hab auch schon versucht meinen Wemos so mit Strom zu versorgen. Hintergrund: Wollte in der Dusche Temperatur und Luftfeuchtigkeit über Fhem loggen. Hab dort keine Steckdose mit Dauerstrom. Netzteilversorgung fällt also flach. Hat auch grundsätzlich funktioniert aber... die Hygrometerwerte eines DHT22 fielen immer als erstes aus. Reagiert dieser evtl sehr empfindlich auf Unterversorgung? Dann ging alles nicht mehr obwohl die Anzeige der PB nach einigen Stunden Laufzeit immer noch "Halbvoll" anzeigte. Meine Vermutung Powerbank schält ab da zuwenig Stromentnahme (hab sowas gelesen). Hab dann vorläufig aufgegeben :(
Gibt es das bei Dir nicht? Würde mir Mut machen noch einen Versuch zu starten.
Gruss Klaus
Zitat von: Klaus_R am 07 April 2022, 09:43:57
Sehr interressant! Hab auch schon versucht meinen Wemos so mit Strom zu versorgen. Hintergrund: Wollte in der Dusche Temperatur und Luftfeuchtigkeit über Fhem loggen. Hab dort keine Steckdose mit Dauerstrom. Netzteilversorgung fällt also flach. Hat auch grundsätzlich funktioniert aber... die Hygrometerwerte eines DHT22 fielen immer als erstes aus. Reagiert dieser evtl sehr empfindlich auf Unterversorgung? Dann ging alles nicht mehr obwohl die Anzeige der PB nach einigen Stunden Laufzeit immer noch "Halbvoll" anzeigte. Meine Vermutung Powerbank schält ab da zuwenig Stromentnahme (hab sowas gelesen). Hab dann vorläufig aufgegeben :(
Gibt es das bei Dir nicht? Würde mir Mut machen noch einen Versuch zu starten.
Gruss Klaus
Naja, meine Lösung ist gerade mal einen Tag alt. Da muss ich einfach Erfahrungen sammeln. Meine Strommessungen beim Laden und beim geladenen Akku waren zufriedenstellend. Einen langen Stromausfall müsste ich noch simulieren.
Ebenso verhalten sich Powerbanks unterschiedlich. Ich habe noch eine andere Powerbank, die den Strom unterbricht, wenn sie selbst nach einem Stromausfall Strom bekommt.
Wie schon im Nebenthread erwähnt, braucht ein ESP einfach zu viel Strom, um ihn lange Zeit mit einem Akku zu versorgen.
Da die meisten Stromzähler/Gaszähler eine Impulsauswertung (S0) ermöglichen, lässt sich sehr preisgünstig eine zuverlässige Lösung realisieren, siehe: https://forum.fhem.de/index.php/topic,127127.msg1217452.html#msg1217452
Mit ESP8266 mit Tasmota-Counter und einer Powerbank erfüllt sie folgende Bedingung:
-zählt beim Stromausfall
-zählt, wenn FHEM nicht läuft
-behält sogar den Zählerstand, selbst wenn die Powerbank versagen würde
-Momentanleistung lässt sich leicht über UserReadings oder DOIF_Readings ermitteln
-keine Kabelverbindung zum FHEM-Server nötig
-preisgünstig
-kombinierbar mit weiteren S0/D0-Zählern über einen ESP
Auch wenn mein Gaszähler einen M-Bus besitzt (https://forum.fhem.de/index.php/topic,124838.msg1194082.html#msg1194082), habe ich mich für diese Lösung entschieden, weil sie sehr einfach zu realisieren und billig war und wenn ein ESP bereits drei Zähler bedient, dann kann er auch einen vierten ohne Probleme aufnehmen und die Zählerstände per MQTT zum FHEM-Server übertragen :)
Zitat von: Damian am 09 April 2022, 10:14:00
-zählt beim Stromausfall
Dumme Frage:
Was soll denn bei Stromausfall noch funktionieren und damit die Zählerstände verändern??
Zitat von: Nobbynews am 09 April 2022, 10:46:19
Dumme Frage:
Was soll denn bei Stromausfall noch funktionieren und damit die Zählerstände verändern??
Es geht hier um eine allgemeine Lösung, es gibt auch Zähler, die ohne Strom laufen, z. B. Wasserzähler :)
Zitat von: Damian am 09 April 2022, 10:57:27
, z. B. Wasserzähler :)
Stimmt, den hatte ich für diese Lösung nicht auf dem Schirm.
Das ist ein Punkt.
Zitat von: Nobbynews am 09 April 2022, 11:02:13
Stimmt, den hatte ich für diese Lösung nicht auf dem Schirm.
Das ist ein Punkt.
Das ist ja nur ein Punkt, viel entscheidender ist aber, dass ein Zähler seinen Zählerstand dauerhaft behalten kann.
Zitat von: Damian am 09 April 2022, 11:16:28viel entscheidender ist aber, dass ein Zähler seinen Zählerstand dauerhaft behalten kann.
Da gibt es nichts mehr hinzuzufügen.
Entprellen bei S0-Zählern mit Tasmota:
Trotz eines sauberen Triggersignals beim S0-Stromzähler (mit Oszi gemessen), zählte ein Tasmota-Counter bei mir zu viele Impulse.
Mit dem Befehl CounterDebounce <Millisekunden> kann man auf der Tasmota-Konsole die Counter entprellen. Mit CounterDebounce 500 wird nun auch der S0-Stromzähler bei mir korrekt gezählt. Die Angabe der Entprellzeit muss unter dem minimalen Pulsabstand zwischen zwei Impulsen bleiben (bei mir 1 Sekunde).
Hallo zusammen,
ich hab jetzt nicht alle 5 Seiten gelesen, daher ist das, was ich schreibe ggf. schon mal erwähnt worden. Ich habe einen EMH-Zähler mit IR-Schnittstelle vorne. Habe dazu den Lesekopf nach UDOs Plänen mit TTL-Schnittstelle an einen ESP8266 (WEMOS) an RX/TX. Soll wohl auch mit einem simplen Kopf nach
https://www.s-jordan.de/index.php?page=easymeter_raspberrypi (https://www.s-jordan.de/index.php?page=easymeter_raspberrypi)
gehen. Also auf dem ESP läuft ESPLink (ESPEasy müsste auch gehen mit Serial-Server) und im FHEM wird der ESP dann mit der IP-Adresse im OBIS-Modul eingebunden. Ich bekomme damit den Zählerstand und die Momentanleistung, mehr ist bei meinem Zähler leider nicht freigeschaltet...
Vielleicht hilft es ja...
Grüße
Christian
Ich habe hier: https://forum.fhem.de/index.php/topic,97959.msg1214338.html#msg1214338 beschrieben, wie man die momentane Leistungsaufnahme per userReading und OldReading berechnet. Leider funktionierte es bei mir nicht zuverlässig.
Ich habe es nun über event_Readings (im DOIF) gelöst. Auch beim D0-Zähler (Hauszähler) verwende ich nun die Methode, um mit S0-Zähler (PV-Anlage) vom gleichen Tasmota-Device synchron zu bleiben. Ich habe bei mir das Sendeintervall auf 60 Sekunden eingestellt, damit lässt sich über den absoluten Counter, egal ob von D0 oder S0, die durchschnittliche Leistungsaufnahme der letzten 60 Sekunden ermitteln. Auf diese Weise passt nun die Einspeise-Leistung zu PV-Leistung.
attr di_counter_new event_Readings power_pv:sprintf("%0.3f",[MQTT2_DVES_C58DCB:SENSOR_COUNTER_C1:diff]*3.6/60),\
power_f:sprintf("%0.3f",[MQTT2_DVES_C58DCB:SENSOR_MT681_Total_out:diff]*60),\
power_c:sprintf("%0.3f",[MQTT2_DVES_C58DCB:SENSOR_MT681_Total_in:diff]*60),\
power_fc:[$SELF:power_f]-[$SELF:power_c]
Aufgrund der Synchronisation kann so die Einspeise-Leistung nicht mehr die PV-Leistung übersteigen.
Zitat von: Damian am 20 März 2022, 10:38:55
Ich habe es nun geschafft alle meine Zähler in einem esp8266 unterzubringen.
Ich habe zwei Counter S0-Zähler für Wasser und PV und einen Zweirichtungszähler eingebunden.
Damit konnte ich einen ELV Stromzähler EM 1000-S und einen Lesekopf über serielle Schnittstelle zum Raspi mit OBIS-Stromzähler-Device in Rente schicken.
Die Daten werden über MQTT an FHEM geschickt.
Die erforderlichen Bauteile (esp8266, Fototransistor, Neodym-Magnet) hatte ich noch in der Grabbelkiste. Den Wasserzähler über TCRT5000 Infrarot-Reflexionsschalter hatte ich zuvor über espeasy eingebunden gehabt.
Visualisierung erfolgt hierrüber:
https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler
Moin,
nachdem diese Visualisierung nurn 2 Monate sehr gut lief, habe ich seit ein paar Tagen hiermit ein kleines Problem. Und zwar geht es um das Reading für den vorherigen Tag, das ist seit ein paar Tagen auf "0" statt auf dem ermittelten Wert.
2022-05-01_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_month: 102.179
2022-05-02_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 3.63
2022-05-03_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 5.58
2022-05-04_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 5.38
2022-05-05_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 6.06
2022-05-06_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 3.24
2022-05-07_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 5.71
2022-05-07_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 0
2022-05-08_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 5.56
2022-05-08_00:01:01 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 0
2022-05-09_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 8.85
2022-05-09_00:01:00 di_counter_new Shelly.DachbodenPV.TagesErtragDach.last_day: 0
Und doch, an den Tagen wurden Readings geschrieben. Es betrifft nicht nur dieses Device, sondern alle Devices zu denen ich das protokolliere
So habe ich es lt. Wiki auch definiert...
sub init_readings {
my ($device,$reading)=@_;
if (get_Reading("$device.$reading.day_counter","") eq "") { ## Initialisierung der Readings
## aktuellen Zählerstand initialisieren
set_Reading("$device.$reading.last_counter",ReadingsVal($device, $reading,0));
set_Reading("$device.$reading.day_counter",ReadingsVal($device, $reading,0));
set_Reading("$device.$reading.month_counter",ReadingsVal($device, $reading,0));
set_Reading("$device.$reading.year_counter",ReadingsVal($device, $reading,0));
set_Reading ("$device.$reading.day",0); ## aktueller Tagesverbrauch
set_Reading ("$device.$reading.month",0); ## aktueller Monatsverbrauch
set_Reading ("$device.$reading.year",0); ## aktueller Jahresverbrauch
set_Reading ("$device.$reading.last_day",0); ## Verbrauch des letzten Tages
set_Reading ("$device.$reading.last_month",0); ## Verbrauch des letzten Monats
set_Reading ("$device.$reading.last_year",0); ## Verbrauch des letzten Jahres
## Log definieren
fhem ("defmod log.counter.$device.$reading FileLog ./log/counter.$device.$reading.log $SELF:$device.$reading.last_(day|month|year):.*");
fhem ("attr log.counter.$device.$reading room Filelogs");
}
Geändert wurde am System nichts. Gestern habe ich dann ein Update von FHME/DOIF gemacht, leider ohne Erfolg.
Irgend ne Idee was hier falsch läuft ?
Dann musst du schauen, was die anderen Readings des Zähler machen. Der last_counter muss sich bei jeder Zähleränderung erhöhen. Evtl. kommt vom Zähler nichts an.
Der "last_counter" erhöht sich auch, nur das Reading "last_day" wird um Mitternacht nicht mehr bestückt. Dies gilt für alle Devices die ich in dieses DOIF gepackt hab.
Zitat von: Bartimaus am 09 Mai 2022, 09:04:32
Der "last_counter" erhöht sich auch, nur das Reading "last_day" wird um Mitternacht nicht mehr bestückt. Dies gilt für alle Devices die ich in dieses DOIF gepackt hab.
Dann poste mal list-Ausgabe von dem DOIF
Bitte, ist aber arg lang
Edith: Mist, musste ich kürzen
Internals:
DEF subs {
## Device Reading
push (@{$_counter},["Shelly.DachbodenPV","TagesErtragDach"]); ## PV-ZählerDach
push (@{$_counter},["Shelly.GartenhausPV","TagesErtrag"]); ## PV-ZählerGarten
push (@{$_counter},["1wire_Strom_Gesamt","E-Energy"]); ## Strom-Zähler
push (@{$_counter},["Brennerlaufzeit","Heute"]); ## Öl-Zähler
sub midnight { ## Diese Funktion wird um Mitternacht ausgeführt
my ($device,$reading,$mday,$yday)=@_;
set_Reading("$device.$reading.day_counter",ReadingsVal($device, $reading,0));
set_Reading("$device.$reading.last_day",get_Reading("$device.$reading.day",0),1);
set_Reading("$device.$reading.day",0,1);
if ($mday == 1) {
set_Reading("$device.$reading.month_counter",ReadingsVal($device, $reading,0));
set_Reading("$device.$reading.last_month",get_Reading("$device.$reading.month",0),1);
set_Reading("$device.$reading.month",0,1);
}
if ($yday == 1) {
set_Reading("$device.$reading.year_counter",ReadingsVal($device, $reading,0));
set_Reading("$device.$reading.last_year",get_Reading("$device.$reading.year",0),1);
set_Reading("$device.$reading.year",0,1);
}
}
sub init_readings {
my ($device,$reading)=@_;
if (get_Reading("$device.$reading.day_counter","") eq "") { ## Initialisierung der Readings
## aktuellen Zählerstand initialisieren
set_Reading("$device.$reading.last_counter",ReadingsVal($device, $reading,0));
set_Reading("$device.$reading.day_counter",ReadingsVal($device, $reading,0));
set_Reading("$device.$reading.month_counter",ReadingsVal($device, $reading,0));
set_Reading("$device.$reading.year_counter",ReadingsVal($device, $reading,0));
set_Reading ("$device.$reading.day",0); ## aktueller Tagesverbrauch
set_Reading ("$device.$reading.month",0); ## aktueller Monatsverbrauch
set_Reading ("$device.$reading.year",0); ## aktueller Jahresverbrauch
set_Reading ("$device.$reading.last_day",0); ## Verbrauch des letzten Tages
set_Reading ("$device.$reading.last_month",0); ## Verbrauch des letzten Monats
set_Reading ("$device.$reading.last_year",0); ## Verbrauch des letzten Jahres
## Log definieren
fhem ("defmod log.counter.$device.$reading FileLog ./log/counter.$device.$reading.log $SELF:$device.$reading.last_(day|month|year):.*");
fhem ("attr log.counter.$device.$reading room Filelogs");
}
}
} ## Ende subs-Block
mid {[00:01]; ## Sicherung der Daten um Mitternacht
for (my $i=0;$i<@{$_counter};$i++) { ## Für jeden Zähler wird die Funktion midnight aufgerufen
midnight($_counter[$i][0],$_counter[$i][1],$mday,$yday);
}
}
init { ## initialisierung aller Readings
for (my $i=0;$i<@{$_counter};$i++) {## Für jeden Zähler werden Readings über die Funktion init_readings initialisiert
init_readings($_counter[$i][0],$_counter[$i][1]);
}
}
DEF TPL_stat (
day_count_$1_$2 { ## bei einem Event des Zählers, wird der tägliche, monatliche und jährliche Verbrauch im jeweiligen Reading festgehalten
## $1 Zählerdevice, $2 Zählerreading
my $diff = int(([$1:$2,0]-(get_Reading("$1.$2.last_counter",0)))*1000)/1000;
if ($diff < 0 and get_Reading("$1.$2.last_counter",0) > 0 or $diff > 0 and get_Reading("$1.$2.last_counter",0) < 0) { ## Wenn der Zähler zurückgesetzt wurde, dann Zählerstände zurückrechnen
set_Reading("$1.$2.day_counter",-(get_Reading("$1.$2.day",0)));
set_Reading("$1.$2.month_counter",-(get_Reading("$1.$2.month",0)));
set_Reading("$1.$2.year_counter",-(get_Reading("$1.$2.year",0)));
}
set_Reading ("$1.$2.last_counter",[$1:$2,0]);
set_Reading ("$1.$2.day",int(([$1:$2,0]-(get_Reading("$1.$2.day_counter",0)))*1000)/1000,1);
set_Reading ("$1.$2.month",int(([$1:$2,0]-(get_Reading("$1.$2.month_counter",0)))*1000)/1000,1);
set_Reading ("$1.$2.year",int(([$1:$2,0]-(get_Reading("$1.$2.year_counter",0)))*1000)/1000,1);
}
)
## Pro Zähler wird über eine FOR-Schleife ein day_count_<Device>_<Reading>-Block generiert
FOR(@{$_counter},TPL_stat($1$1,$1$2)) ## $1$1 entspricht dem Device, $1$2 entspricht dem Reading
FUUID 62404eec-f33f-7539-15ad-f32ad970406b9465
MODEL Perl
NAME di_counter_new
NOTIFYDEV Shelly.DachbodenPV,di_counter_new,Brennerlaufzeit,Shelly.GartenhausPV,1wire_Strom_Gesamt,global
NR 1605
NTFY_ORDER 50-di_counter_new
STATE initialized
TYPE DOIF
VERSION 26020 2022-05-03 16:28:02
READINGS:
2022-05-09 11:05:31 1wire_Strom_Gesamt.E-Energy.day 2.933
2022-05-09 00:01:00 1wire_Strom_Gesamt.E-Energy.day_counter 7.306
2022-05-09 11:05:31 1wire_Strom_Gesamt.E-Energy.last_counter 10.239
2022-05-09 00:01:00 1wire_Strom_Gesamt.E-Energy.last_day 0
2022-05-01 00:01:00 1wire_Strom_Gesamt.E-Energy.last_month 273.361
2022-03-28 00:17:11 1wire_Strom_Gesamt.E-Energy.last_year 0
2022-05-09 11:05:31 1wire_Strom_Gesamt.E-Energy.month 75.775
2022-05-08 00:02:06 1wire_Strom_Gesamt.E-Energy.month_counter -65.536
2022-05-09 11:05:31 1wire_Strom_Gesamt.E-Energy.year 387.64
2022-05-08 00:02:06 1wire_Strom_Gesamt.E-Energy.year_counter -377.402
2022-05-09 11:00:06 Brennerlaufzeit.Heute.day 0
2022-05-09 01:00:04 Brennerlaufzeit.Heute.day_counter 0
2022-05-09 11:00:06 Brennerlaufzeit.Heute.last_counter 0
2022-05-09 00:01:00 Brennerlaufzeit.Heute.last_day 0
2022-05-01 00:01:01 Brennerlaufzeit.Heute.last_month 171.863
2022-03-28 01:03:33 Brennerlaufzeit.Heute.last_year 0
2022-05-09 11:00:06 Brennerlaufzeit.Heute.month 12.969
2022-05-09 01:00:04 Brennerlaufzeit.Heute.month_counter -12.969
2022-05-09 11:00:06 Brennerlaufzeit.Heute.year 209.814
2022-05-09 01:00:04 Brennerlaufzeit.Heute.year_counter -209.814
2022-05-09 11:05:30 Device 1wire_Strom_Gesamt
2022-05-09 11:00:13 Shelly.DachbodenPV.TagesErtragDach.day 0.56
2022-05-09 00:05:00 Shelly.DachbodenPV.TagesErtragDach.day_counter 0
2022-05-09 11:00:13 Shelly.DachbodenPV.TagesErtragDach.last_counter 0.56
2022-05-09 00:01:00 Shelly.DachbodenPV.TagesErtragDach.last_day 0
2022-05-01 00:01:00 Shelly.DachbodenPV.TagesErtragDach.last_month 102.179
2022-03-28 00:21:34 Shelly.DachbodenPV.TagesErtragDach.last_year 0
2022-05-09 11:00:14 Shelly.DachbodenPV.TagesErtragDach.month 44.57
2022-05-09 00:05:00 Shelly.DachbodenPV.TagesErtragDach.month_counter -44.01
2022-05-09 11:00:14 Shelly.DachbodenPV.TagesErtragDach.year 153.744
2022-05-09 00:05:00 Shelly.DachbodenPV.TagesErtragDach.year_counter -153.184
2022-05-09 00:05:01 Shelly.GartenhausPV.TagesErtrag.day 0
2022-05-09 00:05:00 Shelly.GartenhausPV.TagesErtrag.day_counter 0
2022-05-09 00:05:01 Shelly.GartenhausPV.TagesErtrag.last_counter 0.00
2022-05-09 00:01:00 Shelly.GartenhausPV.TagesErtrag.last_day 0
2022-05-01 00:01:00 Shelly.GartenhausPV.TagesErtrag.last_month 45.545
2022-03-28 00:21:35 Shelly.GartenhausPV.TagesErtrag.last_year 0
2022-05-09 00:05:01 Shelly.GartenhausPV.TagesErtrag.month 9.088
2022-05-09 00:05:00 Shelly.GartenhausPV.TagesErtrag.month_counter -9.088
2022-05-09 00:05:01 Shelly.GartenhausPV.TagesErtrag.year 62.512
2022-05-09 00:05:00 Shelly.GartenhausPV.TagesErtrag.year_counter -62.512
2022-05-09 11:05:31 block_day_count_Brennerlaufzeit_Heute executed
2022-05-08 09:33:54 block_init executed
2022-05-09 00:01:00 block_mid executed
2022-05-09 11:05:30 e_1wire_Strom_Gesamt_E-Energy 10.239
2022-05-09 11:00:06 e_Brennerlaufzeit_Heute 0
2022-05-09 11:00:13 e_Shelly.DachbodenPV_TagesErtragDach 0.56
2022-05-09 00:05:00 e_Shelly.GartenhausPV_TagesErtrag 0.00
2022-03-28 01:03:32 mode enabled
2022-03-28 01:03:33 state initialized
2022-05-09 00:01:00 timer_01_c01 10.05.2022 00:01:00
Regex:
accu:
collect:
di_counter_new:
collect:
1wire_Strom_Gesamt.E-Energy.day ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.day:
1wire_Strom_Gesamt.E-Energy.last_day ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.last_day:
1wire_Strom_Gesamt.E-Energy.last_month ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.last_month:
1wire_Strom_Gesamt.E-Energy.last_year ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.last_year:
1wire_Strom_Gesamt.E-Energy.month ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.month:
1wire_Strom_Gesamt.E-Energy.year ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.year:
Brennerlaufzeit.Heute.day ^di_counter_new$:^Brennerlaufzeit.Heute.day:
Brennerlaufzeit.Heute.last_day ^di_counter_new$:^Brennerlaufzeit.Heute.last_day:
Brennerlaufzeit.Heute.last_month ^di_counter_new$:^Brennerlaufzeit.Heute.last_month:
Brennerlaufzeit.Heute.last_year ^di_counter_new$:^Brennerlaufzeit.Heute.last_year:
Brennerlaufzeit.Heute.month ^di_counter_new$:^Brennerlaufzeit.Heute.month:
Brennerlaufzeit.Heute.year ^di_counter_new$:^Brennerlaufzeit.Heute.year:
Shelly.DachbodenPV.TagesErtragDach.day ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.day:
Shelly.DachbodenPV.TagesErtragDach.last_day ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.last_day:
Shelly.DachbodenPV.TagesErtragDach.last_month ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.last_month:
Shelly.DachbodenPV.TagesErtragDach.last_year ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.last_year:
Shelly.DachbodenPV.TagesErtragDach.month ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.month:
Shelly.DachbodenPV.TagesErtragDach.year ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.year:
Shelly.GartenhausPV.TagesErtrag.day ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.day:
Shelly.GartenhausPV.TagesErtrag.last_day ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.last_day:
Shelly.GartenhausPV.TagesErtrag.last_month ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.last_month:
Shelly.GartenhausPV.TagesErtrag.last_year ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.last_year:
Shelly.GartenhausPV.TagesErtrag.month ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.month:
Shelly.GartenhausPV.TagesErtrag.year ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.year:
cond:
1wire_Strom_Gesamt:
0:
1:
2:
3:
4:
E-Energy ^1wire_Strom_Gesamt$:^E-Energy:
5:
6:
7:
8:
E-Energy ^1wire_Strom_Gesamt$:^E-Energy:
9:
Brennerlaufzeit:
0:
1:
2:
3:
4:
5:
Heute ^Brennerlaufzeit$:^Heute:
6:
7:
8:
9:
Heute ^Brennerlaufzeit$:^Heute:
Shelly.DachbodenPV:
0:
1:
2:
TagesErtragDach ^Shelly.DachbodenPV$:^TagesErtragDach:
3:
4:
5:
6:
TagesErtragDach ^Shelly.DachbodenPV$:^TagesErtragDach:
7:
8:
9:
Shelly.GartenhausPV:
0:
1:
2:
3:
TagesErtrag ^Shelly.GartenhausPV$:^TagesErtrag:
4:
5:
6:
7:
TagesErtrag ^Shelly.GartenhausPV$:^TagesErtrag:
8:
9:
uiTable:
di_counter_new:
di_counter_new_uiTable_c_0_0_0_0:
Shelly.DachbodenPV.TagesErtragDach.day ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.day:
di_counter_new_uiTable_c_0_1_0_0:
Shelly.GartenhausPV.TagesErtrag.day ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.day:
di_counter_new_uiTable_c_0_2_0_0:
1wire_Strom_Gesamt.E-Energy.day ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.day:
di_counter_new_uiTable_c_0_3_0_0:
Brennerlaufzeit.Heute.day ^di_counter_new$:^Brennerlaufzeit.Heute.day:
di_counter_new_uiTable_c_1_0_0_0:
Shelly.DachbodenPV.TagesErtragDach.last_day ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.last_day:
di_counter_new_uiTable_c_1_1_0_0:
Shelly.GartenhausPV.TagesErtrag.last_day ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.last_day:
di_counter_new_uiTable_c_1_2_0_0:
1wire_Strom_Gesamt.E-Energy.last_day ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.last_day:
di_counter_new_uiTable_c_1_3_0_0:
Brennerlaufzeit.Heute.last_day ^di_counter_new$:^Brennerlaufzeit.Heute.last_day:
di_counter_new_uiTable_c_2_0_0_0:
Shelly.DachbodenPV.TagesErtragDach.month ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.month:
di_counter_new_uiTable_c_2_1_0_0:
Shelly.GartenhausPV.TagesErtrag.month ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.month:
di_counter_new_uiTable_c_2_2_0_0:
1wire_Strom_Gesamt.E-Energy.month ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.month:
di_counter_new_uiTable_c_2_3_0_0:
Brennerlaufzeit.Heute.month ^di_counter_new$:^Brennerlaufzeit.Heute.month:
di_counter_new_uiTable_c_3_0_0_0:
Shelly.DachbodenPV.TagesErtragDach.last_month ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.last_month:
di_counter_new_uiTable_c_3_1_0_0:
Shelly.GartenhausPV.TagesErtrag.last_month ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.last_month:
di_counter_new_uiTable_c_3_2_0_0:
1wire_Strom_Gesamt.E-Energy.last_month ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.last_month:
di_counter_new_uiTable_c_3_3_0_0:
Brennerlaufzeit.Heute.last_month ^di_counter_new$:^Brennerlaufzeit.Heute.last_month:
di_counter_new_uiTable_c_4_0_0_0:
Shelly.DachbodenPV.TagesErtragDach.year ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.year:
di_counter_new_uiTable_c_4_1_0_0:
Shelly.GartenhausPV.TagesErtrag.year ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.year:
di_counter_new_uiTable_c_4_2_0_0:
1wire_Strom_Gesamt.E-Energy.year ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.year:
di_counter_new_uiTable_c_4_3_0_0:
Brennerlaufzeit.Heute.year ^di_counter_new$:^Brennerlaufzeit.Heute.year:
di_counter_new_uiTable_c_5_0_0_0:
Shelly.DachbodenPV.TagesErtragDach.last_year ^di_counter_new$:^Shelly.DachbodenPV.TagesErtragDach.last_year:
di_counter_new_uiTable_c_5_1_0_0:
Shelly.GartenhausPV.TagesErtrag.last_year ^di_counter_new$:^Shelly.GartenhausPV.TagesErtrag.last_year:
di_counter_new_uiTable_c_5_2_0_0:
1wire_Strom_Gesamt.E-Energy.last_year ^di_counter_new$:^1wire_Strom_Gesamt.E-Energy.last_year:
di_counter_new_uiTable_c_5_3_0_0:
Brennerlaufzeit.Heute.last_year ^di_counter_new$:^Brennerlaufzeit.Heute.last_year:
card:
collect:
di_counter_new 1wire_Strom_Gesamt.E-Energy.day:
168:
animate 0
dim 100
hours 168
last
last_v 2.686
last_value 3.459
max_value 12.346
max_value_slot 34
max_value_time 1651696463
min_value 0
min_value_slot 92
min_value_time 1652047260
name di_counter_new
reading 1wire_Strom_Gesamt.E-Energy.day
time 1652087131
value 2.933
times:
1651490820
Nach:
Zitat2022-05-09 11:00:13 Shelly.DachbodenPV.TagesErtragDach.day 0.56
2022-05-09 00:05:00 Shelly.DachbodenPV.TagesErtragDach.day_counter 0
2022-05-09 11:00:13 Shelly.DachbodenPV.TagesErtragDach.last_counter 0.56
2022-05-09 00:01:00 Shelly.DachbodenPV.TagesErtragDach.last_day 0
2022-05-01 00:01:00 Shelly.DachbodenPV.TagesErtragDach.last_month 102.179
2022-03-28 00:21:34 Shelly.DachbodenPV.TagesErtragDach.last_year 0
2022-05-09 11:00:14 Shelly.DachbodenPV.TagesErtragDach.month 44.57
2022-05-09 00:05:00 Shelly.DachbodenPV.TagesErtragDach.month_counter -44.01
2022-05-09 11:00:14 Shelly.DachbodenPV.TagesErtragDach.year 153.744
2022-05-09 00:05:00 Shelly.DachbodenPV.TagesErtragDach.year_counter -153.184
werden die Readings um 00:01 Uhr berechnet.
Ich kann erkennen, wegen der negativen Zahlen, dass dein Zähler zwischendurch zurückgesetzt wurde.
Ich weiß nicht, was kurz vor 00:01 passiert, daher kann ich nicht erklären warum last_day 0 ist. Heute ist Shelly.DachbodenPV.TagesErtragDach.day 0.56, daher sollte, wenn der Zähler und das System bis 00:01 Uhr durchlaufen, last_day größer 0 sein. Es wird einfach nur der Inhalt von day auf last_day kopiert.
Um Mitternacht ist immer viel in meinem FHEM los, (div. HourCounter usw.) vielleicht wird es deswegen verschluckt.
Wie kann ich die Funktion "sub midnight" auf z.B. "sub 00:05" ändern ? also 5min nach Mitternacht
Zitat von: Bartimaus am 09 Mai 2022, 12:33:48
Um Mitternacht ist immer viel in meinem FHEM los, (div. HourCounter usw.) vielleicht wird es deswegen verschluckt.
Wie kann ich die Funktion "sub midnight" auf z.B. "sub 00:05" ändern ? also 5min nach Mitternacht
steht im Script:
mid {[00:01];;
Ich glaube weniger an das Verschlucken, als auf etwas wie Neustarten (Zähler, FHEM, System)
Zitat von: Damian am 09 Mai 2022, 12:52:57
steht im Script:
mid {[00:01];;
Ich glaube weniger an das Verschlucken, als auf etwas wie Neustarten (Zähler, FHEM, System)
Ah, ok. Danke. habe ich mal geändert.
Also System/FHEM-Neustart kann ich ausschließen, und das sich 4 verschiedene Zähler zurückgesetzt haben, glaube ich nicht. In den anderen Logs zu diesen Zählern sehe ich ja die korrekten Werte.
Zitat von: Bartimaus am 09 Mai 2022, 13:29:14
Ah, ok. Danke. habe ich mal geändert.
Also System/FHEM-Neustart kann ich ausschließen, und das sich 4 verschiedene Zähler zurückgesetzt haben, glaube ich nicht. In den anderen Logs zu diesen Zählern sehe ich ja die korrekten Werte.
ich habe auch nicht von allen gesprochen, sondern vom betroffenen Device:
Zitat2022-05-09 00:05:00 Shelly.DachbodenPV.TagesErtragDach.month_counter -44.01
Moin, nur mal ein kurzes Feedback, das verschieben um ein paar Minuten zeigt Wirkung. Bis jetzt wurden die Vortageswerte wieder korrekt gespeichert.
Sorry wenn die Frage jetzt schon 100x kam, aber so richtig bin ich aus den alten Postings noch nicht schlau geworden.
Ich würde gerne meinen EasyMeter Q3MA Zähler auslesen und dabei besonders den Momentanverbauch anzeigen um meine Grundlast zu verschiedenen Zeiten zu ermitteln.
Was genau brauche ich jetzt an Hardware um den Zähler entsprechend auslesen zu können und womit verbinde ich dies am Besten?
Ich habe eine Raspberrymatic aber nicht in der Nähe des Zählers und einen virtuellen Server/ Container mit FHEM.
Das Beste wäre, wenn ich den Lesekopf am Zähler irgendwie per Funk oder Wifi direkt an das virtuelle FHEM bekomme. (USB rein reichen in die VM ist eher ungünstig und noch ein extra Device möchte ich nicht betreiben)
Hat Jemand eine "Einkaufsliste" dazu? Im FHEM müsste es ja das OBIS-Modul sein, was dann für die Auswertung zuständig ist?
-esp8266
-Tasmota mit SML
-IR-Diode
Kosten ca. 5 Euro
siehe:
Tasmota-Firmware von hier:
https://forum.fhem.de/index.php/topic,97959.msg1206880.html#msg1206880
Tasmota-Einstellungen für deinen Zähler von hier:
https://edv.mueggelland.de/smarter-stromzaehler/
Schaltplan von hier:
https://www.mwinklerblog.de/smarthome/aktoren-sensoren/stromz%C3%A4hler-digital/
Datenübertragen zu FHEM über MQTT
Visualisierung und Statistik (Tagesverbrauch, Monatsverbrauch, Jahresverbrauch im Log):
https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler
Mal ne andere Frage, die gelesenen Werte zur Visualisierung werden im DOIF gespeichert ? Gestern beim Gewitter war irgendwie ne Spannungsspitze oder so, und nun habe ich extrem hohe Werte im "card"... zu meinem Stromlogger
Zitat von: Damian am 20 Mai 2022, 18:18:40
-esp8266
-Tasmota mit SML
-IR-Diode
Kosten ca. 5 Euro
...
Super, danke für die Zusammenfassung.
Der ESP8266 hat out-of-the-box WLAN und Programmieren/ Firmware macht man via USB?
Gibts eventuell schon fertige Sets mit Gehäusen und co? Komme nur sehr sporadisch an 3D-Drucker.
Der ESP8266 braucht dann 5V als Spannungsversorgung?
Zitat von: Stephan27 am 20 Mai 2022, 19:33:47
Super, danke für die Zusammenfassung.
Der ESP8266 hat out-of-the-box WLAN und Programmieren/ Firmware macht man via USB?
Gibts eventuell schon fertige Sets mit Gehäusen und co? Komme nur sehr sporadisch an 3D-Drucker.
Der ESP8266 braucht dann 5V als Spannungsversorgung?
Programmieren von Tasmota kannst du dir gut auf Youtube anschauen.
Meine Lösung kommt ohne Box aus, dafür aber mit USV :)
siehe Bild hier:
https://forum.fhem.de/index.php/topic,97959.msg1217126.html#msg1217126
Inzwischen bedient das kleine Teil fünf Zähler
Sieht gut aus. Klar hatte ich jetzt garnicht daran gedacht, dass einfach alles so in Schrank zu hängen.
Stromversorgung kommt bei dir jetzt wo her? Die PowerBank ist nur "Backup" bzw. USV?
Gleich mal bestellen, gefällt mir was ich sehe!
Ich sehe, du hast auch einen Zähler für die PV? Wo greifst du da ab? Wollte das Balkonsolar mit nem Shelly erfasse, aber so gehts vlt. besser.
Zitat von: Stephan27 am 20 Mai 2022, 19:49:29
Sieht gut aus. Klar hatte ich jetzt garnicht daran gedacht, dass einfach alles so in Schrank zu hängen.
Stromversorgung kommt bei dir jetzt wo her? Die PowerBank ist nur "Backup" bzw. USV?
Gleich mal bestellen, gefällt mir was ich sehe!
Ich sehe, du hast auch einen Zähler für die PV? Wo greifst du da ab? Wollte das Balkonsolar mit nem Shelly erfasse, aber so gehts vlt. besser.
ESP hängt indirekt am 5V-Handy-Netzteil.
PV geht bei mir über den S0-Impulszähler, der hängt ebenso am ESP eingebunden als Counter
siehe:
https://forum.fhem.de/index.php/topic,97959.msg1214276.html#msg1214276
Zitat von: Bartimaus am 20 Mai 2022, 18:29:41
Mal ne andere Frage, die gelesenen Werte zur Visualisierung werden im DOIF gespeichert ? Gestern beim Gewitter war irgendwie ne Spannungsspitze oder so, und nun habe ich extrem hohe Werte im "card"... zu meinem Stromlogger
Sie werden in versteckten Readings abgelegt. Dazu musst du FHEM-Herunterfahren und die falschen Werte in fhem.save. anpassen (suchen nach di_counter)
Was meinst du mit indirekt? Powerbank an NT und ESP an Powerbank?
So erstmal bestellt, ESP + Diode + Widerstände + Magneten waren jetzt ~20€.
War aber gleich 5er Set Mag und 20er Widerstände.
Zitat von: Stephan27 am 20 Mai 2022, 20:15:45
Was meinst du mit indirekt? Powerbank an NT und ESP an Powerbank?
Ja. Powerbank beim D0-Zähler ist nicht nötig, da er ja immer absolute/korrekte Zählerstände liefert.
Zitat von: Damian am 20 Mai 2022, 20:07:57
Sie werden in versteckten Readings abgelegt. Dazu musst du FHEM-Herunterfahren und die falschen Werte in fhem.save. anpassen (suchen nach di_counter)
Danke, aber daraus werde ich nicht schlau. Ich habe für mich nicht valide Werte in fhem.save (..month_8760_values) gelöscht. Dabei habe ich mich an den Backupdaten von ein paar Tagen vorher orientiert. Die "komischen" Werte gelöscht, gespeichert und FHEM wieder gestartet. Aber es werden mir noch immer falsche Werte angezeigt. Die die im Card angezeigt werden, sehe ich auch nicht in fhem.save.
Dann habe ich über die Kommandozeile in FHEM per "setreading" die falschen Werte im DOIF korrigiert. Diese Korrektur sehe ich auch, aber nur so lange, bis der nächste Trigger das Reading wieder auf die falschen Werte setzt. Irgendwie sehe ich den Wald vor lauter Bäumen nicht.
Zitat von: Bartimaus am 21 Mai 2022, 14:27:56
Danke, aber daraus werde ich nicht schlau. Ich habe für mich nicht valide Werte in fhem.save (..month_8760_values) gelöscht. Dabei habe ich mich an den Backupdaten von ein paar Tagen vorher orientiert. Die "komischen" Werte gelöscht, gespeichert und FHEM wieder gestartet. Aber es werden mir noch immer falsche Werte angezeigt. Die die im Card angezeigt werden, sehe ich auch nicht in fhem.save.
Dann habe ich über die Kommandozeile in FHEM per "setreading" die falschen Werte im DOIF korrigiert. Diese Korrektur sehe ich auch, aber nur so lange, bis der nächste Trigger das Reading wieder auf die falschen Werte setzt. Irgendwie sehe ich den Wald vor lauter Bäumen nicht.
Ob du in der richtigen save-Datei die richtigen Werte gelöscht hast, kann ich nicht sagen. Zur Laufzeit wirst du es nicht schaffen die Werte zu ändern.
Zitat von: Damian am 21 Mai 2022, 16:01:09
Ob du in der richtigen save-Datei die richtigen Werte gelöscht hast, kann ich nicht sagen. Zur Laufzeit wirst du es nicht schaffen die Werte zu ändern.
Moin,
natürlich habe ich FHEM vor dem editieren der fhem.save heruntergefahren...
Zitat von: Damian am 09 Mai 2022, 12:52:57
steht im Script:
mid {[00:01];;
Ich glaube weniger an das Verschlucken, als auf etwas wie Neustarten (Zähler, FHEM, System)
Zu diesem Thema: Heute ist es wieder soweit, der Vortageswert steht auf 0,0, obwohl da hätte 5,8 stehen müssen.
Aber: Gestern habe ich FHEM heruntergefahren, und anschließend das System komplett neu gestartet.
Und heute sehe ich in den gespeicherten Logs, das heute um Mitternacht 2 Einträge in die Logs geschrieben wurde. Der erste mit dem Wert von 5,8, der zweite Wert dann mit 0,0. Das ist dann auch das was bei meinem "Card" angezeigt wird.
Wer den Wert auf Null setzt, kann ich dir leider auch nicht sagen.
Zitat von: Damian am 20 Mai 2022, 19:44:22
Programmieren von Tasmota kannst du dir gut auf Youtube anschauen.
....
Blöde Frage, was macht man wenn die ganzen Anleitungen nicht funktionieren?
Ich bekomme Invalid Head of Packet, habe zwar schon "Lösungen" gefunden aber irgendwie bin ich scheinbar zu doof die anzuwenden. :-(
Zitat von: Stephan27 am 25 Mai 2022, 17:40:18
Blöde Frage, was macht man wenn die ganzen Anleitungen nicht funktionieren?
Ich bekomme Invalid Head of Packet, habe zwar schon "Lösungen" gefunden aber irgendwie bin ich scheinbar zu doof die anzuwenden. :-(
Mit welchem Programm hast du geflasht?
Hab jetzt erst Tasmotizer 1.2 probiert und danach noch mit ESPeasy.
Baudrate habe ich auf 9600 wie es mein Board angibt.
Im ESPeasy habe ich mal mit anderen Baudraten probiert (im Treiber und im Tool).
USB habe ich jetzt 3 verschiedene Ports durch USB2.0, 3.0 und USB-C (3.1).
Ist irgendwie schon wieder ernüchternd wenn direkt "der erste" Schritt nicht funktioiert.
Zitat von: Stephan27 am 25 Mai 2022, 17:57:40
Hab jetzt erst Tasmotizer 1.2 probiert und danach noch mit ESPeasy.
Baudrate habe ich auf 9600 wie es mein Board angibt.
Im ESPeasy habe ich mal mit anderen Baudraten probiert (im Treiber und im Tool).
Tasmota habe ich ohne Probleme mit Tasmotize 1.2 unter Windows mehrfach geflasht.
Auch ESPeasy mit ESPeasy-Flasher war früher kein Problem.
Hilft mir gerade leider nicht. ::)
Zitat von: Stephan27 am 25 Mai 2022, 18:19:34
Hilft mir gerade leider nicht. ::)
Es kann also nur an der Hardware/Kabel liegen. Denn die Bedienung von Tasmotize ist idiotensicher.
Zitat von: Damian am 25 Mai 2022, 18:42:46
Es kann also nur an der Hardware/Kabel liegen. Denn die Bedienung von Tasmotize ist idiotensicher.
Ich habe es jetzt noch mit meinem "Werkstatt" Win7 probiert und drei verschiedenen Kabeln, total sinnlos. :-/
Zitat von: Stephan27 am 25 Mai 2022, 19:16:37
Ich habe es jetzt noch mit meinem "Werkstatt" Win7 probiert und drei verschiedenen Kabeln, total sinnlos. :-/
Dann bleibt nur noch der esp selbst als Fehlerquelle - dubios?!
Welchen hast du denn geholt?
Den hier:
https://www.ebay.de/itm/203284899747?mkevt=1&mkpid=0&emsid=e11050.m43.l1123&mkcid=7&ch=osgood&euid=cc04558b9dae4d8db3429219322e8b39&bu=43334370333&osub=-1%7E1&crd=20220525092708&segname=11050&sojTags=ch%3Dch%2Cbu%3Dbu%2Cosub%3Dosub%2Ccrd%3Dcrd%2Csegname%3Dsegname%2Cchnl%3Dmkcid
Extra von einem deutschen Händler. Kontakt zu Ihm habe ich schon aufgenommen.
Gerade habe ich noch folgende Meldung in nem Logfile gefunden:
serialport_receive_C0: 80 instead of C0
P.S.:
Das Teil hat neben dem USB-Port noch zwei Tasten "RST" (Rest?) und "FLASH". Hab es mal mit beiden probiert, aber es scheint nix zu ändern.
Edit:
Weißt du eventuell wo ich einen Sketch der Firmware bekomme, um es über die Arduino-IDE zu übertragen? Diese biete einige Möglichkeiten mehr, was die Kommunikation angeht.
Zitat von: Stephan27 am 25 Mai 2022, 19:49:26
Den hier:
https://www.ebay.de/itm/203284899747?mkevt=1&mkpid=0&emsid=e11050.m43.l1123&mkcid=7&ch=osgood&euid=cc04558b9dae4d8db3429219322e8b39&bu=43334370333&osub=-1%7E1&crd=20220525092708&segname=11050&sojTags=ch%3Dch%2Cbu%3Dbu%2Cosub%3Dosub%2Ccrd%3Dcrd%2Csegname%3Dsegname%2Cchnl%3Dmkcid
Extra von einem deutschen Händler. Kontakt zu Ihm habe ich schon aufgenommen.
Gerade habe ich noch folgende Meldung in nem Logfile gefunden:
serialport_receive_C0: 80 instead of C0
P.S.:
Das Teil hat neben dem USB-Port noch zwei Tasten "RST" (Rest?) und "FLASH". Hab es mal mit beiden probiert, aber es scheint nix zu ändern.
Edit:
Weißt du eventuell wo ich einen Sketch der Firmware bekomme, um es über die Arduino-IDE zu übertragen? Diese biete einige Möglichkeiten mehr, was die Kommunikation angeht.
Hast du mal die Standardversion tasmota.bin probiert zu flashen? http://ota.tasmota.com/tasmota/release/
Ich habe den di mini gekauft: https://www.amazon.de/AZDelivery-D1-Mini-Entwicklungsboard-kompatibel/dp/B0754N794H/ref=sr_1_3?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=1VZKFVBJPALGE&keywords=esp8266&qid=1653504594&sprefix=esp8266%2Caps%2C70&sr=8-3&th=1
Evtl. den 340-Treiber nachinstallieren.
Mehr kann ich zu dem Thema nicht beitragen. Vielleicht hat jemand Erfahrungen mit deiner ESP8266-Version.
Ich gehe davon aus, dass du bei deinem Modell zum Flashen den flash-Knopf gedrückt halten musst, bevor du das Board an usb anschließt.
Aber das hast du ja wohl schon gemacht?!
Zitat von: Damian am 25 Mai 2022, 21:03:19
Ich gehe davon aus, dass du bei deinem Modell zum Flashen den flash-Knopf gedrückt halten musst, bevor du das Board an usb anschließt.
Aber das hast du ja wohl schon gemacht?!
Ja habe ich auch probiert.
- Vorher drücken
- Vorher drücken und dabei einstecken
- Vorher drücken, dabei einstecken und flashen
- einstecken und 1x drücken
- 3 sek. drücken
- 10 sek. drücken
- Drücken, halten flashen.
Treiber habe ich nur den hier gefunden:
http://www.wch.cn/download/CH341SER_ZIP.html
Der führt aber das CH340G auch mit auf. (in 32bit und 64bit probiert)
Guckmal bitte hier:
https://www.makershop.de/ch340-341-usb-installieren/
in den Kommentaren gibt es einen Hinweis, wie man die Arduino IDE einstellen soll auch mit dem CH340. Ich verstehe es aber noch nicht so 100% was jetzt richtig wäre.
Und wo bekomme ich das passende Sketch also den Code für die Firmware von Tasomo
Zitat von: Stephan27 am 25 Mai 2022, 21:59:37
Guckmal bitte hier:
https://www.makershop.de/ch340-341-usb-installieren/
in den Kommentaren gibt es einen Hinweis, wie man die Arduino IDE einstellen soll auch mit dem CH340. Ich verstehe es aber noch nicht so 100% was jetzt richtig wäre.
Und wo bekomme ich das passende Sketch also den Code für die Firmware von Tasomo
Mein D1 mini-Clone hat auch den ch340 drauf und es funktioniert alles wie es soll mit den genannten Tasmota-Versionen hier im Thread. Ich habe keine speziellen Sketches erstellen müssen. Ich habe bei mir auch keine Arduino-Umgebung installiert.
Zitat von: Damian am 25 Mai 2022, 22:38:53
Mein D1 mini-Clone hat auch den ch340 drauf und es funktioniert alles wie es soll mit den genannten Tasmota-Versionen hier im Thread. Ich habe keine speziellen Sketches erstellen müssen. Ich habe bei mir auch keine Arduino-Umgebung installiert.
Ich schein mit dem Problem nicht ganz allein. Ein paar Leute konnten es wohl mit der ArduIDE lösen, aber irgendwie komme ich damit auch nicht hin.
Na mal sehen was der Verkäufer antwortet, vlt. hat die Platine einfach einen weg.
Zitat von: Stephan27 am 25 Mai 2022, 22:58:53
Ich schein mit dem Problem nicht ganz allein. Ein paar Leute konnten es wohl mit der ArduIDE lösen, aber irgendwie komme ich damit auch nicht hin.
Na mal sehen was der Verkäufer antwortet, vlt. hat die Platine einfach einen weg. Hab auch schon gelesen, dass es welche mit "billigen" USB-Chips gibt die sehr zickig sind.
Im schlimmsten Fall bestellst du genannten d1 mini clone. Ich habe inzwischen 3 mal je drei Stück bestellt und hatte noch keine Probleme damit.
Zitat von: Damian am 25 Mai 2022, 23:09:34
Im schlimmsten Fall bestellst du genannten d1 mini clone. Ich habe inzwischen 3 mal je drei Stück bestellt und hatte noch keine Probleme damit.
Ich habe jetzt vom Anbieter einen neuen ESP bekommen.
Der Chip ist mit Espressif ESP32-Wroom-32 beschriftet.
Der Anbieter hat Ihn bei sich testweise mit Tasmota 11.1.0 geflasht und ich konnte über den Tasmota WebInstaller zumindest meine WLAN-Config erfolgreich flashen.
Frage,
brauch ich die spezielle Firmware hier aus dem Forum oder kann ich auch mit 11.1.0 alles konfigurieren und in Gang bringen? Auch wenns keine große Sache ist, will ich den jetzt nicht "kaputt" flashen, wenn er erstmal läuft und das nicht notwendig sein sollte.
Ein wenig habe ich mich auch geärgert, da es bei eBay auch von HICHI ein fertiges Set gab mit Schreib-Lese-Einheit, WLAN-ESP, 3D-Druckgehäuse usw. für 30€ + Versand und ReadyToStart. Da ich die ganzen Bauteile nicht da hatte, habe ich bisher auch soviel bezahlt. (das hier... https://www.ebay.de/itm/313991145152?hash=item491b54a6c0:g:a~MAAOSwk3xhfcKN)
Edit:
Beim Schaltplan ist ja als Pin GND, 3v3 und RX angegeben. RX habe ich aber RX2 und RXD ist es egal welchen Pin ich verwende?
Kann ich an diesen eine ESP auch noch eine zweiten EasyMeter vom gleichen Typ abfragen (Wärmepumpe), also sprich einen zweiten Phototransistor dran hängen und auswerten?
Zu den Anleitungen nochmal.
Aus dem Müügelland-Link... muss ich auch nochmal kompilieren wie dort angegeben oder steige ich bei dem Skript ein?
Aus dem Winkler-Link... hier nehme ich nur den Schaltplan? Den Rest ignoriere ich, richtig?
Zitat von: Stephan27 am 31 Mai 2022, 17:29:27
Der Anbieter hat Ihn bei sich testweise mit Tasmota 11.1.0 geflasht und ich konnte über den Tasmota WebInstaller zumindest meine WLAN-Config erfolgreich flashen.
Frage,
brauch ich die spezielle Firmware hier aus dem Forum oder kann ich auch mit 11.1.0 alles konfigurieren und in Gang bringen? Auch wenns keine große Sache ist, will ich den jetzt nicht "kaputt" flashen, wenn er erstmal läuft und das nicht notwendig sein sollte.
Leider ja, in der Standard-Firmware ist SML nicht drin :(
Zitat von: Damian am 31 Mai 2022, 18:11:21
Leider ja, in der Standard-Firmware ist SML nicht drin :(
Oh ich habe glatt deine Antwort übersehen und im letzten Post noch was ergänzt.
Aber okay, weiß ich schonmal dass ich nochmal ran muss. Hab den Anbieter nochmal geschrieben, wie der ESP zu flashen ist. (sicher ist sicher)
Du kannst an einem Tasmota-Device standardmäßig einen D0-Zähler und vier S0-Zähler anhängen
Zitat von: Damian am 31 Mai 2022, 19:05:35
Du kannst an einem Tasmota-Device standardmäßig einen D0-Zähler und vier S0-Zähler anhängen
Was bedeutet das bzw. wozu zählen die EasyMeter mit optischer Schnittstelle?
P.S.:
Wo bekomme ich denn für meine Zähler die Infos zu den Definitionen her?
Bei Mueggelland sind nicht alle Werte erfasst, die der Q3MA liefern kann.
(Also z.B. diese Zeile: 1,77070100010800ff@1000,Verbrauch,KWh,Power_in,1)
Habe gerade mal beim Anbieter das Datenblatt bzw. die Betriebsanleitung gezogen, aber da steht nur was er kann und nicht wie man es abfragt.
https://www.easymeter.com/downloads/products/zaehler/Q3M/EDL11/BA_Easymeter_Q3M_2016-11-14.pdf (Punkt 6.1.1 und 6.1.2)
Zitat von: Stephan27 am 31 Mai 2022, 19:09:19
Was bedeutet das bzw. wozu zählen die EasyMeter mit optischer Schnittstelle?
P.S.:
Wo bekomme ich denn für meine Zähler die Infos zu den Definitionen her?
Bei Mueggelland sind nicht alle Werte erfasst, die der Q3MA liefern kann.
(Also z.B. diese Zeile: 1,77070100010800ff@1000,Verbrauch,KWh,Power_in,1)
Habe gerade mal beim Anbieter das Datenblatt bzw. die Betriebsanleitung gezogen, aber da steht nur was er kann und nicht wie man es abfragt.
https://www.easymeter.com/downloads/products/zaehler/Q3M/EDL11/BA_Easymeter_Q3M_2016-11-14.pdf (Punkt 6.1.1 und 6.1.2)
Ich habe den Q3MA nicht, da wirst du dich noch reinknien (einlesen) müssen, ich komme bei meinem Zweirichtungszähler mit zwei Werten aus.
Dein Zähler hat eine optische (daher die Photodiode) D0-Schnittstelle.
Passend zum Thema habe ich gerade einen Beitrag "Aus einem physikalischen Zähler zwei virtuelle Zähler machen" verfasst:
https://forum.fhem.de/index.php/topic,127864.msg1223537.html#msg1223537
Zitat von: Damian am 31 Mai 2022, 19:14:48
Ich habe den Q3MA nicht, da wirst du dich noch reinknien (einlesen) müssen, ich komme bei meinem Zweirichtungszähler mit zwei Werten aus.
Dein Zähler hat eine optische (daher die Photodiode) D0-Schnittstelle.
Okay, also bräuchte ich einen zweiten ESP, da werde ich jetzt für 30€ das fertige Ding bestellen.
Der neue ESP lässt sich mit den verschiedensten Tasmota-Versionen (Webinstaller) vernünftig bespielen, aber die Binaries hier aus dem Forum gehen nicht rein bzw. funktioniert es mit Tasmotizer nicht. :-/
Zitat von: Stephan27 am 31 Mai 2022, 20:11:37
Okay, also bräuchte ich einen zweiten ESP, da werde ich jetzt für 30€ das fertige Ding bestellen.
Der neue ESP lässt sich mit den verschiedensten Tasmota-Versionen (Webinstaller) vernünftig bespielen, aber die Binaries hier aus dem Forum gehen nicht rein bzw. funktioniert es mit Tasmotizer nicht. :-/
Ich würde erste mal mit der zweiten Bestellung warten, so wie ich es sehe, hast du noch einige Hürden für den ersten Zähler zu nehmen ;)
Ich hatte keine Probleme mit dem Tasmotizer die hier zur Verfügung gestellte Firmware mit SML zu flashen.
Zitat von: Damian am 31 Mai 2022, 20:17:58
Ich würde erste mal mit der zweiten Bestellung warten, so wie ich es sehe, hast du noch einige Hürden für den ersten Zähler zu nehmen ;)
Nein ich meinte, dass ich mir einfach das fertige Teil bestelle, wo nix mehr geflasht oder gelötet werden muss. Wenn ich sehe was hier schon wieder an Zeit und Nerven verblasen habe und kein Ergebnis sehe und der eigentliche fehleranfällige Bastelteil fehlt ja noch.
Zitat von: Stephan27 am 31 Mai 2022, 20:36:36
Nein ich meinte, dass ich mir einfach das fertige Teil bestelle, wo nix mehr geflasht oder gelötet werden muss. Wenn ich sehe was hier schon wieder an Zeit und Nerven verblasen habe und kein Ergebnis sehe und der eigentliche fehleranfällige Bastelteil fehlt ja noch.
ja, das wird wohl für dich die einfachere Variante sein. Ich hatte alle Teile bereits in der Grabbelkiste, deswegen hatte ich keine zusätzlichen Kosten und wohl etwas mehr Erfahrung mit allem.
Zitat von: Damian am 31 Mai 2022, 21:17:27
ja, das wird wohl für dich die einfachere Variante sein. Ich hatte alle Teile bereits in der Grabbelkiste, deswegen hatte ich keine zusätzlichen Kosten und wohl etwas mehr Erfahrung mit allem.
JA das Schlimme an der Sache ist, dass es eigentlich schon an einer Stelle hängt die ich nicht wirklich beeinflussen kann.
Wenn jetzt mit der Löterei oder der Config irgendwas schief gehen würde okay, aber so...
Ganz blöde Frage.
Wie komme ich denn auf den frisch geflashten Tasmota?
Ich habe jetzt über die Arduino IDE scheinbar erfolgreich den Flash durchgeführt. Der ESP selbst spielt aber jetzt erstmal kein AccessPoint, also muss ich Ihn irgendwie anders ansprechen und mein WLAN mitteilen.
Ausgabe aus der Powershell:
C:\...\esptool_py\3.0.0/esptool.exe --chip esp32 --port COM9 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dout --flash_freq 80m --flash_size detect 0xe000 C:\.../tasmota_smartmeter.bin
esptool.py v3.0-dev
Serial port COM9
Connecting....
Chip is ESP32-D0WD (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 0c:8b:95:75:f9:78
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 654240 bytes to 467464...
Wrote 654240 bytes (467464 compressed) at 0x0000e000 in 6.7 seconds (effective 782.6 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Edit:
Wenn ich mit Putty auf den Serial Port gehe, dann schreibt er da beständig was. Sieht fast aus wie ein Bootloop. (das schreibt er im Sekundentakt immer wieder)
rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DOUT, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5856
entry 0x400806a8
ets Jun 8 2016 00:22:57
@Stephan27
ich les hier immer mal wieder mit und es scheint mir, Du hast dich noch nicht genug mit Tasmota auseinandergesetzt. Mit Details zu Deinem Vorhaben kann ich Dir nicht weiterhelfen, aber ein paar Infos zu den Grundsätzen vielleicht geben:
Tasmota-Firmwares sind unterschiedlich für ESP8266 und ESP32, meist im Dateinamen entsprechend angegeben.
- Einen frischen ESP32 muss man hardwaremäßig mit einer tasmota32.factory.bin flashen (gibt wohl auch ne Lösung per Browser, habe ich nie probiert)
- einen neu geflashten Tasmota ESP erreichst Du, indem Du z.B. mit dem Handy die WLAN-Netze anzeigen läßt, es gibt dann eines was tasmota12345 oder so heißt (früher sonos7654332). Mit diesem verbinden und dann im Browser 192.168.4.1 eingeben. Dann sollte die Oberfläche vom Tasmota erscheinen. Hier dann die WLAN-Daten von Deinem Heimnetz eintragen, nach reboot ist er dann dort erreichbar. In z.B. einer Fritzbox taucht er dann bei den Netzwerkgeräten auf und du hast die IP, womit Du ihn dann erreichen kannst.
- einen so geflashten und eingerichteten Tasmota flasht man dann üblicherweise per OTA, also von der Weboberfläche aus. Beim ESP8266 mußte man das in 2 Schritten machen (erst eine minimal.bin, dann die gewünschte), da der Speicher nicht groß genug ist für die neueren Versionen, beim ESP32 ist das, soweit ich mich entsinne, nicht nötig. Hier dann aber eine reguläre tasmota32.bin, nicht die factory-Version, da damit alles gespeicherte wieder überschrieben wird!
Um eigene ESP32 tasmota-Versionen als firmware zu erstellen gibt es eine online-Lösung (hat Otto mal in seinem Blog vorgestellt), hat bei mir eher nur sporadisch geklappt. Solltest Du Visual Studio Code nutzen: da gibt es eine ausführliche Beschreibung auf der tasmota-Seite, wie man das einrichtet. Das fand ich recht einfach (im Prinzip nur den ganzen Tasmota-Ordner aus Github auf den Rechner ziehen und in VS-Code öffnen). Damit hat die Erstellung von custom-firmware sehr gut geklappt. Am Ende bekommst Du direkt die .bin und factory.bin, je nach dem was Du für den ESP32 dann brauchst. Oder die Arduino-IDE, das hast Du wohl schon gemacht.
Vielleicht hilft das ja bei Deinen Versuchen, das Teil zum laufen zu bekommen.
Gruß
Sany
Hallo Sany,
ich danke dir erstmal.
Dein erster Punkt wird es schon sein. Ich hatte ursrpünglich einen ESP8266 (wahrscheinlich Defekt), der überhaupt nicht lief und mit dem einfach nichts möglich war.
Die Nachlieferung ist nun ein ESP32, der mit alle drum und dran mit Originalfirmware funktioniert und sich auch konfigurieren lässt. Wie du schon erwähnst funktioniert das mit dem WebInstaller wunderbar und danach ist auch das Tasmota-WLAN verfügbar bzw. kann man direkt im WebInstaller dann das eigene mitgeben und auf die Seite. (Soweit war auch Alles gut)
Nun wollte ich ja die hier im Forum verfügbare Tasmota für die SmartMeter verwenden und genau das war der Punkt der nun weiterhin nicht funktioniert. Zunächst eben auf einfachem Weg mittels Tasmotizer, der wie ich mittlerweile weiß ausschließlich mit ESP8266 und nicht ESP32 spricht. Danach habe ich dann mit der ArduinoIDE die Firmware erfolgreich aufspielen können. Hier fehlte es dann aber sowohl am Tasmota-Wlan, sowie an meinem eigenen. Wie ich später rausfinden konnte befindet sich der ESP im Bootloop, was dann dazu passt dass die Firmware ESP8266 und nicht ESP32 spricht.
Jetzt muss ich mal schauen ob ich für den 32er irgendwie die Firmware compiliert bekomme. Den online TasmoCompiler habe ich bereits gefunden und mir auch ein BIN erstellt, aber auch hier konnte ich nicht auswählen im Vorfeld, ob ESP8266 oder ESP32, so dass ich fast wieder von ESP8266 ausgehe.
Kleines Update:
Der Tipp von Sany war wirklich gut.
Ich habe jetzt auf Basis des ESP32 Generic und Tasmota-DE 11.1.0 einfach die vier (Un)Define gesetzt und kompiliert und dann über die WEBUI vom STOCK Tasmota via WLAN geflasht und jetzt habe ich zumindest die Skripting-Funktionen drin. Jetzt müsste ich den Aufbau mal löten und testen.
Vielen Dank.
Edit:
Zwei Fragen habe ich noch:
- Zeigt mir die Konsole an, wenn ich die IR-Diode an die Schnittstelle halte, was Sie empfängt bzw. die OBIS-Kennzahlen? Oder Anders, wo bekomme ich die Infos was mein Zähler alles ausgibt, außer von den privaten Seiten der Bastler?
- Der Zähler hat mehrere optische Schnittstellen. Eine ist groß mit Info-DSS beschriftet, die Andere ist oben auf dem Zähler (mit D0 beschriftet). Im Netz habe ich für das Tasmota-Projekt bereits beide Varianten gesehen, dass der Lesekopf dort angebracht ist. Wo sollte der Lesekopf am Ende dran?
Der Skript den ich eingetragen habe, liefert im Hauptmenü soweit die Anzeige zu den gewünschten Werten. Ich muss es jetzt wie gesagt mal löten und anschließen.
Zitat von: Stephan27 am 01 Juni 2022, 11:53:03
Kleines Update:
Der Tipp von Sany war wirklich gut.
Ich habe jetzt auf Basis des ESP32 Generic und Tasmota-DE 11.1.0 einfach die vier (Un)Define gesetzt und kompiliert und dann über die WEBUI vom STOCK Tasmota via WLAN geflasht und jetzt habe ich zumindest die Skripting-Funktionen drin. Jetzt müsste ich den Aufbau mal löten und testen.
Vielen Dank.
Edit:
Zwei Fragen habe ich noch:
- Zeigt mir die Konsole an, wenn ich die IR-Diode an die Schnittstelle halte, was Sie empfängt bzw. die OBIS-Kennzahlen? Oder Anders, wo bekomme ich die Infos was mein Zähler alles ausgibt, außer von den privaten Seiten der Bastler?
- Der Zähler hat mehrere optische Schnittstellen. Eine ist groß mit Info-DSS beschriftet, die Andere ist oben auf dem Zähler (mit D0 beschriftet). Im Netz habe ich für das Tasmota-Projekt bereits beide Varianten gesehen, dass der Lesekopf dort angebracht ist. Wo sollte der Lesekopf am Ende dran?
Der Skript den ich eingetragen habe, liefert im Hauptmenü soweit die Anzeige zu den gewünschten Werten. Ich muss es jetzt wie gesagt mal löten und anschließen.
Mit einem Handy kannst du über das Kameraobjektiv sehen, welche Diode sendet - erkennbar am violetten Licht. Wenn die Signale im Modul ankommen und korrekt ausgewertet werden, dann sollte man im Hauptmenü die aktuellen Werte sehen. Die Daten kommen bei mir im Sekundentakt. Bei mir hat es mit den richtigen Konfigurationseinträgen für meinen Zähler auf Anhieb funktioniert. Da ich aber zwischendurch mal Aussetzer hatte, habe ich die Position der Diode (maximaler Ausschlag) mit einem Oszilloskop ausgerichtet, aber das ist schon Luxus, den nicht jeder hat und dafür nicht unbedingt braucht.
Zuvor hatte ich einen IR-Kopf über eine serielle Schnittstelle betrieben. Den konnte ich damals mit einem Terminalprogramm ausgelesen, um zu schauen, was da kommt.
So jetzt geht der Spaß richtig los.
Also am Zähler das violette Licht bekomme ich bei der Info-DSS Schnittstelle, die obere D0 die im Handbuch beschrieben ist klebt bei mir ein EasyMeter-Siegel drüber.
Jetzt aber die Frage, wie kann ich sehen ob meine Löterei und die IR-Diode funktioniert?
Ich habs mal ganz stümpferhaft zusammengebraten (wie im Schaltplan Widerstand gegen 3v3; Diode (lang) gegen GND; Widerstand+Diode (kurz) gegen RXD (sollte der Richtige sein, da der GPIO3 sein soll, den Tasmota als RX meldet, ich hab noch RX2 am ESP32) und an die INFO-DSS dran gehalten, aber sehe erstmal keine Werte im Tasmota. Telnet auf die IP + Port 23 kommt "Refused".
Siehe hier:
https://circuits4you.com/2018/12/31/esp32-devkit-esp32-wroom-gpio-pinout/
Ich habe jetzt mal ne TV-Fernbedienung genommen und mir die Konsole angesehen. (sollte ja auch ein IR-Signal sein?)
Wenn ich dort z.B. Lautstärke +/- sende in Richtung Diode kommt auf der Konsole auch nix. (war erstmal leichter als im Sicherungskasten zu fummeln)
Ansonsten macht er jetzt jede Sekunde das hier:
16:20:27.712 RSL: STATE = {"Time":"2022-06-01T16:20:27","Uptime":"0T00:11:41","UptimeSec":701,"Heap":155,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"Berry":{"HeapUsed":2,"Objects":31},"Wifi":{"AP":1,"SSId":"xxx","BSSId":"xxx","Channel":1,"Mode":"11n","RSSI":52,"Signal":-74,"LinkCount":1,"Downtime":"0T00:00:05"}}
16:20:27.725 RSL: SENSOR = {"Time":"2022-06-01T16:20:27","SML":{"Power_in":0.0,"Power_out":0.0,"Power_act":0.0,"Power_p1":0.0,"Power_p2":0.0,"Power_p3":0.0},"ESP32":{"Temperature":29.4},"TempUnit":"C"}
EDIT:
Müsste ich eventuell hier Anpassungen vornehmen:
+1,13,s,1,9600,SML
wie folgt:
+1,3,s,1,9600,SML
Lt. dem Link oben ist RXD (bzw. RX) bei mir GPIO03
EDIT:
Zumindest Tasmota und Firmware-seitig scheint alles iO.
MQTT läuft auch, denn die Readings vom Tasmota-Device landen alle vernünftig im FHEM und in meiner MariaDB.
Jetzt muss nur mein Gebrutzel noch der Schwachpunkt sein, warum nix rein kommt. XD
Zitat von: Damian am 20 Mai 2022, 18:18:40
Tasmota-Einstellungen für deinen Zähler von hier:
https://edv.mueggelland.de/smarter-stromzaehler/
Was wären denn für den Skript richtig?
im Link gibt es die Zeile
->Sensor53 r
Hier steht aber
=>Sensor53 r
https://tasmota.github.io/docs/Smart-Meter-Interface/#descriptor-syntax
Bei mir sieht das Skript so aus:
>D
>B
=>sensor53 r
>M 1
+1,3,s,0,9600,MT681
1,77070100010800ff@1000,Total Consumed,KWh,Total_in,3
1,77070100100700ff@1,Current Consumption,W,Power_cur,0
1,77070100020800ff@1000,Total Delivered,KWh,Total_out,3
1,77070100000009ff@#,Service ID,,Meter_id,0|
#
Hiernach:
https://www.easymeter.com/downloads/products/zaehler/Q3M/EDL11/BA_Easymeter_Q3M_2016-11-14.pdf
muss deine IR-Diode an die Info-DDS Stelle, dafür ist ja wohl das Stück Blech um das Loch für den Magneten.
Wenn du kein Oszilloskop hast, dann wirst du wohl hoffentlich einen Multimeter haben (sonst brauchst du mit solchen Projekten erst gar nicht anfangen :) ). Dann müsstest du an deiner angeschlossenen Diode Spannung erkennen, wenn du sie gegen das Licht einer Taschenlampe hältst.
Zitat von: Damian am 01 Juni 2022, 21:26:12
Wenn du kein Oszilloskop hast, dann wirst du wohl hoffentlich einen Multimeter haben (sonst brauchst du mit solchen Projekten erst gar nicht anfangen :) ). Dann müsstest du an deiner angeschlossenen Diode Spannung erkennen, wenn du sie gegen das Licht einer Taschenlampe hältst.
Multimeter habe ich ansich, aber gerade nicht zur Hand. Hab den Fehler nach Diskussion mit den Kollegen aber glaub gefunden.
Im verlinkten Schaltplan ist die Beschreibung der Diode falsch. Dort wird gesagt, dass der lange Pin der Diode an Ground gehört, was ja aber die Anode der Diode ist und da ich gestern nicht weiter darüber nachgedacht habe und strikt nach den Vorgaben gelötet habe, kann es folglich nicht funktionieren. Werde heute Abend die Diode drehen und dann sollte es laufen.
Zitat von: Stephan27 am 02 Juni 2022, 10:06:22
Multimeter habe ich ansich, aber gerade nicht zur Hand. Hab den Fehler nach Diskussion mit den Kollegen aber glaub gefunden.
Im verlinkten Schaltplan ist die Beschreibung der Diode falsch. Dort wird gesagt, dass der lange Pin der Diode an Ground gehört, was ja aber die Anode der Diode ist und da ich gestern nicht weiter darüber nachgedacht habe und strikt nach den Vorgaben gelötet habe, kann es folglich nicht funktionieren. Werde heute Abend die Diode drehen und dann sollte es laufen.
Also, ich habe es im angeschlossenen Zustand getestet, indem ich das Oszilloskop an die beiden Leitungen GND und RX angeschlossen habe. Du könntest mit einem Multimeter GND und RX messen. Dann sollte dort eine Spannung über 2 Volt anliegen. Wenn die Diode durch Licht (z. B. Taschenlampe) leitet, dann zieht sie die Spannung gegen Null. Das muss messbar sein. Die schnelle Impulsabfolge, wenn die Diode tatsächlich Daten empfängt, wirst du mit einem Multimeter nicht gut sehen können.
Ich werde wie gesagt später erstmal die Diode drehen, das kann so rum nicht stimmen.
Mit dem Multi schaue ich mal, falls das nicht funktioniert.
Zitat von: Damian am 01 Juni 2022, 21:10:50
Bei mir sieht das Skript so aus:
>D
>B
=>sensor53 r
>M 1
+1,3,s,0,9600,MT681
1,77070100010800ff@1000,Total Consumed,KWh,Total_in,3
1,77070100100700ff@1,Current Consumption,W,Power_cur,0
1,77070100020800ff@1000,Total Delivered,KWh,Total_out,3
1,77070100000009ff@#,Service ID,,Meter_id,0|
#
Dazu hätte ich noch eine Frage.
Ich habe heute den zweiten, fertigen Hichi, sowie meine PINs vom MSB bekommen. Nach 5 Minuten hatte ich die Werte in Tasmota und FHEM.
Jetzt eben habe ich die PIN eingegeben und sehe am Zähler im Display nun auch den Momentanverbrauch, im Tasmota landet aber weiter nur der Gesamtzählerstand.
Auf der Console vom Tasmota sehe ich keine Auffälligkeiten.
Liegt das jetzt an meinen SML-Statements, sitzt der Reader schlecht oder übermittelt die INFO-DSS einfach nicht mehr und ich muss an die D0/ MSB-Schnittstelle?
Zitat von: Damian am 01 Juni 2022, 21:26:12
Hiernach:
https://www.easymeter.com/downloads/products/zaehler/Q3M/EDL11/BA_Easymeter_Q3M_2016-11-14.pdf
muss deine IR-Diode an die Info-DDS Stelle, dafür ist ja wohl das Stück Blech um das Loch für den Magneten.
Nach dem Handbuch scheint mir die MSB/ D0 (liegt bei mir frei, aber ohne Magnet) da mehr zu liefern... allerdings weiß ich nicht wie ich erstmal die OBIS-Kennzahlen bekomme, um dann die SML-Statements zu bauen?
Zitat1,77070100010800ff@1000,Verbrauch,KWh,Power_in,1
1,77070100020800ff@1000,Einspeisung,KWh,Power_out,1
1,77070100100700ff@1,Akt. Verbrauch,W,Power_act,1
1,77070100240700ff@1,Wirkleistung L1,W,Power_p1,1
1,77070100380700ff@1,Wirkleistung L2,W,Power_p2,1
1,770701004c0700ff@1,Wirkleistung L3,W,Power_p3,1
hiernach sollte auch die aktuelle Leistung bei deinem Zähler angezeigt werden.
In FHEM verzichte ich bewusst auf diesen Wert, denn das Übertragungsintervall der Werte habe ich auf 60 Sekunden gestellt. Dann ist ein momentaner Bezug bzw. Einspeisung ggf. nach einigen Sekunden nicht mehr aktuell, daher errechne ich lieber in FHEM die durchschnittliche Leistung des Bezugs/Einspeisung der letzten Minute aus den Zählerständen.
Zitat von: Damian am 02 Juni 2022, 21:07:17
hiernach sollte auch die aktuelle Leistung bei deinem Zähler angezeigt werden.
In FHEM verzichte ich bewusst auf diesen Wert, denn das Übertragungsintervall der Werte habe ich auf 60 Sekunden gestellt. Dann ist ein momentaner Bezug bzw. Einspeisung ggf. nach einigen Sekunden nicht mehr aktuell, daher errechne ich lieber in FHEM die durchschnittliche Leistung des Bezugs/Einspeisung der letzten Minute aus den Zählerständen.
Also ich habe jetzt zwei Tasmota laufen.
1x Hichi - Fertigprodukt (Haus)
1x ESP32 - Eigenbau (Wärmepumpe)
Beide zeigen mir jetzt Verbrauch (also Gesamtzählerwert) und aktuellen Verbrauch (jede Sekunde) an.
Heißt der SML in Zeile 1 und in Zeile 3 liefert Werte.
Die Anzeige nach L1, L2, L3 macht leider keiner der Beiden, obwohl es bei EasyMeter beschrieben steht.
Um FHEM und die Readings kümmere ich mich später, mir war erstmal wichtig dass die Devices laufen und Werte liefern.
Da hattest du ja auch deinen Wiki-Eintrag verlinkt? Ich muss dann nur wieder schauen, da ich mit MariaDB anstelle eines FileLOG und aktuell auch meine FHEM-Diagramme auf Grafana umziehe. (mit Grafana und SQL habe ich einfach mehr Erfahrung als mit SVG und den Plots in FHEM)
Würde mich trotzdem interessieren, warum er mir die Phasenleistung nicht anzeigt.
Wie bekomme ich eigentlich angezeigt, was der ESP alles empfängt... also wenn kein Skript laufen würde? (Konsole, Telnet?)
Die Anzeige nach L1, L2, L3 macht leider keiner der Beiden, obwohl es bei EasyMeter beschrieben steht
Es muss nicht alles freigeschaltet sein, was beschrieben ist. Ob Tasmota da mehr Einsicht bietet, weiß ich nicht.
Meiner liefert z. B. nicht die einzelnen Phasen, obwohl es dokumentiert ist. Über die serielle Schnittstelle konnte ich zuvor alles loggen.
Zitat von: Damian am 02 Juni 2022, 21:55:09
Die Anzeige nach L1, L2, L3 macht leider keiner der Beiden, obwohl es bei EasyMeter beschrieben steht
Es muss nicht alles freigeschaltet sein, was beschrieben ist. Ob Tasmota da mehr Einsicht bietet, weiß ich nicht.
Meiner liefert z. B. nicht die einzelnen Phasen, obwohl es dokumentiert ist. Über die serielle Schnittstelle konnte ich zuvor alles loggen.
Macht es da einen Unterschied ob ich Oben an D0 oder vorn an die INFO-DSS gehe?
Bzw. wenn er Werte liefert, kann ich dann davon ausgehen dass er Alles empfängt oder kann er wenn die Diode blöd sitzt auch nur einen Teil empfangen?
Zitat von: Stephan27 am 02 Juni 2022, 21:58:00
Macht es da einen Unterschied ob ich Oben an D0 oder vorn an die INFO-DSS gehe?
Bzw. wenn er Werte liefert, kann ich dann davon ausgehen dass er Alles empfängt oder kann er wenn die Diode blöd sitzt auch nur einen Teil empfangen?
Du kannst beide Schnittstellen ausprobieren.
Ich würde ausschließen, dass deine Diode nur einen Teil ausliest und den Rest nicht. Wenn sie nicht richtig sitzen würde, dann hättest du Aussetzer oder irgendwelche unplausiblen Werte.
Ich glaub ich habe die Rohdaten gefunden:
Zitat21:06:07.847 : 77 07 81 81 c7 82 03 ff 01 01 01 01 04 45 53 59 01
21:06:07.852 : 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 45 53 59 11 03 9e 81 fa 01
21:06:07.856 : 77 07 01 00 01 08 00 ff 64 00 01 80 01 62 1e 52 fc 59 00 00 00 20 a0 c5 33 bc 01
21:06:07.861 : 77 07 01 00 02 08 00 ff 64 00 01 80 01 62 1e 52 fc 59 00 00 00 00 00 1b 6d 0f 01
21:06:07.866 : 77 07 01 00 01 08 01 ff 01 01 62 1e 52 fc 59 00 00 00 20 a0 a4 1a ab 01
21:06:07.947 : 77 07 01 00 01 08 02 ff 01 01 62 1e 52 fc 59 00 00 00 00 00 21 19 10 01
21:06:08.718 : 77 07 01 00 10 07 00 ff 01 01 62 1b 52 fe 59 00 00 00 00 00 00 05 f7 01 01 01 63 ab bb 00 76 0b 45 53 59 4d 81 fa 18 c1
21:06:08.723 : 77 01 0b 09 01 45 53 59 11 03 9e 81 fa 08 01 00 62 0a ff ff 00 72 62 01 65 08 40 99 59
21:06:08.727 : 77
21:06:08.815 : 77 07 81 81 c7 82 03 ff 01 01 01 01 04 45 53 59 01
21:06:08.819 : 77 07 01 00 00 00 09 ff 01 01 01 01 0b 09 01 45 53 59 11 03 9e 81 fa 01
21:06:08.824 : 77 07 01 00 01 08 00 ff 64 00 01 80 01 62 1e 52 fc 59 00 00 00 20 a0 c5 33 e6 01
21:06:08.829 : 77 07 01 00 02 08 00 ff 64 00 01 80 01 62 1e 52 fc 59 00 00 00 00 00 1b 6d 0f 01
21:06:08.833 : 77 07 01 00 01 08 01 ff 01 01 62 1e 52 fc 59 00 00 00 20 a0 a4 1a d5 01
21:06:08.915 : 77 07 01 00 01 08 02 ff 01 01 62 1e 52 fc 59 00 00 00 00 00 21 19 10 01
21:06:09.718 : 77 07 01 00 10 07 00 ff 01 01 62 1b 52 fe 59 00 00 00 00 00 00 05 ef 01 01 01 63 06 7b 00 76 0b 45 53 59 4d 81 fa 18 c1
21:06:09.723 : 77 01 0b 09 01 45 53 59 11 03 9e 81 fa 08 01 00 62 0a ff ff 00 72 62 01 65 08 40 99 5a
21:06:09.727 : 77
Wären die drei/ vier, die ich aktuell nicht auslese:
1,77078181c78203ff
1,77070100000009ff
1,77070100010801ff
1,77070100010802ff
Zitat von: Stephan27 am 02 Juni 2022, 22:06:54
Ich glaub ich habe die Rohdaten gefunden:
Wären die drei/ vier, die ich aktuell nicht auslese:
1,77078181c78203ff
1,77070100000009ff
1,77070100010801ff
1,77070100010802ff
Diese Angaben kommen bei dir nicht vor:
1,77070100240700ff@1,Wirkleistung L1,W,Power_p1,1
1,77070100380700ff@1,Wirkleistung L2,W,Power_p2,1
1,770701004c0700ff@1,Wirkleistung L3,W,Power_p3,1
Die Zeile würde ich mir genauer anschauen:
77 07 01 00 10 07 00 ff 01 01 62 1b 52 fe 59 00 00 00 00 00 00 05 f7 01 01 01 63 ab bb 00 76 0b 45 53 59 4d 81 fa 18 c1
Zitat von: Damian am 03 Juni 2022, 07:43:29
Diese Angaben kommen bei dir nicht vor:
1,77070100240700ff@1,Wirkleistung L1,W,Power_p1,1
1,77070100380700ff@1,Wirkleistung L2,W,Power_p2,1
1,770701004c0700ff@1,Wirkleistung L3,W,Power_p3,1
Die Zeile würde ich mir genauer anschauen:
77 07 01 00 10 07 00 ff 01 01 62 1b 52 fe 59 00 00 00 00 00 00 05 f7 01 01 01 63 ab bb 00 76 0b 45 53 59 4d 81 fa 18 c1
Genau die "Wirkleistungen" die überall im Netz dokumentiert sind gibt er bei mir leider nicht aus.
Die Zeile die du "extrahiert" hast ist der Momentanverbrauch in Watt, also zumindest der erste Teil:
77 07 01 00 10 07 00 ff
im Vergleich:
1,77070100100700ff@1,Akt. Verbrauch,W,Power_act,1
Ansich ist es okay, hätte aber gehofft noch was mehr aus dem Zähler zu bekommen.
Zitat von: Damian am 02 Juni 2022, 21:07:17
In FHEM verzichte ich bewusst auf diesen Wert, denn das Übertragungsintervall der Werte habe ich auf 60 Sekunden gestellt. Dann ist ein momentaner Bezug bzw. Einspeisung ggf. nach einigen Sekunden nicht mehr aktuell, daher errechne ich lieber in FHEM die durchschnittliche Leistung des Bezugs/Einspeisung der letzten Minute aus den Zählerständen.
Das war u.A. in dem Link zum Wiki mit drin die Berechnungen?(DOIF) Du hattest aber alles FileBased? (also die Logs?)
So berechne ich die Leistung:
attr di_counter_new event_Readings power_pv:sprintf("%0.3f",[MQTT2_DVES_C58DCB:SENSOR_COUNTER_C1:diff]*3.6/60),\
power_f:sprintf("%0.3f",[MQTT2_DVES_C58DCB:SENSOR_MT681_Total_out:diff]*60),\
power_c:sprintf("%0.3f",[MQTT2_DVES_C58DCB:SENSOR_MT681_Total_in:diff]*60),\
power_fc:[$SELF:power_f]-[$SELF:power_c]
Zitat von: Stephan27 am 03 Juni 2022, 12:23:56
....
Ansich ist es okay, hätte aber gehofft noch was mehr aus dem Zähler zu bekommen.
Vielleicht hilft das https://www.msxfaq.de/sonst/bastelbude/smartmeter_d0_sml_protokoll.htm (https://www.msxfaq.de/sonst/bastelbude/smartmeter_d0_sml_protokoll.htm) ein wenig die Daten zu verstehen.
Und es macht eventuell Sinn die Rohdaten (also das ganze Protokoll) mal am Lesekopf abzugreifen/auszulesen. Hatte ich vorab an einem TestRaspi mit Lesekopf an RX/TX gemacht (oder mit EspEasy ser2net, bei Tasmota weiss ich nicht ob man die ganzen Rohdaten abgreifen kann).
==> Also von Hex 1B 1B 1B 1B 01 01 01 01 ..... bis 1B 1B 1B 1B 1A XX XX XX XX
Dann kann man es mal auf die Bereiche mit 77 07 zerlegen und sehen was der Zähler alles schickt um es von Tasmota interpretieren zu lassen.
Edit:
Eine Variante ohne Hex-Jonglieren ist, das OBIS-Modul zu aktivieren und mit dem Datenstrom des Lesekopfs seriell oder per LAN (z.B. ser2net) zu verbinden. Dann kann man sehen welche Daten vom Zähler durch das Modul erkannt werden.
Aus der Commandref zum OBIS Modul
If you use a ser2net connection, <device> is ip-address:port or hostname:port.
Optional: MeterType can be of
VSM102 -> Voltcraft VSM102
E110 -> Landis&&;Gyr E110
E350USB -> Landis&&;Gyr E350 USB-Version
MT382 -> ISKRA MT382
Standard -> Data comes as plainText
SML -> Smart Message Language
Example:
define myPowerMeter OBIS /dev/ttyPlugwise@9600,7,E,1 VSM102
define myPowerMeter OBIS 192.168.0.12:1234 Standard
Zitat von: Damian am 03 Juni 2022, 23:18:26
So berechne ich die Leistung:
attr di_counter_new event_Readings power_pv:sprintf("%0.3f",[MQTT2_DVES_C58DCB:SENSOR_COUNTER_C1:diff]*3.6/60),\
power_f:sprintf("%0.3f",[MQTT2_DVES_C58DCB:SENSOR_MT681_Total_out:diff]*60),\
power_c:sprintf("%0.3f",[MQTT2_DVES_C58DCB:SENSOR_MT681_Total_in:diff]*60),\
power_fc:[$SELF:power_f]-[$SELF:power_c]
Ich hab das letzte Woche auf die Schnelle mal wie folgt für mich abgegriffen und in die DB schreiben lassen:
power_c:sprintf("%0.3f",[*MeinDevice*:SML_Power_in:diff]*60)
Einen Eintrag habe ich 1x je Minute, was ja okay ist...
90% sagt es aber 0,00
10% sagt es 6,00
Hab mal nen Screen vom Counter mit angehangen.
@RalfRog
Die Daten die ich auf der letzten Seite gepostet hatte waren die Rohdaten, wenn ich Tasmota ohne Skript in Debug-Modus schalte. Ist also Alles was per RX reinkommt.
Was die OBIS-Geschichte angeht.
Da müsste ich wahrscheinlich das Tasmota umstellen bzw. was Anderes flashen um das direkt anzusprechen?
also:
power_c:sprintf("%0.3f",[*MeinDevice*:SML_Power_in:diff]*60)
kann schon mal nicht funktionieren, denn es geht um den Inhalt eines konkreten Readings und da sind Sterne im Namen nicht erlaubt.
Zitat von: Damian am 10 Juni 2022, 20:08:37
also:
power_c:sprintf("%0.3f",[*MeinDevice*:SML_Power_in:diff]*60)
kann schon mal nicht funktionieren, denn es geht um den Inhalt eines konkreten Readings und da sind Sterne im Namen nicht erlaubt.
*Mein Device* stand und steht natürlich mein Gerät, also der Definierte Name drin, da ich aber zwei Zähler Auslese steht dort meine Zählernummer im Namen, die ich hier nicht öffentlich posten möchte. Sieht man aber auch im Screenshot bereits.
Mein Zähler liefert kWh mit drei Nachkommastellen. Hier die Umrechnung:
1 kWh entspricht 1000 Watt/3600 Sekunden, da ich im 60 Sekundenintervall messe, muss ich die Differenz mal 60 nehmen um auf Kilowatt zu kommen.
Wenn die Differenz in 60 Sekunden z. B. 0.001 (kleinste mögliche Differenz) beträgt, dann habe ich in dieser Zeit eine durchschnittliche Leistungsaufnahme von 0,001*60=0,06 Kilowatt, was 60 Watt entspricht. Ich kann also die Leistung mit einer Genauigkeit von maximal 60 Watt bestimmen. Würde ich alle 3 Minuten senden, dann würde ich die Genauigkeit auf 20 Watt erhöhen, dafür müsste ich länger warten und der durchschnittliche Verbrauch würde weniger dem momentanen Verbrauch entsprechen.
Die Umrechnung hängt in erste Linie davon ab, in welcher Einheit der Zähler sendet. event-on-change-reading-Attribut ist natürlich für die Messung bei diesem Reading verboten ;)
Danke für die ausführliche Antwort.
Ich habe im Tasmota nur eine Nachkommastelle ausgeben lassen. Ich habe das jetzt auch mal auf 3 Stellen umgestellt mal sehen ob das schon die Lösung ist.
Hab es mal geändert, aber keine Ahnung. Der Output alterniert jetzt immer zwischen 0 und 0,06.
Bin aber auch nicht wirklich schlauer was ich nun genau wo eintragen muss.
Tasmota ist wie in deinem Link damals beschrieben eingestellt und liefert Werte, in Fhem hat das MQTT automatisch Tasmota als Gerät angelegt und den Zähler habe ich so angelegt wie du weiter oben kurz geschrieben hast und mit dem Event_Reading versehen.
Mit einer Nachkommastelle kann es nicht funktionieren, dafür ist die Auflösung viel zu gering, um in einer Minute etwas zu messen. 0,1*60, das wären 6 Kilowatt, soviel wirst du selten verbrauchen ;)
Wie gesagt die Änderung auf 3 hat aber augenscheinlich nichts gebracht. Keine Ahnung was jetzt nicht stimmt oder wo ich suchen muss.
Zitat von: Stephan27 am 11 Juni 2022, 16:14:45
Wie gesagt die Änderung auf 3 hat aber augenscheinlich nichts gebracht. Keine Ahnung was jetzt nicht stimmt oder wo ich suchen muss.
Dein Zähler muss auch die Genauigkeit auf drei Nachkommastellen liefern. Wenn er das nicht tut, dann kannst du dir den Aufwand sparen und eben die momentane Leistung anzeigen, die geliefert wird.
Sorry habe ich nicht erwähnt, er zeigt es auch an ja. Also Tasmota zeigt mir jetzt Zählerstand in KWh bis 3 Nachkommastellen an. Haut auch hin wenn ich das so beobachte.
ZitatAlso Tasmota zeigt mir jetzt Zählerstand in KWh bis 3 Nachkommastellen an
...und wo ist da jetzt Dein Problem? Es sitzt ja keiner vor Deinem Bildschirm, also solltest Du etwas mehr Infos liefern, dann kann man auch was erreichen.
Wenn Du sagst, Tasmota zeigt jetzt 3 Nachkommastellen, dann vermute ich, auf der Main-Seite von Tasmota, right?
Dann schau Dir doch einfach mal die Console in Tasmota an, dort werden die MQT-posts geziegt. Dort siehst Du sehr leicht, ob und wie der Wert an den MQTT-Broker weitergegeben wird. Ist das soweit richtig gehts an fhem.
Das MQTT-Device in fhem wird ja automatisch angelegt, also sollte vorhanden sein.
Dann würde ich mal die event-on-change etc vorrübergehend rausnehmen, damit Du einfach mal alles siehst, was ankommt. Dann den Event-monitor anschmeissen, die events eine Weile beobachten, diese dann nach Wunsch einschränken und für die Power-rechnung das userreadings anlegen (wurde hier ja schon beschrieben).
Viel Erfolg!
Sany
Zitat von: Stephan27 am 10 Juni 2022, 09:56:15
@RalfRog
Die Daten die ich auf der letzten Seite gepostet hatte waren die Rohdaten, wenn ich Tasmota ohne Skript in Debug-Modus schalte. Ist also Alles was per RX reinkommt.
Was die OBIS-Geschichte angeht.
Da müsste ich wahrscheinlich das Tasmota umstellen bzw. was Anderes flashen um das direkt anzusprechen?
Ja vermutlich. Ich hatte mir die Daten im Vorfeld per ESPEasy auf das OBIS Modul geholt um zu sehen was der Zähler so liefert. Habe Tasmota erst dann geflasht.
Tasmota kann zwar auch ser2net aber nur wenn man es mit #define USE_TCP_BRIDGE kompiliert hat - oder man den zbbridge build im Einsatz hat.
Also on-the-fly in der vorhandenen Konstellation lässt sich das wohl nicht auf die Schnele gegenchecken. :-[
Zitat von: Sany am 12 Juni 2022, 16:02:06
...und wo ist da jetzt Dein Problem? Es sitzt ja keiner vor Deinem Bildschirm, also solltest Du etwas mehr Infos liefern, dann kann man auch was erreichen.
Wenn Du sagst, Tasmota zeigt jetzt 3 Nachkommastellen, dann vermute ich, auf der Main-Seite von Tasmota, right?
Dann schau Dir doch einfach mal die Console in Tasmota an, dort werden die MQT-posts geziegt. Dort siehst Du sehr leicht, ob und wie der Wert an den MQTT-Broker weitergegeben wird. Ist das soweit richtig gehts an fhem.
Das MQTT-Device in fhem wird ja automatisch angelegt, also sollte vorhanden sein.
Dann würde ich mal die event-on-change etc vorrübergehend rausnehmen, damit Du einfach mal alles siehst, was ankommt. Dann den Event-monitor anschmeissen, die events eine Weile beobachten, diese dann nach Wunsch einschränken und für die Power-rechnung das userreadings anlegen (wurde hier ja schon beschrieben).
Viel Erfolg!
Sany
Also wo liegt das Problem?
Ich hatte mich jetzt an Damian seinen Links orientiert und versucht die entsprechend kurzen Auswertungen/ Anzeigen zubauen, also Tages, Monats und Jahreszähler (neben den Diagrammen die permanent laufen) und hier funktionieren zunächst die Berechnungen nicht.
Ich versuchs nochmal zu rekapitulieren, auch wenns in den einzelnen Posts schon auftaucht:
- Tasmota zeigt erstmal Alles was ich brauche und mittlerweile auch in der erforderlichen Genauigkeit
- Tasmota übermittelt Alles was es anzeigt auch per MQTT an FHEM und hat auch die entsprechenden Readings drin
- FHEM hat automatisch das MQTT-Device angelegt, ich zusätzlich von Hand einen Zähler
- in den Zähler habe ich von Damian die Formel übernommen.
Um die Screens nochmal zusammenzufassen hier nochmal: (Basis-Daten von MQTT vom Zähler + Attribute und Daten vom Counter)
Meine Zählernummer, WLAN usw. habe ich geschwärzt.
Es geht hier wohl um das angegebene Reading des MQTT-Devices SML_Power_in.
Warum ist es hier nicht zu sehen? Alles andere interessiert hier nicht.
Power wäre aber das falsche Reading, denn Power ist Leistung, aber diese willst du aus dem Energiezähler erst bestimmen.
Zitat von: Damian am 20 Juni 2022, 22:06:54
Es geht hier wohl um das angegebene Reading des MQTT-Devices SML_Power_in.
Warum ist es hier nicht zu sehen? Alles andere interessiert hier nicht.
Power wäre aber das falsche Reading, denn Power ist Leistung, aber diese willst du aus dem Energiezähler erst bestimmen.
Das Reading ist nicht zu sehen, weil ich scheinbar einen Screenshot vergessen habe, SML_Power_in ist aber im Device vorhanden und liefert den Zählerstand. (Screen reiche ich gerne nach)
Der Name des Readings wird doch durch den Skript und Tasmota vorgegeben und ist von mir aus der Anleitung von Hand so benannt und taucht auch im FHEM so auf mit dem Gesamtzählerstand.
Quelle hier:
https://edv.mueggelland.de/smarter-stromzaehler/
"1,77070100010800ff@1000,Verbrauch,KWh,Power_in,1" -- so habe ich es auch benannt und das taucht im FHEM als "SML_Power_in" auf.
Zitatweil ich scheinbar einen Screenshot vergessen habe]
ZitatScreen reiche ich gerne nach
bitte keine Screenshots, poste ein list vom Zählerdevice MQTT_HAUS_xyz, nur da sieht man alles relevante, um weiterzuhelfen. Du kannst gerne Deine "privaten" Daten mit X ersetzen, bei der FUUID ist das aber vergebliche Liebesmüh....
Und gerne auch mal das Script aus dem Script-Editor von Tasmota auch posten.
Gruß
Sany
MQTT-Device:
Internals:
CID DVES_1EC934
DEF DVES_1EC934
DEVICETOPIC MQTT_HAUS_zaehlernummer
FUUID 6298caf3-f33f-c6f7-1830-c1e5c99c0578ec7d
IODev myBroker
LASTInputDev myBroker
MSGCNT 14836
NAME MQTT_HAUS_zaehlernummer
NR 34
STATE ???
TYPE MQTT2_DEVICE
myBroker_CONN myBroker_172.16.1.117_63404
myBroker_MSGCNT 14836
myBroker_TIME 2022-06-22 20:35:53
Helper:
DBLOG:
SML_Power_act:
DBLogging:
TIME 1655922953.08933
VALUE 356.9
SML_Power_in:
DBLogging:
TIME 1655922953.08933
VALUE 11061.704
READINGS:
2022-06-22 20:35:53 Heap 21
2022-06-21 23:59:52 IODev myBroker
2022-06-02 22:40:27 Info1_FallbackTopic cmnd/DVES_1EC934_fb/
2022-06-02 22:40:27 Info1_GroupTopic cmnd/tasmotas/
2022-06-02 22:40:27 Info1_Module Generic
2022-06-02 22:40:27 Info1_Version 11.1.0(tasmota)
2022-06-02 22:40:27 Info2_Hostname tasmota-1EC934-2356
2022-06-02 22:40:27 Info2_IPAddress 172.16.1.117
2022-06-02 22:40:27 Info2_WebServerMode Admin
2022-06-02 22:40:27 Info3_BootCount 10
2022-06-02 22:40:27 Info3_RestartReason Software/System restart
2022-06-22 00:00:00 LWT Online
2022-06-22 20:35:53 LoadAvg 19
2022-06-22 20:35:53 MqttCount 27
2022-06-22 00:00:00 POWER
2022-06-02 22:43:58 SML_1 217
2022-06-02 22:43:33 SML_1_1 217
2022-06-02 22:28:13 SML_1__1 0.000000000000000
2022-06-11 14:46:01 SML_CMD restart
2022-06-02 22:39:52 SML_E_in 0.000
2022-06-02 22:39:52 SML_E_out 0.000
2022-06-02 22:39:52 SML_L1 0.00
2022-06-02 22:39:52 SML_L2 0.00
2022-06-02 22:39:52 SML_L3 0.00
2022-06-02 22:39:52 SML_NetID 0
2022-06-02 22:39:52 SML_P_in 0.00
2022-06-02 22:37:53 SML_Power_Sum 10925
2022-06-02 22:37:53 SML_Power_T1 10925
2022-06-02 22:37:53 SML_Power_T2 0
2022-06-02 22:37:53 SML_Power_Use_Sum 0.0
2022-06-22 20:35:53 SML_Power_act 356.9
2022-06-22 20:35:53 SML_Power_in 11061.704
2022-06-22 20:35:53 SML_Power_out 0.2
2022-06-22 20:35:53 SML_Power_p1 0.0
2022-06-22 20:35:53 SML_Power_p2 0.0
2022-06-22 20:35:53 SML_Power_p3 0.0
2022-06-02 22:37:13 SML_Volt_L1 0.0
2022-06-02 22:37:13 SML_Volt_L2 0.0
2022-06-02 22:37:13 SML_Volt_L3 0.0
2022-06-02 22:37:13 SML_Watt_L1 0.00
2022-06-02 22:37:13 SML_Watt_L2 0.00
2022-06-02 22:37:13 SML_Watt_L3 0.00
2022-06-02 22:37:17 SML_Watt_Summe 589.24
2022-06-02 22:43:33 SML_serial
2022-06-22 20:35:53 Sleep 50
2022-06-22 20:35:53 SleepMode Dynamic
2022-06-22 20:35:53 Time 2022-06-22T19:35:53
2022-06-22 20:35:53 Uptime 19T21:55:31
2022-06-22 20:35:53 UptimeSec 1720531
2022-06-22 20:35:53 Wifi_AP 1
2022-06-22 20:35:53 Wifi_BSSId D0:6F:82:39:64:C0
2022-06-22 20:35:53 Wifi_Channel 1
2022-06-22 20:35:53 Wifi_Downtime 0T00:00:03
2022-06-22 20:35:53 Wifi_LinkCount 1
2022-06-22 20:35:53 Wifi_Mode 11n
2022-06-22 20:35:53 Wifi_RSSI 96
2022-06-22 20:35:53 Wifi_SSId wlan
2022-06-22 20:35:53 Wifi_Signal -52
2022-06-22 00:00:00 btn_1 0
2022-06-22 00:00:00 btn_2 0
2022-06-22 00:00:00 btn_3 0
2022-06-22 00:00:00 btn_4 0
2022-06-22 00:00:00 btn_5 0
2022-06-22 00:00:00 btn_6 0
2022-06-22 00:00:00 btn_7 0
2022-06-22 00:00:00 btn_8 0
2022-06-22 00:00:00 dn Tasmota
2022-06-22 00:00:00 fn_1 Tasmota
2022-06-22 00:00:00 ft %prefix%/%topic%/
2022-06-22 00:00:00 hn tasmota-1EC934-2356
2022-06-22 00:00:00 if 0
2022-06-22 00:00:00 ip ip_tasmota
2022-06-22 00:00:00 lk 0
2022-06-22 00:00:00 lt_st 0
2022-06-22 00:00:00 mac mac
2022-06-22 00:00:00 md Generic
2022-06-22 00:00:00 ofln Offline
2022-06-22 00:00:00 onln Online
2022-06-22 00:00:00 rl_1 0
2022-06-22 00:00:00 rl_2 0
2022-06-22 00:00:00 rl_3 0
2022-06-22 00:00:00 rl_4 0
2022-06-22 00:00:00 rl_5 0
2022-06-22 00:00:00 rl_6 0
2022-06-22 00:00:00 rl_7 0
2022-06-22 00:00:00 rl_8 0
2022-06-22 00:00:00 sho_1 0
2022-06-22 00:00:00 sho_2 0
2022-06-22 00:00:00 sho_3 0
2022-06-22 00:00:00 sho_4 0
2022-06-02 22:43:22 sn_SML_1_1 217
2022-06-02 22:39:48 sn_SML_E_in 0.000
2022-06-02 22:39:48 sn_SML_E_out 0.000
2022-06-02 22:39:48 sn_SML_L1 0.00
2022-06-02 22:39:48 sn_SML_L2 0.00
2022-06-02 22:39:48 sn_SML_L3 0.00
2022-06-02 22:39:48 sn_SML_NetID 0
2022-06-02 22:39:48 sn_SML_P_in 0.00
2022-06-22 00:00:00 sn_SML_Power_act 221.3
2022-06-22 00:00:00 sn_SML_Power_in 11057.440
2022-06-22 00:00:00 sn_SML_Power_out 0.2
2022-06-22 00:00:00 sn_SML_Power_p1 0.0
2022-06-22 00:00:00 sn_SML_Power_p2 0.0
2022-06-22 00:00:00 sn_SML_Power_p3 0.0
2022-06-02 22:43:22 sn_SML_serial
2022-06-22 00:00:00 sn_Time 2022-06-21T23:00:00
2022-06-22 00:00:00 so_11 0
2022-06-22 00:00:00 so_114 0
2022-06-22 00:00:00 so_117 0
2022-06-22 00:00:00 so_13 0
2022-06-22 00:00:00 so_17 0
2022-06-22 00:00:00 so_20 0
2022-06-22 00:00:00 so_30 0
2022-06-22 00:00:00 so_4 0
2022-06-22 00:00:00 so_68 0
2022-06-22 00:00:00 so_73 0
2022-06-22 00:00:00 so_82 0
2022-06-22 00:00:00 state_1 OFF
2022-06-22 00:00:00 state_2 ON
2022-06-22 00:00:00 state_3 TOGGLE
2022-06-22 00:00:00 state_4 HOLD
2022-06-22 00:00:52 subscriptions cmnd/DVES_1EC934_fb/# cmnd/tasmota_1EC934/# cmnd/tasmotas/#
2022-06-22 00:00:00 sw 11.1.0
2022-06-22 00:00:00 swc_1 -1
2022-06-22 00:00:00 swc_2 -1
2022-06-22 00:00:00 swc_3 -1
2022-06-22 00:00:00 swc_4 -1
2022-06-22 00:00:00 swc_5 -1
2022-06-22 00:00:00 swc_6 -1
2022-06-22 00:00:00 swc_7 -1
2022-06-22 00:00:00 swc_8 -1
2022-06-22 00:00:00 t tasmota_1EC934
2022-06-22 00:00:00 tp_1 cmnd
2022-06-22 00:00:00 tp_2 stat
2022-06-22 00:00:00 tp_3 tele
2022-06-22 00:00:00 ty 0
2022-06-22 00:00:00 ver 1
Attributes:
DbLogExclude .*
DbLogInclude SML_Power_act,SML_Power_in:3600
readingList DVES_1EC934:tele/tasmota_1EC934/LWT:.* LWT
DVES_1EC934:cmnd/tasmota_1EC934/POWER:.* POWER
DVES_1EC934:tele/tasmota_1EC934/INFO1:.* { json2nameValue($EVENT) }
DVES_1EC934:tele/tasmota_1EC934/INFO2:.* { json2nameValue($EVENT) }
DVES_1EC934:tele/tasmota_1EC934/INFO3:.* { json2nameValue($EVENT) }
DVES_1EC934:tele/tasmota_1EC934/STATE:.* { json2nameValue($EVENT) }
DVES_1EC934:tele/tasmota_1EC934/SENSOR:.* { json2nameValue($EVENT) }
DVES_1EC934:tasmota/discovery/A4E57C1EC934/config:.* { json2nameValue($EVENT) }
DVES_1EC934:tasmota/discovery/A4E57C1EC934/sensors:.* { json2nameValue($EVENT) }
DVES_1EC934:stat/tasmota_1EC934/RESULT:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
Tasmota_Device Skript:
>D
>B
=>sensor53 r
>M
+1,3,s,1,9600,SML
1,77070100010800ff@1000,Verbrauch,KWh,Power_in,3
1,77070100100700ff@1,Akt. Verbrauch,W,Power_act,1
1,=h--
1,77070100020800ff@1000,Einspeisung,KWh,Power_out,1
1,=h--
1,77070100240700ff@1,Wirkleistung L1,W,Power_p1,1
1,77070100380700ff@1,Wirkleistung L2,W,Power_p2,1
1,770701004c0700ff@1,Wirkleistung L3,W,Power_p3,1
#
CounteR:
Internals:
DEF ##
FUUID 629b435b-f33f-c6f7-3a3b-9eb50884f8162fea
MODEL FHEM
NAME di_counter_new
NOTIFYDEV global,MQTT_HAUS_zaehlernummer
NR 35
NTFY_ORDER 50-di_counter_new
STATE initialized
TYPE DOIF
VERSION 25819 2022-03-12 23:15:22
READINGS:
2022-06-04 13:34:52 cmd 0
2022-06-04 13:34:52 mode enabled
2022-06-22 20:40:03 power_c 0.240
2022-06-04 13:34:52 state initialized
Regex:
accu:
MQTT_HAUS_zaehlernummer:
accu:
SML_Power_in ^MQTT_HAUS_zaehlernummer$:^SML_Power_in:
collect:
event_Readings:
MQTT_HAUS_zaehlernummer:
power_c:
SML_Power_in ^MQTT_HAUS_zaehlernummer$:^SML_Power_in:
accu:
MQTT_HAUS_zaehlernummer SML_Power_in:
dim 2
value:
11061.793
11061.797
condition:
do:
0:
event_Readings:
power_c sprintf("%0.3f",::ReadingValDoIf($hash,'MQTT_HAUS_zaehlernummer','SML_Power_in','','diff')*60)
helper:
NOTIFYDEV global,MQTT_HAUS_zaehlernummer
event SML_Power_in: 11061.797,SML_Power_p2: 0.0,SML_Power_p3: 0.0,SML_Power_act: 1653.5,Time: 2022-06-22T19:40:03,SML_Power_out: 0.2,SML_Power_p1: 0.0
globalinit 1
last_timer 0
sleeptimer -1
triggerDev MQTT_HAUS_zaehlernummer
triggerEvents:
SML_Power_in: 11061.797
SML_Power_p2: 0.0
SML_Power_p3: 0.0
SML_Power_act: 1653.5
Time: 2022-06-22T19:40:03
SML_Power_out: 0.2
SML_Power_p1: 0.0
triggerEventsState:
SML_Power_in: 11061.797
SML_Power_p2: 0.0
SML_Power_p3: 0.0
SML_Power_act: 1653.5
Time: 2022-06-22T19:40:03
SML_Power_out: 0.2
SML_Power_p1: 0.0
perlblock:
uiState:
uiTable:
Attributes:
DbLogExclude .*
event_Readings power_c:sprintf("%0.3f",[MQTT_HAUS_zaehlernummer:SML_Power_in:diff]*60)
Die letzten beiden empfangen Werte sind:
Zitatvalue:
11061.793
11061.797
Differenz ist also 0.004
Daraus wird berechnet 0.004*60=0.240
Also ein Verbrauch von 240 Watt, was auch in power_c-Reading zu finden ist.
Es funktioniert also alles wie es soll.
Wichtig ist halt nur, dass die Werte von SML_Power_in immer alle 60 Sekunden kommen.
Dann weiß ich nicht, was ich dort zuletzt gesehen habe. (ist ja auch das einzige Reading, also kann ich mich auch nicht verguckt haben) :o
Ich nehme Power_C mal wieder in die Aufzeichung zur Datenbank auf beobachte wie sich der Wert entwickelt.
Der Power_C ist ja jetzt der Schnitt auf eine Minute und den summiert man dann für den Tag oder die Woche auf, richtig?
Oder bilde ich auf selbem Weg mit anderem Faktor einfach z.B. den Tag?
"Wichtig ist halt nur, dass die Werte von SML_Power_in immer alle 60 Sekunden kommen."
Da ist mir eins jetzt noch nicht ganz klar.
"Muss" der Wert alle 60 Sekunden kommen oder "Darf" er nur alle 60 Sekunden kommen?
Aktuell übermittelt Tasmota jede Sekunde, da ja auch der echt Momentanverbrauch übertragen wird. (was der Zähler meldet) - vlt. liegt auch hier der Fehler?
Wie kann ich das einzelne Reading im Bezug darauf einschränken, dass es garnicht so häufig aktualisiert wird? (aktuell habe ich nur eingestellt, dass es nicht jedesmal in die DB geschrieben wird)
Also dein Zähler sendet wohl im Sekundentakt, dass kannst du auch nicht beeinflussen. Die Übertragung an FHEM per MQTT habe ich auf 60 Sekunden eingestellt (Telemetry period unter Logging parameters). Das ist auch die Voraussetzung für die Bestimmung der durchschnittlichen Leistung der letzten Minute über Event_Readings. Da hier nicht die Zeitpunkte der Readings ausgewertet werden, funktioniert die Sache nur, wenn genau alle 60 Sekunden das Reading per MQTT aktualisiert wird - nicht öfters und auch nicht seltener.
Ich habe bei mir die durchschnittliche Leistung deswegen so gelöst, um synchron mit dem PV-Zähler zu sein, damit meine grafische Darstellung von der PV-Anlage und vom Einspeisezähler zueinander passt (beide Zähler hängen ja am Tasmota).
Wenn man das nicht braucht/will, dann kann man auch die aktuelle Leistung, die vom Zähler gesendet wird, nehmen.
Ich wollte aber auf jeden Fall FHEM nicht sekündlich mit Zählerdaten belasten, daher habe ich die 60 Sekunden für das Senden per MQTT gewählt.
Für die Berechnung der Tages-, Monats- oder Jahres-Energie, wird nicht die errechnete Durchschnittsleistung (kW) genommen, sondern die absoluten Zählerstände der Energie (kWh), damit man den genauen Verbrauch bestimmen kann.
Danke für die ausführliche Erklärung.
Dann bin ich die ganze Zeit von den falschen Umständen ausgegangen.
Ich denke ich habe jetzt erstmal was ich brauche und werde mich wenn etwas mehr Zeit ist nochmal genau damit befassen, was ich wie erfassen und wieder anzeigen möchte.
So richtig interessant wird es eh erst mit der PV.
Danke nochmal für die Mühe und Geduld.
An dieser Stelle noch ein Nachtrag.
Die Berechnung der durchschnittlichen Leistung (der letzten X-Sekunden) lässt sich noch eleganter im MQTT-Devices vornehmen. Hierbei spielt es keine Rolle wie lange die Zeitspanne zwischen dem MQTT-Senden ist, solange sie größer als eine Sekunde ist.
attr MQTT2_DVES_C58DCB userReadings power_pv:SENSOR_COUNTER_C1.* differential {ReadingsVal($name,"SENSOR_COUNTER_C1",0)*3.6},\
power_c:SENSOR_MT681_Total_in.* differential {ReadingsVal($name,"SENSOR_MT681_Total_in",0)*3600},\
power_f:SENSOR_MT681_Total_out.* differential {ReadingsVal($name,"SENSOR_MT681_Total_out",0)*3600},\
power_fc:SENSOR_MT681_Total_.* differential {(ReadingsVal($name,"SENSOR_MT681_Total_out",0)-ReadingsVal($name,"SENSOR_MT681_Total_in",0))*3600}
In den Reading power_pv ist dann die durchschnittliche PV-Leistung, in power_c ist die Bezugsleistung, in power_f die Einspeiseleistung, in power_fc die Einspeiseleistung (positiv) oder die Bezugsleistung (negativ).
Der PV-Zähler (SENSOR_COUNTER_C1) ist ein einfacher S0-Zähler und der Stromzähler (SENSOR_MT681) ein Zweirichtungszähler mit D0-Schnittstelle.
Da beide Zähler am gleichen Tasmota hängen, werden die Leistungsangaben des PV-Zählers und des Stromzählers über den gleichen Zeitraum bestimmt und passen daher zueinander.
PV-Leistung und Netz-Leistung (Einspeisung/Bezug) lässt sich dann gut über die Readings power_pv und power_fc visualisieren
Hallo zusammen,
hatte mein Tasmota Hichi-IR-Wifi Lesekopf zunächst so konfiguriert, dass er meinen alten Pafal oder alternativ den neueren Landys+Gyr Zähler korrekt ausliest. Das wurde dann auf der Tasmota Startseite im Webdialog angezeigt.
Sobal ich dann die Kommunikation zwischen Tasmota und FHEM eingestellt habe und das Tasmota Teil neustartet wird scheinbar das Skript innerhalb Tasmota ignoriert und nichts mehr ausgelesen bzw. in der Weboberfläche anzeigt.
Hat jemand eine Idee wie das repaeriert werden kann (ggf. auch zur Diskusssion in folgenden noch kürzeren Thread)?
Sobald das klappt benötige ich dann vermutlich ienen Tipp wie ich die Wert die Tasmota ausließt auch in FHEM übetrage/nutze und dort in eine kW Zeitreihe umwandle.
Vielen Dank im Voraus!
Beste Grüße
Sammy
https://forum.fhem.de/index.php/topic,128685.msg1246484.html#msg1246484
Nachtrag: Obiges Problem ist gelöst .. am Ende des Skript fehlte "#" dadurch wurde das nach Neustart des Devices offenbar nicht mehr interpretiert das ganze skript.
Zitat von: Damian am 25 Juni 2022, 12:58:55
An dieser Stelle noch ein Nachtrag.
Die Berechnung der durchschnittlichen Leistung (der letzten X-Sekunden) lässt sich noch eleganter im MQTT-Devices vornehmen. Hierbei spielt es keine Rolle wie lange die Zeitspanne zwischen dem MQTT-Senden ist, solange sie größer als eine Sekunde ist.
attr MQTT2_DVES_C58DCB userReadings power_pv:SENSOR_COUNTER_C1.* differential {ReadingsVal($name,"SENSOR_COUNTER_C1",0)*3.6},\
power_c:SENSOR_MT681_Total_in.* differential {ReadingsVal($name,"SENSOR_MT681_Total_in",0)*3600},\
power_f:SENSOR_MT681_Total_out.* differential {ReadingsVal($name,"SENSOR_MT681_Total_out",0)*3600},\
power_fc:SENSOR_MT681_Total_.* differential {(ReadingsVal($name,"SENSOR_MT681_Total_out",0)-ReadingsVal($name,"SENSOR_MT681_Total_in",0))*3600}
In den Reading power_pv ist dann die durchschnittliche PV-Leistung, in power_c ist die Bezugsleistung, in power_f die Einspeiseleistung, in power_fc die Einspeiseleistung (positiv) oder die Bezugsleistung (negativ).
Der PV-Zähler (SENSOR_COUNTER_C1) ist ein einfacher S0-Zähler und der Stromzähler (SENSOR_MT681) ein Zweirichtungszähler mit D0-Schnittstelle.
Da beide Zähler am gleichen Tasmota hängen, werden die Leistungsangaben des PV-Zählers und des Stromzählers über den gleichen Zeitraum bestimmt und passen daher zueinander.
PV-Leistung und Netz-Leistung (Einspeisung/Bezug) lässt sich dann gut über die Readings power_pv und power_fc visualisieren
Hi Damian,
das klingt toll und scheint eine gute Lösung!
* In meinem Fall geht es für zwei Messgeräte (1x Hausstrom zwei Richtungszähler wegen PV-Anlage, 1x Wärmepumpe zwei Tarifzähler) mit mittelfristig jeweils einem Hichi-IR-Wifi Lesekopf nur über zwei verschiedene MQTT Devices in FHEM oder?
* Eins davon ist nun aktiv (zunächst für die Wärmepumpe, weil ich dort Zeitreihen generieren will um besser die Wirtschaftlichkeit des 2. Zählers bewerten zu können (besserer Stromtarif vs. Eigenerzeugung und Eigennutzung von x%).
Jetzt bin ich nicht sicher wie ich Deinn Beispiel korrekt auf mich transportiere. Bzw. der erste Versuch funktioniert nicht.
Standard-Readings von meinem Tasmota Device (Bezeichnung des Device in FHEM ist
Strommessung_WP) sehen zunächst wie folgt aus:
2022-11-26_14:48:53 Strommessung_WP Pafal-WP___Total_day: 22622.85
2022-11-26_14:48:53 Strommessung_WP Pafal-WP___Total_night: 6999.03
2022-11-26_14:48:53 Strommessung_WP Time: 2022-11-26T14:48:53
2022-11-26_14:48:53 Strommessung_WP Pafal-WP___Total: 29621.88
Jetzt glaube ich verstanden zu haben, dass eine Anpassung Deines Codes in die RAW Definition des MQTT Devices muss (nicht etwa in das Skript auf dem Tasmota Device). Von dem Zähler ist primär das Reading "Pafal-WP___Total" relevant für die Gesamtleistungszeitreihe. Daneben könnte man vielleicht auch die HT und NT Leistung berechnen um später auch die verschiedenen HT/NT PReise in die Berechnung einzubeziehen.
Wie muss dann das UserReading Attribut aussehen?
Folgendes wirft zwar keinen Fehler führt aber auch nicht zur Ausgabe eines zusätzlichen Readings in das Device-Log:
attr Strommessung_WP userReadings power_WP_in:Pafal-WP___Total.* differential {ReadingsVal($name,"Pafal-WP___Total",0)*3600},\
power_WP_in_HT:Pafal-WP___Total_day.* differential {ReadingsVal($name,"Pafal-WP___Total_day",0)*3600},\
power_WP_in_NT:Pafal-WP___Total_night.* differential {ReadingsVal($name,"Pafal-WP___Total_night",0)*3600}
Im Voraus vielen Dank!
Beste Grüße
Sammy
EDIT: Inzwischen taucht dann doch zumindest eine weitere Zeile im Logfile auf. Ein aktueller Wert von 0 ist zunächst nicht unplausibel. Aktualisierung kann zunächst vermutlich nur im 5min Raster erfolgen (Logging Konfig auf dem Tasmota Device 300sec).
2022-11-26_16:15:42 Strommessung_WP power_WP_in: 0
2022-11-26_16:15:42 Strommessung_WP power_WP_in_HT: 0
2022-11-26_16:15:42 Strommessung_WP power_WP_in_NT: 0
BTW: Wie hast du die Schicke grafische Anzeige generiert?
ZitatBTW: Wie hast du die Schicke grafische Anzeige generiert?
siehe: https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler
bzw.: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Anzeige_eines_Werteverlaufs_und_des_aktuellen_Wertes_mit_Hilfe_der_SVG-Funktion_card
dort letztes Beispiel
Hallo,
ich habe meinen Stromzähler jetzt auch per MQTT in fhem angebunden. Die Standardwerte werden auch ordentlich übertragen.
Allerdings habe ich das Script vom user @hapege gesehen, womit er auch den Tagesverbrauch im state angezeigt bekommt.
Das Script sieht so aus und habe ich an meinen Zähler angepasst:
>D
pin=0
pi_t=0
pi_l=0
pi_h=0
pi_lh=0
hr=0
hrr=0
; permanent midnight values
p:pi_m=0
p:pi_d=0
p:pi_y=0
>B
->sensor53 r
>T
; get total consumption and total feed
pin=MT681#EnergyTotal
;=>publish tele/%topic%/DAY {"dayconsumption":%pi_d%}
>S
; at midnight, save meter total values
hr=hours
if chg[hr]>0
and hr==0
then
pi_y=pin-pi_m
pi_m=pin
=>publish tele/%topic%/DAY {"dayconsumption":%pi_y%,"tillmidnight":%pi_d%}
svars
endif
hrr=hr
if chg[hrr]>0
then
pi_h=pin-pi_lh
pi_lh=pin
=>publish tele/%topic%/HOUR {"lasthour":%pi_h%,"sumtillmtime":%pi_d%,"mtime":%hrr%}
; =>publish tele/%topic%/DAY {"dayconsumption":%pi_y%,"tillmidnight":%pi_d%}
svars
endif
; on teleperiod calculate current daily values from midnight
if upsecs%tper==0
then
pi_d=pin-pi_m
pi_t=(pin-pi_l)*1000
pi_l=pin
endif
; show these values on WEB UI
>W
Tagesverbrauch: {m} %pi_d% kWh
Messinterval (%tper s): {m} %pi_t% Wh
; transmit these values with MQTT
>J
,"sincemidnight":%pi_d%,"lastperiod":%pi_t%
; meter definition
>M 1
+1,3,s,0,9600,MT681
1,77070100010800ff@1000,Energy Total,KWh,EnergyTotal,4
1,77070100020800ff@1000,Energy Out,kWh,EnergyOut,4
1,77070100100700ff@1,Power Now,W,PowerNow,0
1,77070100000009ff@#,Service ID,,MeterID,0
#
Aber ich bekomme die Readings nicht entsprechend in fhem angezeigt.
Hier mal noch ein list vom Device:
Internals:
CFGFN
CID DVES_74ED88
DEF DVES_74ED88
FUUID 63d30bf6-f33f-8212-9f84-178e2884e2f3ba8c
IODev mqttBroker
LASTInputDev mqttBroker
MSGCNT 247
NAME MQTT2_DVES_74ED88
NR 1872
STATE ???
TYPE MQTT2_DEVICE
eventCount 259
mqttBroker_CONN mqttBroker_192.168.2.175_60481
mqttBroker_MSGCNT 247
mqttBroker_TIME 2023-01-27 10:25:47
JSONMAP:
Channel_0 0
Channel_1 0
Channel_2 0
Channel_3 0
Channel_4 0
Channel_5 0
Color 0
Dimmer 0
HSBColor 0
POWER1 0
POWER2 0
POWER3 0
POWER4 0
OLDREADINGS:
READINGS:
2023-01-27 10:25:47 Heap 19
2023-01-27 00:25:42 IODev mqttBroker
2023-01-27 05:14:45 LWT Online
2023-01-27 10:25:47 LoadAvg 19
2023-01-27 10:25:47 MT681_Meter_id 090149534b00050c0c4a
2023-01-27 10:25:47 MT681_Power_curr 387
2023-01-27 10:25:47 MT681_Total_in 1531.592
2023-01-27 10:25:47 MT681_Total_out 4956.063
2023-01-27 10:25:47 MqttCount 2
2023-01-27 00:30:05 SaveData on
2023-01-27 00:30:05 SetOption26 on
2023-01-27 10:25:47 Sleep 50
2023-01-27 10:25:47 SleepMode Dynamic
2023-01-27 00:30:04 StateText1 off
2023-01-27 00:30:04 StateText2 on
2023-01-27 00:30:04 StateText3 toggle
2023-01-27 00:30:04 StateText4 hold
2023-01-27 10:25:47 Time 2023-01-27T10:25:46
2023-01-27 10:25:47 Uptime 0T10:00:10
2023-01-27 10:25:47 UptimeSec 36010
2023-01-27 10:25:47 Wifi_AP 1
2023-01-27 10:25:47 Wifi_BSSId 44:4E:6D:AE:C0:DC
2023-01-27 10:25:47 Wifi_Channel 6
2023-01-27 10:25:47 Wifi_Downtime 0T00:00:07
2023-01-27 10:25:47 Wifi_LinkCount 2
2023-01-27 10:25:47 Wifi_Mode 11n
2023-01-27 10:25:47 Wifi_RSSI 56
2023-01-27 10:25:47 Wifi_SSId Homer
2023-01-27 10:25:47 Wifi_Signal -72
2023-01-27 00:30:04 attrTemplateVersion 20210523
Attributes:
alias Stromzaehler
autocreate 0
comment NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/tasmota_74ED88/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
genericDeviceType switch
icon hue_filled_outlet
jsonMap POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 Channel_5:0 HSBColor:0 Color:0
model tasmota_basic_state_power1
readingList tele/tasmota_74ED88/LWT:.* LWT
tele/tasmota_74ED88/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
tele/tasmota_74ED88/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
tele/tasmota_74ED88/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ? json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }
tele/tasmota_74ED88/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
stat/tasmota_74ED88/POWER1:.* state
stat/tasmota_74ED88/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
room Homestatus
setList off:noArg cmnd/tasmota_74ED88/POWER1 0
on:noArg cmnd/tasmota_74ED88/POWER1 1
toggle:noArg cmnd/tasmota_74ED88/POWER1 2
setOtaUrl:textField cmnd/tasmota_74ED88/OtaUrl $EVTPART1
upgrade:noArg cmnd/tasmota_74ED88/upgrade 1
setStateList on off toggle
Was muss ich denn machen, damit mir der Tagesverbrauch angezeigt wird?
Gruss
Dennis
ok, vergesst meinen lezten Beitrag.
Um die Steuer für die PV Anlage zu machen, brauche ich immer am letzten des Monats um 0 Uhr den aktuellen Zählerstand für den Gesamtbezug und den für die Gesamteinspeisung und die erzeugten kWh aus dem Wechselrichter.
Wie mache ich das, dass mir fhem diese 3 Daten irgendwo protokolliert?
Danke euch
Dennis
Hallo,
Hier "mein" Script (habe ich auch im Wesentlichen aus anderen Quellen zusammenkopiert und angepassst) mit allen Werten, die ich meinem Zähler so entlocken konnte, z. B. auch die Einspeisung. Tages-/Jahresverbrauch liefert der Zähler entweder nicht über die optische Schnittstelle, oder ich finde sie nicht. Ich habe das im Script so gelöst, dass immer um Mitternacht der Tagesverbrauch berechnet wird (Differenz zum letzten Mitternachtswert), und dieser per MQTT als "dayconsumption" gepostet wird.
Über "hours" bekomme ich "Mitternacht" getriggert - Wenn Du dasselbe mit "month" machst, solltest Du es hinbekommenjeden Monatswechsel die Differenz berechnen können.
>D
pin=0
pi_t=0
pi_l=0
pi_h=0
pi_lh=0
hr=0
hrr=0
; permanent midnight values
p:pi_m=0
p:pi_d=0
p:pi_y=0
>B
->sensor53 r
>T
; get total consumption and total feed
pin=SML#EnergyTotal
;=>publish tele/%topic%/DAY {"dayconsumption":%pi_d%}
>S
; at midnight, save meter total values
hr=hours
if chg[hr]>0
and hr==0
then
pi_y=pin-pi_m
pi_m=pin
=>publish tele/%topic%/DAY {"dayconsumption":%pi_y%,"tillmidnight":%pi_d%}
svars
endif
hrr=hr
if chg[hrr]>0
then
pi_h=pin-pi_lh
pi_lh=pin
=>publish tele/%topic%/HOUR {"lasthour":%pi_h%,"sumtillmtime":%pi_d%,"mtime":%hrr%}
; =>publish tele/%topic%/DAY {"dayconsumption":%pi_y%,"tillmidnight":%pi_d%}
svars
endif
; on teleperiod calculate current daily values from midnight
if upsecs%tper==0
then
pi_d=pin-pi_m
pi_t=(pin-pi_l)*1000
pi_l=pin
endif
; show these values on WEB UI
>W
Tagesverbrauch: {m} %pi_d% kWh
Messinterval (%tper s): {m} %pi_t% Wh
; transmit these values with MQTT
>J
,"sincemidnight":%pi_d%,"lastperiod":%pi_t%
; meter definition
>M 1
+1,14,s,0,9600,SML
1,77070100010800ff@1000,Energy Total,KWh,EnergyTotal,4
1,77070100020800ff@1000,Energy Out,kWh,EnergyOut,4
1,77070100100700ff@1,Power Now,W,PowerNow,0
1,7707010060320101@#,Service ID,,MeterID,0
1,77070100200700ff@1,Voltage L1,V,Volt_L1_curr,1
1,77070100340700ff@1,Voltage L2,V,Volt_L2_curr,1
1,77070100480700ff@1,Voltage L3,V,Volt_L3_curr,1
1,770701001f0700ff@1,Amperage L1,A,Amperage_L1_curr,2
1,77070100330700ff@1,Amperage L2,A,Amperage_L2_curr,2
1,77070100470700ff@1,Amperage L3,A,Amperage_L3_curr,2
1,770701000e0700ff@1,Frequency,Hz,HZ,2
1,77070100510701ff@1,Phase angle U-L2/U-L1,deg,phase_angle_L2_L1,1
1,77070100510702ff@1,Phase angle U-L3/U-L1,deg,phase_angle_L3_L1,1
1,77070100510704ff@1,Phase angle I-L1/U-L1,deg,phase_angle_P1,1
1,7707010051070fff@1,Phase angle I-L2/U-L2,deg,phase_angle_P2,1
1,7707010051071aff@1,Phase angle I-L3/U-L3,deg,phase_angle_P3,1
#
Wenn man den Wert in ein FileLog schreibt, ergibt sich so ein schönes Wochen/Monats/Jahres-SVG.
"lastperiod" liefert den Verbrauch der letzten Teleperiod - typischerweise also der letzten 300s. Wenn man das über ein userReading mit 12 multipliziert erhält man eine Vorstellung, wieviel W im Mittel quasi-aktuell verbraucht werden (der jeweils alle 300s gelieferte Wert ist ja nur die zu genau diesem Zeitpunkt gemessene Lieferung - wenn gerade die Kaffeemaschine läuft ist das eher zufällig hoch, über 5 min gemittelt realistischer).
"sincemidnight" liefert die zum aktuellen Zeitpunkt am aktuellen Tag bisher verbrauchte Energie (auch wieder als Differenz seit Mitternacht).
Dann gäbe es noch den "ElectricityCalculator" (https://forum.fhem.de/index.php?topic=57106.0 ) - habe ich nicht ausprobiert, aber vielleicht kommst Du damit zum Ziel.
Ok, dann hier mal mein script:
>D
v1=0
v2=0
v3=0
min=0
hr=0
md=0
yr=0
rssi=0
ed=0
;Bezug
nb=0
p:sm=0
sd=0
p:sma=0
smn=0
p:sya=0
syn=0
sspr=0.2583
yspr=0
ysgp=156.00
;Einspeisung
ne=0
p:em=0
ed=0
p:ema=0
emn=0
p:eya=0
eyn=0
eepr=0.0700
yepr=0
yegp=0.00
>T
v1=SML#Total_in
v2=SML#Total_out
v3=SML#Power_cur
rssi=Wifi#RSSI
>B
=>sensor53 r
tper=10
>S
min=int(time/5)
;TV
hr=hours
if chg[hr]>0
and hr==0
then
sm=v1
em=v2
nb=v3
ne=v3
svars
endif
if upsecs%tper==0
then
sd=v1-sm
ed=v2-em
nb=v3
ne=v3*-1
endif
;MV
md=day
if chg[md]>0
and md==1
then
sma=v1
ema=v2
svars
endif
if upsecs%tper==0
then
smn=v1-sma
emn=v2-ema
endif
;JV
yr=year
if chg[yr]>0
then
sya=v1
eya=v2
svars
endif
if upsecs%tper==0
then
syn=v1-sya
eyn=v2-eya
;Kosten
yspr=syn*sspr+ysgp
yepr=eyn*eepr
endif
if v3>0
then
nb=v3
ne=0
else
nb=0
ne=v3*-1
endif
>J
,"bezug_aktuell":"%nb%"
,"bezug_tag":"%sd%"
,"bezug_monat":"%smn%"
,"bezug_jahr":"%syn%"
,"bezug_total":"%v1%"
,"einspeisung_aktuell":"%ne%"
,"einspeisung_tag":"%ed%"
,"einspeisung_monat":"%emn%"
,"einspeisung_jahr":"%eyn%"
,"einspeisung_total":"%v2%"
>W
WLAN Empfang: {m}%rssi%
<hr/>
Strom {m}Bezug{m}Einspeisung
Tag: {m}<b><span style="color:red">%3sd% KWh</span></b> {m}<b><span style="color:green">%3ed% KWh</span></b>
Monat: {m}<b><span style="color:red">%3smn% KWh</span></b> {m}<b><span style="color:green">%3emn% KWh</span></b>
Jahr:{m}<b><span style="color:red">%3syn% KWh</span></b> {m}<b><span style="color:green">%3eyn% KWh</span></b>
€ Strom: {m}<b><span style="color:red">%2yspr% €</span></b> {m}<b><span style="color:green">%2yepr% €</span></b>
<hr/>
Strom Zähler{m}Bezug{m}Einspeisung
aktuell: {m} %3v1% KWh {m} %3v2% KWh
0:00 Uhr: {m} %3sm% KWh {m} %3em% KWh
Monatsanfang: {m} %3sma% KWh {m} %3ema% KWh
Jahresanfang: {m} %3sya% KWh {m} %3eya% KWh
<hr/>
>M 1
+1,14,s,0,9600,SML
1,77070100010800ff@1000,Bezug: ,KWh,Total_in,4
1,77070100020800ff@1000,Einspeisung: ,KWh,Total_out,4
1,77070100100700ff@1,Akt. Verbrauch: ,W,Power_cur,0
1,=h<hr/>
1,77070100000009ff@#,Zähler Nr,,Meter_id,0
1,=h<hr/>
#
Setzen der Einspeise bzw. Verbrauchs - Werte der Vortage/Vorjahre/Vormonate:
script >sma=1261.447;sya=711;eya=3815;ema=1261.447;svars
So sieht das Webui aus:
Zitat von: dennis_n am 27 Januar 2023, 19:51:08
ok, vergesst meinen lezten Beitrag.
Um die Steuer für die PV Anlage zu machen, brauche ich immer am letzten des Monats um 0 Uhr den aktuellen Zählerstand für den Gesamtbezug und den für die Gesamteinspeisung und die erzeugten kWh aus dem Wechselrichter.
Wie mache ich das, dass mir fhem diese 3 Daten irgendwo protokolliert?
Danke euch
Dennis
schau Dir das mal an:
https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler (https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler)
Zum Schnelleinstieg genügt es in der Def die Zähler einzutragen, für die "Cards" solltest Du dich in uiTable etwas einarbeiten, da hier noch Handarbeit angesagt ist.
Ich nutze hauptsächlich die Tabelle, habe ich letzten Oktober eingerichtet und das funktioniert prima, da Du immer aktuellen und letzten Tag/Monat/Jahr angezeigt bekommst. OT: schön für die Steuer, noch schöner, wenn wie bei mir das Finanzamt schreibt, ich möchte bitte keine Voranmeldungen mehr schicken, sondern nur die Jahresabrechnung. Scheint so, als wollten sie mal 1 gesamtes Jahr "sehen".
Gruß
Sany
Zitat von: carlos am 29 Januar 2023, 11:21:23
Ok, dann hier mal mein script:
Eine schöne FHEM-unabhängige Lösung. Was passiert, wenn man beim esp den Stecker zieht?
Zitat von: Sany am 29 Januar 2023, 12:09:10
schau Dir das mal an:
https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler (https://wiki.fhem.de/wiki/DOIF/Automatisierung#Tages-.2C_Monats-_und_Jahresstatistik_f.C3.BCr_Strom-.2C_Gas-.2C_Wasserz.C3.A4hler_und_andere_Z.C3.A4hler)
Zum Schnelleinstieg genügt es in der Def die Zähler einzutragen, für die "Cards" solltest Du dich in uiTable etwas einarbeiten, da hier noch Handarbeit angesagt ist.
Ich nutze hauptsächlich die Tabelle, habe ich letzten Oktober eingerichtet und das funktioniert prima, da Du immer aktuellen und letzten Tag/Monat/Jahr angezeigt bekommst. OT: schön für die Steuer, noch schöner, wenn wie bei mir das Finanzamt schreibt, ich möchte bitte keine Voranmeldungen mehr schicken, sondern nur die Jahresabrechnung. Scheint so, als wollten sie mal 1 gesamtes Jahr "sehen".
Es wird demnächst eine etwas schönere Darstellung geben, siehe https://forum.fhem.de/index.php/topic,126199.msg1260769.html#msg1260769
inkl. automatischer Übernahme der bisherigen Werte auf dem Log :)
ZitatEine schöne FHEM-unabhängige Lösung. Was passiert, wenn man beim esp den Stecker zieht?
er speichert die relevanten Daten so wie es aussieht permanent. Dann überleben sie die Stromunterbrechung. Ist auch ziemlich limitiert, scheint für die 6 Werte aber zu reichen.
Zitataus Tasmota scripting:
p:vname
specifies permanent variables. The number of permanent variables is limited by Tasmota rules space (50 bytes) - numeric variables are 4 bytes; string variables are one byte longer than the length of string
ZitatEs wird demnächst eine etwas schönere Darstellung geben
sehr schön, wird immer besser 8)
Zitat von: Damian am 29 Januar 2023, 13:37:57
Eine schöne FHEM-unabhängige Lösung. Was passiert, wenn man beim esp den Stecker zieht?
Die Werte werden selbstverständlich an FHEM über mqtt geschickt.
Ich habe nur das Tasmota UI so etwas schöner gemacht.
http://192.168.178.50/cm?cmnd=status%2010
{
"StatusSNS": {
"Time": "2023-01-29T21:03:15",
"SML": {
"Total_in": 2918.6715,
"Total_out": 10274.9772,
"Power_cur": -15,
"Meter_id": "xxxxxxxxxxxxxxxxxx"
},
"bezug_aktuell": "0.00",
"bezug_tag": "4.08",
"bezug_monat": "406.35",
"bezug_jahr": "406.35",
"bezug_total": "2918.67",
"einspeisung_aktuell": "15.00",
"einspeisung_tag": "0.71",
"einspeisung_monat": "6.74",
"einspeisung_jahr": "6.74",
"einspeisung_total": "10274.98"
}
}
Zitat von: carlos am 29 Januar 2023, 11:21:23Ok, dann hier mal mein script:
>D
v1=0
v2=0
v3=0
min=0
hr=0
md=0
yr=0
rssi=0
ed=0
;Bezug
nb=0
p:sm=0
sd=0
p:sma=0
smn=0
p:sya=0
syn=0
sspr=0.2583
yspr=0
ysgp=156.00
;Einspeisung
ne=0
p:em=0
ed=0
p:ema=0
emn=0
p:eya=0
eyn=0
eepr=0.0700
yepr=0
yegp=0.00
>T
v1=SML#Total_in
v2=SML#Total_out
v3=SML#Power_cur
rssi=Wifi#RSSI
>B
=>sensor53 r
tper=10
>S
min=int(time/5)
;TV
hr=hours
if chg[hr]>0
and hr==0
then
sm=v1
em=v2
nb=v3
ne=v3
svars
endif
if upsecs%tper==0
then
sd=v1-sm
ed=v2-em
nb=v3
ne=v3*-1
endif
;MV
md=day
if chg[md]>0
and md==1
then
sma=v1
ema=v2
svars
endif
if upsecs%tper==0
then
smn=v1-sma
emn=v2-ema
endif
;JV
yr=year
if chg[yr]>0
then
sya=v1
eya=v2
svars
endif
if upsecs%tper==0
then
syn=v1-sya
eyn=v2-eya
;Kosten
yspr=syn*sspr+ysgp
yepr=eyn*eepr
endif
if v3>0
then
nb=v3
ne=0
else
nb=0
ne=v3*-1
endif
>J
,"bezug_aktuell":"%nb%"
,"bezug_tag":"%sd%"
,"bezug_monat":"%smn%"
,"bezug_jahr":"%syn%"
,"bezug_total":"%v1%"
,"einspeisung_aktuell":"%ne%"
,"einspeisung_tag":"%ed%"
,"einspeisung_monat":"%emn%"
,"einspeisung_jahr":"%eyn%"
,"einspeisung_total":"%v2%"
>W
WLAN Empfang: {m}%rssi%
<hr/>
Strom {m}Bezug{m}Einspeisung
Tag: {m}<b><span style="color:red">%3sd% KWh</span></b> {m}<b><span style="color:green">%3ed% KWh</span></b>
Monat: {m}<b><span style="color:red">%3smn% KWh</span></b> {m}<b><span style="color:green">%3emn% KWh</span></b>
Jahr:{m}<b><span style="color:red">%3syn% KWh</span></b> {m}<b><span style="color:green">%3eyn% KWh</span></b>
€ Strom: {m}<b><span style="color:red">%2yspr% €</span></b> {m}<b><span style="color:green">%2yepr% €</span></b>
<hr/>
Strom Zähler{m}Bezug{m}Einspeisung
aktuell: {m} %3v1% KWh {m} %3v2% KWh
0:00 Uhr: {m} %3sm% KWh {m} %3em% KWh
Monatsanfang: {m} %3sma% KWh {m} %3ema% KWh
Jahresanfang: {m} %3sya% KWh {m} %3eya% KWh
<hr/>
>M 1
+1,14,s,0,9600,SML
1,77070100010800ff@1000,Bezug: ,KWh,Total_in,4
1,77070100020800ff@1000,Einspeisung: ,KWh,Total_out,4
1,77070100100700ff@1,Akt. Verbrauch: ,W,Power_cur,0
1,=h<hr/>
1,77070100000009ff@#,Zähler Nr,,Meter_id,0
1,=h<hr/>
#
Setzen der Einspeise bzw. Verbrauchs - Werte der Vortage/Vorjahre/Vormonate:
script >sma=1261.447;sya=711;eya=3815;ema=1261.447;svars
So sieht das Webui aus:
Das sieht ja echt toll aus bei dir! Ich habe mal das ganze für meinen Zähler angepasst, leider habe ich keine Berechnung. Könntest du mal schauen, wo ich den Fehler habe?
>D
v1=0
v2=0
v3=0
min=0
hr=0
md=0
yr=0
rssi=0
ed=0
;Bezug
nb=0
p:sm=0
;Strom Gesammt Jahresanfang
sd=17953.000
;(NT) Jahresanfang
p:sma=9556.000
smn=0
;(HT) Jahresanfang
p:sya=8397.000
syn=0
;kWh Preis dieses Jahr
sspr=0.4000
yspr=0
;Grundpreis dieses Jahr
ysgp=114.96
;Einspeisung
ne=0
p:em=0
ed=0
p:ema=0
emn=0
p:eya=0
eyn=0
eepr=0.0900
yepr=0
yegp=0.00
>T
v1=SML#Total_in
v2=SML#Total_out
v3=SML#Power_cur
rssi=Wifi#RSSI
>B
=>sensor53 r
tper=10
>S
min=int(time/5)
;Tagesverbrauch
hr=hours
if chg[hr]>0
and hr==0
then
sm=v1
em=v2
nb=v3
ne=v3
svars
endif
if upsecs%tper==0
then
sd=v1-sm
ed=v2-em
nb=v3
ne=v3*-1
endif
;Monatsverbrauch
md=day
if chg[md]>0
and md==1
then
sma=v1
ema=v2
svars
endif
if upsecs%tper==0
then
smn=v1-sma
emn=v2-ema
endif
;Jahresverbrauch
yr=year
if chg[yr]>0
then
sya=v1
eya=v2
svars
endif
if upsecs%tper==0
then
syn=v1-sya
eyn=v2-eya
;Kosten
yspr=syn*sspr+ysgp
yepr=eyn*eepr
endif
if v3>0
then
nb=v3
ne=0
else
nb=0
ne=v3*-1
endif
>F
scnt+=1
switch scnt
case 6
; sml-Treiber auf 300 Baud setzen und /?! als HEX, um das Messgerät auszulösen
res=sml(1 0 300)
res=sml(1 1 "2F3F210D0A")
; 1800 ms später => Ack und Aufforderung zum Umschalten auf 9600 Baud
case 18
res=sml(1 1 "063035300D0A")
; 2000 ms später => Umstellen des sml-Treibers auf 9600 Baud
case 20
res=sml(1 0 9600)
; Neustartsequenz nach 5000 ms
case 50
; 5000 ms später => Neustarten
scnt=0
ends
>J
,"Verbrauch Aktuell":"%nb%"
,"Verbrauch Tag":"%sd%"
,"Verbrauch Monat":"%smn%"
,"Verbrauch Jahr":"%syn%"
,"Verbrauch Total":"%v1%"
,"Einspeisung Aktuell":"%ne%"
,"Einspeisung Tag":"%ed%"
,"Einspeisung Monat":"%emn%"
,"Einspeisung Jahr":"%eyn%"
,"Einspeisung Total":"%v2%"
>W
WLAN Signalstärke: {m} %rssi% %%
<hr/>
Strom {m}Bezug{m}Einspeisung
Tag: {m}<b><span style="color:red">%3sd% KWh</span></b> {m}<b><span style="color:green">%3ed% KWh</span></b>
Monat: {m}<b><span style="color:red">%3smn% KWh</span></b> {m}<b><span style="color:green">%3emn% KWh</span></b>
Jahr:{m}<b><span style="color:red">%3syn% KWh</span></b> {m}<b><span style="color:green">%3eyn% KWh</span></b>
€ Strom: {m}<b><span style="color:red">%2yspr% €</span></b> {m}<b><span style="color:green">%2yepr% €</span></b>
<hr/>
Preis/kWh: {m} %4sspr% €
Grundpreis: {m} %2ysgp% €
<hr/>
>M 1
+1,3,o,0,300,,1,30,2F3F210D0A,063030300D0A
;1,0.9.1(@#),Zeitstempel,Uhr,time-stamp,0
;1,=h<hr/>
;1,=h –– Gas ––
;1,1.8.7(@1),Meter No./:,,Gas_Meter,0
;1,1.8.8(@1),Gas-Bezug ,m³,Gas_Total,3
;1,0.1.0(@1),Rückstellz.,,RSZ,0
;1,=h<hr/>
;1,0.0.0(@1),Meter No./:,,Meter_number,0
1,=h –– PV-Modul ––
1,2.6.0(@1),Total,kW,Max_latest_out,3
1,2.8.0(@1),Wirk Lieferung ET,kWh,Total_out,3
1,2.8.1(@1),Wirk Lieferung T1,kWh,Out_HT,3
1,2.8.2(@1),Wirk Lieferung T2,kWh,Out_NT,3
1,4.8.1(@1),Blind Leistung,kvarh,R_out,3
1,2.7.0(@1),Überschusseinspeisung,W,P_out,3
1,=h<hr/>
1,=h –– Strom-Bezug ––
1,1.8.0(@1),Wirk Bezug ET,kWh,Total_in,3
1,1.8.1(@1),wktgs. 6-22°° Uhr,kWh,HT_in,3
1,1.8.2(@1),ab Sa13°°-Mo6°° Uhr,kWh,NT_in,3
1,1.6.0(@1),Aktuelles Max IN,A+,Max_latest_in,4
1,3.8.1(@1),Blind Leistung,kvarh,R_in,3
1,1.7.0(@1),Aktuelle Last,W,P_in,3
1,=h<hr/>
1,=h –– Ampere ––
1,91.7(@1),Stromwert N.,A,I_N,2
1,31.7(@1),Stromwert L1,A,I_L1,2
1,51.7(@1),Stromwert L2,A,I_L2,2
1,71.7(@1),Stromwert L3,A,I_L3,2
1,=h<hr/>
1,=h –– Voltage ––
1,32.7(@1),voltage level L1,V,V_L1,2
1,52.7(@1),voltage level L2,V,V_L2,2
1,72.7(@1),voltage level L3,V,V_L3,2
1,=h<hr/>
;1,=h –– Frequenz ––
1,14.7(@1),Hz,Hz,Hz,2
;1,=h –– kum ––
1,1.2.0(@1),Kum. Max,A+,Kum_in,2
1,2.2.0(@1),Kum. Max,A-,Kum_out,2
1,1.4.0(@1),lauf. Max,A+,Lauf_in,2
1,2.4.0(@1),lauf. Max,A-,Lauf_out,2
1,3.7.0(@1),reactive power Q+,kvar,Q_in,3
1,4.7.0(@1),reactive power Q-,kvar,Q_out,3
;1,=h –– Leistung ––
;1,36.7.0(@1,Power_L1,kW,kW_L1,2
;1,56.7.0(@1,Power_L2,kW,kW_L2,2
;1,76.7.0(@1,Power_L3,kW,kW_L3,2
;1,16.7.0(@1,Σ_L1+L2+L3,kW,kW_L1+L2+L3,2
#
Ich komme nicht ganz mit wo ich welchen Wert genau eintragen muss.
Meine Werte sind
Strom Gesamt-Bezug Jahresanfang, 17953.00 kWh
HT = 9556.00 kWh
NT = 8397.00 kWh
Monatsanfang, 18340.987 kWh
Gestern, 18788.468 kWh
PV gesamt Jahresanfang, 9759.678 kWh
Monatsanfang, 10100.548 kWh
Gestern, 10174.548 kWh
Wie genau muss ich jetzt die Werte eingeben?
Grüße
Du musst diese Variablen an deine Gegebenheit anpassen:
v1=SML#Total_in Bezug
v2=SML#Total_out. Einspeisung
v3=SML#Power_cur. Akt. Verbrauch
Kommt bei mir aus den Zeilen:
+1,14,s,0,9600,SML
1,77070100010800ff@1000,Bezug: ,KWh,Total_in,4
1,77070100020800ff@1000,Einspeisung: ,KWh,Total_out,4
1,77070100100700ff@1,Akt. Verbrauch: ,W,Power_cur,0
Das musst du erst mal genauso machen, dann kannst du die entsprechenden Monats und Jahreswerte setzen.
Hi, ich habe den Code entsprechend angepasst. Aber die Berechnung stimmt immer noch nicht.
>D
v1=0
v2=0
v3=0
min=0
hr=0
md=0
yr=0
rssi=0
ed=0
;Bezug
;-----Stromvariablen Verbrauch
nb=0
;-Stromzähler um Mitternacht (permanente Variable) (sm)
p:sm=0
;-Stromverbrauch pro Tag (sd)
sd=0
;-Zählerstand am Monatsanfang (sma)
p:sma=18340.987
;-Stromverbrauch Monat (smn)
smn=0
;-Zählerstand am Jahresanfang (sya)
p:sya=17953.000
;-Stromverbrauch Jahr (syn)
syn=0
;-kWh Preis dieses Jahr pro Einheit (sspr)
sspr=0.4000
yspr=0
;-Kosten pro Jahr Grundgebühr (ysgp)
ysgp=114.96
;-Einspeisung
;-----Stromvariablen Einspeisung
;-Stromzähler um Mitternacht (permanente Variable) (som)
ne=0
p:em=0
ed=0
p:ema=0
emn=0
p:eya=0
eyn=0
eepr=0.0900
yepr=0
yegp=0.00
>T
v1=SML#Total_in
v2=SML#Total_out
v3=SML#Power_cur
rssi=Wifi#RSSI
>B
=>sensor53 r
tper=10
>S
min=int(time/5)
;Tagesverbrauch
hr=hours
if chg[hr]>0
and hr==0
then
sm=v1
em=v2
nb=v3
ne=v3
svars
endif
if upsecs%tper==0
then
sd=v1-sm
ed=v2-em
nb=v3
ne=v3*-1
endif
;Monatsverbrauch
md=day
if chg[md]>0
and md==1
then
sma=v1
ema=v2
svars
endif
if upsecs%tper==0
then
smn=v1-sma
emn=v2-ema
endif
;Jahresverbrauch
yr=year
if chg[yr]>0
then
sya=v1
eya=v2
svars
endif
if upsecs%tper==0
then
syn=v1-sya
eyn=v2-eya
;Kosten
yspr=syn*sspr+ysgp
yepr=eyn*eepr
endif
if v3>0
then
nb=v3
ne=0
else
nb=0
ne=v3*-1
endif
>F
scnt+=1
switch scnt
case 6
; sml-Treiber auf 300 Baud setzen und /?! als HEX, um das Messgerät auszulösen
res=sml(1 0 300)
res=sml(1 1 "2F3F210D0A")
; 1800 ms später => Ack und Aufforderung zum Umschalten auf 9600 Baud
case 18
res=sml(1 1 "063035300D0A")
; 2000 ms später => Umstellen des sml-Treibers auf 9600 Baud
case 20
res=sml(1 0 9600)
; Neustartsequenz nach 5000 ms
case 50
; 5000 ms später => Neustarten
scnt=0
ends
>J
,"Verbrauch Aktuell":"%nb%"
,"Verbrauch Tag":"%sd%"
,"Verbrauch Monat":"%smn%"
,"Verbrauch Jahr":"%syn%"
,"Verbrauch Total":"%v1%"
,"Einspeisung Aktuell":"%ne%"
,"Einspeisung Tag":"%ed%"
,"Einspeisung Monat":"%emn%"
,"Einspeisung Jahr":"%eyn%"
,"Einspeisung Total":"%v2%"
>W
WLAN Signalstärke: {m} %rssi% %%
<hr/>
Strom {m}Bezug{m}Einspeisung
Tag: {m}<b><span style="color:red">%3sd% KWh</span></b> {m}<b><span style="color:green">%3ed% KWh</span></b>
Monat: {m}<b><span style="color:red">%3smn% KWh</span></b> {m}<b><span style="color:green">%3emn% KWh</span></b>
Jahr:{m}<b><span style="color:red">%3syn% KWh</span></b> {m}<b><span style="color:green">%3eyn% KWh</span></b>
€ Strom: {m}<b><span style="color:red">%2yspr% €</span></b> {m}<b><span style="color:green">%2yepr% €</span></b>
<hr/>
Preis/kWh: {m} %4sspr% €
Grundpreis: {m} %2ysgp% €
<hr/>
>M 1
+1,3,o,0,300,SML,1,30,2F3F210D0A,063030300D0A
;1,0.9.1(@#),Zeitstempel,Uhr,time-stamp,0
;1,=h<hr/>
;1,=h –– Gas ––
;1,1.8.7(@1),Meter No./:,,Gas_Meter,0
;1,1.8.8(@1),Gas-Bezug ,m³,Gas_Total,3
;1,0.1.0(@1),Rückstellz.,,RSZ,0
;1,=h<hr/>
;1,0.0.0(@1),Meter No./:,,Meter_number,0
1,=h –– PV-Modul ––
1,2.6.0(@1),Total,kW,Max_latest_out,3
1,2.8.0(@1),Wirk Lieferung ET,kWh,Total_out,3
1,2.8.1(@1),Wirk Lieferung T1,kWh,Out_HT,3
1,2.8.2(@1),Wirk Lieferung T2,kWh,Out_NT,3
1,4.8.1(@1),Blind Leistung,kvarh,R_out,3
1,2.7.0(@1),Überschusseinspeisung,W,P_out,3
1,=h<hr/>
1,=h –– Strom-Bezug ––
1,1.8.0(@1),Wirk Bezug ET,kWh,Total_in,3
1,1.8.1(@1),wktgs. 6-22°° Uhr,kWh,HT_in,3
1,1.8.2(@1),ab Sa13°°-Mo6°° Uhr,kWh,NT_in,3
1,1.6.0(@1),Aktuelles Max IN,A+,Max_latest_in,4
1,3.8.1(@1),Blind Leistung,kvarh,R_in,3
1,1.7.0(@1),Aktuelle Last,W,P_in,3
1,=h<hr/>
1,=h –– Ampere ––
1,91.7(@1),Stromwert N.,A,I_N,2
1,31.7(@1),Stromwert L1,A,I_L1,2
1,51.7(@1),Stromwert L2,A,I_L2,2
1,71.7(@1),Stromwert L3,A,I_L3,2
1,=h<hr/>
1,=h –– Voltage ––
1,32.7(@1),voltage level L1,V,V_L1,2
1,52.7(@1),voltage level L2,V,V_L2,2
1,72.7(@1),voltage level L3,V,V_L3,2
1,=h<hr/>
;1,=h –– Frequenz ––
1,14.7(@1),Hz,Hz,Hz,2
;1,=h –– kum ––
1,1.2.0(@1),Kum. Max,A+,Kum_in,2
1,2.2.0(@1),Kum. Max,A-,Kum_out,2
1,1.4.0(@1),lauf. Max,A+,Lauf_in,2
1,2.4.0(@1),lauf. Max,A-,Lauf_out,2
1,3.7.0(@1),reactive power Q+,kvar,Q_in,3
1,4.7.0(@1),reactive power Q-,kvar,Q_out,3
;1,=h –– Leistung ––
;1,36.7.0(@1,Power_L1,kW,kW_L1,2
;1,56.7.0(@1,Power_L2,kW,kW_L2,2
;1,76.7.0(@1,Power_L3,kW,kW_L3,2
;1,16.7.0(@1,Σ_L1+L2+L3,kW,kW_L1+L2+L3,2
#
Ich verstehe immer noch nicht was du genau meinst mit
ZitatWerte der Vortage/Vorjahre/Vormonate:
script >sma=1261.447;sya=711;eya=3815;ema=1261.447;svars
Du hast drei Werte aber vier Variablen!
Könntest du mal bitte angeben, was was genau ist.
sml.png
Grüße
Wenn du dir das script mal genau anschaust sieht du folgende Beschreibung:
Stromverbrauch:
;-Zählerstand am Monatsanfang (sma)
;-Zählerstand am Jahresanfang (sya)
das gleiche für die Einspeisung:
;-Zählerstand am Monatsanfang (ema)
;-Zählerstand am Jahresanfang (eya)
den Vortag brauchst du nicht setzen, der wird ja nach einem Tag berechnet, genauso würden nach einem Monat und nach einem Jahr die Werte stimmen, wenn du sie nicht setzt.
An alle ein Frohes Osterfest und Grüße :)) Danke Carlos, langsam verstehe ich wie es funktioniert. Aber eine Frage habe ich noch, unten im Markierten Bereich sind noch keine Werte, dadurch ist die Berechnung nicht vollständig. Ändert sich das noch zum nächsten Monat oder habe ich da noch einen Fehler?
>D
v1=0
v2=0
v3=0
min=0
hr=0
md=0
yr=0
rssi=0
ed=0
;Bezug
;-----Stromvariablen Verbrauch
nb=0
;-Stromzähler um Mitternacht (permanente Variable) (sm)
p:sm=0
;-Stromverbrauch pro Tag (sd)
sd=0
;-Zählerstand am Monatsanfang (sma)
p:sma=18340.987
;-Stromverbrauch Monat (smn)
smn=0
;-Zählerstand am Jahresanfang (sya)
p:sya=17953.000
;-Stromverbrauch Jahr (syn)
syn=0
;-kWh Preis dieses Jahr pro Einheit (sspr)
sspr=0.4000
yspr=0
;-Kosten pro Jahr Grundgebühr (ysgp)
ysgp=114.96
;-Einspeisung
;-----Stromvariablen Einspeisung
;-Stromzähler um Mitternacht (permanente Variable) (som)
ne=0
p:em=0
ed=0
;-Zählerstand am Monatsanfang (ema)
p:ema=10100.548
emn=0
;-Zählerstand am Jahresanfang (eya)
p:eya=9759.678
eyn=0
eepr=0.0900
yepr=0
yegp=0.00
>T
v1=SML#Total_in
v2=SML#Total_out
v3=SML#Power_cur
rssi=Wifi#RSSI
>B
=>sensor53 r
tper=10
>S
min=int(time/5)
;Tagesverbrauch
hr=hours
if chg[hr]>0
and hr==0
then
sm=v1
em=v2
nb=v3
ne=v3
svars
endif
if upsecs%tper==0
then
sd=v1-sm
ed=v2-em
nb=v3
ne=v3*-1
endif
;Monatsverbrauch
md=day
if chg[md]>0
and md==1
then
sma=v1
ema=v2
svars
endif
if upsecs%tper==0
then
smn=v1-sma
emn=v2-ema
endif
;Jahresverbrauch
yr=year
if chg[yr]>0
then
sya=v1
eya=v2
svars
endif
if upsecs%tper==0
then
syn=v1-sya
eyn=v2-eya
;Kosten
yspr=syn*sspr+ysgp
yepr=eyn*eepr
endif
if v3>0
then
nb=v3
ne=0
else
nb=0
ne=v3*-1
endif
>F
scnt+=1
switch scnt
case 6
; sml-Treiber auf 300 Baud setzen und /?! als HEX, um das Messgerät auszulösen
res=sml(1 0 300)
res=sml(1 1 "2F3F210D0A")
; 1800 ms später => Ack und Aufforderung zum Umschalten auf 9600 Baud
case 18
res=sml(1 1 "063035300D0A")
; 2000 ms später => Umstellen des sml-Treibers auf 9600 Baud
case 20
res=sml(1 0 9600)
; Neustartsequenz nach 5000 ms
case 50
; 5000 ms später => Neustarten
scnt=0
ends
>J
,"Verbrauch Aktuell":"%nb%"
,"Verbrauch Tag":"%sd%"
,"Verbrauch Monat":"%smn%"
,"Verbrauch Jahr":"%syn%"
,"Verbrauch Total":"%v1%"
,"Einspeisung Aktuell":"%ne%"
,"Einspeisung Tag":"%ed%"
,"Einspeisung Monat":"%emn%"
,"Einspeisung Jahr":"%eyn%"
,"Einspeisung Total":"%v2%"
>W
WLAN Signalstärke: {m} %rssi% %%
<hr/>
Strom {m}Bezug{m}Einspeisung
Tag: {m}<b><span style="color:red">%3sd% KWh</span></b> {m}<b><span style="color:green">%3ed% KWh</span></b>
Monat: {m}<b><span style="color:red">%3smn% KWh</span></b> {m}<b><span style="color:green">%3emn% KWh</span></b>
Jahr:{m}<b><span style="color:red">%3syn% KWh</span></b> {m}<b><span style="color:green">%3eyn% KWh</span></b>
€ Strom: {m}<b><span style="color:red">%2yspr% €</span></b> {m}<b><span style="color:green">%2yepr% €</span></b>
<hr/>
Strom Zähler{m}Bezug{m}Einspeisung
aktuell: {m} %3v1% KWh {m} %3v2% KWh
0:00 Uhr: {m} %3sm% KWh {m} %3em% KWh
Monatsanfang: {m} %3sma% KWh {m} %3ema% KWh
Jahresanfang: {m} %3sya% KWh {m} %3eya% KWh
<hr/>
Preis/kWh: {m} %4sspr% €
Grundpreis: {m} %2ysgp% €
<hr/>
>M 1
+1,3,o,0,300,SML,1,30,2F3F210D0A,063030300D0A
;1,0.9.1(@#),Zeitstempel,Uhr,time-stamp,0
;1,=h<hr/>
;1,=h –– Gas ––
;1,1.8.7(@1),Meter No./:,,Gas_Meter,0
;1,1.8.8(@1),Gas-Bezug ,m³,Gas_Total,3
;1,0.1.0(@1),Rückstellz.,,RSZ,0
;1,=h<hr/>
;1,0.0.0(@1),Meter No./:,,Meter_number,0
1,=h –– PV-Modul ––
1,2.6.0(@1),Total,kW,Max_latest_out,3
1,2.8.0(@1),Wirk Lieferung ET,kWh,Total_out,3
1,2.8.1(@1),Wirk Lieferung T1,kWh,Out_HT,3
1,2.8.2(@1),Wirk Lieferung T2,kWh,Out_NT,3
1,4.8.1(@1),Blind Leistung,kvarh,R_out,3
1,2.7.0(@1),Überschusseinspeisung,W,P_out,3
1,=h<hr/>
1,=h –– Strom-Bezug ––
1,1.8.0(@1),Wirk Bezug ET,kWh,Total_in,3
1,1.8.1(@1),wktgs. 6-22°° Uhr,kWh,HT_in,3
1,1.8.2(@1),ab Sa13°°-Mo6°° Uhr,kWh,NT_in,3
1,1.6.0(@1),Aktuelles Max IN,A+,Max_latest_in,4
1,3.8.1(@1),Blind Leistung,kvarh,R_in,3
1,1.7.0(@1),Aktuelle Last,W,P_in,3
1,=h<hr/>
1,=h –– Ampere ––
1,91.7(@1),Stromwert N.,A,I_N,2
1,31.7(@1),Stromwert L1,A,I_L1,2
1,51.7(@1),Stromwert L2,A,I_L2,2
1,71.7(@1),Stromwert L3,A,I_L3,2
1,=h<hr/>
1,=h –– Voltage ––
1,32.7(@1),voltage level L1,V,V_L1,2
1,52.7(@1),voltage level L2,V,V_L2,2
1,72.7(@1),voltage level L3,V,V_L3,2
1,=h<hr/>
;1,=h –– Frequenz ––
1,14.7(@1),Hz,Hz,Hz,2
;1,=h –– kum ––
1,1.2.0(@1),Kum. Max,A+,Kum_in,2
1,2.2.0(@1),Kum. Max,A-,Kum_out,2
1,1.4.0(@1),lauf. Max,A+,Lauf_in,2
1,2.4.0(@1),lauf. Max,A-,Lauf_out,2
1,3.7.0(@1),reactive power Q+,kvar,Q_in,3
1,4.7.0(@1),reactive power Q-,kvar,Q_out,3
;1,=h –– Leistung ––
;1,36.7.0(@1,Power_L1,kW,kW_L1,2
;1,56.7.0(@1,Power_L2,kW,kW_L2,2
;1,76.7.0(@1,Power_L3,kW,kW_L3,2
;1,16.7.0(@1,Σ_L1+L2+L3,kW,kW_L1+L2+L3,2
#
Hatte ich doch oben beschrieben!
Warte einen Monat und du hast den Monatswert.
Warte ein Jahr und du hast den Jahreswert.
Oder du setzt die Werte wie auch oben beschrieben.
ZitatWerte des Vorjahres/Vormonats setzen:
script >sma=1261.447;sya=711;eya=3815;ema=1261.447;svars
Danke Carlos es funktioniert Super!!! Ich bin so glücklich. Ich hatte nicht verstanden wie es funktioniert.
Grüße
Moin zusammen,
habe nun auch den DWS7420.2
Bin am Überlegen, dies über den optischen Sensor auslesen zu lassen. Weiß nur nicht so richtig, ob die da auch passen. Es gab ja hier einige Anregungen dazu.
Hatte als Alternative auch mit dem Shelly 3EM oder Shelly Pro 3EM im Auge.
Was denkt ihr?
Gruß Piet
hatte den zähler auch, ist "Volkszähler IR Kopf (S0)" tauglich, ist je nach ausführung nur ein einrichtungszähler.
Hatte ich mit Tasmota SML am laufen, ist super dokumentiert (https://tasmota.github.io/docs/Smart-Meter-Interface/#dzg-dws74102vg2-sml-and-dzg-dvs74202-sml)
Zitat von: DasQ am 30 Dezember 2023, 14:22:30hatte den zähler auch, ist "Volkszähler IR Kopf (S0)" tauglich, ist je nach ausführung nur ein einrichtungszähler.
Hatte ich mit Tasmota SML am laufen, ist super dokumentiert (https://tasmota.github.io/docs/Smart-Meter-Interface/#dzg-dws74102vg2-sml-and-dzg-dvs74202-sml)
Ich bin mittlerweile auch auf Tasmota (bitShake) umgestiegen und bin sehr zufrieden mit der Lösung.
Kann ich nur weiter empfehlen.
Gruß
Dan
Den ir-Kopf hab ich von eim ausm Volkszählerforum.
Als Firmware nutze ich ein fertig kompiliertes Tasmota von hier (https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen-tasmota/), das ist gleich fix und fertig gepatcht und kommt kommt optisch mit ein paar netten Diagrammen daher.
Super, vielen Dank.
Mit dem Ready2Use Hichi Lesekopf ist das ja anscheinend echt simpel.
Und nebenbei viel günstiger als mit dem Shelly. Genauso werde ich es machen, vielen Dank für die Anregungen und die Links!
meine empfehlung geht aber ganz klar zu einem esp32. ich seh gerade das es da so hichi dinger gibt die mit esp8266-1(2) laufen. der ist ganz klar zu müde und es fühlt sich alles extremst zäh an. das script kann man nur mit tools hochladen weil sie absolut an die grenzen der hardware gehen.
esp32 mit mindestens 4MB besser 8MB
Probleme mit IR-Schnittstelle am Zähler ,,DWS 7420.2"
Hallo Zusammen,
hat jemand von Euch auch schon mal das Problem gehabt, dass die IR-Schnittstelle des DWS 7420.2 nicht funktioniert?
Am Zähler habe ich (wie gefordert) die PIN angefordert und habe dann im Zähler folgende Einstellungen vorgenommen:
PIN auf ,,off"
inf auf ,,on"
Nun sollte er per IR die Daten senden. Ein Test mit der Handykamera ergab nichts.
Ebenso bekommt mein IR Schreib-Lesekopf mit Tasmota (ESP8266/ESP01s Modul) und passendem Script zu dem DWS 7420 keine Datensätze vom Zähler.
Jemand schon mal von ähnlichen Problemen gehört?
Hört sich für mich nach Kommunikation gestört an. (Rx <-> Tx vertauscht?)
Welche Hardware ist das jetzt genau? Wie angeschlossen?
Ggf noch Firmware Version und Konfigurationen
Die Anleitung zum Zähler kennst du?
https://www.dzg.de/fileadmin/dzg/content/downloads/produkte-zaehler/dvs74/dzg_dvs74_Bedienungsanleitung.pdf
BTW. Sieht man nicht unbedingt was mit dem handy (je nach ccd chip ist der zuträge)
Danke für deine Antworten. :)
Ich habe einen fertigen gekauft: WiFi IR Schreib-Lesekopf DIY Set Tasmota Smart Meter Hichi SML WLAN Stromzähler gekauft:
https://www.ebay.de/itm/295985095280
Daher gehe ich nicht von einem Verdrahtungsfehler aus. Ich dachte aber das gleiche, und habe ihn zur Prüfung zurückgeschickt. Er wurde getestet und soll angeblich OK sein.
Bei der Einrichtung habe ich mich hier dran gehalten und auch die neuste Firmware aus dem Post genommen:
https://ottelo.jimdofree.com/stromz%C3%A4hler-auslesen-tasmota/
Die Anleitung kenne ich.
Die PIN-Abfrage ist aus und inf ist ein.
Das es mit dem Handy nicht unbedingt sichtbar ist, ist mir auch bekannt. Ich habe mein Handy mal an einer IR-Fernbedienung vom TV getestet. Da war es sichbar. Aber das heißt ja auch nicht unmbedingt, dass man es am Zähler auch sehen muss.
Das usb Kabel ging nach oben weg?
Zitat von: DasQ am 30 Januar 2024, 19:30:14Das usb Kabel ging nach oben weg?
Ich habe beides probierte also unten und oben.
Versuche doch mal die Eingabe von " Sensor53 d1 " in der Console von Tasmota. Hier solltest du die empfangenen Daten sehen. Ausschalten mit Sensor53 d0.
Zitat von: romakrau am 30 Januar 2024, 22:05:15Versuche doch mal die Eingabe von " Sensor53 d1 " in der Console von Tasmota. Hier solltest du die empfangenen Daten sehen. Ausschalten mit Sensor53 d0.
Das hatte ich beim Testen schon gemacht. Da passierte nichts.
Ich habe heute einen anderen bestellt, mal sehen ob er nicht doch defekt war.
Der Befehlt liefert keine Werte:
13:39:49.727 CMD: sensor53 d1
13:39:49.733 RSL: RESULT = {"Time":"2024-01-14T13:39:49","SML":{"CMD":"dump: 1"}}
Hat denn mechanisch zumindest der lesekopf gepasst? Also Lochabstand zu den beiden LEDs am Zähler?
Wenn das nicht sauber fluchtet ist klar das der nix empfängt. Ggf passt ja das 3d Gehäuse nicht oder die Löcher sind zu klein.
Dann fält mir nur noch ein das eventuell der definierte Eingangspin in deinem Script nicht passt. War bei mir auch abweichend von der genannten Webseite. Kopieren alle nur das Tasmota Beispiel. Kontaktiere deswegen doch mal den Hersteller.
Zitat von: romakrau am 01 Februar 2024, 07:04:27Dann fällt mir nur noch ein das eventuell der definierte Eingangspin in deinem Script nicht passt. War bei mir auch abweichend von der genannten Webseite. Kopieren alle nur das Tasmota Beispiel. Kontaktiere deswegen doch mal den Hersteller.
Daran hatte ich gar nicht gedacht! Danke für die Anregung.
Morgen kommt der neue Lesekopf. Ich teste und werde berichtet.
Hi
Zitat von: M.Piet am 01 Februar 2024, 09:30:07Morgen kommt der neue Lesekopf. Ich teste und werde berichtet.
Als Anregung:
Wenn es wieder ein Hichi USB mit Tasmota ist würde ich den erstmal mit dem enthaltenen Tasmota testen bevor da wieder das Image vom Projekt drauf kommt.
Gruß Ralf
Edit:
... ich hatte es noch dunkel im Kopf, auf der Projektseite steht:
ZitatA) Ready2Use WiFi Lesekopf von Hichi
Hichi bietet bei ebay komplett fertige WiFi Leseköpfe an. Dieser beinhaltet bereits den ESP8266 (ESP01s Modul) und muss nur über die Mikro USB Buchse mit 5V versorgt werden. Mit einem USB-Netzteil/Ladegerät oder ihr baut euch ein 5V Hutschienen Netzteil ein. Allerdings müsst ihr dafür guten WLAN Empfang in eurem Sicherungskasten haben, der aus Metall ist. Aber dies ist wirklich eine sehr einfache Lösung. Kostet ca. 30€. Auf dem ESP ist bereits Tasmota "vorinstalliert". Deshalb könnt ihr direkt mein fertiges Image via WLAN übertragen ohne TTL Adapter.
Im Script müsst ihr dann Port 3 anstatt 14 (nach meiner Bauanleitung) verwenden: +1,3,s,0,9600,MT681
Hallo zusammen,
vielen Dank für die vielen Hilfen.
Den falschen Port hatte ich in der Tat zuerst benutzt, das brachte keine Besserung.
Der Ersatz ist heute gekommen. Genau das gleiche Problem.
Ich bin nun, dank euch, sicher, dass es am Zähler liegen muss.
Ich werde nun die Stadtwerke mal kontaktieren. Mal sehen ob sie den Zähler austauschen werden.
Hallo,
ich habe einen Hichi Lesekopf und auf einen ESP8266 mit Tasmota geflasht.
Bis hierhin ist alles OK.
Tasmota.png
In FHEM habe ich einen MQTT-Server erstellt.
Nachdem ich in Tasmota MQTT aktiviert habe, werden mir in einem neu erstellten MQTT2-Device viele Daten angezeigt, nur nicht die Daten, die ich benötige.
Internals:
CFGFN
CID SmartMeter
DEF SmartMeter
DEVICETOPIC MQTT2_SmartMeter
FUUID 65cfc2dc-f33f-722a-eca2-b45d8a7df21c48c7
IODev MQTT_Server_FHEM
LASTInputDev MQTT_Server_FHEM
MQTT_Server_FHEM_MSGCNT 184
MQTT_Server_FHEM_TIME 2024-02-17 14:02:32
MSGCNT 184
NAME MQTT2_SmartMeter
NR 47
STATE ???
TYPE MQTT2_DEVICE
READINGS:
2024-02-17 13:29:03 BASE 18
2024-02-17 13:29:03 DeviceName Tasmota
2024-02-17 13:29:03 Emulation 0
2024-02-17 13:29:03 FLAG 0
2024-02-17 13:29:03 FriendlyName1 Tasmota
2024-02-17 13:29:03 FriendlyName2
2024-02-17 13:29:03 FriendlyName3
2024-02-17 13:29:03 FriendlyName4
2024-02-17 13:29:03 FriendlyName5
2024-02-17 13:29:03 FriendlyName6
2024-02-17 13:29:03 FriendlyName7
2024-02-17 13:29:03 FriendlyName8
2024-02-17 13:29:03 GPIO_1 1
2024-02-17 13:29:03 GPIO_10 1
2024-02-17 13:29:03 GPIO_11 1
2024-02-17 13:29:03 GPIO_12 1
2024-02-17 13:29:03 GPIO_13 1
2024-02-17 13:29:03 GPIO_14 1
2024-02-17 13:29:03 GPIO_2 1
2024-02-17 13:29:03 GPIO_3 1
2024-02-17 13:29:03 GPIO_4 1
2024-02-17 13:29:03 GPIO_5 1
2024-02-17 13:29:03 GPIO_6 1
2024-02-17 13:29:03 GPIO_7 1
2024-02-17 13:29:03 GPIO_8 1
2024-02-17 13:29:03 GPIO_9 1
2024-02-17 14:02:32 Heap 19
2024-02-16 21:17:32 IODev MQTT_Server_FHEM
2024-02-17 13:57:28 Info1_FallbackTopic cmnd/SmartMeter_fb/
2024-02-17 13:57:28 Info1_GroupTopic cmnd/tasmotas/
2024-02-17 13:57:28 Info1_Module Sonoff Basic
2024-02-17 13:57:28 Info1_Version 13.3.0(tasmota)
2024-02-17 13:57:28 Info2_Hostname SmartMeter-3134
2024-02-17 13:57:28 Info2_IPAddress 192.168.178.71
2024-02-17 13:57:28 Info2_WebServerMode Admin
2024-02-17 13:57:28 Info3_BootCount 12
2024-02-17 13:57:28 Info3_RestartReason Software/System restart
2024-02-17 13:57:28 LWT Online
2024-02-17 14:02:32 LoadAvg 21
2024-02-17 14:02:32 MqttCount 1
2024-02-17 13:29:03 NAME Generic
2024-02-17 14:02:32 POWER OFF
2024-02-17 13:57:17 SML_CMD restart
2024-02-17 13:29:03 SetOption128 ON
2024-02-17 13:29:03 SetOption3 ON
2024-02-17 14:02:32 Sleep 50
2024-02-17 14:02:32 SleepMode Dynamic
2024-02-17 14:02:32 Time 2024-02-17T14:02:31
2024-02-17 14:02:32 Uptime 0T00:05:08
2024-02-17 14:02:32 UptimeSec 308
2024-02-17 13:29:03 WebPassword ****
2024-02-17 14:02:32 Wifi_AP 1
2024-02-17 14:02:32 Wifi_BSSId 5C:49:79:40:5E:BF
2024-02-17 14:02:32 Wifi_Channel 6
2024-02-17 14:02:32 Wifi_Downtime 0T00:00:03
2024-02-17 14:02:32 Wifi_LinkCount 1
2024-02-17 14:02:32 Wifi_Mode 11n
2024-02-17 14:02:32 Wifi_RSSI 100
2024-02-17 14:02:32 Wifi_SSId NetzBM_Low
2024-02-17 14:02:32 Wifi_Signal -17
2024-02-17 13:57:37 bat 0
2024-02-17 13:57:37 btn_1 0
2024-02-17 13:57:37 btn_10 0
2024-02-17 13:57:37 btn_11 0
2024-02-17 13:57:37 btn_12 0
2024-02-17 13:57:37 btn_13 0
2024-02-17 13:57:37 btn_14 0
2024-02-17 13:57:37 btn_15 0
2024-02-17 13:57:37 btn_16 0
2024-02-17 13:57:37 btn_17 0
2024-02-17 13:57:37 btn_18 0
2024-02-17 13:57:37 btn_19 0
2024-02-17 13:57:37 btn_2 0
2024-02-17 13:57:37 btn_20 0
2024-02-17 13:57:37 btn_21 0
2024-02-17 13:57:37 btn_22 0
2024-02-17 13:57:37 btn_23 0
2024-02-17 13:57:37 btn_24 0
2024-02-17 13:57:37 btn_25 0
2024-02-17 13:57:37 btn_26 0
2024-02-17 13:57:37 btn_27 0
2024-02-17 13:57:37 btn_28 0
2024-02-17 13:57:37 btn_29 0
2024-02-17 13:57:37 btn_3 0
2024-02-17 13:57:37 btn_30 0
2024-02-17 13:57:37 btn_31 0
2024-02-17 13:57:37 btn_32 0
2024-02-17 13:57:37 btn_4 0
2024-02-17 13:57:37 btn_5 0
2024-02-17 13:57:37 btn_6 0
2024-02-17 13:57:37 btn_7 0
2024-02-17 13:57:37 btn_8 0
2024-02-17 13:57:37 btn_9 0
2024-02-17 13:57:37 dn Tasmota
2024-02-17 13:57:37 dslp 0
2024-02-17 13:57:37 fn_1 Tasmota
2024-02-17 13:57:37 ft %prefix%/%topic%/
2024-02-17 13:57:37 hn SmartMeter-3134
2024-02-17 13:57:37 if 0
2024-02-17 13:57:37 ip 192.168.178.71
2024-02-17 13:57:37 lk 0
2024-02-17 13:57:37 lt_st 0
2024-02-17 13:57:37 mac 08F9E06C8C3E
2024-02-17 13:57:37 md Sonoff Basic
2024-02-17 13:57:37 ofln Offline
2024-02-17 13:57:37 onln Online
2024-02-17 13:57:37 rl_1 1
2024-02-17 13:57:37 rl_10 0
2024-02-17 13:57:37 rl_11 0
2024-02-17 13:57:37 rl_12 0
2024-02-17 13:57:37 rl_13 0
2024-02-17 13:57:37 rl_14 0
2024-02-17 13:57:37 rl_15 0
2024-02-17 13:57:37 rl_16 0
2024-02-17 13:57:37 rl_17 0
2024-02-17 13:57:37 rl_18 0
2024-02-17 13:57:37 rl_19 0
2024-02-17 13:57:37 rl_2 0
2024-02-17 13:57:37 rl_20 0
2024-02-17 13:57:37 rl_21 0
2024-02-17 13:57:37 rl_22 0
2024-02-17 13:57:37 rl_23 0
2024-02-17 13:57:37 rl_24 0
2024-02-17 13:57:37 rl_25 0
2024-02-17 13:57:37 rl_26 0
2024-02-17 13:57:37 rl_27 0
2024-02-17 13:57:37 rl_28 0
2024-02-17 13:57:37 rl_29 0
2024-02-17 13:57:37 rl_3 0
2024-02-17 13:57:37 rl_30 0
2024-02-17 13:57:37 rl_31 0
2024-02-17 13:57:37 rl_32 0
2024-02-17 13:57:37 rl_4 0
2024-02-17 13:57:37 rl_5 0
2024-02-17 13:57:37 rl_6 0
2024-02-17 13:57:37 rl_7 0
2024-02-17 13:57:37 rl_8 0
2024-02-17 13:57:37 rl_9 0
2024-02-17 13:57:37 sn_Time 2024-02-17T13:57:36
2024-02-17 13:57:37 so_11 0
2024-02-17 13:57:37 so_114 0
2024-02-17 13:57:37 so_117 0
2024-02-17 13:57:37 so_13 0
2024-02-17 13:57:37 so_17 0
2024-02-17 13:57:37 so_20 0
2024-02-17 13:57:37 so_30 0
2024-02-17 13:57:37 so_4 0
2024-02-17 13:57:37 so_68 0
2024-02-17 13:57:37 so_73 0
2024-02-17 13:57:37 so_82 0
2024-02-17 13:57:37 state_1 OFF
2024-02-17 13:57:37 state_2 ON
2024-02-17 13:57:37 state_3 TOGGLE
2024-02-17 13:57:37 state_4 HOLD
2024-02-17 13:57:37 sw 13.3.0
2024-02-17 13:57:37 swc_1 -1
2024-02-17 13:57:37 swc_10 -1
2024-02-17 13:57:37 swc_11 -1
2024-02-17 13:57:37 swc_12 -1
2024-02-17 13:57:37 swc_13 -1
2024-02-17 13:57:37 swc_14 -1
2024-02-17 13:57:37 swc_15 -1
2024-02-17 13:57:37 swc_16 -1
2024-02-17 13:57:37 swc_17 -1
2024-02-17 13:57:37 swc_18 -1
2024-02-17 13:57:37 swc_19 -1
2024-02-17 13:57:37 swc_2 -1
2024-02-17 13:57:37 swc_20 -1
2024-02-17 13:57:37 swc_21 -1
2024-02-17 13:57:37 swc_22 -1
2024-02-17 13:57:37 swc_23 -1
2024-02-17 13:57:37 swc_24 -1
2024-02-17 13:57:37 swc_25 -1
2024-02-17 13:57:37 swc_26 -1
2024-02-17 13:57:37 swc_27 -1
2024-02-17 13:57:37 swc_28 -1
2024-02-17 13:57:37 swc_3 -1
2024-02-17 13:57:37 swc_4 -1
2024-02-17 13:57:37 swc_5 -1
2024-02-17 13:57:37 swc_6 -1
2024-02-17 13:57:37 swc_7 -1
2024-02-17 13:57:37 swc_8 -1
2024-02-17 13:57:37 swc_9 -1
2024-02-17 13:57:37 t SmartMeter
2024-02-17 13:57:37 tp_1 cmnd
2024-02-17 13:57:37 tp_2 stat
2024-02-17 13:57:37 tp_3 tele
2024-02-17 13:57:37 ty 0
2024-02-17 13:57:37 ver 1
Attributes:
readingList SmartMeter:tele/tasmota_6C8C3E/LWT:.* LWT
SmartMeter:cmnd/tasmota_6C8C3E/POWER:.* POWER
SmartMeter:tele/tasmota_6C8C3E/INFO1:.* { json2nameValue($EVENT) }
SmartMeter:tele/tasmota_6C8C3E/INFO2:.* { json2nameValue($EVENT) }
SmartMeter:tele/tasmota_6C8C3E/INFO3:.* { json2nameValue($EVENT) }
SmartMeter:stat/tasmota_6C8C3E/RESULT:.* { json2nameValue($EVENT) }
SmartMeter:stat/tasmota_6C8C3E/POWER:.* POWER
SmartMeter:tele/tasmota_6C8C3E/STATE:.* { json2nameValue($EVENT) }
SmartMeter:tasmota/discovery/08F9E06C8C3E/config:.* { json2nameValue($EVENT) }
SmartMeter:tasmota/discovery/08F9E06C8C3E/sensors:.* { json2nameValue($EVENT) }
SmartMeter:tele/SmartMeter/LWT:.* LWT
SmartMeter:cmnd/SmartMeter/POWER:.* POWER
SmartMeter:tele/SmartMeter/INFO1:.* { json2nameValue($EVENT) }
SmartMeter:tele/SmartMeter/INFO2:.* { json2nameValue($EVENT) }
SmartMeter:tele/SmartMeter/INFO3:.* { json2nameValue($EVENT) }
SmartMeter:stat/SmartMeter/RESULT:.* { json2nameValue($EVENT) }
SmartMeter:stat/SmartMeter/POWER:.* POWER
SmartMeter:tele/SmartMeter/STATE:.* { json2nameValue($EVENT) }
SmartMeter:tele/SmartMeter/SENSOR:.* { json2nameValue($EVENT) }
room MQTT
Hat jemand eine Ahnung was ich falsch gemacht habe und genau die Readings fehlen, die ich brauche?
Gruß
Apollon
Zitat von: Apollon am 17 Februar 2024, 14:48:50Hat jemand eine Ahnung was ich falsch gemacht habe und genau die Readings fehlen, die ich brauche?
Wie sieht denn dein Script aus?
Magst du das mal zeigen?
Gruß
Dan
Welches Script meinst du?
Das hier?>D
>B
=>sensor53 r
>M 1
+1,3,s,0,9600,
1,77070100010800ff@1000,Bezug,kWh,total_in,1
1,77070100020800ff@1000,Einspeisung,kWh,total_out,1
1,77070100100700ff@1,Power,W,power_curr,0
#
Zitat von: Apollon am 17 Februar 2024, 14:48:50Hat jemand eine Ahnung was ich falsch gemacht habe und genau die Readings fehlen, die ich brauche?
Die Werte aus dem SML-Script (das scheint zu passen, im Web-Interface des ESP sind die ja zu sehen) werden nur alle "teleperiode" übertragen => eigentlich ist nichts "falsch", du musst nur lange genug warten...
Anmerkungen:
- die "discovery"-Topics sollten ignoriert werden (=> Attribut am IO setzen!)
- die teleperiode zu ändern halte ich nicht für sehr zielführend, denn eigentlich willst du ja vermutlich "nur" häufiger den aktuellen Power-Wert haben? Dann einfach das script ändern, so dass alle x Sekunden genau das übermittelt wird (gibt irgendwo einen Thread von mir, wo etwas näher erläutert ist, wie das hier geht).
- die "alten" Topics kannst du aus der readingList werfen, da scheinst du nachträglich was geändert zu haben...
Lange genug gewartet und viel probiert habe ich. An der readingList habe ich schon einiges hin und her geändert. Inzwischen habe ich auch das Device gelöscht. Es ändert sich leider nichts. Ich komme leider nicht weiter. :'(
Zitat von: Apollon am 17 Februar 2024, 18:02:50Lange genug gewartet und viel probiert habe ich. An der readingList habe ich schon einiges hin und her geändert. Inzwischen habe ich auch das Device gelöscht. Es ändert sich leider nichts. Ich komme leider nicht weiter. :'(
Wie steht denn "teleperiode"?
Du meist das hier?
18:17:18.594 MQT: stat/SmartMeter/RESULT = {"TelePeriod":120}
18:17:19.404 MQT: tele/SmartMeter/STATE = {"Time":"2024-02-17T18:17:19","Uptime":"0T00:21:17","UptimeSec":1277,"Heap":19,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":24,"MqttCount":1,"POWER":"OFF","Wifi":{"AP":1,"SSId":"NetzBM_Low","BSSId":"5C:49:79:40:5E:BF","Channel":6,"Mode":"11n","RSSI":100,"Signal":-18,"LinkCount":1,"Downtime":"0T00:00:03"}}
18:17:19.412 MQT: tele/SmartMeter/SENSOR = {"Time":"2024-02-17T18:17:19","":{"total_in":5251.9,"total_out":10317.9,"power_curr":440}}
In "tele/SmartMeter/SENSOR" steht alles was ich brauche. In den readingList steht auch SmartMeter:tele/SmartMeter/SENSOR:.* { json2nameValue($EVENT) } Nur werden die Werte nicht angezeigt.
Ich habe gedacht, dass ich MQTT soweit verstanden habe, aber ein typischer Fall von denkste.
Zitat von: Apollon am 17 Februar 2024, 18:21:54Du meist das hier?
18:17:18.594 MQT: stat/SmartMeter/RESULT = {"TelePeriod":120}
18:17:19.404 MQT: tele/SmartMeter/STATE = {"Time":"2024-02-17T18:17:19","Uptime":"0T00:21:17","UptimeSec":1277,"Heap":19,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":24,"MqttCount":1,"POWER":"OFF","Wifi":{"AP":1,"SSId":"NetzBM_Low","BSSId":"5C:49:79:40:5E:BF","Channel":6,"Mode":"11n","RSSI":100,"Signal":-18,"LinkCount":1,"Downtime":"0T00:00:03"}}
18:17:19.412 MQT: tele/SmartMeter/SENSOR = {"Time":"2024-02-17T18:17:19","":{"total_in":5251.9,"total_out":10317.9,"power_curr":440}}
In "tele/SmartMeter/SENSOR" steht alles was ich brauche. In den readingList steht auch SmartMeter:tele/SmartMeter/SENSOR:.* { json2nameValue($EVENT) } Nur werden die Werte nicht angezeigt.
Ich habe gedacht, dass ich MQTT soweit verstanden habe, aber ein typischer Fall von denkste.
readingList manuell bearbeitet....?
Wirf mal die CID-Präfixe weg....
Alle CID-Präfixe sind weg (so wie im WiKi empfohlen). Den RPi und den ESP neu gestartet. Es werden immer noch keine Werte übermittelt.
Um auf meine ursprüngliche Frage zurück zu kommen. Habe ich etwas falsch im ESP falsch eingestellt. Muss man ggf. hier ansetzen?
Hallo Apollon,
lösche doch mal deine Readings und setzen deine Readingslist mal richtig.
Bei Mir sieht es z.B.: so aus:
DVES_9BF200:tele/Stromzaehler/LWT:.* LWT
DVES_9BF200:cmnd/Stromzaehler/POWER:.* POWER
DVES_9BF200:tele/Stromzaehler/INFO1:.* { json2nameValue($EVENT, 'INFO1_', $JSONMAP) }
DVES_9BF200:stat/Stromzaehler/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }
DVES_9BF200:stat/Stromzaehler/POWER:.* POWER
DVES_9BF200:tele/Stromzaehler/STATE:.* { json2nameValue($EVENT, 'STATE_', $JSONMAP) }
DVES_9BF200:tele/Stromzaehler/SENSOR:.* { json2nameValue($EVENT, 'SENSOR_', $JSONMAP) }
Die Internal lauten:
CID DVES_9BF200
DEF DVES_9BF200
FUUID 65b22611-f33f-e93f-eba9-47149ecdf439f5e6
IODev myBroker
LASTInputDev myBroker
MSGCNT 54363
NAME MQTT2_DVES_9BF200
NR 387
STATE Leistung: 222 Watt , GesamtkW: 130.385 Kw
TYPE MQTT2_DEVICE
eventCount 27240
myBroker_CONN myBroker_192.168.187.190_62361
myBroker_MSGCNT 54363
myBroker_TIME 2024-02-18 12:29:42
.DT:
DEVICETOPIC MQTT2_DVES_9BF200
.attraggr:
.attreocr:
SENSOR_MT176_P
SENSOR_MT176_E_in
.attreour:
statSENSOR_MT176_E_inHourLast
statSENSOR_MT176_E_inDayLast
statSENSOR_MT176_E_inMonthLast
statSENSOR_MT176_E_inYearLast
Stundenwert
.attrminint:
.userReadings:
HASH(0x55c0766ff8)
Ausserdem fehlt in deienm Sricpt noch das Device bzw. der Name. Wie soll MQTT die Daten denn zuordnen.
+1,3,s,0,9600,<jsonPrefix>
<jsonPrefix> Prefix for Web UI and MQTT JSON payload. Up to 7 characters.
Vielleicht hilft es ja.
Gruß Roman
<jsonPrefix> ist sicher eine gute Idee, der Rest dürfte eher verwirren...
(Wieso "complex" bzw. jsonMap, und da spielt wohl auch noch ein statistics mit)...
Hallo,
vielen Dank für die unermüdliche Hilfe. Nun kommen auch die benötigten Werte.
Der Tipp von Roman war zielführend. Der <jsonPrefix> fehlte im Script. Nachdem ich nun ca. 15 Std. hin- und herprobiert habe und noch einmal im FHEM-Wicki alles durchforstet habe, musste es am Nachrichtensender liegen. Ich werde gleich in der SmartMeter-Anleitung von Tasmota danach suchen, ob ich es überlesen habe.
Gruß
Appolon