shelly plus1 mini lässt sich über fhem nicht schalten

Begonnen von juergen012, 28 November 2023, 18:59:13

Vorheriges Thema - Nächstes Thema

juergen012

Hallo,
o.a. shelly habe ich über MQTT2 eingebunden. Als Template habe ich shellyPlus_1 genommen. Habe fhem, sowie den shelly mehrfach neu gestartet. Mein Problem ist, dass ich über fhem den Status des shelly nicht angezeigt bekomme. Ebenfalls lässt sich der shelly über die webui nicht schalten. on/off manuell klappt. Die Readings werden auch aktualisiert.
Hier das list:
Internals:
   CFGFN     
   CID        shelly1mini_543204baca00
   DEF        shelly1mini_543204baca00
   FUUID      656625f8-f33f-b02d-235a-7264ae2af0a97317
   IODev      Mqtt2_Server
   LASTInputDev Mqtt2_Server
   MSGCNT     48
   Mqtt2_Server_CONN Mqtt2_Server_172.16.10.160_60068
   Mqtt2_Server_MSGCNT 48
   Mqtt2_Server_TIME 2023-11-28 18:56:16
   NAME       MQTT2_shelly1mini_543204baca00
   NR         1560
   STATE      set_toggle
   TYPE       MQTT2_DEVICE
   eventCount 46
   JSONMAP:
     params_switch_0_temperature_tC temperature
     params_switch_0_temperature_tF 0
     params_wifi_sta_ip ip
     req_result_in_mode in_mode
     switch_state state
     switch_temperature_tC temperature
     switch_temperature_tF 0
   OLDREADINGS:
   READINGS:
     2023-11-28 18:40:08   IODev           Mqtt2_Server
     2023-11-28 18:42:25   attrTemplateVersion 20220304
     2023-11-28 18:49:57   dst             shelly1mini-543204baca00/events
     2023-11-28 18:56:16   in_mode         flip
     2023-11-28 18:49:25   ip              172.16.10.160
     2023-11-28 18:49:57   method          NotifyStatus
     2023-11-28 18:49:25   online          true
     2023-11-28 18:49:25   params_cloud_connected false
     2023-11-28 18:44:59   params_events_1_cfg_rev 20
     2023-11-28 18:49:21   params_events_1_component sys
     2023-11-28 18:49:21   params_events_1_event scheduled_restart
     2023-11-28 18:44:59   params_events_1_restart_required true
     2023-11-28 18:49:21   params_events_1_time_ms 996
     2023-11-28 18:49:21   params_events_1_ts 1701193760.97
     2023-11-28 18:49:25   params_input_0_id 0
     2023-11-28 18:49:25   params_input_0_state false
     2023-11-28 18:49:25   params_mqtt_connected true
     2023-11-28 18:49:57   params_switch_0_id 0
     2023-11-28 18:49:43   params_switch_0_output true
     2023-11-28 18:49:43   params_switch_0_source WS_in
     2023-11-28 18:49:33   params_sys_available_updates_beta_version 1.1.0-beta2
     2023-11-28 18:49:25   params_sys_cfg_rev 20
     2023-11-28 18:49:25   params_sys_fs_free 86016
     2023-11-28 18:49:25   params_sys_fs_size 393216
     2023-11-28 18:49:25   params_sys_kvs_rev 1
     2023-11-28 18:49:25   params_sys_mac  543204BACA00
     2023-11-28 18:49:25   params_sys_ram_free 165960
     2023-11-28 18:49:25   params_sys_ram_size 262788
     2023-11-28 18:49:25   params_sys_restart_required false
     2023-11-28 18:49:25   params_sys_schedule_rev 0
     2023-11-28 18:49:25   params_sys_time 18:49
     2023-11-28 18:49:25   params_sys_unixtime 1701193765
     2023-11-28 18:49:25   params_sys_uptime 3
     2023-11-28 18:49:25   params_sys_webhook_rev 0
     2023-11-28 18:49:57   params_ts       1701193797.78
     2023-11-28 18:49:25   params_wifi_rssi -75
     2023-11-28 18:49:25   params_wifi_ssid Home
     2023-11-28 18:49:25   params_wifi_status got ip
     2023-11-28 18:49:25   params_ws_connected false
     2023-11-28 18:49:57   src             shelly1mini-543204baca00
     2023-11-28 18:49:40   state           set_toggle
     2023-11-28 18:49:57   temperature     41.70
     2023-11-28 18:42:25   x_reboot        set
   hmccu:
Attributes:
   DbLogExclude .*
   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 $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>Temp: $temp °C</div>)}
   devicetopic shelly1mini-543204baca00
   genericDeviceType switch
   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_temperature_tC:temperature switch_temperature_tF:0 params_wifi_sta_ip:ip params_switch_0_temperature_tC:temperature params_switch_0_temperature_tF:0 req_result_in_mode:in_mode
   model      shellyPlus_1
   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       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     :

Hoffentlich kann mir jemand helfen.
Gruß
Jürgen K.
Fhem unter Proxmox

Otto123

Hallo Jürgen,

dein Mqtt2_Server steht auf complex?

Deine Readings sehen so, ich meine das wäre kontra ... bin aber mit den Plus nicht sicher.

Gruß Otto
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

juergen012

Hallo Otto, den Mqtt2Server habe ich auf simple gestellt.
Fhem unter Proxmox

Otto123

Diese Firmware Einstellung hast Du gemacht?
ZitatNOTE: requires to activate generic status update in firmware settings (if not available: reset device to factory defaults)
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

juergen012

Sorry..habe ich wohl überlesen.. heute wird das nix mehr. Werde berichten..
Fhem unter Proxmox

juergen012

So, Firmware reset hat nix gebracht. Ich musste in den Einstellungen des shelly unter MQTT "Generic status update over MQTT" aktivieren. Ist per default aus. Jetzt klappt es wie gewünscht. War gestern wohl nicht so mein Tag
Gruß
Jürgen K.
Fhem unter Proxmox

Otto123

Zitat von: juergen012 am 29 November 2023, 10:27:57So, Firmware reset hat nix gebracht.
:) Schön das es geht.

Da steht aber: Du sollst die Einstellung 'Generic status update over MQTT' aktivieren, falls die Einstellung 'Generic status update over MQTT' nicht vefügbar ist, sollst Du Werkreset machen. ;)

Insofern falsche Reihenfolge - oder was zuletzt steht wird zuerst gemacht  ;D
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