clear
CurrentPosition:pct
TargetPosition:target,cmd=target,delay=2000
PositionState:state,values=/-1/:1;/1/:0;/0/:2defmod mq2_ShellyHauptraumlicht MQTT2_DEVICE
attr mq2_ShellyHauptraumlicht userattr channel
attr mq2_ShellyHauptraumlicht DbLogExclude .*
attr mq2_ShellyHauptraumlicht alias Licht Hauptraum
attr mq2_ShellyHauptraumlicht channel 0
attr mq2_ShellyHauptraumlicht devicetopic shelly2pmg3-8cbfea92ea2c
attr mq2_ShellyHauptraumlicht eventMap { dev=>{'true'=>'on','false'=>'off'}}
attr mq2_ShellyHauptraumlicht group Licht
attr mq2_ShellyHauptraumlicht jsonMap aenergy_total:energy_total\
temperature_tF:0\
aenergy_by_minute_1:0\
aenergy_by_minute_2:0\
aenergy_by_minute_3:0\
apower:power\
temperature_tC:temperature\
ret_aenergy_by_minute_1:0\
ret_aenergy_by_minute_2:0\
ret_aenergy_by_minute_3:0\
attr mq2_ShellyHauptraumlicht readingList shellies/$DEVICETOPIC/status/switch.0:.* {json2nameValue($EVENT,'',$JSONMAP)}\
shellies/$DEVICETOPIC/status/input.0:.* {json2nameValue($EVENT,'',$JSONMAP)}\
attr mq2_ShellyHauptraumlicht room Keller
attr mq2_ShellyHauptraumlicht setList on {my @parts = split(/ /, $EVENT);;my $a=$parts[1] // AttrVal($NAME,"channel",0);;return "shellies/$DEVICETOPIC/command/switch:$a on";;}\
off {my @parts = split(/ /, $EVENT);;my $a=$parts[1] // AttrVal($NAME,"channel",0);;return "shellies/$DEVICETOPIC/command/switch:$a off";;}\
toggle {my @parts = split(/ /, $EVENT);;my $a=$parts[1] // AttrVal($NAME,"channel",0);;return "shellies/$DEVICETOPIC/command/switch:$a toggle";;}\
on-for-timer {my @parts = split(/ /, $EVENT);;my $a=$parts[2] // AttrVal($NAME,"channel",0);; return "shellies/$DEVICETOPIC/rpc {\"id\": 1,\"src\": \"user1\",\"method\": \"Switch.Set\",\"params\": {\"id\": $a,\"on\": true,\"toggle_after\": $parts[1]}}";;}\
off-for-timer {my @parts = split(/ /, $EVENT);;my $a=$parts[2] // AttrVal($NAME,"channel",0);; return "shellies/$DEVICETOPIC/rpc {\"id\": 1,\"src\": \"user1\",\"method\": \"Switch.Set\",\"params\": {\"id\": $a,\"off\": true,\"toggle_after\": $parts[1]}}";;}\
AllOn shellies/$DEVICETOPIC/command/switch:* on\
AllOff shellies/$DEVICETOPIC/command/switch:* off\
attr mq2_ShellyHauptraumlicht stateFormat outputset mq2_ShellyHauptraumlicht on-for-timer 100 0undset mq2_ShellyHauptraumlicht on-for-timer 100 1die beiden Kanäle schalten zu können.Zitat von: DS_Starter am 21 März 2026, 16:09:43Ich schau mal ob ich im Anlagencheck eine Plausiprüfung einbauen kann. Wenn es mehrere Inverter gibt, darf es keine Dopplung der Strings-Zuordnung geben.
Oder fällt euch ein Szenario ein wo so etwas valide wäre?
efine WEBapi FHEMWEB 8089
attr WEBapi csrfToken noneist eingerichtet. Die UserReadings mit den JSON Daten werden erzeugt und sehen auch irgendwie plausibel aus.ZitatDer Fehler wäre m.E. durch einen einfachen Syntax-Check zu erkennen.Leider nicht so einfach weil es ein optionaler Schlüssel ist. Wenn er optional ist und man den Separator ( = ) falsch definiert, dann ist der Schlüssel für den Parser nicht vorhanden. Wenn er nicht vorhanden ist kann er auch nicht gecheckt werden. So ein Henne-Ei Thema.