NEWS
IR-Lesekopf (Stromzähler, SML-Format) einbinden
-
@topsurfer sagte in IR-Lesekopf (Stromzähler, SML-Format) einbinden:
Warum ist das so?
ich hab das mal hierhin verschoben, scheint ja um Tasmota zu gehen
-
OK,
hab es gelöst, im Script war zweimal das Keyword (?) "energy" genutzt,
in anderen Scripts hab eich das keyword "en_out" gsehen und damit ersetzt, jetzt komemn per MQTT alle drei Werte an.So sieht es nun bei mir aus, für einen DWS7612.2, evtl. kann es ja jemand gebrauchen:
>D >B =>sensor53 r =>sensor53 l2 >M 1 +1,1,s,0,9600,DWS7612 1,77070100010800ff@1000,Energie eingespeist,kWh,en_out,1 1,77070100020800ff@1000,Energie geliefert,kWh,energy,1 1,77070100100700ff@1,Leistung aktuell,W,power,0 #
-
@topsurfer sagte in IR-Lesekopf (Stromzähler, SML-Format) einbinden:
Wie kan ich diese 3 Werte über MQTT in iob "reinbekommen" ?
Wie bei allem was mit Tasmota läuft: Über den Sonoff-Adapter.
Der dröselt das JSON für Dich auseinander. -
Dachte es würde laufen ...
in der Tasmota Web-Gui werden die Daten (speziell sichtbar am "Aktuellen Verbrauch: x W") im Sekunden Rhythmus aktualisiert, super.Aber im MQTT Explorer und in iob sehe ich nur selten aktuallisierungen, evtl. minütlich.
Gibt es noch einen Parameter, wie oft er MQTT rausschicken soll?
Oder ist dieses Intervall normal? -
@topsurfer
Kannst einstellen am Gerät. Glaub Standard steht da 300s mqtt Intervallconfiguration > configuration logging > telemetry period
-
@warp735 said in IR-Lesekopf (Stromzähler, SML-Format) einbinden:
c
Oh danke, stimmt, da war was ...
Hab auch was verwechselt, ich hatte in meiner alten Installation (noch unter OpenHab) einen S0 Strom-Zähler genutzt.
(Zeit zwischen zwei Impuslen wurde bei höherem akt. Verbrauch geringer, diese Impulse über GPIO eines Raspberry überwacht, aus der Zeit zwischen 2 Impulsen den realen Momentan-Verbrauch ermittelt (in Echtzeit also).Jetzt geht es ja über MQTT ... kleinstes Intervall was in "Telemetry period" akzeptiert wird ist "10" (Sekunden), gibts da einen "Trick", den auf 2s zu setzen?
-
@topsurfer sagte in IR-Lesekopf (Stromzähler, SML-Format) einbinden:
Jetzt geht es ja über MQTT ... kleinstes Intervall was in "Telemetry period" akzeptiert wird ist "10" (Sekunden), gibts da einen "Trick", den auf 2s zu setzen?
Ja, wenn du direkt an einen MQTT-Broker sendest. Du musst das SML-Skript bearbeiten, hier als Beispiel anhand meines Skriptes.
Mein Skript:>D >B =>sensor53 r >M 1 +1,3,s,0,9600,SML 1,77070100010801ff@1000,Verbrauch_Tarif_1,kWh,Verbrauch_T1,7 1,77070100010802ff@1000,Verbrauch_Tarif_2,kWh,Verbrauch_T2,7 1,77070100010800ff@1000,Verbrauch_Summe,kWh,Verbrauch_Summe,7 1,77070100020800ff@1000,Einspeisung_Summe,kWh,Einspeisung_Summe,7 1,=h-- 1,77070100240700ff@1,Leistung_L1,W,Watt_L1,2 1,77070100380700ff@1,Leistung_L2,W,Watt_L2,2 1,770701004c0700ff@1,Leistung_L3,W,Watt_L3,2 1,77070100100700ff@1,Leistung_Summe,W,Watt_Summe,2 1,=h-- 1,77070100200700ff@1,Spannung_L1,V,Volt_L1,1 1,77070100340700ff@1,Spannung_L2,V,Volt_L2,1 1,77070100480700ff@1,Spannung_L3,V,Volt_L3,1 # >S =>Publish Soyosource/SOYO_1ce2fb/L1L2L3 %sml[8]%
Den Wert aus Zeile 14 möchte ich nun bei jeder Änderungen gesendet haben:
1,77070100100700ff@1,Leistung_Summe,W,Watt_Summe,2
Nun heißt es zählen. Zeile 14 ist der 8. Wert der ermittelt wurde, in den Zeilen 6 bis 9 und 11 bis 13 werden 7 Werte ermittelt, Zeile 14 ist der 8.
Unten unter das
>S
habe ich dafür die Zeile
=>Publish Soyosource/SOYO_1ce2fb/L1L2L3 %sml[8]%
diese sendet den 8. Wert bei jeder Änderung an das Topic
Soyosource/SOYO_1ce2fb/L1L2L3
Wie man das in Zusammenhang mit dem Sonoff-Adapter gehen würde weis ich nicht, ich lasse das an meinen MQTT-Adpater senden (mit Mosquitto dazwischen) und - um @Codierknecht zu referenzieren - drösel das JSON selbst auseinander (für den Rest)
Wie du siehst geht das sogar noch schneller als auf der Weboberfläche.
Nein, langsamer geht nicht, einen Tod musst du sterben. Entweder jede Änderungen oder alle 10 Sekunden und höher. -
@bananajoe said in IR-Lesekopf (Stromzähler, SML-Format) einbinden:
Ja, wenn du direkt an einen MQTT-Broker sendest. Du musst das SML-Skript bearbeiten, hier als Beispiel anhand meines Skriptes.
Super, das klappt, danke dir!
Hatte erst ein kleines "s" genutzt, das hat nicht funktioniert.Kann ich beim Publish direkt mitgeben, das er nur ganzzahlig senden soll, also ohne Nachkommastellen?
In der Web-Gui geht das ja mit dem letzten Parameter (...,0) (= Null Nachkommastellen)Update: Oder wie lautet im Alias die Konvertierungsformel ? (runden oder umwandeln in Ganzzahlig sollte damit doch möglich sein
val ... -
@topsurfer sagte in IR-Lesekopf (Stromzähler, SML-Format) einbinden:
Kann ich beim Publish direkt mitgeben, das er nur ganzzahlig senden soll, also ohne Nachkommastellen?
In der Web-Gui geht das ja mit dem letzten Parameter (...,0) (= Null Nachkommastellen)Da bin ich raus, statt Alias verwende ich ein kleines Skript was noch mal auf Plausibilität prüft und das ganze dann in einen eigenen Datenpunkt schreibt. (Letztendlich macht Alias das gleiche)
-
@topsurfer sagte in IR-Lesekopf (Stromzähler, SML-Format) einbinden:
wie lautet im Alias die Konvertierungsformel ? (runden oder umwandeln in Ganzzahlig sollte damit doch möglich sein
Ganzzahl:
Math.round(val)
Runden auf 2 Nachkommastellen:
Math.trunc(val * 100) / 100