[solved] Shelly Plus1PM: FM beim Zuordnen des Device-Templates

Begonnen von isy, 10 September 2022, 19:07:45

Vorheriges Thema - Nächstes Thema

isy

Moin zusammen,

ich bin gerade das dabei, das Teil in Betrieb zu nehmen.
- FHEM aktuell von heute, MQTT2_SERVER
- attrTemplateVersion 20220110 2022-09-10 18:55:02 im Bridge Device
- Autocreate funktioniert (wie immer)

Nach dem Zuweisen des attrTemplate shellyPlus_1pm zeigt sich ein Fenster mit folgendem Text:
Specify the unknown parameters for MQTT2_shelly1pm/shellyPlus_1:
Shelly name in the topic


Da ich leider nicht weiß, was dort einzugeben ist, habe ich 2* auf OK geklickt.
Nun denn, das Teil lässt sich nicht schalten. Temperatur wird angezeigt, grüner Punkt zeigt auf "blank" (Reading ip fehlt) und die Temperatur wird mit -100 Grad angezeigt.

Den Prozess habe ich ein paar Mal wiederholt.
- Shelly vom Netz, mqtt Device gelöscht, neu gestartet, Autocreate funktioniert, beim Zuweisen des Template kommt obige Meldung.

Wer kann mir einen Tipp geben?

VG Helmut


-------------------------
Internals:
   CID        zigbee_bridge
   DEF        zigbee_bridge
   FUUID      61d04fe7-f33f-27cb-4791-8aeb8fb13d4e9d06
   IODev      MyMQTT
   LASTInputDev MyMQTT
   MSGCNT     6
   MyMQTT_CONN MyMQTT_192.168.178.104_56830
   MyMQTT_MSGCNT 6
   MyMQTT_TIME 2022-09-10 18:54:58
   NAME       MQTT2_zigbee_bridge
   NR         1017
   STATE      offline
   TYPE       MQTT2_DEVICE
   eventCount 7
   OLDREADINGS:
   READINGS:
     2022-09-10 18:55:02   attrTemplateVersion 20220110
   hmccu:
Attributes:
   autocreate 1
   bridgeRegexp (tele|stat|shellies|valetudo|Advantech)/([^/]+)/.*:.* "$2"
  (shellyp(lus|ro4pm)[^/:_]{4,}+)/.*:.* "$1"
  zigbee2mqtt/bridge/.*:.* "zigbee2mqtt"
  sonos/connected.* "sonos"
  tvheadend/[^/:]+.* "tvheadend"
  milight/LWT:.* "milight"
  (ESPClient_[^/]+)/.*:.* "$1"
  (ebusd[^/]*)/global/.*:.* "$1"
  [^/]+/(ems-esp[^/]+)/start:.* "$1"
  (mygateway[\d]+)-(in|out)/.* "$1"
  (wallpanel|wled)/([^/]+)/.*:.* "$1_$2"
  go-eCharger/([^/]+)/.*:.* "go_eCharger_$1"
  owntracks/[^/]+/([^/:]+).* "owntracks_$1"
  home/(O[^/]*M[^/]*G[^/]*)/LWT:.* "$1"
  instar/([^/]+)/.*:.* "instar_$1"
  homeassistant/.*/config:.* ""
  tasmota/discovery/[^/:]+/(config|sensors):.* ""
   comment    Do not use very open bridgeRegexp expressions! This might lead to irritating results... Especially make sure to not have two regexpes that may both match!
   devicetopic zigbee2mqtt
   getList    devicelist:noArg log $DEVICETOPIC/bridge/config/devices/get
  networkmap_raw:noArg raw $DEVICETOPIC/bridge/networkmap raw
  networkmap_graphviz:noArg graphviz $DEVICETOPIC/bridge/networkmap graphviz
   group      MQTT Bridge
   icon       mqtt_bridge_1
   model      MQTT2_CLIENT_general_bridge
   room       MQTT2_DEVICE,System
   setList    clear_all:noArg {fhem("deleteattr $NAME readingList; deletereading -q $NAME (?!associatedWith|IODev).*");return undef}
   setStateList on off
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Beta-User

Also: Wenn du MQTT2_SERVER nutzt, brauchst du keine "MQTT2_CLIENT_general_bridge". Abgesehen von der "Beerdigung" diversen auto-discovery-Messages tut die nichts, und dieses Thema sollte man anders lösen (ignoreRegexp).
Das Device scheint ursprünglich mal andere Aufgaben gehabt zu haben, das sieht nach einer zigbee-bridge aus...

Ansonsten müßtest du mal das (unveränderte) Device zeigen, das MQTT2_SERVER für den Shelly anlegt (RAW). Sonst kann ich nicht beurteilen, wo das Problem liegt.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

isy

Das ging ja schnell, Danke schon mal!
Update: Das Teil ist neu und das erste Mal eingeschaltet worden.

Update: Ja, könnte die zigbee2mqtt Bridge sein

List vom 2. Bridge Device:
Internals:
   CID        zigbee_pi
   DEF        zigbee_pi
   FUUID      61d04da9-f33f-27cb-b669-a63f1031ee7a8e82
   IODev      MyMQTT
   NAME       MQTT2_zigbee_pi
   NR         1016
   STATE      offline
   TYPE       MQTT2_DEVICE
   READINGS:
     2022-09-10 19:11:28   IODev           MyMQTT
     2022-09-10 18:55:27   attrTemplateVersion 20220110
     2022-09-10 19:12:28   subscriptions   zigbee2mqtt/#
Attributes:
   IODev      MyMQTT
   autocreate 1
   bridgeRegexp (tele|stat|shellies|valetudo|Advantech)/([^/]+)/.*:.* "$2"
  (shellyp(lus|ro4pm)[^/:_]{4,}+)/.*:.* "$1"
  zigbee2mqtt/bridge/.*:.* "zigbee2mqtt"
  sonos/connected.* "sonos"
  tvheadend/[^/:]+.* "tvheadend"
  milight/LWT:.* "milight"
  (ESPClient_[^/]+)/.*:.* "$1"
  (ebusd[^/]*)/global/.*:.* "$1"
  [^/]+/(ems-esp[^/]+)/start:.* "$1"
  (mygateway[\d]+)-(in|out)/.* "$1"
  (wallpanel|wled)/([^/]+)/.*:.* "$1_$2"
  go-eCharger/([^/]+)/.*:.* "go_eCharger_$1"
  owntracks/[^/]+/([^/:]+).* "owntracks_$1"
  home/(O[^/]*M[^/]*G[^/]*)/LWT:.* "$1"
  instar/([^/]+)/.*:.* "instar_$1"
  homeassistant/.*/config:.* ""
  tasmota/discovery/[^/:]+/(config|sensors):.* ""
   comment    Do not use very open bridgeRegexp expressions! This might lead to irritating results... Especially make sure to not have two regexpes that may both match!
   devicetopic zigbee2mqtt
   getList    devicelist:noArg log $DEVICETOPIC/bridge/config/devices/get
  networkmap_raw:noArg raw $DEVICETOPIC/bridge/networkmap raw
  networkmap_graphviz:noArg graphviz $DEVICETOPIC/bridge/networkmap graphviz
   group      MQTT Bridge
   icon       mqtt_bridge_1
   model      MQTT2_CLIENT_general_bridge
   room       MQTT2_DEVICE,System
   setList    clear_all:noArg {fhem("deleteattr $NAME readingList; deletereading -q $NAME (?!associatedWith|IODev).*");return undef}
   setStateList on off


Hier die raw def vom Shelly1_PM VOR Zuweisen des attrTemplates:
defmod MQTT2_shelly1pm MQTT2_DEVICE shelly1pm
attr MQTT2_shelly1pm readingList shelly1pm:shelly1pm/events/rpc:.* { json2nameValue($EVENT) }\
shelly1pm:shelly1pm/status/switch_0:.* { json2nameValue($EVENT) }
attr MQTT2_shelly1pm room MQTT2_DEVICE

setstate MQTT2_shelly1pm 2022-09-10 19:41:48 IODev MyMQTT
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 aenergy_by_minute_1 5.458
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 aenergy_by_minute_2 166.705
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 aenergy_by_minute_3 166.705
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 aenergy_minute_ts 1662831719
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 aenergy_total 18.895
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 apower 0.0
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 current 0.000
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 dst shelly1pm/events
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 id 0
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 method NotifyStatus
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 output false
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 params_switch_0_aenergy_by_minute_1 5.458
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 params_switch_0_aenergy_by_minute_2 166.705
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 params_switch_0_aenergy_by_minute_3 166.705
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 params_switch_0_aenergy_minute_ts 1662831719
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 params_switch_0_aenergy_total 18.895
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 params_switch_0_id 0
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 params_ts 1662831721.93
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 source MQTT
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 src shellyplus1pm-441793cf2c04
setstate MQTT2_shelly1pm 2022-09-10 19:41:52 subscriptions shelly1pm/rpc
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 temperature_tC 36.0
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 temperature_tF 96.8
setstate MQTT2_shelly1pm 2022-09-10 19:41:48 voltage 230.6



Ein Weg wird erst zu einem Weg, wenn man ihn geht

Beta-User

a) Deine Bridge-Devices sind alle komisch. MQTT2_SERVER legt zwar Devices an, aber "kaputte" Attribute bekommt man in der Form nicht. Würde beide löschen, dann abwarten, bis die zigbee-bridge wieder angelegt wird und dann _das richtige_ attrTemplate darauf anwenden.

b) Du hast dem Ding einen anderen Namen gegeben, oder?
Stelle am besten den ursprünglichen Namen wieder her, unterstellt, der war "einzigartig". Das attrTemplate unterstellt jedenfalls, dass ein "plus"-Gerät auch das shellyplus im Namen hat (für genauer müßte ich nachsehen).
Wenn du da nichts gemacht hast, ist die Namensgebung seitens der Fa. geändert, was nicht lustig wäre...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

isy

Ich habe wahrscheinlich Unsinn mit den beiden Bridges gemacht.
Das Device MQTT2_zigbee_pi muss beim zigbee2mqtt angelegt werden und bekommt das attrTemplate zigbee2mqtt_bridge
Das sollte so richtig sein.

Das mqtt Bridge Device lösche ich.

b) Ja, das "plus" habe ich im Namen geändert. Mache ich wieder rein und lege das Device per autocreate neu an.
--> Hat funktioniert. Es muss das "plus" im Namen vorhanden sein.

Danke sehr!

P.S. Die Bridges schau ich mir detaillierter an!
Ein Weg wird erst zu einem Weg, wenn man ihn geht

isy

Also, das Anlegen hat funktioniert!

Das Teil lässt sich schalten, das Lampensymbol springt auf "set_toggle" und bleibt da.
Das Reading "ip" (kann ich von Hand anlegen) fehlt.
Die Temperatur wird mit -100 angezeigt.
Es wird keine Leistung angezeigt
Firmware version: 0.11.1

Raw Def:
defmod MQTT2_shellyplus1pm_441793cf2c04 MQTT2_DEVICE shellyplus1pm_441793cf2c04
attr MQTT2_shellyplus1pm_441793cf2c04 devStateIcon {my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot':'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,3);; my $temp = ReadingsVal($name,'temperature','-100');; my $ip = ReadingsVal($name,'ip','none');; my $reb = ReadingsVal($name,'sys_restart_required','false') eq 'true'?'<a href="/fhem?cmd.dummy=set '.$name.' x_reboot&XHR=1"> ... Notwendigen Reboot durchführen</a>':'';; qq(<a href="http://$ip" target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a>$reb<div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}
attr MQTT2_shellyplus1pm_441793cf2c04 devicetopic shellyplus1pm-441793cf2c04
attr MQTT2_shellyplus1pm_441793cf2c04 getList in_mode:noArg in_mode $DEVICETOPIC/rpc {"id": 1,"src":"$DEVICETOPIC", "method": "Switch.GetConfig", "params": {"id": 0}}
attr MQTT2_shellyplus1pm_441793cf2c04 icon message_socket
attr MQTT2_shellyplus1pm_441793cf2c04 jsonMap switch_state:state switch_aenergy_total:aenergy_total switch_apower:apower switch_temperature_tC:temperature switch_temperature_tF:0 params_wifi_sta_ip:ip params_switch_0_temperature_tC:temperature params_switch_0_temperature_tF:0 result_in_mode:in_mode
attr MQTT2_shellyplus1pm_441793cf2c04 model shellyPlus_1pm
attr MQTT2_shellyplus1pm_441793cf2c04 readingList $DEVICETOPIC/online:.* online\
  $DEVICETOPIC/events/rpc:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  $DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
  $DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
  $DEVICETOPIC/status/switch_0:.* { $EVENT =~ s/"output":true/"state":"on"/g;; $EVENT =~ s/"output":false/"state":"off"/g;; json2nameValue($EVENT, 'switch_', $JSONMAP) }\
  $DEVICETOPIC/status/cloud:.* {}\
  $DEVICETOPIC/rpc:.* { json2nameValue($EVENT, 'req_', $JSONMAP, 'in_mode')}\
  $DEVICETOPIC/status/input_0:.* { json2nameValue($EVENT, 'input_', $JSONMAP) }\
  fhem2shelly/rpc:.* {}
attr MQTT2_shellyplus1pm_441793cf2c04 room MQTT2_DEVICE
attr MQTT2_shellyplus1pm_441793cf2c04 setList toggle:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Toggle","params": {"id":0}}\
  off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}\
  on:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}\
  on-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}\
  off-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false,"toggle_after":$EVTPART1}}\
  in_mode:toggle,flip,detached {fhem("sleep 0.2;; get $NAME in_mode");; my $val = $EVTPART1 ne 'toggle' ? $EVTPART1 : ReadingsVal($NAME,'in_mode','flip') eq 'flip' ? 'detached':'flip';; qq($DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.SetConfig","params": {"id":0, "config": {"in_mode": "$val"}}})}\
  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_shellyplus1pm_441793cf2c04 setStateList on off toggle on-for-timer off-for-timer
attr MQTT2_shellyplus1pm_441793cf2c04 webCmd :

setstate MQTT2_shellyplus1pm_441793cf2c04 set_toggle
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:00 IODev MyMQTT
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:21 attrTemplateVersion 20220303
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:19:59 dst shellyplus1pm-441793cf2c04/events
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:19:59 method NotifyStatus
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:26 online true
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:26 params_mqtt_connected true
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:19:59 params_switch_0_aenergy_by_minute_1 170.674
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:19:59 params_switch_0_aenergy_by_minute_2 157.279
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:19:59 params_switch_0_aenergy_by_minute_3 172.163
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:19:59 params_switch_0_aenergy_minute_ts 1662833998
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:19:59 params_switch_0_aenergy_total 1.443
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:42 params_switch_0_apower 10.2
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:44 params_switch_0_current 0.128
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:19:59 params_switch_0_id 0
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:33 params_switch_0_output true
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:33 params_switch_0_source MQTT
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:26 params_switch_0_voltage 233.4
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:19:59 params_ts 1662834000.36
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:19:59 src shellyplus1pm-441793cf2c04
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:33 state set_toggle
setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:21 x_reboot set




Hier noch ein List vom Device. Die Readings für Spannung, Leistung, Temperatur sind korrekt.
Internals:
   CID        shellyplus1pm_441793cf2c04
   DEF        shellyplus1pm_441793cf2c04
   FUUID      631cd4d8-f33f-27cb-2857-1a71114d76fff0ea
   IODev      MyMQTT
   LASTInputDev MyMQTT
   MSGCNT     40
   MyMQTT_CONN MyMQTT_192.168.178.110_51637
   MyMQTT_MSGCNT 40
   MyMQTT_TIME 2022-09-10 20:48:59
   NAME       az_Schalter_Funk
   NR         1126
   STATE      set_toggle
   TYPE       MQTT2_DEVICE
   eventCount 40
   JSONMAP:
     params_switch_0_temperature_tC temperature
     params_switch_0_temperature_tF 0
     params_wifi_sta_ip ip
     result_in_mode in_mode
     switch_aenergy_total aenergy_total
     switch_apower apower
     switch_state state
     switch_temperature_tC temperature
     switch_temperature_tF 0
   READINGS:
     2022-09-10 20:42:06   IODev           MyMQTT
     2022-09-10 20:35:17   attrTemplateVersion 20220303
     2022-09-10 20:48:59   dst             shellyplus1pm-441793cf2c04/events
     2022-09-10 20:48:59   method          NotifyStatus
     2022-09-10 20:42:20   online          true
     2022-09-10 20:39:59   params_events_1_cfg_rev 9
     2022-09-10 20:39:59   params_events_1_component sys
     2022-09-10 20:39:59   params_events_1_event config_changed
     2022-09-10 20:39:59   params_events_1_restart_required true
     2022-09-10 20:39:59   params_events_1_ts 1662835200.18
     2022-09-10 20:42:20   params_mqtt_connected true
     2022-09-10 20:48:59   params_switch_0_aenergy_by_minute_1 163.232
     2022-09-10 20:48:59   params_switch_0_aenergy_by_minute_2 162.240
     2022-09-10 20:48:59   params_switch_0_aenergy_by_minute_3 163.232
     2022-09-10 20:48:59   params_switch_0_aenergy_minute_ts 1662835739
     2022-09-10 20:48:59   params_switch_0_aenergy_total 5.750
     2022-09-10 20:44:39   params_switch_0_apower 9.9
     2022-09-10 20:44:41   params_switch_0_current 0.127
     2022-09-10 20:48:59   params_switch_0_id 0
     2022-09-10 20:44:31   params_switch_0_output true
     2022-09-10 20:44:31   params_switch_0_source MQTT
     2022-09-10 20:41:05   params_switch_0_voltage 233.9
     2022-09-10 20:39:59   params_sys_cfg_rev 9
     2022-09-10 20:39:59   params_sys_restart_required true
     2022-09-10 20:48:59   params_ts       1662835741.52
     2022-09-10 20:48:59   src             shellyplus1pm-441793cf2c04
     2022-09-10 20:44:31   state           set_toggle
     2022-09-10 20:39:51   temperature     41.84
     2022-09-10 20:35:17   x_reboot        set
Attributes:
   alias      Steckdosen (Funkgeräte)
   devStateIcon {my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot':'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,3); my $temp = ReadingsVal($name,'temperature','-100'); my $ip = ReadingsVal($name,'ip','none'); my $reb = ReadingsVal($name,'sys_restart_required','false') eq 'true'?'<a href="/fhem?cmd.dummy=set '.$name.' x_reboot&XHR=1"> ... Notwendigen Reboot durchführen</a>':''; qq(<a href="http://$ip" target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a>$reb<div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}
   devicetopic shellyplus1pm-441793cf2c04
   getList    in_mode:noArg in_mode $DEVICETOPIC/rpc {"id": 1,"src":"$DEVICETOPIC", "method": "Switch.GetConfig", "params": {"id": 0}}
   icon       message_socket
   jsonMap    switch_state:state switch_aenergy_total:aenergy_total switch_apower:apower switch_temperature_tC:temperature switch_temperature_tF:0 params_wifi_sta_ip:ip params_switch_0_temperature_tC:temperature params_switch_0_temperature_tF:0 result_in_mode:in_mode
   model      shellyPlus_1pm
   readingList $DEVICETOPIC/online:.* online
  $DEVICETOPIC/events/rpc:.* { json2nameValue($EVENT,'',$JSONMAP) }
  $DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }
  $DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }
  $DEVICETOPIC/status/switch_0:.* { $EVENT =~ s/"output":true/"state":"on"/g; $EVENT =~ s/"output":false/"state":"off"/g; json2nameValue($EVENT, 'switch_', $JSONMAP) }
  $DEVICETOPIC/status/cloud:.* {}
  $DEVICETOPIC/rpc:.* { json2nameValue($EVENT, 'req_', $JSONMAP, 'in_mode')}
  $DEVICETOPIC/status/input_0:.* { json2nameValue($EVENT, 'input_', $JSONMAP) }
  fhem2shelly/rpc:.* {}
   room       Büro,MQTT2_DEVICE
   setList    toggle:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Toggle","params": {"id":0}}
  off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false}}
  on:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true}}
  on-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}
  off-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem2shelly","method":"Switch.Set","params": {"id":0,"on":false,"toggle_after":$EVTPART1}}
  in_mode:toggle,flip,detached {fhem("sleep 0.2; get $NAME in_mode"); my $val = $EVTPART1 ne 'toggle' ? $EVTPART1 : ReadingsVal($NAME,'in_mode','flip') eq 'flip' ? 'detached':'flip'; qq($DEVICETOPIC/rpc {"id":1,"src":"fhem2shelly","method":"Switch.SetConfig","params": {"id":0, "config": {"in_mode": "$val"}}})}
  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}}}}
   setStateList on off toggle on-for-timer off-for-timer
   webCmd     :

Ein Weg wird erst zu einem Weg, wenn man ihn geht

Beta-User

Zitat von: isy am 10 September 2022, 20:21:08
Also, das Anlegen hat funktioniert!

Das Teil lässt sich schalten, das Lampensymbol springt auf "set_toggle" und bleibt da.
Also "fast gut". Das Problem ist, dass die Rückmeldung zwar kommt, aber nicht auf "state" umgemappt wird. (setstate MQTT2_shellyplus1pm_441793cf2c04 2022-09-10 20:18:33 params_switch_0_output true)

Kannst du mal recherieren, ob das die aktuellste firmware ist und ob sich da was geändert hat, in der Methodik, wie das Teil sendet?

Mir ist dunkel in Erinnerung, dass die mehrkanaligen ein anderes Format verwendet hatten, was schon immer seltsam war. Möglicherweise haben die das jetzt vereinheitlicht? (Dann sollte die readingList+jsonMap nach dem Muster des pro4 passen).

Ansonsten kann ich im Moment nicht sagen, wo die vermissten Readings abgeblieben sind, vermutlich wurde (noch?) nichts gesendet (die readingList sieht zumindest auf den ersten Blick unverdächtig aus).





Was die "zigbee-bridge" angeht: eines von beiden Devices ist prinzipiell schon das richtige (je nachdem, was du aktuell als ClientID in der yaml eingestellt hast. Die bridgeRegexp's waren aber in beiden Devices "kaputt"! Das sollte nicht so bleiben.
Und falls nicht gesetzt: ignoreRegexp am IO nachziehen. Sonst kann es nach dem Ändern sein, dass du an einigen Devices plötzlich eine Unmenge komplett unnötiger Readings hast...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

isy

Hier die Release Notes:
https://shelly-api-docs.shelly.cloud/gen2/changelog/#0111-2022-09-09

Es gibt 2 Änderungen beim MQTT:
MQTT: Change MQTT QOS level to 1
MQTT: Retain LWT messages

Mit HASS (und auch anderen HA Systemen) scheint es Probleme zu geben mit der aktuellsten Firmware.
https://www.shelly-support.eu/forum/index.php?thread/16570-shelly-plus-1pm-firmware-url/
I've updated my freshly installed Plus 1PM to FW 0.11.0 (20220830-130414/0.11.0-gfa1bc37).
But when I want to integrate in Home Assistant, it states that the device is not fully provisioned.
My other Plus 1PM on FW 0.10.3 (20220617-112825/0.10.3-g7c89a05) however, was able to integrate to Home Assistant perfectly.


Es gibt demnach keine FW Seite, um einen FW downgrade zu probieren.
Ein Weg wird erst zu einem Weg, wenn man ihn geht

isy

Noch ein Update.
Mit dem Shelly Modul (36_Shelly.pm) läuft das Teil einwandfrei.
Ich nehme das erstmal, kann aber sehr gerne mit mqtt testen, wenn es was Neues gibt.


Ein Weg wird erst zu einem Weg, wenn man ihn geht

isy

Wieder ein Update:

Mit dem Shelly mqtt Parameter Generic status update over MQTT on läuft das Teil einwandfrei. Zu blöd, dass ich das übersehen habe. Steht nach dem damaligen Fund auch in der template Doku.

Das Reading "Ip" fehlt, habe ich daher manuell ergänzt


Die zigbee2mqtt Themen sind gefixt. Danke für die Tipps!
Ein Weg wird erst zu einem Weg, wenn man ihn geht

ak323

Über Shelly geht es nun auch bei mir.
Mit MQTT (auch mit "Generic status update over MQTT on") keine Chance bis jetzt ...
RaspberryPi 2 im 19" Rack mit 16x2 i2c LCD, FHEM, diverse HomeMatic, 1-Wire (8x DS18B20, 3x DS2408, 2x DS2413, 5x DS2401, DS2423 ATTiny) über DS9490R#, Waterkotte Ai1QE (WWPR) Wärmepumpe über Modbus, WH1080 über Signalduino, 433MHz Funksteckdosen, WiFi RGBWW via Tasmota, ...