FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: micha0815 am 05 Februar 2021, 23:19:43

Titel: Tasmota Readings ohne den Prefix StatusSNS Gosund SP1
Beitrag von: micha0815 am 05 Februar 2021, 23:19:43
Hallo,

ich bin gerade dabei bei mir einige Tasmota Geräte einzubinden.
Läuft soweit auch ganz gut.

Jetzt ist mir nur folgendes bei meiner Gosund SP1 Steckdose aufgefallen.
Ich habe auf meiner Steckdose im Tasmota eine Regel erstellt, damit bei der Überschreitung gewisser Schwellwerte sofort der aktuell Status gesendet wird.
Die Regel sieht wie folgt aus
{"Rule1":"on","Once":"on","StopOnError":"off","Length":114,"Free":397,"Rules":"ON ENERGY#Power>=15 DO Status 8 BREAK   ON ENERGY#Power>5 DO Status 8 BREAK   ON ENERGY#Power<=5 DO Status 8 ENDON"}
Es wird also immer der Befehl "Status 8" bei einer Überschreitung eines Schwellwerts ausgeführt.
Dieser erzeugt folgenden Output:
stat/0wk-wm-pws/STATUS8 = {"StatusSNS":{"Time":"2021-02-05T23:09:03","ENERGY":{"TotalStartTime":"2021-01-25T22:57:48","Total":8.259,"Yesterday":3.044,"Today":0.000,"Power":0.0,"ApparentPower":0.0,"ReactivePower":0.0,"Factor":0.00,"Voltage":238,"Current":0.000}}}


Alle 90 Sekunden wird der normale Status periodisch gesendet, das sieht so aus
tele/0wk-wm-pws/SENSOR = {"Time":"2021-02-05T23:10:35","ENERGY":{"TotalStartTime":"2021-01-25T22:57:48","Total":8.259,"Yesterday":3.044,"Today":0.000,"Period":0.0,"Power":0.0,"ApparentPower":0.0,"ReactivePower":0.0,"Factor":0.00,"Voltage":239,"Current":0.000}}

Nun erhalte ich die Readings "doppelt", einmal ENERGY_Power durch das SENSOR Topic und StatusSNS_ENERGY_Power durch meine Regel. Gibt es hier eine Möglichkeit, dass auch beim "Status 8" Die Readings ohne das StatusSNS erzeugt werden?

Meine ReadingList und jsonMap sehen wie folgt aus:

attr 0_wk_wm_pws 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 HSBColor:0 Color:0
attr 0_wk_wm_pws readingList stat/0wk-wm-pws/POWER1:.* state\
tele/0wk-wm-pws/LWT:.* LWT\
cmnd/0wk-wm-pws/POWER:.* POWER\
tele/0wk-wm-pws/INFO1:.* { json2nameValue($EVENT) }\
tele/0wk-wm-pws/INFO2:.* { json2nameValue($EVENT) }\
tele/0wk-wm-pws/INFO3:.* { json2nameValue($EVENT) }\
stat/0wk-wm-pws/RESULT:.* { json2nameValue($EVENT) }\
stat/0wk-wm-pws/POWER1:.* POWER1\
stat/0wk-wm-pws/STATUS8:.* { json2nameValue($EVENT,'',$JSONMAP) }\
tele/0wk-wm-pws/STATE:.* { json2nameValue($EVENT) }\
tele/0wk-wm-pws/SENSOR:.* { json2nameValue($EVENT) }


Ich nutze den in FHEM integrierten MQTT Server.

Habe mich schon versucht im Forum und im Wiki schlau zu machen, bin aber leider zu keiner Lösung gekommen.
Titel: Antw:Tasmota Readings ohne den Prefix StatusSNS Gosund SP1
Beitrag von: rudolfkoenig am 06 Februar 2021, 11:04:04
ZitatGibt es hier eine Möglichkeit, dass auch beim "Status 8" Die Readings ohne das StatusSNS erzeugt werden?
Mir faellt Folgendes ein, vmtl. gibts weitere Alternativen:
- jsonMap
- das Ergebnis von json2nameValue durch eine Funktion schicken, und die Namen modifizieren (siehe hashKeyRename in fhem.pl (https://svn.fhem.de/trac/browser/trunk/fhem/fhem.pl#L5330))
- statt json2nameValue das Wichtige aus dem JSON durch regexp rausziehen, und ein (Name=>Wert,Name=>Wert) Hash zurueckliefern
- statt json2nameValue eigene/andere JSON Parser verwenden.