FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: riker1 am 03 August 2020, 08:07:09

Titel: tasmota JSON Rule X als Reading
Beitrag von: riker1 am 03 August 2020, 08:07:09
Hallo

hat jemand eine Idee wie ich die Rules als Readings bekomme?


07:52:53 MQT: stat/TA_WP_G8/RESULT = {"Rule3":"ON","Once":"OFF","StopOnError":"OFF","Length":42,"Free":469,"Rules":"ruletext"}

habe als readinglist attribut:

stat/TA_WP_G8/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }}

im Reading landet dann aber nur das Reading: Rules

Ich verstehe nicht warum nicht RuleX (1-3) als Reading auftaucht?

Wie bekomme ich das hin?

Danke für die Hilfe

VG T
Titel: Antw:tasmota JSON Rule X als Reading
Beitrag von: rudolfkoenig am 03 August 2020, 09:28:52
Zeig uns bitte jeweils ein Event fuer die 3 Regel, und das ganze readingsList.
Titel: Antw:tasmota JSON Rule X als Reading
Beitrag von: riker1 am 03 August 2020, 10:45:47
Zitat von: rudolfkoenig am 03 August 2020, 09:28:52
Zeig uns bitte jeweils ein Event fuer die 3 Regel, und das ganze readingsList.

Hallo Rudolf,

danke fürs Schauen.


tele/TA_WP_G8/LWT:.* LWT
  tele/TA_WP_G8/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/TA_WP_G8/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/TA_WP_G8/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/TA_WP_G8/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/TA_WP_G8/POWER1:.* POWER1
  stat/TA_WP_G8/POWER:.* POWER
  stat/TA_WP_G8/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }


in der tasmota console
rule0
bzw via fhem setlist:
ruleAll_check:noArg  cmnd/$NAME/backlog rule1;rule2;rule3

tasmota log:
10:40:24 MQT: stat/TA_WP_ESP01_Blau/RESULT = {"Rule1":"ON","Once":"OFF","StopOnError":"OFF","Length":414,"Free":97,"Rules":"..ruletext "}
10:40:24 MQT: stat/TA_WP_ESP01_Blau/RESULT = {"Rule2":"ON","Once":"OFF","StopOnError":"OFF","Length":414,"Free":97,"Rules":"..ruletext "}
10:40:24 MQT: stat/TA_WP_ESP01_Blau/RESULT = {"Rule3":"ON","Once":"OFF","StopOnError":"OFF","Length":414,"Free":97,"Rules":"..ruletext "}


würde gerne readings haben mit:
Rule[b]X[/b]_state (on/off)
Rule[b]X[/b]_once
Rule[b]X[/b]_length
Rule[b]X[/b]_free
Rule[b]X[/b]_Rulestext


Verstehe nicht genau welchen EVENT du meinst?

Habe das Problem das ich Rules in tasmota schalten will und dabei merkwürdigerweise Ruleveränderungen in Tasmota habe. Deshalb wäre ein logging und Readings zur Überwachung hilfreich

Danke VG Thomas

Titel: Antw:tasmota JSON Rule X als Reading
Beitrag von: rudolfkoenig am 03 August 2020, 12:10:57
Im readingList die Zeile(n) mit stat/TA_WP_ESP01_Blau/RESULT durch Folgendes ersetzen:
stat/TA_WP_ESP01_Blau/RESULT:.* { $EVENT=~m/(Rule[1-3])/; json2nameValue($EVENT, $1?"$1_":"",$JSONMAP) }

Das erzeugt Readings nach diesem Muster:
Zitat2020-08-03 12:04:43   Rule3_Free      97
     2020-08-03 12:04:43   Rule3_Length    414
     2020-08-03 12:04:43   Rule3_Once      OFF
     2020-08-03 12:04:43   Rule3_Rule3     ON
     2020-08-03 12:04:43   Rule3_Rules     ..ruletext
     2020-08-03 12:04:43   Rule3_StopOnError OFF


Falls noetig, kann man diese Namen mit dem jsonMap Attribut nach eigenem Geschmack aendern oder loeschen.
Titel: Antw:tasmota JSON Rule X als Reading
Beitrag von: riker1 am 03 August 2020, 13:29:09
Zitat von: rudolfkoenig am 03 August 2020, 12:10:57
Im readingList die Zeile(n) mit stat/TA_WP_ESP01_Blau/RESULT durch Folgendes ersetzen:
stat/TA_WP_ESP01_Blau/RESULT:.* { $EVENT=~m/(Rule[1-3])/; json2nameValue($EVENT, $1?"$1_":"",$JSONMAP) }

Das erzeugt Readings nach diesem Muster:

Falls noetig, kann man diese Namen mit dem jsonMap Attribut nach eigenem Geschmack aendern oder loeschen.

Hallo Ludgwig,

super danke.

habe allerdings Probleme damit .

wenn ich das im Attribut ergänze zickt Fhem und stürzt ab beim speichern des Attributes.



Bin gerade auf der Suche im log.....


muss ich eventuell an der JSONMAp was ändern?
attr TA_WP_G8 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


habe nun versucht das im RAW Modus am Device zu editieren.

Fehlermeldung:TA_WP_G8: bad reading name { $EVENT=~m/(Rule[1-3])/ (contains not A-Za-z/\d_\.- or is too long)
Unknown command json2nameValue($EVENT,, try help.


attribut:
attr TA_WP_G8 readingList tele/TA_WP_G8/LWT:.* LWT\
  tele/TA_WP_G8/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/TA_WP_G8/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/TA_WP_G8/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/TA_WP_G8/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/TA_WP_G8/POWER1:.* POWER1\
  stat/TA_WP_G8/POWER:.* POWER\
  stat/TA_WP_G8/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/TA_WP_G8/RESULT:.* { $EVENT=~m/(Rule[1-3])/; json2nameValue($EVENT, $1?"$1_":"",$JSONMAP) }


Merkwürdig:bei einem Device hat es nun geklappt über das Attribut GUI ....

...nun aber auch über das AttributGUI beim Speichern die gleiche Fehlermeldung:
TA_WP_G8: bad reading name { $EVENT=~m/(Rule[1-3])/;; json2nameValue($EVENT, $1?"$1_":"",$JSONMAP) }\ (contains not A-Za-z/\d_\.- or is too long)

im Fehlermeldung:

Aug 03 13:12:28 ub9 systemd[1]: fhem.service: Main process exited, code=killed, status=9/KILL
Aug 03 13:12:28 ub9 systemd[1]: fhem.service: Failed with result 'signal'.


Vielen Dank

PS. hatte auch alle Readings des Devices mal gelöscht....hat aber wohl nichts gebracht

Titel: Antw:tasmota JSON Rule X als Reading
Beitrag von: riker1 am 03 August 2020, 13:51:48
Hallo Ludwig,

update....nochmal alle Readings der entsprechenden Geräte bereinigt. Nun scheint es zu klappen-.
Bei 2 habe ich es schon drann und die Readings sind da.

Super vielen Dank für die Hilfe.....wahnsinn.


noch eine Frage kann man das readinglist generisch machen? mit $NAME?

stat/$NAME/RESULT:.* { $EVENT=~m/(Rule[1-3])/; json2nameValue($EVENT, $1?"$1_":"",$JSONMAP) }

VG Thomas
Titel: Antw:tasmota JSON Rule X als Reading
Beitrag von: ComputerZOO am 09 September 2020, 08:05:30
Moin, ist zwar schon ein paar Tage alt der letzte Post, aber ja, es gibt für dein $NAME ein Attribut mit dem Namen devicetopic welches im Reading mit $DEVICETOPIC verwendet wird.
Titel: Antw:tasmota JSON Rule X als Reading
Beitrag von: riker1 am 09 September 2020, 09:19:27
ah ok, danke, muss ich mal checken