NEWS
MQTT Übermittelung von IR Lesekopf unvollständig
-
Hallo zusammen,
ich habe mir einen IR Lesekopf für meinen Stromzähler gekauft, auf dem Tasmota läuft und der mir per MQTT die Daten zum ioBroker schicken sollte.
Erstmal kurz der Blick, wie es auf meiner Tasmotaoberfläche aussieht:
Diese 4 Werte sollten laut Anleitung (https://hessburg.de/tasmota-wifi-smartmeter-konfigurieren/#mqtt) im ioBroker landen und zwar mit den von mir gesetzten deutschen Bezeichnungen (siehe unten warum ich das erwähne).Ich habe nun den Standard MQTT Adapter installiert und als Broker laufen lassen. Nun wird bei mir im ioBroker die folgende komplexere Strukture angelegt:
Unter dem rot markierten "...sensors" sehe ich folgendes JSON:
{ "sn": { "Time": "2023-05-29T15:58:16", "ZAEHLER": { "energy_sum": 380.986, "energy_supply": 0.009, "power": 1847, "meter_number": "0a014c4f4700040e39c3" } }, "ver": 1 }
Gut: Alle 4 Werte sind enthalten.
Merkwürdig: "ZAEHLER" ist zwar korrekt auf deutsch übernommen worden, die darunter aufgeführten Werte sind aber auf einmal auf englisch und ich habe Ahnung wo er die hernimmt. Ist erstmal kein Drama, aber wenn ich mir was nicht erklären kann wundere ich mich schon ob es wirklich so funktioniert, wie ich mir das vorstelle.
Außerdem: Der Zeitstempel ist der vom Startzeitpunkt des MQTT-Adapters und er wird nicht aktualisiert.
Wofür auch immer der Eintrag ist, es sind keine aktuellen Daten.Also habe ich weiter gesucht und unter dem blau markierten "...SENSOR" folgendes JSON gefunden:
{ "Time": "2023-05-29T16:32:55", "ZAEHLER": { "power": 920 } }
Gut: Der Wert wird jede Sekunde aktualisiert.
Merkwürdig: Er enthält nur einen Wert und ist ebenfalls auf englisch.Da ich gerade das erste Mal mit MQTT rumspiele frage ich mich, ob ich irgendwo noch eine Wissenslücke habe.
Warum kriege ich beim 2. Datenpunkt nur einen Wert in den ioBroker und warum sind die Begriffe auf englisch (die Überschrift aber korrekt in deutsch so wie ich es in Tasmota eingetragen habe)? -
@oetzi Fangen wir mal vorne an. Poste mal das Script was in Tasmota läuft, hier müssen wir ansetzen.
-
@tt-tom
Gerne>D >B =>sensor53 r >M 1 +1,3,s,0,9600,ZAEHLER,1,10,2F3F210D0A,063035310D0A 1,77070100010800ff@1000,Gesamt,kWh,energy_sum,3 1,77070100020800ff@1000,Einspeisung,kWh,energy_supply,3 1,=h -------------- 1,77070100100700ff@1,Leistung,W,power,16 1,=h -------------- 1,77070100600100ff@#,Server ID,,meter_number,0 #
-
@oetzi hier findest du deine englischen Bezeichnungen wieder. letzte Wort in jeder Zeile
die letzte Zeile kannst du weg lassen, nützt die nix.
ausserdem sendet der Zähler automatisch, kannst also den Teil hinter ZAEHLER weg lassen. (,1,10,2F3F210D0A,063035310D0A)
Hast du dein Zähler schon freigeschaltet? Pin und Info on?
>D >B =>sensor53 r >M 1 +1,3,s,0,9600,LK13BE 1,77070100010800ff@1000,Gesamt kWh bezogen,kWh,Power_total_in,1 1,77070100020800ff@1000,Gesamt kWh geliefert,kWh,Power_total_out,1 1,77070100100700ff@1,Verbrauch aktuell,W,Power_curr,0 1,77070100240700ff@1,Power L1,W,Power_L1_curr,0 1,77070100380700ff@1,Power L2,W,Power_L2_curr,0 1,770701004C0700ff@1,Power L3,W,Power_L3_curr,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,77070100510704ff@1,Phaseangle I-L1/U-L1,deg,phase_angle_p1,1 1,7707010051070fff@1,Phaseangle I-L2/U-L2,deg,phase_angle_p2,1 1,7707010051071aff@1,Phaseangle I-L3/U-L3,deg,phase_angle_p3,1 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 #
-
@tt-tom
ach du meine Güte... ähm, ja
Wahrscheinlich damals beim einrichten mittels copy&paste übernommen, die deutschen Bezeichnung vorne angepasst und den Rest vergessen
Okay, dank dir.Hast du noch eine Idee, warum nur ein Wert (power) sekündlich aktualisiert wird?
EDIT:
@tt-tom said in MQTT Übermittelung von IR Lesekopf unvollständig:Hast du dein Zähler schon freigeschaltet? Pin und Info on?
Ja, PIN ist eingegeben und ich hatte am Anfang in der Konfig irgendwas (bin mir gerade nicht mehr sicher ob es "Info On" hieß) umgestellt, damit ich den nicht immer neu eingeben muss. Die Weboberfläche von dem Lesekopf/Tasmota funktioniert auch dauerhaft.
Muss jetzt zum Sport, gucke später oder spätestens morgen wieder hier rein!
-
@oetzi sagte in MQTT Übermittelung von IR Lesekopf unvollständig:
Hast du noch eine Idee, warum nur ein sekündlich aktualisiert wird?
das kannst du in Tasmota einstellen unter Loggin
-
Guten Morgen @tt-tom
Dank dir für die Erklärungen.
Ich habe jetzt ein paar Sachen getestet.Zunächst einmal das aktuelle Skript:
>D >B =>sensor53 r >M 1 +1,3,s,0,9600,LK13BE 1,77070100010800ff@1000,Gesamt kWh bezogen,kWh,Power_total_in,1 1,77070100020800ff@1000,Gesamt kWh geliefert,kWh,Power_total_out,1 1,77070100100700ff@1,Verbrauch aktuell,W,Power_curr,0 #
Der Output in der Console sieht nun folgendermaßen aus:
06:39:55.429 MQT: TasmotaZaehlerFULLTopic/SENSOR = {"Time":"2023-05-31T06:39:55","LK13BE":{"Power_total_in":390.6,"Power_total_out":0.0,"Power_curr":390}} 06:44:55.456 MQT: TasmotaZaehlerFULLTopic/SENSOR = {"Time":"2023-05-31T06:44:55","LK13BE":{"Power_total_in":390.6,"Power_total_out":0.0,"Power_curr":396}} 06:49:55.464 MQT: TasmotaZaehlerFULLTopic/SENSOR = {"Time":"2023-05-31T06:49:55","LK13BE":{"Power_total_in":390.7,"Power_total_out":0.0,"Power_curr":408}}
Positiv: Es werden alle 3 Werte übermittelt.
Ich verstehe allerdings noch nicht warum vorher nur ein Wert übermittelt wurde?! Ich habe mal wie von dir gesagt unter "Logging" geguckt, aber da kann ich nach meinem Verständnis einstellen, welche Logausgaben erzeugt werden, nicht welche Daten per MQTT übermittelt werden.Und eine andere Sache versuche ich noch zu ergründen: Jetzt überträgt er auf einmal nur noch alle 5 Minuten die Daten per MQTT an den ioBroker. Ich komme nicht drauf, welche Einstellung dafür zuständig ist? Ich würde es gerne häufiger übertragen.
-
@oetzi sagte in MQTT Übermittelung von IR Lesekopf unvollständig:
Positiv: Es werden alle 3 Werte übermittelt.
Ich verstehe allerdings noch nicht warum vorher nur ein Wert übermittelt wurde?! Ich habe mal wie von dir gesagt unter "Logging" geguckt, aber da kann ich nach meinem Verständnis einstellen, welche Logausgaben erzeugt werden, nicht welche Daten per MQTT übermittelt werden.
die Daten, die per MQTT übermittelt werden sollen, stehen im Script.
Welche dir der Zähler sendet kannst du rausbekommen, wenn du in der Konsole eingibstsensor53 d1
das Ergebnis kopieren und auf dieser Webseite einfügen. Diese erstellt dir auch gleich ein Script für Tasmota.
Und eine andere Sache versuche ich noch zu ergründen: Jetzt überträgt er auf einmal nur noch alle 5 Minuten die Daten per MQTT an den ioBroker. Ich komme nicht drauf, welche Einstellung dafür zuständig ist? Ich würde es gerne häufiger übertragen.
Telemetrieperiode, was steht da bei dir? Wert ist in Sekunden
Rein interessehalber, wie sieht deine MQTT einstellungen aus?
-
@tt-tom said in MQTT Übermittelung von IR Lesekopf unvollständig:
@oetzi sagte in MQTT Übermittelung von IR Lesekopf unvollständig:
Ich verstehe allerdings noch nicht warum vorher nur ein Wert übermittelt wurde?! Ich habe mal wie von dir gesagt unter "Logging" geguckt, aber da kann ich nach meinem Verständnis einstellen, welche Logausgaben erzeugt werden, nicht welche Daten per MQTT übermittelt werden.
die Daten, die per MQTT übermittelt werden sollen, stehen im Script.
Jein, in der Theorie ja, aber genau das war bei mir vorgestern ja noch nicht der Fall, siehe erster Post hier im Thread. Auf der Weboberfläche wurden 4 Werte angezeigt, in den ioBroker hat es aber nur einer geschafft. Deswegen bin ich noch neugierig, warum es jetzt auf einmal funktioniert, oder was ggf. vorher falsch war.
das Ergebnis kopieren und auf dieser Webseite einfügen. Diese erstellt dir auch gleich ein Script für Tasmota.
Ah, eine sehr praktische Seite! Danke für den Link.
Und eine andere Sache versuche ich noch zu ergründen: Jetzt überträgt er auf einmal nur noch alle 5 Minuten die Daten per MQTT an den ioBroker. Ich komme nicht drauf, welche Einstellung dafür zuständig ist? Ich würde es gerne häufiger übertragen.
Telemetrieperiode, was steht da bei dir? Wert ist in Sekunden
Perfekt, danke erneut Steht jetzt auf 10, ein niedrigerer Wert wird nicht akzeptiert und dann wieder automatisch auf 10 gesetzt.
Rein interessehalber, wie sieht deine MQTT einstellungen aus?
So (da ich nicht wusste wofür Client und Topic verwendet wird, habe ich diese Benamung gewählt )
-
Client ist der Name, mit dem er sich beim MQTT anmeldet
Topic ist hier dein StartPfad unter MQTT der Wert wird der Variable %topic% übergeben
FullTopic ist der komplette Pfad unter dem die Datenpunkte liegen.Die Variable %prefix% enthält die Ordner von Tasmota (cmnd, stat, tele)
Hier siehst du meine Einstellungen und kannst es in den Bilder vielleicht nachvollziehen.
Wenn du weiter einsteigen willst, ist hier die offizielle Tasmota Seite
-
@tt-tom
Perfekt, vielen lieben Dank für deine Unterstützung, das hat mir sehr geholfen den Einstieg zu meistern.
Jetzt werde ich mich als nächstes damit auseinandersetzen wie ich aus dem JSON verwertbare Datenpunkte mache -
lese mal die beiden post, wenn du nicht weiterkommst sag Bescheid. für dich passt die Variante mit dem Alias Datenpunkt.
Viel Spass noch