Hallo,
ich habe mehrere Shellies über MQTT2 in FHEM eingebunden. Nachdem alles über Monate problemlos funktioniert hat, ist es jetzt so, dass mein (einziger) Shelly Plus2PM zwar noch schaltet, aber den State nicht mehr aktualisiert. Der State bleibt mit "set_toggle" stehen.
Der Shelly läuft mit Firmware 1.4.4. In den Shelly Settings sind die Optionen Enable "MQTT control", Enable RPC over MQTT, RPC status notifications over MQTT und Generic status update over MQTT eingeschaltet. Mein Shelly Plus1PM, der problemlos den State in FHEM aktualisiert hat die gleichen Einstellungen.
Hier das Listing zum Shelly Plus2PM:
Internals:
CID shellyplus2pm_kitchen
DEF shellyplus2pm_kitchen
FUUID 6750b119-f33f-00c3-97e7-14e87a20a5dee207
IODev MQTT2
LASTInputDev MQTT2
MQTT2_CONN MQTT2_192.168.178.141_49890
MQTT2_MSGCNT 149
MQTT2_TIME 2024-12-05 19:30:00
MSGCNT 149
NAME kt_Deckenlicht
NR 590
STATE set_on
TYPE MQTT2_DEVICE
eventCount 101
JSONMAP:
params_switch_0_aenergy_total aenergy_total
params_switch_0_apower apower
params_switch_0_state state
params_switch_0_temperature_tC temperature
params_switch_0_temperature_tF 0
params_wifi_sta_ip ip
temperature_tC temperature
temperature_tF 0
READINGS:
2024-12-05 18:53:47 IODev MQTT2
2024-12-05 19:30:00 aenergy_by_minute_1 0.000
2024-12-05 19:30:00 aenergy_by_minute_2 0.000
2024-12-05 19:30:00 aenergy_by_minute_3 0.000
2024-12-05 19:30:00 aenergy_minute_ts 1733423400
2024-12-05 19:30:00 aenergy_total 49.000
2024-12-05 19:30:00 apower 0.0
2024-12-04 20:52:39 associatedWith kt_Esstischlicht
2024-12-04 20:47:14 attrTemplateVersion 20230927
2024-12-05 19:13:30 ble {}
2024-12-05 19:13:32 cloud_connected true
2024-12-05 19:13:31 connected true
2024-12-05 19:30:00 current 0.000
2024-12-05 19:30:00 dst shellyplus2pm-kitchen/events
2024-12-05 19:30:00 freq 50.0
2024-12-05 19:30:00 id 0
2024-12-05 19:13:30 input_0_id 0
2024-12-05 19:13:30 input_0_state false
2024-12-05 19:13:30 input_1_id 1
2024-12-05 19:13:30 input_1_state false
2024-12-05 05:06:48 ip 192.168.178.141
2024-12-05 19:30:00 method NotifyStatus
2024-12-05 19:13:30 online true
2024-12-05 19:30:00 output false
2024-12-05 19:13:32 params_cloud_connected true
2024-12-05 05:06:47 params_events_1_component wifi
2024-12-05 05:06:47 params_events_1_event sta_disconnected
2024-12-05 05:06:47 params_events_1_reason 3
2024-12-04 20:47:14 params_events_1_time_ms 994
2024-12-05 05:06:47 params_events_1_ts 1733371598.43
2024-12-05 19:13:31 params_mqtt_connected true
2024-12-05 19:30:00 params_switch_0_aenergy_by_minute_1 0.000
2024-12-05 19:30:00 params_switch_0_aenergy_by_minute_2 0.000
2024-12-05 19:30:00 params_switch_0_aenergy_by_minute_3 0.000
2024-12-05 19:30:00 params_switch_0_aenergy_minute_ts 1733423400
2024-12-05 19:30:00 params_switch_0_aenergy_total 49.000
2024-12-05 16:52:46 params_switch_0_apower 17.6
2024-12-05 16:42:28 params_switch_0_current 0.135
2024-12-05 19:30:00 params_switch_0_id 0
2024-12-04 20:55:56 params_switch_0_pf 0
2024-12-05 19:30:00 params_switch_0_ret_aenergy_by_minute_1 0.000
2024-12-05 19:30:00 params_switch_0_ret_aenergy_by_minute_2 0.000
2024-12-05 19:30:00 params_switch_0_ret_aenergy_by_minute_3 0.000
2024-12-05 19:30:00 params_switch_0_ret_aenergy_minute_ts 1733423400
2024-12-05 19:30:00 params_switch_0_ret_aenergy_total 0.000
2024-12-05 16:42:23 params_switch_0_source MQTT
2024-12-05 16:42:23 params_switch_0_state on
2024-12-05 18:16:38 params_switch_0_temperature_tC 57.93
2024-12-05 18:16:38 params_switch_0_temperature_tF 136.27
2024-12-04 21:01:55 params_switch_0_voltage 237.1
2024-12-05 19:30:00 params_ts 1733423400.00
2024-12-05 05:06:48 params_wifi_rssi 0
2024-12-05 05:06:48 params_wifi_status connecting
2024-12-05 19:30:00 pf 0.00
2024-12-05 19:30:00 ret_aenergy_by_minute_1 0.000
2024-12-05 19:30:00 ret_aenergy_by_minute_2 0.000
2024-12-05 19:30:00 ret_aenergy_by_minute_3 0.000
2024-12-05 19:30:00 ret_aenergy_minute_ts 1733423400
2024-12-05 19:30:00 ret_aenergy_total 0.000
2024-12-05 19:30:00 source init
2024-12-05 19:30:00 src shellyplus2pm-5443b23cb368
2024-12-05 19:12:00 state set_on
2024-12-05 19:13:30 sys_cfg_rev 34
2024-12-05 19:13:30 sys_fs_free 102400
2024-12-05 19:13:30 sys_fs_size 393216
2024-12-05 19:13:30 sys_kvs_rev 0
2024-12-05 19:13:30 sys_mac 5443B23CB368
2024-12-05 19:13:30 sys_ram_free 134224
2024-12-05 19:13:30 sys_ram_size 252364
2024-12-05 19:13:30 sys_reset_reason 1
2024-12-05 19:13:30 sys_restart_required false
2024-12-05 19:13:30 sys_schedule_rev 0
2024-12-05 18:54:04 sys_time 18:54
2024-12-05 18:54:04 sys_unixtime 1733421243
2024-12-05 19:13:30 sys_uptime 13
2024-12-05 19:13:30 sys_webhook_rev 0
2024-12-05 19:30:00 temperature 53.9
2024-12-05 19:30:00 voltage 237.3
2024-12-05 19:13:31 wifi_rssi -47
2024-12-05 19:13:31 wifi_ssid NinaNinaNinaNeu
2024-12-05 19:13:31 wifi_sta_ip 192.168.178.141
2024-12-05 19:13:31 wifi_status got ip
2024-12-05 19:13:31 ws_connected false
2024-12-04 20:47:13 x_reboot set
Attributes:
alexaName Deckenlicht Küche
alias Deckenlicht Küche
comment Channel 1 for shellyplus2pm_kitchen, see also shellyplus2pm_kitchen_CH2
devStateIcon {my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot': ReadingsVal($name,'new_fw','false') eq 'true' ? '10px-kreis-gelb' : '10px-kreis-gruen'; $onl = FW_makeImage($onl); my $light = FW_makeImage(ReadingsVal($name,'state','off')); my $cons = ReadingsNum($name,'apower',0); my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1); my $temp = ReadingsVal($name,'temperature','-100'); my $ip = ReadingsVal($name,'ip','none'); qq(<a href="http://$ip" target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a><div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}
devicetopic shellyplus2pm-kitchen
genericDeviceType light
getList in_mode:noArg in_mode $DEVICETOPIC/rpc {"id": 1,"src":"$DEVICETOPIC", "method": "Switch.GetConfig", "params": {"id": 0}}
group Lampen
jsonMap params_switch_0_state:state params_switch_0_aenergy_total:aenergy_total params_switch_0_apower:apower params_switch_0_temperature_tC:temperature params_switch_0_temperature_tF:0 params_wifi_sta_ip:ip temperature_tC:temperature temperature_tF:0
model shellyPlus_2pm_split
readingList $DEVICETOPIC/online:.* online
$DEVICETOPIC/events/rpc:.* { return if $EVENT =~ m{switch:[1-3]}; $EVENT =~ s/"output":true/"state":"on"/g; $EVENT =~ s/"output":false/"state":"off"/g; json2nameValue($EVENT,'',$JSONMAP) }
$DEVICETOPIC/status/switch.0:.* { json2nameValue($EVENT, '', $JSONMAP) }
$DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, '', $JSONMAP) }
fhem2shelly/rpc:.* {}
shellyplus2pm_kitchen:shellyplus2pm-kitchen/status/ble:.* ble
shellyplus2pm_kitchen:shellyplus2pm-kitchen/status/cloud:.* { json2nameValue($EVENT, 'cloud_', $JSONMAP) }
shellyplus2pm_kitchen:shellyplus2pm-kitchen/status/input_0:.* { json2nameValue($EVENT, 'input_0_', $JSONMAP) }
shellyplus2pm_kitchen:shellyplus2pm-kitchen/status/input_1:.* { json2nameValue($EVENT, 'input_1_', $JSONMAP) }
shellyplus2pm_kitchen:shellyplus2pm-kitchen/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }
shellyplus2pm_kitchen:shellyplus2pm-kitchen/status/wifi:.* { json2nameValue($EVENT, 'wifi_', $JSONMAP) }
shellyplus2pm_kitchen:shellyplus2pm-kitchen/status/ws:.* { json2nameValue($EVENT, 'ws_', $JSONMAP) }
room Kitchen
setList toggle:noArg $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Toggle","params": {"id":0}}
off:noArg $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}
on:noArg $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}
on-for-timer $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}
off-for-timer $DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false,"toggle_after":$EVTPART1}}
x_update:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Shelly.Update","params": {"stage":"stable"}}
x_reboot:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Shelly.Reboot"}
setStateList on off toggle on-for-timer off-for-timer
siriName Deckenlicht Küche
webCmd :
Hier mal ein Ausschnitt aus dem MQTT traffic, bei dem für mich alles fein aussieht.
19:32:35.372
shellyplus2pm_kitchen
shellyplus2pm-kitchen/events/rpc
{"src":"shellyplus2pm-5443b23cb368","dst":"shellyplus2pm-kitchen/events","method":"NotifyStatus","params":{"ts":1733423555.36,"switch:1":{"id":1,"output":true,"source":"WS_in"}}}
19:32:35.412
shellyplus2pm_kitchen
shellyplus2pm-kitchen/status/switch_1
{"id":1, "source":"WS_in", "output":true, "apower":0.0, "voltage":238.2, "freq":50.0, "current":0.000, "pf":0.00, "aenergy":{"total":132.345,"by_minute":[58.552,0.000,0.000],"minute_ts":1733423520}, "ret_aenergy":{"total":0.000,"by_minute":[0.000,0.000,0.000],"minute_ts":1733423520},"temperature":{"tC":53.5, "tF":128.4}}
19:32:40.825
shellyplus2pm_kitchen
shellyplus2pm-kitchen/events/rpc
{"src":"shellyplus2pm-5443b23cb368","dst":"shellyplus2pm-kitchen/events","method":"NotifyStatus","params":{"ts":1733423555.93,"switch:1":{"id":1,"apower":0,"current":0,"output":false,"pf":0,"source":"WS_in"}}}
19:32:40.859
shellyplus2pm_kitchen
shellyplus2pm-kitchen/status/switch_1
{"id":1, "source":"WS_in", "output":false, "apower":0.0, "voltage":237.3, "freq":50.0, "current":0.000, "pf":0.00, "aenergy":{"total":132.441,"by_minute":[58.552,0.000,0.000],"minute_ts":1733423520}, "ret_aenergy":{"total":0.000,"by_minute":[0.000,0.000,0.000],"minute_ts":1733423520},"temperature":{"tC":53.4, "tF":128.1}}
Ich vermute, dass das Problem mit dem 'attrTemplate' zusammenhängt. Ich blicke da aber leider nicht durch.
Ich hoffe, mir kann da jemand helfen!
Grüße, David
Wann war das letzte FHEM Update?
Samstag Abend ist ein Bug in fhem.pl reingeschlichen, was ich vorhin entfernt habe.
Der Fix ist per SVN ab sofort verfuegbar, per FHEM Update erst morgen ab 8.
Update hatte ich vor dem Post gemacht. Mit dem heutigen Update ist das Problem gelöst. Vielen Dank!