Hallo,
wir haben vor kurzem einen neuen Stromzähler (DTZ541) bekommen. Die Daten lese ich mit tasmota und einem IR Lesekopf aus.
In fhem habe ich einen MQTT2_SERVER definiert.
In tasmota verwende ich das folgende script:
>D
>B
->sensor53 r
>M 1
+1,3,s,16,9600,SML
1,77070100600100ff@#,Server ID,,server_id,0
1,77070100010800ff@1000,Consumption (Total),kWh,total_kwh,4
1,77070100100700ff@1,Consumption (Current),W,curr_w,0
#
Im log Telemetry period habe ich 600 eingestellt.
Nun bekomme ich alle 10 Min recht viele readings. Um zu sehen welche Daten übertragen werden, habe beim MQTT2_SERVER das verbose auf 5 gestellt.
Die Werte wo mich interessieren
SML_server_id
SML_total_kwh
SML_curr_w
sind in tele/tasmota_5562F0/SENSOR
Es werden aber noch in "tele/tasmota_5562F0/STATE" viele andere Daten übertragen, die ich nicht alle 10 Min benötige
z.B.
Wifi_...
Time..
Uptime..
Lässt es sich in tasmota konfigurieren, daß die tele/tasmota_5562F0/STATE nicht mehr bei der Telemetry period mit übertragen werden?
Gruß Ralf
Da es evtl besser nach "- Bastelecke - ESP8266" passt, verschiebe ich es dorthin
Wenn dich "tele/tasmota_5562F0/STATE" nicht interessiert, dann abonniere es doch einfach nicht.
Soviel Last erzeugt der kurze Json alle 10 min nicht.
Ich glaube nicht, dass sich die Funktion einzeln abschalten lässt.
Ok, noch jemand der dann nicht abonnieren in Betracht ziehen würde und der Meinung ist das man den STATE-Zweig nicht abstellen kann. Den Json manipulieren, auf die nur relevanten Werte und ggf. dann mit event-on-updatechange-reading zu arbeiten wär vlt. auch eine Variante, kann ich mir vorstellen.
Das wär dann aber wieder ein MQTT-Thema ;D
Ich hab mich mit dem Thema bisher noch nicht beschäftigt, aber mal kurz hier (https://tasmota.github.io/docs/Smart-Meter-Interface/) reingeschnuppert.
Auf was bezieht sich die Periode in den anderen Skripten, die einmal mit tper=x und einmal mit TelePeriod x definiert werden, das hab ich noch nicht verstanden, geht das in deinem nicht ?
In deinem Skript gibts keine Angabe zur Periode, wird dann vlt. nur zum mit teleperiod angegebenen Wert übertragen und mit einer der Angaben zusätzlich zu teleperiod x ? Dann könnte man teleperiod noch höher setzen (und das zusätzlich iVm. event-on-updatechange-reading und vlt. manipulieren des Json).
Ich habe es inzwischen hinbekommen. Ich mache es mit einem tasmota script.
Dazu deaktiviere ich die Telemetry period mit 0
Im script sende ich die Werte mit Publish
=>Publish tasmota_5562F0/SML_total_kwh %4kwh%
=>Publish tasmota_5562F0/SML_curr_w %0currW%
Damit ist es dann möglich, daß ich die SML_total_kwh und SML_curr_w alle 10 Min sende.
Wenn sich die SML_curr_w innerhalb der 10 Min z.B. um mehr als 100W ändert, kann ich sie auch öfters senden.
Oder innerhalb einer Minute den Mittelwert der curr_w bilden, indem jede Sekunde die curr_w addiert und dann durch die Anzahl geteilt werden.
Gruß Ralf