Shelly plus 2PM keine Steuerung möglich

Begonnen von mistepke, 10 August 2024, 18:16:19

Vorheriges Thema - Nächstes Thema

mistepke

Hallo zusammen,

ich betreibe seit nun fast 10 Jahren ein FHEM auf einen Raspberry Pi, aktuell 4 und alle Probleme konnte ich entweder selber oder mit Hilfe dieses Forums lösen.
Meine größter Anteil an Aktoren sind Shellys, danach kommen die Produkte von AVM.
Ab und zu geht leider ein Shelly kaputt, diese Mal hat es einen Shelly 2.5 für eine Rolladensteuerung erwischt. Da es den 2.5 leider nicht mehr (neu) zu kaufen gibt, dachte ich mir nimm das Nachfolgeprodukt, das wird schon gehen.
Das ist der Shelly plus 2PM. Von der Installation an sich ist das neue wirklich gut und sehr viel angenehmer. Auf der neuen Weboberfläche muss man sich ersteinmal zurechtfinden, aber das ging dann auch nach kurzer Zeit.
Das Aktivieren von MQTT ging einfach und gewohnt und das Device erschien auch kurz darauf in meiner FHEM Installation.
Daraufhin habe ich das attrTemplate "shellyPlus_2PM_roller_invert_0" verwendet.
Die Statusanzeige mit dem Attribut "pct" musste ich mit "current_pos" austauschen, da es kein Reading zu "pct" gibt. Das war schonmal komisch.

Nun zu meinem eigentlichen Problem, wozu ich im Forum bisher nichts vergleichbares gefunden habe:
Der Rolladen läßt sich nicht steuern. Wenn ich über die Weboberfläche den Rolladenstad verändere kommt das auch im FHEM an. Aber aus FHEM heraus kann ich gar nichts bewirken. Das hatte ich noch nie.

Hat dazu jemand eine Idee?

Danke und Grüße
Michael

defmod MQTT2_RolladenBad MQTT2_DEVICE RolladenBad
attr MQTT2_RolladenBad alias Rolladen Bad
attr MQTT2_RolladenBad cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_RolladenBad comment Shelly Plus 2 PM in Roller-Mode. 100=opened / 0=closed
attr MQTT2_RolladenBad devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red true:10px-kreis-gruen false:10px-kreis-rot 0:fts_shutter_100 100:fts_shutter_10 9\d:fts_shutter_10 8\d:fts_shutter_20 7\d:fts_shutter_30 6\d:fts_shutter_40 5\d:fts_shutter_50 4\d:fts_shutter_60 3\d:fts_shutter_70 2\d:fts_shutter_80 1\d:fts_shutter_90 0\d:fts_shutter_100 set_.*:fts_shutter_updown
attr MQTT2_RolladenBad devicetopic RolladenBad
attr MQTT2_RolladenBad gassistantName Rolladen Bad
attr MQTT2_RolladenBad genericDeviceType blind
attr MQTT2_RolladenBad group Rolladen
attr MQTT2_RolladenBad icon fts_shutter
attr MQTT2_RolladenBad jsonMap status_state:state status_current_pos:pct status_temperature_tC:temperature
attr MQTT2_RolladenBad model shellyPlus_2pm_roller_invert_0
attr MQTT2_RolladenBad readingList $DEVICETOPIC/online:.* online\
  $DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
  $DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
  $DEVICETOPIC/status/cover_0:.* { json2nameValue($EVENT, 'status_', $JSONMAP) }\
  fhem2shelly/rpc:.* {}\
RolladenBad:shelly_RolladenBad/events/rpc:.* { json2nameValue($EVENT) }\
RolladenBad:shelly_RolladenBad/status/cover_0:.* { json2nameValue($EVENT) }\
RolladenBad:shelly_RolladenBad/online:.* online\
RolladenBad:shelly_RolladenBad/status/ble:.* ble\
RolladenBad:shelly_RolladenBad/status/cloud:.* { json2nameValue($EVENT) }\
RolladenBad:shelly_RolladenBad/status/input_0:.* { json2nameValue($EVENT) }\
RolladenBad:shelly_RolladenBad/status/input_1:.* { json2nameValue($EVENT) }\
RolladenBad:shelly_RolladenBad/status/mqtt:.* { json2nameValue($EVENT) }\
RolladenBad:shelly_RolladenBad/status/sys:.* { json2nameValue($EVENT) }\
RolladenBad:shelly_RolladenBad/status/wifi:.* { json2nameValue($EVENT) }\
RolladenBad:shelly_RolladenBad/status/ws:.* { json2nameValue($EVENT) }
attr MQTT2_RolladenBad room 16. Rolladen,Homekit
attr MQTT2_RolladenBad setList open:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Open","params": {"id":0}}\
  close:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Close","params": {"id":0}}\
  half:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":50}}\
  stop:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.Stop","params": {"id":0}}\
  pct:slider,0,1,100 $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Cover.GoToPosition","params": {"id":0,"pos":$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"}\
  x_eco:true,false $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Sys.SetConfig","params": {"config": {"device": {"eco_mode": $EVTPART1}}}}
attr MQTT2_RolladenBad setStateList open close half stop pct
attr MQTT2_RolladenBad siriName Bad Rolladen
attr MQTT2_RolladenBad stateFormat online\
current_pos
attr MQTT2_RolladenBad webCmd :open:close:half:stop:pct

setstate MQTT2_RolladenBad true\
46
setstate MQTT2_RolladenBad 2024-08-10 15:56:59 IODev MQTT2_FHEM_Server
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 aenergy_by_minute_1 0.000
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 aenergy_by_minute_2 0.000
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 aenergy_by_minute_3 0.000
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 aenergy_minute_ts 1723306320
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 aenergy_total 2.086
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 apower 0.0
setstate MQTT2_RolladenBad 2024-08-10 15:57:45 attrTemplateVersion 20220623
setstate MQTT2_RolladenBad 2024-08-10 16:58:17 available_updates_beta_version 1.4.2-beta1
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 available_updates_stable_version 1.4.0
setstate MQTT2_RolladenBad 2024-08-10 17:55:04 ble {}
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 cfg_rev 44
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 connected true
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 current 0.000
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 current_pos 46
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 dst shelly_RolladenBad/events
setstate MQTT2_RolladenBad 2024-08-10 16:13:41 errors_1 overvoltage
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 freq 50.0
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 fs_free 98304
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 fs_size 393216
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 id 0
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 kvs_rev 1
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 last_direction close
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 mac A0DD6C4F2414
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 method NotifyStatus
setstate MQTT2_RolladenBad 2024-08-10 16:16:40 move_started_at 1723299392.64
setstate MQTT2_RolladenBad 2024-08-10 16:16:40 move_timeout 2.44
setstate MQTT2_RolladenBad 2024-08-10 17:55:04 online true
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cloud_connected false
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 params_cover_0_aenergy_by_minute_1 0.000
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 params_cover_0_aenergy_by_minute_2 0.000
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 params_cover_0_aenergy_by_minute_3 0.000
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 params_cover_0_aenergy_minute_ts 1723306320
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 params_cover_0_aenergy_total 2.086
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_apower 0.0
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_current 0.000
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_current_pos 46
setstate MQTT2_RolladenBad 2024-08-10 16:13:40 params_cover_0_errors_1 overvoltage
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_freq 50.0
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 params_cover_0_id 0
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_last_direction close
setstate MQTT2_RolladenBad 2024-08-10 16:16:32 params_cover_0_move_started_at 1723299392.64
setstate MQTT2_RolladenBad 2024-08-10 16:16:32 params_cover_0_move_timeout 2.44
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_pf 0.00
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_pos_control true
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_source init
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_state stopped
setstate MQTT2_RolladenBad 2024-08-10 16:16:32 params_cover_0_target_pos 46
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_temperature_tC 63.8
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_temperature_tF 146.8
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_cover_0_voltage 237.3
setstate MQTT2_RolladenBad 2024-08-10 16:19:51 params_events_1_cfg_rev 43
setstate MQTT2_RolladenBad 2024-08-10 16:19:51 params_events_1_component mqtt
setstate MQTT2_RolladenBad 2024-08-10 16:19:51 params_events_1_event config_changed
setstate MQTT2_RolladenBad 2024-08-10 16:16:21 params_events_1_id 0
setstate MQTT2_RolladenBad 2024-08-10 16:19:51 params_events_1_restart_required true
setstate MQTT2_RolladenBad 2024-08-10 16:09:25 params_events_1_time_ms 985
setstate MQTT2_RolladenBad 2024-08-10 16:19:51 params_events_1_ts 1723299588.43
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_input_0_id 0
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_input_1_id 1
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_mqtt_connected true
setstate MQTT2_RolladenBad 2024-08-10 16:58:17 params_sys_available_updates_beta_version 1.4.2-beta1
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_available_updates_stable_version 1.4.0
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_cfg_rev 44
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_fs_free 98304
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_fs_size 393216
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_kvs_rev 1
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_mac A0DD6C4F2414
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_ram_free 137060
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_ram_size 252364
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_reset_reason 3
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_restart_required false
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_schedule_rev 1
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_time 17:55
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_unixtime 1723305303
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_uptime 18
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_sys_webhook_rev 1
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 params_ts 1723306320.01
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_wifi_rssi -70
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_wifi_ssid iMAC-LAN
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_wifi_sta_ip 192.168.0.109
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_wifi_status got ip
setstate MQTT2_RolladenBad 2024-08-10 17:55:06 params_ws_connected false
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 pf 0.00
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 pos_control true
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 ram_free 135976
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 ram_size 252292
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 reset_reason 3
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 restart_required false
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 rssi -70
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 schedule_rev 1
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 source init
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 src shellyplus2pm-a0dd6c4f2414
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 ssid iMAC-LAN
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 sta_ip 192.168.0.109
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 state stopped
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 status got ip
setstate MQTT2_RolladenBad 2024-08-10 16:16:40 target_pos 46
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 temperature_tC 63.6
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 temperature_tF 146.5
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 time 17:55
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 unixtime 1723305303
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 uptime 18
setstate MQTT2_RolladenBad 2024-08-10 18:12:00 voltage 237.8
setstate MQTT2_RolladenBad 2024-08-10 17:55:05 webhook_rev 1

Du darfst diesen Dateianhang nicht ansehen.

mistepke

Ach ja, als Firmware auf dem Shelly setze ich die aktuellste stable ein (1.4.0) und die Beta habe ich auch schon versucht.
FHEM ist komplett aktuell.

passibe

Vorab: Irgendwas ist hier nicht ganz sauber, weil deine readingList ein paar komische zusätzliche Einträge hat, wo ich mich wundere, wo sie herkommen und, dass sie überhaupt funktionieren (und selbst wenn, kann das später zu Problemen, wie hier führen).
Am besten wäre eigentlich, du löscht das Device und richtest es nochmal neu ein. Diesmal darauf achten, dass du das richtige devicetopic, so wie im Shelly konfiguriert, angibst und dann ggfs. auch autocreate im device auf 0 setzt.

Meine Vermutung ist, dass da irgendetwas mit dem devicetopic-Attribut nicht stimmt.

Deine readingList lauscht (zum Teil?) auf das Topic shelly_RolladenBad, aber deine setList (also das Attribut, das FHEM sagt, welche MQTT-Befehle zur Steuerung des Shellys gesendet werden sollen) sendet an $DEVIECTOPIC.
Und $DEVICETOPIC ist über das deviectopic-Attribut auf RolladenBad gesetzt.

Deshalb sendet FHEM alle Befehle an RolladenBad und nicht shelly_RolladenBad.

Quick-and-dirty-Lösung könnte deshalb sein:
attr MQTT2_RolladenBad shelly_RolladenBad

Otto123

Zitat von: passibe am 10 August 2024, 18:59:45Quick-and-dirty-Lösung könnte deshalb sein:
Code Auswählen Erweitern
attr MQTT2_RolladenBad shelly_RolladenBad
attr MQTT2_RolladenBad devicetopic shelly_RolladenBad ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mistepke

Man, vielen lieben Dank.

Das war der entscheidene Tipp. Das manuelle Anlegen ging zwar nicht (wahrscheinlich liegt es an mir), aber ich habe im Shelly das MQTT Prefix leer gelassen (undefined; war in den alten auch so, habe ich aber leider übersehen) und das Gleiche für die Client ID.

Dann geht es. Manchmal ist zuviel auch nicht gut.