FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: rallye am 06 April 2022, 17:48:33

Titel: Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rallye am 06 April 2022, 17:48:33
Ich bin nicht sicher dass dieses Unterforum das Richtige ist. Ich probier's mal. Ich habe einen Shelly1PM mit einem AddOn (Temperatursensor) Nachdem der Shelly brav im MQTT-Room erscheint und am MQTT2_Server angemeldet ist setze ich
set SW.Poolheizung attrTemplate shelly1_w_temperature_measuring Soweit alles gut.
Ich bin noch in der Installationsphase mit mehreren Shellies Poolheizung, -pumpe, Gartenlicht usw. die alle am selben Stromkreis hängen. Wenn ich den Strom trenne und später wieder anschalte gehen alle Shelly1 wieder online. Nur der Shelly1PM bleibt offline. Es werden alle Readings richtig geliefert, nur der Online-Status ist und bleibt falsch. Wäre mir prinzipiell egal, der rote Kreis nervt aber. Wenn ich nun das Template neu anwende ist alles wieder gut und der Shelly1PM wird auch wieder online angezeigt. Ist da am Template etwas falsch oder mache ich etwas falsch ?

Danke
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: Beta-User am 06 April 2022, 18:01:32
...da ich jüngst bei den Shelly-Templates was geschraubt habe, wäre es interessant zu wissen, welchen Stand das betreffende attrTemplate hatte...

Magst du ein RAW-list liefern?
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rallye am 08 April 2022, 10:11:38
Gerne ! Here we go !
defmod SW.Poolheizung MQTT2_DEVICE shelly1pm_8CAAB55FD1E4
attr SW.Poolheizung alias Poolheizung
attr SW.Poolheizung comment To get appropriate loadState values: Change the default limit "100" in readingList to your needs.
attr SW.Poolheizung 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";; my $light = ReadingsVal($name,"state","off");; my $cons = ReadingsVal($name,"relay_0_power","unknown");; my $total = ReadingsVal($name,"relay_0_kWh","unknown");; my $temp = ReadingsVal($name,"temperature","-100");; "<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $cons / Total: $total/ Temp: $temp °C</div>"}
attr SW.Poolheizung genericDeviceType switch
attr SW.Poolheizung group Schwimmbad
attr SW.Poolheizung icon sani_pump@1F85DE
attr SW.Poolheizung model shelly1_w_energy_measuring
attr SW.Poolheizung readingList shellies/SH-Poolheizung/relay/0:.* state\
  shellies/SH-Poolheizung/relay/0:.* relay0\
  shellies/SH-Poolheizung/input/0:.* input0\
  shellies/SH-Poolheizung/online:.* online\
  shellies/announce:.* { $EVENT =~ m,..id...SH-Poolheizung...mac.*, ? json2nameValue($EVENT) : return }\
  shellies/SH-Poolheizung/announce:.* { json2nameValue($EVENT) }\
  shellies/SH-Poolheizung/relay/0/power:.* relay_0_power\
  shellies/SH-Poolheizung/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on";; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }\
  shellies/SH-Poolheizung/temperature:.* temperature\
  shellies/SH-Poolheizung/temperature_f:.* temperature_f\
  shellies/SH-Poolheizung/input_event/0:.* { json2nameValue($EVENT) }\
  shellies/SH-Poolheizung/overtemperature:.* overtemperature\
  shellies/SH-Poolheizung/relay/0/energy:.* relay_0_energy\
  shellies/SH-Poolheizung/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}\
  shellies/SH-Poolheizung/longpush/0:.* longpush_0\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/info:.* { json2nameValue($EVENT) }\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/temperature_status:.* temperature_status\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperature/0:.* ext_temperature_0\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperature_f/0:.* ext_temperature_f_0\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperatures:.* { json2nameValue($EVENT) }\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperatures_f:.* { json2nameValue($EVENT) }
attr SW.Poolheizung room HomeBridge
attr SW.Poolheizung setList relay0:on,off,toggle shellies/SH-Poolheizung/relay/0/command $EVTPART1\
  toggle:noArg shellies/SH-Poolheizung/relay/0/command toggle\
  off:noArg shellies/SH-Poolheizung/relay/0/command off\
  on:noArg shellies/SH-Poolheizung/relay/0/command on\
  x_update:noArg shellies/SH-Poolheizung/command update_fw\
  x_mqttcom shellies/SH-Poolheizung/command $EVTPART1
attr SW.Poolheizung setStateList on off toggle
attr SW.Poolheizung userReadings relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)}
attr SW.Poolheizung webCmd :

setstate SW.Poolheizung off
setstate SW.Poolheizung 2022-04-08 10:10:07 0_hwID 28970c96f0013cb7
setstate SW.Poolheizung 2022-04-08 10:10:07 0_tC 10.7
setstate SW.Poolheizung 2022-04-08 10:10:07 0_tF 51.2
setstate SW.Poolheizung 2022-04-06 15:48:58 IODev MQTT_Shellies
setstate SW.Poolheizung 2022-04-06 15:49:06 actions_stats_skipped 0
setstate SW.Poolheizung 2022-04-06 13:35:58 attrTemplateVersion 20200831
setstate SW.Poolheizung 2022-04-06 15:49:06 cfg_changed_cnt 0
setstate SW.Poolheizung 2022-04-06 15:49:06 cloud_connected false
setstate SW.Poolheizung 2022-04-06 15:49:06 cloud_enabled false
setstate SW.Poolheizung 2022-04-06 15:49:07 event
setstate SW.Poolheizung 2022-04-06 15:49:07 event_cnt 0
setstate SW.Poolheizung 2022-04-06 15:49:06 ext_sensors_temperature_unit C
setstate SW.Poolheizung 2022-04-08 10:10:07 ext_temperature_0 10.7
setstate SW.Poolheizung 2022-04-06 15:49:06 ext_temperature_0_hwID 28970c96f0013cb7
setstate SW.Poolheizung 2022-04-06 15:49:06 ext_temperature_0_tC 10.69
setstate SW.Poolheizung 2022-04-06 15:49:06 ext_temperature_0_tF 51.24
setstate SW.Poolheizung 2022-04-08 10:10:07 ext_temperature_f_0 51.2
setstate SW.Poolheizung 2022-04-06 15:49:06 fs_free 148843
setstate SW.Poolheizung 2022-04-06 15:49:06 fs_size 233681
setstate SW.Poolheizung 2022-04-06 15:49:05 fw_ver 20220209-094317/v1.11.8-g8c7bb8d
setstate SW.Poolheizung 2022-04-06 15:49:06 has_update false
setstate SW.Poolheizung 2022-04-06 15:49:05 id SH-Poolheizung
setstate SW.Poolheizung 2022-04-08 10:10:07 input0 0
setstate SW.Poolheizung 2022-04-06 15:49:06 inputs_1_event
setstate SW.Poolheizung 2022-04-06 15:49:06 inputs_1_event_cnt 0
setstate SW.Poolheizung 2022-04-06 15:49:06 inputs_1_input 0
setstate SW.Poolheizung 2022-04-06 15:49:05 ip 192.168.57.217
setstate SW.Poolheizung 2022-04-06 15:49:06 mac 8CAAB55FD1E4
setstate SW.Poolheizung 2022-04-06 15:49:06 meters_1_counters_1 0.000
setstate SW.Poolheizung 2022-04-06 15:49:06 meters_1_counters_2 0.000
setstate SW.Poolheizung 2022-04-06 15:49:06 meters_1_counters_3 0.000
setstate SW.Poolheizung 2022-04-06 15:49:06 meters_1_is_valid true
setstate SW.Poolheizung 2022-04-06 15:49:06 meters_1_overpower 0.00
setstate SW.Poolheizung 2022-04-06 15:49:06 meters_1_power 0.00
setstate SW.Poolheizung 2022-04-06 15:49:06 meters_1_timestamp 0
setstate SW.Poolheizung 2022-04-06 15:49:06 meters_1_total 0
setstate SW.Poolheizung 2022-04-06 15:49:05 model SHSW-PM
setstate SW.Poolheizung 2022-04-06 15:49:06 mqtt_connected true
setstate SW.Poolheizung 2022-04-06 15:49:05 new_fw false
setstate SW.Poolheizung 2022-04-06 15:49:05 online true
setstate SW.Poolheizung 2022-04-08 10:10:07 overtemperature 0
setstate SW.Poolheizung 2022-04-06 15:49:06 ram_free 37752
setstate SW.Poolheizung 2022-04-06 15:49:06 ram_total 50456
setstate SW.Poolheizung 2022-04-08 10:10:07 relay0 off
setstate SW.Poolheizung 2022-04-08 10:10:07 relay_0_energy 0
setstate SW.Poolheizung 2022-04-08 10:10:07 relay_0_energy_total 0
setstate SW.Poolheizung 2022-04-08 10:10:07 relay_0_kWh 0.00
setstate SW.Poolheizung 2022-04-08 10:10:07 relay_0_power 0.00
setstate SW.Poolheizung 2022-04-06 15:49:06 relays_1_has_timer false
setstate SW.Poolheizung 2022-04-06 15:49:06 relays_1_ison false
setstate SW.Poolheizung 2022-04-06 15:49:06 relays_1_overpower false
setstate SW.Poolheizung 2022-04-06 15:49:06 relays_1_source input
setstate SW.Poolheizung 2022-04-06 15:49:06 relays_1_timer_duration 0
setstate SW.Poolheizung 2022-04-06 15:49:06 relays_1_timer_remaining 0
setstate SW.Poolheizung 2022-04-06 15:49:06 relays_1_timer_started 0
setstate SW.Poolheizung 2022-04-06 15:49:06 serial 122
setstate SW.Poolheizung 2022-04-08 10:10:07 state off
setstate SW.Poolheizung 2022-04-08 10:10:07 temperature 19.01
setstate SW.Poolheizung 2022-04-08 10:10:07 temperature_f 66.22
setstate SW.Poolheizung 2022-04-08 10:10:07 temperature_status Normal
setstate SW.Poolheizung 2022-04-06 15:49:06 time
setstate SW.Poolheizung 2022-04-06 15:49:06 tmp_is_valid true
setstate SW.Poolheizung 2022-04-06 15:49:06 tmp_tC 31.16
setstate SW.Poolheizung 2022-04-06 15:49:06 tmp_tF 88.08
setstate SW.Poolheizung 2022-04-06 15:49:06 unixtime 0
setstate SW.Poolheizung 2022-04-06 15:49:06 update_has_update false
setstate SW.Poolheizung 2022-04-06 15:49:06 update_new_version
setstate SW.Poolheizung 2022-04-06 15:49:06 update_old_version 20220209-094317/v1.11.8-g8c7bb8d
setstate SW.Poolheizung 2022-04-06 15:49:06 update_status unknown
setstate SW.Poolheizung 2022-04-06 15:49:06 uptime 11194
setstate SW.Poolheizung 2022-04-06 15:49:06 wifi_sta_connected true
setstate SW.Poolheizung 2022-04-06 15:49:06 wifi_sta_ip 192.168.57.217
setstate SW.Poolheizung 2022-04-06 15:49:06 wifi_sta_rssi -70
setstate SW.Poolheizung 2022-04-06 15:49:06 wifi_sta_ssid Internet
setstate SW.Poolheizung 2022-04-06 13:35:58 x_mqttcom set announce


bzw.
Internals:
   CID        shelly1pm_8CAAB55FD1E4
   DEF        shelly1pm_8CAAB55FD1E4
   DEVICETOPIC SW.Poolheizung
   FUUID      62499826-f33f-55a1-2df9-eb6b5e399021d2ed
   IODev      MQTT_Shellies
   LASTInputDev MQTT_Shellies
   MQTT_Shellies_CONN MQTT_Shellies_192.168.57.217_9373
   MQTT_Shellies_MSGCNT 63839
   MQTT_Shellies_TIME 2022-04-08 10:14:37
   MSGCNT     63839
   NAME       SW.Poolheizung
   NR         477
   STATE      off
   TYPE       MQTT2_DEVICE
   READINGS:
     2022-04-08 10:14:37   0_hwID          28970c96f0013cb7
     2022-04-08 10:14:37   0_tC            10.6
     2022-04-08 10:14:37   0_tF            51.0
     2022-04-06 15:48:58   IODev           MQTT_Shellies
     2022-04-06 15:49:06   actions_stats_skipped 0
     2022-04-06 13:35:58   attrTemplateVersion 20200831
     2022-04-06 15:49:06   cfg_changed_cnt 0
     2022-04-06 15:49:06   cloud_connected false
     2022-04-06 15:49:06   cloud_enabled   false
     2022-04-06 15:49:07   event           
     2022-04-06 15:49:07   event_cnt       0
     2022-04-06 15:49:06   ext_sensors_temperature_unit C
     2022-04-08 10:14:37   ext_temperature_0 10.6
     2022-04-06 15:49:06   ext_temperature_0_hwID 28970c96f0013cb7
     2022-04-06 15:49:06   ext_temperature_0_tC 10.69
     2022-04-06 15:49:06   ext_temperature_0_tF 51.24
     2022-04-08 10:14:37   ext_temperature_f_0 51.0
     2022-04-06 15:49:06   fs_free         148843
     2022-04-06 15:49:06   fs_size         233681
     2022-04-06 15:49:05   fw_ver          20220209-094317/v1.11.8-g8c7bb8d
     2022-04-06 15:49:06   has_update      false
     2022-04-06 15:49:05   id              SH-Poolheizung
     2022-04-08 10:14:37   input0          0
     2022-04-06 15:49:06   inputs_1_event 
     2022-04-06 15:49:06   inputs_1_event_cnt 0
     2022-04-06 15:49:06   inputs_1_input  0
     2022-04-06 15:49:05   ip              192.168.57.217
     2022-04-06 15:49:06   mac             8CAAB55FD1E4
     2022-04-06 15:49:06   meters_1_counters_1 0.000
     2022-04-06 15:49:06   meters_1_counters_2 0.000
     2022-04-06 15:49:06   meters_1_counters_3 0.000
     2022-04-06 15:49:06   meters_1_is_valid true
     2022-04-06 15:49:06   meters_1_overpower 0.00
     2022-04-06 15:49:06   meters_1_power  0.00
     2022-04-06 15:49:06   meters_1_timestamp 0
     2022-04-06 15:49:06   meters_1_total  0
     2022-04-06 15:49:05   model           SHSW-PM
     2022-04-06 15:49:06   mqtt_connected  true
     2022-04-06 15:49:05   new_fw          false
     2022-04-06 15:49:05   online          true
     2022-04-08 10:14:37   overtemperature 0
     2022-04-06 15:49:06   ram_free        37752
     2022-04-06 15:49:06   ram_total       50456
     2022-04-08 10:14:37   relay0          off
     2022-04-08 10:14:37   relay_0_energy  0
     2022-04-08 10:14:37   relay_0_energy_total 0
     2022-04-08 10:14:37   relay_0_kWh     0.00
     2022-04-08 10:14:37   relay_0_power   0.00
     2022-04-06 15:49:06   relays_1_has_timer false
     2022-04-06 15:49:06   relays_1_ison   false
     2022-04-06 15:49:06   relays_1_overpower false
     2022-04-06 15:49:06   relays_1_source input
     2022-04-06 15:49:06   relays_1_timer_duration 0
     2022-04-06 15:49:06   relays_1_timer_remaining 0
     2022-04-06 15:49:06   relays_1_timer_started 0
     2022-04-06 15:49:06   serial          122
     2022-04-08 10:14:37   state           off
     2022-04-08 10:14:37   temperature     18.80
     2022-04-08 10:14:37   temperature_f   65.85
     2022-04-08 10:14:37   temperature_status Normal
     2022-04-06 15:49:06   time           
     2022-04-06 15:49:06   tmp_is_valid    true
     2022-04-06 15:49:06   tmp_tC          31.16
     2022-04-06 15:49:06   tmp_tF          88.08
     2022-04-06 15:49:06   unixtime        0
     2022-04-06 15:49:06   update_has_update false
     2022-04-06 15:49:06   update_new_version
     2022-04-06 15:49:06   update_old_version 20220209-094317/v1.11.8-g8c7bb8d
     2022-04-06 15:49:06   update_status   unknown
     2022-04-06 15:49:06   uptime          11194
     2022-04-06 15:49:06   wifi_sta_connected true
     2022-04-06 15:49:06   wifi_sta_ip     192.168.57.217
     2022-04-06 15:49:06   wifi_sta_rssi   -70
     2022-04-06 15:49:06   wifi_sta_ssid   Internet
     2022-04-06 13:35:58   x_mqttcom       set announce
Attributes:
   alias      Poolheizung
   comment    To get appropriate loadState values: Change the default limit "100" in readingList to your needs.
   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"; my $light = ReadingsVal($name,"state","off"); my $cons = ReadingsVal($name,"relay_0_power","unknown"); my $total = ReadingsVal($name,"relay_0_kWh","unknown"); my $temp = ReadingsVal($name,"temperature","-100"); "<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $cons / Total: $total/ Temp: $temp °C</div>"}
   genericDeviceType switch
   group      Schwimmbad
   icon       sani_pump@1F85DE
   model      shelly1_w_energy_measuring
   readingList shellies/SH-Poolheizung/relay/0:.* state
  shellies/SH-Poolheizung/relay/0:.* relay0
  shellies/SH-Poolheizung/input/0:.* input0
  shellies/SH-Poolheizung/online:.* online
  shellies/announce:.* { $EVENT =~ m,..id...SH-Poolheizung...mac.*, ? json2nameValue($EVENT) : return }
  shellies/SH-Poolheizung/announce:.* { json2nameValue($EVENT) }
  shellies/SH-Poolheizung/relay/0/power:.* relay_0_power
  shellies/SH-Poolheizung/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
  shellies/SH-Poolheizung/temperature:.* temperature
  shellies/SH-Poolheizung/temperature_f:.* temperature_f
  shellies/SH-Poolheizung/input_event/0:.* { json2nameValue($EVENT) }
  shellies/SH-Poolheizung/overtemperature:.* overtemperature
  shellies/SH-Poolheizung/relay/0/energy:.* relay_0_energy
  shellies/SH-Poolheizung/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
  shellies/SH-Poolheizung/longpush/0:.* longpush_0
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/info:.* { json2nameValue($EVENT) }
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/temperature_status:.* temperature_status
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperature/0:.* ext_temperature_0
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperature_f/0:.* ext_temperature_f_0
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperatures:.* { json2nameValue($EVENT) }
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperatures_f:.* { json2nameValue($EVENT) }
   room       HomeBridge
   setList    relay0:on,off,toggle shellies/SH-Poolheizung/relay/0/command $EVTPART1
  toggle:noArg shellies/SH-Poolheizung/relay/0/command toggle
  off:noArg shellies/SH-Poolheizung/relay/0/command off
  on:noArg shellies/SH-Poolheizung/relay/0/command on
  x_update:noArg shellies/SH-Poolheizung/command update_fw
  x_mqttcom shellies/SH-Poolheizung/command $EVTPART1
   setStateList on off toggle
   userReadings relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)}
   webCmd     :
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: Beta-User am 08 April 2022, 10:33:14
Hmm, das ist ja nicht das RAW für den "Fehlerfall", jedenfalls bekomme ich beim Import einen grünen Punkt.

Das attrTemplate "shelly1_w_temperature_measuring" finde ich auch nicht in https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template.

Prinzipiell glaube ich nicht, dass das mit dem "offline"-Status was mit dem attrTemplate bzw. den Einstellungen auf der FHEM-Seite zu tun hat, das klingt mir eher nach verloren gegangener Info (WLAN-Probleme? Siehe auch pah's Hinweis in "Ankündigung", falls die firmware sehr aktuell sein sollte).

OT:
Was die Einstellungen angeht, sollten wir uns diese Zeilen mal näher ansehen:

shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/info:.* { json2nameValue($EVENT) }\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/temperature_status:.* temperature_status\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperature/0:.* ext_temperature_0\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperature_f/0:.* ext_temperature_f_0\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperatures:.* { json2nameValue($EVENT) }\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperatures_f:.* { json2nameValue($EVENT) }

Alles, was mit "CID-Präfix" drin ist, kommt von autocreate (was prinzipiell ok ist).

Vermutlich brauchen wir hier nicht alle Zweige, für's erste kannst du das mal so "eindampfen":

shellies/SH-Poolheizung/info:.* { json2nameValue($EVENT, 'info_') }\
shellies/SH-Poolheizung/temperature_status:.* temperature_status\
shellies/SH-Poolheizung/ext_temperature/0:.* ext_temperature_0\
shellies/SH-Poolheizung/ext_temperature.*_f/0:.* {}\
shellies/SH-Poolheizung/ext_temperatures:.* { json2nameValue($EVENT, 'eTemp_', $JSONMAP) }


Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rallye am 08 April 2022, 12:22:27
Zitat von: Beta-User am 08 April 2022, 10:33:14
Hmm, das ist ja nicht das RAW für den "Fehlerfall", jedenfalls bekomme ich beim Import einen grünen Punkt.
Stimmt. Das ist das, was ich gerade nach re-applied attrTemplate in Betrieb habe. Ich werde heute Nachmittag wieder Verkabelungsarbeiten durchführen und den Shelly vom Strom nehmen. Danach schicke ich dir das RAW Listing (sorry, das ist aus deinem Request nicht so herausgekommen).
Zitat von: Beta-User am 08 April 2022, 10:33:14
Das attrTemplate "shelly1_w_temperature_measuring" finde ich auch nicht in https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template.
Das ist bemerkenswert. Ich finde das - deinem Link folgend - in Zeile 2680 !?
Zitat von: Beta-User am 08 April 2022, 10:33:14
Siehe auch pah's Hinweis in "Ankündigung", falls die firmware sehr aktuell sein sollte
Die FW ist ganz frisch aufgespielt - ich seh' mir das dann mal an.

Danke
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: Beta-User am 08 April 2022, 12:53:45
Hmm, bei mir steht da nichts, und in der Folgezeile dann "shelly1_w_energy_measuring".
Ziemlich oben identifiziert mit: "Letzte Änderung (https://svn.fhem.de/trac/changeset/25933/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template) dieser Datei war 25933 (https://svn.fhem.de/trac/changeset/25933/), erstellt von Beta-User, am 07.04.2022 um 17:03:38"
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rallye am 08 April 2022, 17:20:40
Zitat von: rallye am 08 April 2022, 12:22:27
Stimmt. Das ist das, was ich gerade nach re-applied attrTemplate in Betrieb habe. Ich werde heute Nachmittag wieder Verkabelungsarbeiten durchführen und den Shelly vom Strom nehmen. Danach schicke ich dir das RAW Listing (sorry, das ist aus deinem Request nicht so herausgekommen).Das ist bemerkenswert. Ich finde das - deinem Link folgend - in Zeile 2680 !?Die FW ist ganz frisch aufgespielt - ich seh' mir das dann mal an.

Danke
Klar, Vorführeffekt! Einmal war's rot, aber da habe ich mit dem Temp-Sensor gerauft, danach ist es nicht mehr aufgetreten (war evtl zu kurz vom Netz). Ich werd's aber reproduzieren und nachreichen.


Zitat von: Beta-User am 08 April 2022, 12:53:45
Hmm, bei mir steht da nichts, und in der Folgezeile dann "shelly1_w_energy_measuring".
Ziemlich oben identifiziert mit: "Letzte Änderung (https://svn.fhem.de/trac/changeset/25933/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template) dieser Datei war 25933 (https://svn.fhem.de/trac/changeset/25933/), erstellt von Beta-User, am 07.04.2022 um 17:03:38"
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rallye am 09 April 2022, 16:21:31
Heute habe ich den Fehler reproduzieren können. 10-15 Sekunden stromlos sind offensichtlich zu wenig. Stromlos für die Dauer eines Mittagessens ist ausreichend.
defmod SW.Poolheizung MQTT2_DEVICE shelly1pm_8CAAB55FD1E4
attr SW.Poolheizung alias Poolheizung
attr SW.Poolheizung comment To get appropriate loadState values: Change the default limit "100" in readingList to your needs.
attr SW.Poolheizung 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";; my $light = ReadingsVal($name,"state","off");; my $cons = ReadingsVal($name,"relay_0_power","unknown");; my $total = ReadingsVal($name,"relay_0_kWh","unknown");; my $temp = ReadingsVal($name,"temperature","-100");; "<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $cons / Total: $total/ Temp: $temp °C</div>"}
attr SW.Poolheizung genericDeviceType switch
attr SW.Poolheizung group Schwimmbad
attr SW.Poolheizung icon sani_pump@1F85DE
attr SW.Poolheizung model shelly1_w_energy_measuring
attr SW.Poolheizung readingList shellies/SH-Poolheizung/relay/0:.* state\
  shellies/SH-Poolheizung/relay/0:.* relay0\
  shellies/SH-Poolheizung/input/0:.* input0\
  shellies/SH-Poolheizung/online:.* online\
  shellies/announce:.* { $EVENT =~ m,..id...SH-Poolheizung...mac.*, ? json2nameValue($EVENT) : return }\
  shellies/SH-Poolheizung/announce:.* { json2nameValue($EVENT) }\
  shellies/SH-Poolheizung/relay/0/power:.* relay_0_power\
  shellies/SH-Poolheizung/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on";; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }\
  shellies/SH-Poolheizung/temperature:.* temperature\
  shellies/SH-Poolheizung/temperature_f:.* temperature_f\
  shellies/SH-Poolheizung/input_event/0:.* { json2nameValue($EVENT) }\
  shellies/SH-Poolheizung/overtemperature:.* overtemperature\
  shellies/SH-Poolheizung/relay/0/energy:.* relay_0_energy\
  shellies/SH-Poolheizung/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}\
  shellies/SH-Poolheizung/longpush/0:.* longpush_0\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/info:.* { json2nameValue($EVENT) }\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/temperature_status:.* temperature_status\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperature/0:.* ext_temperature_0\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperature_f/0:.* ext_temperature_f_0\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperatures:.* { json2nameValue($EVENT) }\
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperatures_f:.* { json2nameValue($EVENT) }
attr SW.Poolheizung room HomeBridge
attr SW.Poolheizung setList relay0:on,off,toggle shellies/SH-Poolheizung/relay/0/command $EVTPART1\
  toggle:noArg shellies/SH-Poolheizung/relay/0/command toggle\
  off:noArg shellies/SH-Poolheizung/relay/0/command off\
  on:noArg shellies/SH-Poolheizung/relay/0/command on\
  x_update:noArg shellies/SH-Poolheizung/command update_fw\
  x_mqttcom shellies/SH-Poolheizung/command $EVTPART1
attr SW.Poolheizung setStateList on off toggle
attr SW.Poolheizung userReadings relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)}
attr SW.Poolheizung webCmd on:off

setstate SW.Poolheizung off
setstate SW.Poolheizung 2022-04-09 16:17:13 0_hwID 28970c96f0013cb7
setstate SW.Poolheizung 2022-04-09 16:17:13 0_tC 10.6
setstate SW.Poolheizung 2022-04-09 16:17:13 0_tF 51.0
setstate SW.Poolheizung 2022-04-06 15:48:58 IODev MQTT_Shellies
setstate SW.Poolheizung 2022-04-08 16:01:37 actions_stats_skipped 0
setstate SW.Poolheizung 2022-04-08 16:01:37 attrTemplateVersion 20200831
setstate SW.Poolheizung 2022-04-08 16:01:37 cfg_changed_cnt 0
setstate SW.Poolheizung 2022-04-08 16:01:37 cloud_connected false
setstate SW.Poolheizung 2022-04-08 16:01:37 cloud_enabled false
setstate SW.Poolheizung 2022-04-09 15:14:10 event
setstate SW.Poolheizung 2022-04-09 15:14:10 event_cnt 0
setstate SW.Poolheizung 2022-04-08 16:01:37 ext_sensors_temperature_unit C
setstate SW.Poolheizung 2022-04-09 16:17:13 ext_temperature_0 10.6
setstate SW.Poolheizung 2022-04-08 16:01:37 ext_temperature_0_hwID 28970c96f0013cb7
setstate SW.Poolheizung 2022-04-08 16:01:37 ext_temperature_0_tC 11.81
setstate SW.Poolheizung 2022-04-08 16:01:37 ext_temperature_0_tF 53.26
setstate SW.Poolheizung 2022-04-09 16:17:13 ext_temperature_f_0 51.0
setstate SW.Poolheizung 2022-04-08 16:01:37 fs_free 148843
setstate SW.Poolheizung 2022-04-08 16:01:37 fs_size 233681
setstate SW.Poolheizung 2022-04-08 16:01:37 fw_ver 20220209-094317/v1.11.8-g8c7bb8d
setstate SW.Poolheizung 2022-04-08 16:01:37 has_update false
setstate SW.Poolheizung 2022-04-08 16:01:37 id SH-Poolheizung
setstate SW.Poolheizung 2022-04-09 16:17:13 input0 0
setstate SW.Poolheizung 2022-04-08 16:01:37 inputs_1_event
setstate SW.Poolheizung 2022-04-08 16:01:37 inputs_1_event_cnt 0
setstate SW.Poolheizung 2022-04-08 16:01:37 inputs_1_input 0
setstate SW.Poolheizung 2022-04-08 16:01:37 ip 192.168.57.217
setstate SW.Poolheizung 2022-04-08 16:01:37 mac 8CAAB55FD1E4
setstate SW.Poolheizung 2022-04-08 16:01:37 meters_1_counters_1 0.000
setstate SW.Poolheizung 2022-04-08 16:01:37 meters_1_counters_2 0.000
setstate SW.Poolheizung 2022-04-08 16:01:37 meters_1_counters_3 0.000
setstate SW.Poolheizung 2022-04-08 16:01:37 meters_1_is_valid true
setstate SW.Poolheizung 2022-04-08 16:01:37 meters_1_overpower 0.00
setstate SW.Poolheizung 2022-04-08 16:01:37 meters_1_power 0.00
setstate SW.Poolheizung 2022-04-08 16:01:37 meters_1_timestamp 0
setstate SW.Poolheizung 2022-04-08 16:01:37 meters_1_total 0
setstate SW.Poolheizung 2022-04-08 16:01:37 model SHSW-PM
setstate SW.Poolheizung 2022-04-08 16:01:37 mqtt_connected true
setstate SW.Poolheizung 2022-04-08 16:01:37 new_fw false
setstate SW.Poolheizung 2022-04-09 14:28:07 online false
setstate SW.Poolheizung 2022-04-09 16:17:13 overtemperature 0
setstate SW.Poolheizung 2022-04-08 16:01:37 ram_free 36516
setstate SW.Poolheizung 2022-04-08 16:01:37 ram_total 50456
setstate SW.Poolheizung 2022-04-09 16:17:13 relay0 off
setstate SW.Poolheizung 2022-04-09 16:17:13 relay_0_energy 0
setstate SW.Poolheizung 2022-04-09 16:17:13 relay_0_energy_total 0
setstate SW.Poolheizung 2022-04-09 16:17:13 relay_0_kWh 0.00
setstate SW.Poolheizung 2022-04-09 16:17:13 relay_0_power 0.00
setstate SW.Poolheizung 2022-04-08 16:01:37 relays_1_has_timer false
setstate SW.Poolheizung 2022-04-08 16:01:37 relays_1_ison false
setstate SW.Poolheizung 2022-04-08 16:01:37 relays_1_overpower false
setstate SW.Poolheizung 2022-04-08 16:01:37 relays_1_source input
setstate SW.Poolheizung 2022-04-08 16:01:37 relays_1_timer_duration 0
setstate SW.Poolheizung 2022-04-08 16:01:37 relays_1_timer_remaining 0
setstate SW.Poolheizung 2022-04-08 16:01:37 relays_1_timer_started 0
setstate SW.Poolheizung 2022-04-08 16:01:37 serial 6
setstate SW.Poolheizung 2022-04-09 16:17:13 state off
setstate SW.Poolheizung 2022-04-09 16:17:13 temperature 16.48
setstate SW.Poolheizung 2022-04-09 16:17:13 temperature_f 61.67
setstate SW.Poolheizung 2022-04-09 16:17:13 temperature_status Normal
setstate SW.Poolheizung 2022-04-08 16:01:37 time
setstate SW.Poolheizung 2022-04-08 16:01:37 tmp_is_valid true
setstate SW.Poolheizung 2022-04-08 16:01:37 tmp_tC 28.14
setstate SW.Poolheizung 2022-04-08 16:01:37 tmp_tF 82.65
setstate SW.Poolheizung 2022-04-08 16:01:37 unixtime 0
setstate SW.Poolheizung 2022-04-08 16:01:37 update_has_update false
setstate SW.Poolheizung 2022-04-08 16:01:37 update_new_version
setstate SW.Poolheizung 2022-04-08 16:01:37 update_old_version 20220209-094317/v1.11.8-g8c7bb8d
setstate SW.Poolheizung 2022-04-08 16:01:37 update_status unknown
setstate SW.Poolheizung 2022-04-08 16:01:37 uptime 871
setstate SW.Poolheizung 2022-04-08 16:01:37 wifi_sta_connected true
setstate SW.Poolheizung 2022-04-08 16:01:37 wifi_sta_ip 192.168.57.217
setstate SW.Poolheizung 2022-04-08 16:01:37 wifi_sta_rssi -71
setstate SW.Poolheizung 2022-04-08 16:01:37 wifi_sta_ssid Internet
setstate SW.Poolheizung 2022-04-08 16:01:37 x_mqttcom set announce


bzw.
Internals:
   CID        shelly1pm_8CAAB55FD1E4
   DEF        shelly1pm_8CAAB55FD1E4
   DEVICETOPIC SW.Poolheizung
   FUUID      62499826-f33f-55a1-2df9-eb6b5e399021d2ed
   IODev      MQTT_Shellies
   LASTInputDev MQTT_Shellies
   MQTT_Shellies_CONN MQTT_Shellies_192.168.57.217_13352
   MQTT_Shellies_MSGCNT 105851
   MQTT_Shellies_TIME 2022-04-09 16:19:43
   MSGCNT     105851
   NAME       SW.Poolheizung
   NR         477
   STATE      off
   TYPE       MQTT2_DEVICE
   OLDREADINGS:
   READINGS:
     2022-04-09 16:19:43   0_hwID          28970c96f0013cb7
     2022-04-09 16:19:43   0_tC            10.6
     2022-04-09 16:19:43   0_tF            51.0
     2022-04-06 15:48:58   IODev           MQTT_Shellies
     2022-04-08 16:01:37   actions_stats_skipped 0
     2022-04-08 16:01:37   attrTemplateVersion 20200831
     2022-04-08 16:01:37   cfg_changed_cnt 0
     2022-04-08 16:01:37   cloud_connected false
     2022-04-08 16:01:37   cloud_enabled   false
     2022-04-09 15:14:10   event           
     2022-04-09 15:14:10   event_cnt       0
     2022-04-08 16:01:37   ext_sensors_temperature_unit C
     2022-04-09 16:19:43   ext_temperature_0 10.6
     2022-04-08 16:01:37   ext_temperature_0_hwID 28970c96f0013cb7
     2022-04-08 16:01:37   ext_temperature_0_tC 11.81
     2022-04-08 16:01:37   ext_temperature_0_tF 53.26
     2022-04-09 16:19:43   ext_temperature_f_0 51.0
     2022-04-08 16:01:37   fs_free         148843
     2022-04-08 16:01:37   fs_size         233681
     2022-04-08 16:01:37   fw_ver          20220209-094317/v1.11.8-g8c7bb8d
     2022-04-08 16:01:37   has_update      false
     2022-04-08 16:01:37   id              SH-Poolheizung
     2022-04-09 16:19:43   input0          0
     2022-04-08 16:01:37   inputs_1_event 
     2022-04-08 16:01:37   inputs_1_event_cnt 0
     2022-04-08 16:01:37   inputs_1_input  0
     2022-04-08 16:01:37   ip              192.168.57.217
     2022-04-08 16:01:37   mac             8CAAB55FD1E4
     2022-04-08 16:01:37   meters_1_counters_1 0.000
     2022-04-08 16:01:37   meters_1_counters_2 0.000
     2022-04-08 16:01:37   meters_1_counters_3 0.000
     2022-04-08 16:01:37   meters_1_is_valid true
     2022-04-08 16:01:37   meters_1_overpower 0.00
     2022-04-08 16:01:37   meters_1_power  0.00
     2022-04-08 16:01:37   meters_1_timestamp 0
     2022-04-08 16:01:37   meters_1_total  0
     2022-04-08 16:01:37   model           SHSW-PM
     2022-04-08 16:01:37   mqtt_connected  true
     2022-04-08 16:01:37   new_fw          false
     2022-04-09 14:28:07   online          false
     2022-04-09 16:19:43   overtemperature 0
     2022-04-08 16:01:37   ram_free        36516
     2022-04-08 16:01:37   ram_total       50456
     2022-04-09 16:19:43   relay0          off
     2022-04-09 16:19:43   relay_0_energy  0
     2022-04-09 16:19:43   relay_0_energy_total 0
     2022-04-09 16:19:43   relay_0_kWh     0.00
     2022-04-09 16:19:43   relay_0_power   0.00
     2022-04-08 16:01:37   relays_1_has_timer false
     2022-04-08 16:01:37   relays_1_ison   false
     2022-04-08 16:01:37   relays_1_overpower false
     2022-04-08 16:01:37   relays_1_source input
     2022-04-08 16:01:37   relays_1_timer_duration 0
     2022-04-08 16:01:37   relays_1_timer_remaining 0
     2022-04-08 16:01:37   relays_1_timer_started 0
     2022-04-08 16:01:37   serial          6
     2022-04-09 16:19:43   state           off
     2022-04-09 16:19:43   temperature     16.53
     2022-04-09 16:19:43   temperature_f   61.75
     2022-04-09 16:19:43   temperature_status Normal
     2022-04-08 16:01:37   time           
     2022-04-08 16:01:37   tmp_is_valid    true
     2022-04-08 16:01:37   tmp_tC          28.14
     2022-04-08 16:01:37   tmp_tF          82.65
     2022-04-08 16:01:37   unixtime        0
     2022-04-08 16:01:37   update_has_update false
     2022-04-08 16:01:37   update_new_version
     2022-04-08 16:01:37   update_old_version 20220209-094317/v1.11.8-g8c7bb8d
     2022-04-08 16:01:37   update_status   unknown
     2022-04-08 16:01:37   uptime          871
     2022-04-08 16:01:37   wifi_sta_connected true
     2022-04-08 16:01:37   wifi_sta_ip     192.168.57.217
     2022-04-08 16:01:37   wifi_sta_rssi   -71
     2022-04-08 16:01:37   wifi_sta_ssid   Internet
     2022-04-08 16:01:37   x_mqttcom       set announce
Attributes:
   alias      Poolheizung
   comment    To get appropriate loadState values: Change the default limit "100" in readingList to your needs.
   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"; my $light = ReadingsVal($name,"state","off"); my $cons = ReadingsVal($name,"relay_0_power","unknown"); my $total = ReadingsVal($name,"relay_0_kWh","unknown"); my $temp = ReadingsVal($name,"temperature","-100"); "<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $cons / Total: $total/ Temp: $temp °C</div>"}
   genericDeviceType switch
   group      Schwimmbad
   icon       sani_pump@1F85DE
   model      shelly1_w_energy_measuring
   readingList shellies/SH-Poolheizung/relay/0:.* state
  shellies/SH-Poolheizung/relay/0:.* relay0
  shellies/SH-Poolheizung/input/0:.* input0
  shellies/SH-Poolheizung/online:.* online
  shellies/announce:.* { $EVENT =~ m,..id...SH-Poolheizung...mac.*, ? json2nameValue($EVENT) : return }
  shellies/SH-Poolheizung/announce:.* { json2nameValue($EVENT) }
  shellies/SH-Poolheizung/relay/0/power:.* relay_0_power
  shellies/SH-Poolheizung/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
  shellies/SH-Poolheizung/temperature:.* temperature
  shellies/SH-Poolheizung/temperature_f:.* temperature_f
  shellies/SH-Poolheizung/input_event/0:.* { json2nameValue($EVENT) }
  shellies/SH-Poolheizung/overtemperature:.* overtemperature
  shellies/SH-Poolheizung/relay/0/energy:.* relay_0_energy
  shellies/SH-Poolheizung/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
  shellies/SH-Poolheizung/longpush/0:.* longpush_0
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/info:.* { json2nameValue($EVENT) }
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/temperature_status:.* temperature_status
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperature/0:.* ext_temperature_0
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperature_f/0:.* ext_temperature_f_0
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperatures:.* { json2nameValue($EVENT) }
shelly1pm_8CAAB55FD1E4:shellies/SH-Poolheizung/ext_temperatures_f:.* { json2nameValue($EVENT) }
   room       HomeBridge
   setList    relay0:on,off,toggle shellies/SH-Poolheizung/relay/0/command $EVTPART1
  toggle:noArg shellies/SH-Poolheizung/relay/0/command toggle
  off:noArg shellies/SH-Poolheizung/relay/0/command off
  on:noArg shellies/SH-Poolheizung/relay/0/command on
  x_update:noArg shellies/SH-Poolheizung/command update_fw
  x_mqttcom shellies/SH-Poolheizung/command $EVTPART1
   setStateList on off toggle
   userReadings relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)}
   webCmd     on:off
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: Beta-User am 10 April 2022, 08:39:30
Stromlos für etwas mehr wie die 1,5-fache Zeit, die der Shelly dem MQTT-Server als nächste Rückmeldung angekündigt hatte, hätte wohl auch gereicht.

Die Frage ist: Warum hat der Shelly sich nicht danach (beim reboot) wieder sauber angemeldet?!? An der Stelle ist irgendwas verloren gegangen, und es liegt der Verdacht nahe, dass das nicht direkt was mit FHEM zu tun hat.

Der Mechanismus (für das "online"-Reading) nennt sich "last will and testament" (gängige Abkürzung: LWT). Bitte vor den nächsten Fragen erst mal nachlesen, was das ist. Den Themenkreis an sich hatten wir hier im Forum auch schon ein paar Mal.
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rallye am 15 April 2022, 10:53:07
Zitat von: Beta-User am 10 April 2022, 08:39:30
Die Frage ist: Warum hat der Shelly sich nicht danach (beim reboot) wieder sauber angemeldet?!? An der Stelle ist irgendwas verloren gegangen, und es liegt der Verdacht nahe, dass das nicht direkt was mit FHEM zu tun hat.
Danke. Dass es kein FHEM-seitiges Problem ist möchte ich nicht wirklich ausschließen. Ich habe genau diesen Shelly auch in meinem HomeAssistant definiert (native, ohne Bridge FHEM->HA). Und in HA funktioniert das einwandfrei.
Zitat von: Beta-User am 10 April 2022, 08:39:30
Der Mechanismus (für das "online"-Reading) nennt sich "last will and testament" (gängige Abkürzung: LWT). Bitte vor den nächsten Fragen erst mal nachlesen, was das ist. Den Themenkreis an sich hatten wir hier im Forum auch schon ein paar Mal.
Ich habe mich mit dem Thema in den letzen Tagen beschäftigt. Nur kann ich leider nicht ganz nachvollziehen was ich mit der neu gewonnenen Information anfangen soll. Im Shelly1PM selbst kann ich nichts bezüglich LWT eintragen. In der FHEM-Definition des Shelly's und im MQTT2_SERVER ebenfalls nicht. Wo genau kann ich also jetzt mein zusätzliches Wissen anwenden? Was habe ich übersehen?
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rudolfkoenig am 15 April 2022, 12:21:02
Zusammengefasst:

"Last Will and Testament" (LWT) ist ein Parameter, was beim MQTT Verbindungsaufbau geschickt wird. Falls die Verbindung zum Geraet  ohne "Abschied" unterbrochen wird, muss der MQTT_SERVER diese Nachricht veroeffentlichen. In diesem Fall ist das LWT shellies/SH-Poolheizung/online:false.

Das ist eine Nachricht, und beim veroeffentlichen persistiert FHEM es im Reading online, was die Quelle fuer den roten/gruenen Punkt ist.

Normalerweise (und laut Shelly Doku) sendet beim Verbinden der Shelly selbst die Nachricht "shellies/SH-Poolheizung/online:true", damit wuerde FHEM das online Reading auf true setzen und den gruenen Punkt anzeigen.

In diesem Fall bleibt die online:true Nachricht aus, entweder weil der Shelly sie nicht geschickt hat, oder weil FHEM sie verschlampt hat.

Letzteres waere mein Problem, und wenn ich das anhand eines FHEM-Logs nach "attr MQTT_Shellies verbose 5" nachgewiesen bekomme, werde ich mich um den Fix kuemmern.

ZitatUnd in HA funktioniert das einwandfrei.
Das beweist zunaechst nichts, da wir nicht wissen, ob HA diese Nachricht auswertet.
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: Beta-User am 15 April 2022, 12:28:08
Zitat von: rudolfkoenig am 15 April 2022, 12:21:02
Das beweist zunaechst nichts, da wir nicht wissen, ob HA diese Nachricht auswertet.
Ergänzend:
Wir wissen nicht, ob HA den MQTT-Weg geht, ich vermute: Es ist "klassisches HTTP", wie es auch das Shelly-Modul in FHEM macht. Auch da hatten wir schon den Fall, dass User berichtet haben, dass "Schalten über das Shelly-Modul" ginge, aber Nachrichten via MQTT verloren gegangen waren.
Die Ursache war dann aber afaik immer eine wackelige WLAN-Verbindung (zu viele Verbindungen für Consumer-Router, ohne speziell eine Fa. nennen zu wollen)...
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rudolfkoenig am 15 April 2022, 13:17:26
ZitatWir wissen nicht, ob HA den MQTT-Weg geht, ich vermute: Es ist "klassisches HTTP", wie es auch das Shelly-Modul in FHEM macht.
Die HA-Doku redet bei Shelly von CoIoT und CoAP, das entspricht dem FHEM Modul 36_ShellyMonitor.pm.
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: Beta-User am 15 April 2022, 13:25:14
Zitat von: rudolfkoenig am 15 April 2022, 13:17:26
Die HA-Doku redet bei Shelly von CoIoT und CoAP, das entspricht dem FHEM Modul 36_ShellyMonitor.pm.
Danke für's Nachschauen.

Irgendwie läßt das bei mir was "klingeln": Hatten wir da nicht vor längerer Zeit eine Diskussion über QoS-Support bei den MQTT2-IO's? Die Kurzformel dessen, was mir in Erinnerung geblieben ist: Da das im FHEM-Umfeld typischerweise auf TCP/IP aufsetzt, braucht man es nicht.
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rallye am 15 April 2022, 13:30:22
Zitat von: rudolfkoenig am 15 April 2022, 12:21:02
In diesem Fall bleibt die online:true Nachricht aus, entweder weil der Shelly sie nicht geschickt hat, oder weil FHEM sie verschlampt hat.

Letzteres waere mein Problem, und wenn ich das anhand eines FHEM-Logs nach "attr MQTT_Shellies verbose 5" nachgewiesen bekomme, werde ich mich um den Fix kuemmern.
Diesen Input (verbose 5) liefere ich gerne sobald das Wetter etwas besser wird

Zitat von: rudolfkoenig am 15 April 2022, 12:21:02
In diesem Fall bleibt die online:true Nachricht aus, entweder weil der Shelly sie nicht geschickt hat, oder weil FHEM sie verschlampt hat.
In der offiziellen API-Reference https://shelly-api-docs.shelly.cloud/gen1/#shelly1-1pm-mqtt (https://shelly-api-docs.shelly.cloud/gen1/#shelly1-1pm-mqtt) finde ich ein "online" wie es im Template verdrahtet ist gar nicht. Da dies auch für den nicht-PM gilt, dürfte es auch dort nicht funktionieren - tut es aber problemlos.
Zitat von: Beta-User am 15 April 2022, 12:28:08
Die Ursache war dann aber afaik immer eine wackelige WLAN-Verbindung (zu viele Verbindungen für Consumer-Router, ohne speziell eine Fa. nennen zu wollen)...
Die Sache mit dem Router habe ich auch schon gelesen und ich gebe zu, der Shelly1PM (der einzige in meinem Haus) ist in einem relativ großen Mesh-Netzwerk eingebettet und hat einen RSSI von -66. Links und rechts von ihm sitzen 2 Shelly1 für die Poolpumpe (RSSI: -69) und die Gartenbeleuchtung (RSSI: -70) . Und Überraschung: diese beiden Shellies gehen immer einwandfrei online nachdem Wiedereinschlafen des Stromkreises (hängen am selben Stromkabel) - genauso wie die Shellies im Keller und im Dachgeschoss und, und, und. Auf "Verdacht" einen Profi-Router einzusetzen halte ich für meine Geldbörse als bedenklich.
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: Beta-User am 15 April 2022, 14:16:58
Zitat von: rallye am 15 April 2022, 13:30:22
Auf "Verdacht" einen Profi-Router einzusetzen halte ich für meine Geldbörse als bedenklich.
Hmm, darum ging es auch nicht unbedingt, sondern erst mal darum festzustellen, was ggf. als "ungünstiger Faktor" das "komische" Ergebnis beeinflussen könnte.

Vielleicht wäre es schon ausreichend, die zwei "angrenzenden" Shelly durch was zweikanaliges zu ersetzen (oder alle drei durch einen 4-er). Denn bei der hier geschilderten Einbausituation kommt ggf. noch dazu, dass mehrere "Funker" - eng beeinander verbaut - auch gerne für Probleme sorgen (für Homematic-classic steht z.B. in den Bedienungsanleitungen, man dürfe nicht zwei untereinander liegende Dosen verwenden...). Da sind die absoluten RSSI-Werte ggf. irreführend, was die praktischen Ergebnisse angeht (der "schlechtere" Wert der "hinteren" bedeutet uU, dass "lauter" gesendet wird, usw... Bin da aber auch nicht Experte...)
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rudolfkoenig am 15 April 2022, 14:46:10
ZitatIrgendwie läßt das bei mir was "klingeln": Hatten wir da nicht vor längerer Zeit eine Diskussion über QoS-Support bei den MQTT2-IO's? Die Kurzformel dessen, was mir in Erinnerung geblieben ist: Da das im FHEM-Umfeld typischerweise auf TCP/IP aufsetzt, braucht man es nicht.
Das haengt davon ab, wie man "braucht man nicht" definiert :). TCP/IP ermoeglicht, dass die Nachricht genau einmal ankommt, _wenn_ die Verbindung besteht. QoS2 ermoeglicht unter Umstaenden auch die Benachrichtigung von nicht verbundenen Clients, hat aber Nebeneffekte, wie z.Bsp. die sinnlose Speicherung von Daten und die Probleme, die damit zusammenhaengen.

Bei diesem Problem duerfte QoS2 keine Rolle spielen, und auch das WLAN nicht, da die anderen Nachrichten ja ankommen:
ZitatEs werden alle Readings richtig geliefert, nur der Online-Status ist und bleibt falsch.
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rudolfkoenig am 15 April 2022, 14:55:24
@rallye: kannst du bitte im Problemfall(!)  mit "list TYPE=MQTT2_SERVER" pruefen, ob eine Verbindung zum fraglichen Shelly besteht?
Wenn ja, dann taucht in der Ausgabe die IP des Geraetes auf.
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: Beta-User am 15 April 2022, 14:57:40
Zitat von: rudolfkoenig am 15 April 2022, 14:46:10
Das haengt davon ab, wie man "braucht man nicht" definiert :) .
Schon klar, und tendenziell scheinen derartige Themen ja auch nicht allzu häufig zu sein, von daher war das nicht unbedingt als Votum zu verstehen, dass da was "gebraucht" wird...

Dann warten wir mal auf das verbose-5-Log, vielleicht kann man ja da was erkennen. (Ansonsten ist es halt ein "Schönheitsfehler").
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rallye am 15 April 2022, 17:34:20
Anbei die Ergebnisse meines reproduzierten Stromausfalles. Der fragliche Shelly (shelly1pm mit temperatur-addon namens SH-Poolheizung) hat die IP 192.168.57.217. Am selben Stromkreis hängt die Poolpumpe (shelly1 namens SH-Poolpumpe) mit der IP 192.168.57.215. Hier das Log - beide Shellies mit verbose 5. Needless to mention: alle Shellies auf aktueller FW, System & FHEM ebenfalls up-to-date.
2022.04.15 17:04:10 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => state
2022.04.15 17:04:10 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => relay0
2022.04.15 17:04:10 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/input/0 => input0
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0 => relay0
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0 => state
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/input/0 => input0
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/power => relay_0_power
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/power => { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/energy => relay_0_energy
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/energy => {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature => temperature_deviceC
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature_f => temperature_deviceF
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/overtemperature => overtemperature
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature_status => temperature_status
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature/0 => temperature
2022.04.15 17:04:13 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature_f/0 => temperature_f_0
2022.04.15 17:04:14 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures => { json2nameValue($EVENT) }
2022.04.15 17:04:14 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures_f => { json2nameValue($EVENT) }
2022.04.15 17:04:40 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => state
2022.04.15 17:04:40 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => relay0
2022.04.15 17:04:40 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/input/0 => input0
2022.04.15 17:05:44 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/online => online
2022.04.15 17:05:44 3: MQTT_Shellies: MQTT_Shellies_192.168.57.217_10955/shelly1pm-8CAAB55FD1E4 left us (keepalive check)
2022.04.15 17:06:14 3: MQTT_Shellies: MQTT_Shellies_192.168.57.215_17119/shelly1-8CAAB5482591 left us (keepalive check)
2022.04.15 17:06:14 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/online => online
2022.04.15 17:06:14 3: MQTT_Shellies: MQTT_Shellies_192.168.57.216_1212/shelly1-40F5202D45A1 left us (keepalive check)
2022.04.15 17:08:16 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/announce => { $EVENT =~ m,..id...SH-Poolheizung...mac.*, ? json2nameValue($EVENT) : return }
2022.04.15 17:08:16 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/announce => { $EVENT =~ m,..id...SH-Poolpumpe...mac.*, ? json2nameValue($EVENT) : return }
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/online => online
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/announce => { $EVENT =~ m,..id...SH-Poolheizung...mac.*, ? json2nameValue($EVENT) : return }
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/announce => { $EVENT =~ m,..id...SH-Poolpumpe...mac.*, ? json2nameValue($EVENT) : return }
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/announce => { json2nameValue($EVENT) }
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/info => { json2nameValue($EVENT) }
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => state
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => relay0
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/input/0 => input0
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/input_event/0 => { json2nameValue($EVENT) }
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/input/0 => input0
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/input_event/0 => { json2nameValue($EVENT) }
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/power => relay_0_power
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/power => { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/energy => relay_0_energy
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/energy => {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature => temperature_deviceC
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature_f => temperature_deviceF
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/overtemperature => overtemperature
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature_status => temperature_status
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature/0 => temperature
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature_f/0 => temperature_f_0
2022.04.15 17:08:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures => { json2nameValue($EVENT) }
2022.04.15 17:08:18 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures_f => { json2nameValue($EVENT) }
2022.04.15 17:08:18 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature/0 => temperature
2022.04.15 17:08:18 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature_f/0 => temperature_f_0
2022.04.15 17:08:18 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures => { json2nameValue($EVENT) }
2022.04.15 17:08:18 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures_f => { json2nameValue($EVENT) }
2022.04.15 17:08:46 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => state
2022.04.15 17:08:46 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => relay0
2022.04.15 17:08:46 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/input/0 => input0
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0 => relay0
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0 => state
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/input/0 => input0
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/power => relay_0_power
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/power => { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/energy => relay_0_energy
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/energy => {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature => temperature_deviceC
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature_f => temperature_deviceF
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/overtemperature => overtemperature
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature_status => temperature_status
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature/0 => temperature
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature_f/0 => temperature_f_0
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures => { json2nameValue($EVENT) }
2022.04.15 17:08:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures_f => { json2nameValue($EVENT) }
2022.04.15 17:09:16 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => state
2022.04.15 17:09:16 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => relay0
2022.04.15 17:09:16 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/input/0 => input0
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0 => relay0
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0 => state
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/input/0 => input0
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/power => relay_0_power
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/power => { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/energy => relay_0_energy
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/energy => {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature => temperature_deviceC
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature_f => temperature_deviceF
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/overtemperature => overtemperature
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature_status => temperature_status
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature/0 => temperature
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature_f/0 => temperature_f_0
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures => { json2nameValue($EVENT) }
2022.04.15 17:09:17 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures_f => { json2nameValue($EVENT) }
2022.04.15 17:09:46 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => state
2022.04.15 17:09:46 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/relay/0 => relay0
2022.04.15 17:09:46 4: MQTT2_DEVICE_Parse: SW.Poolpumpe shellies/SH-Poolpumpe/input/0 => input0
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0 => relay0
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0 => state
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/input/0 => input0
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/power => relay_0_power
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/power => { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/energy => relay_0_energy
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/relay/0/energy => {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature => temperature_deviceC
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature_f => temperature_deviceF
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/overtemperature => overtemperature
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/temperature_status => temperature_status
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature/0 => temperature
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperature_f/0 => temperature_f_0
2022.04.15 17:09:47 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures => { json2nameValue($EVENT) }
2022.04.15 17:09:48 4: MQTT2_DEVICE_Parse: SW.Poolheizung shellies/SH-Poolheizung/ext_temperatures_f => { json2nameValue($EVENT) }


Um 17:06:14 habe ich den Stecker gezogen, was mit einem "has left us" im Log quittiert wird. Um 17:08:16 habe ich das Kabel wieder angestöpselt und der shelly1 meldet sich brav als online zurück, auch der Kreis wird wieder grün. Der SH-Poolheizung beginnt zwar brav zu plaudern, schreibt ins Log wird mit "list TYPE=MQTT2_SERVER" genauso wie der SH-Poolpumpe angezeigt, aber das Reading "online" bleibt auf "false". Ich habe es nun mit einem "setreading SW.Poolheizung online true" "korrigiert". Nur nebenbei angemerkt: auch über das WI kann ich denn Shelly erreichen.

@Beta-User: die Konsolidierung von 3 auf 2 oder 1 Shelly wäre theoretisch möglich. Praktisch schalte ich aber 1 Heizung und 1 Pumpe und das ist mir mit den Maximallasten (10A) die z.B. der Shelly2.5 schafft zu gefährlich. Ich hatte eigentlich zwei SonoffTH16 vorgesehen gehabt. Aber das ist so ein "gefickel", die WLAN-Antenne ist unterdimensioniert und der DS18B20 passt nicht ins wasserdichte Gehäuse. Daher die mir ohnehin liebere Shelly-Lösung.
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rudolfkoenig am 16 April 2022, 13:09:15
ZitatHier das Log - beide Shellies mit verbose 5.
Danke, auch wenn ich eigentlich nach dem IODev log gefragt habe, s.o. "attr MQTT_Shellies verbose 5".

Aus diesem Log kann ich folgendes ablesen:
- die Verbindung zu Poolheizung wird um 17:05:44 abgebrochen, was zu online:false fuehrt.
- 30s spaeter verlassen zwei weitere Teilnehmer die Runde.
- um 17:08:16 sendet die Poolheizung 19 Nachrichten, statt online gibts ein announce, und vier Topics doppelt
- danach kommen regelmaessig alle 30s 15 MQTT Nachrichten mit diversen Daten aber ohne announce und doppelten Topics.

Ob FHEM dabei was verloren hat sieht man hier nicht (dazu braucht man die IODev Logs), ich tippe aber darauf, dass die online Nachricht von der Poolheizung einfach nicht gesendet wird.
Die Poolpumpe sendet das vermutlich. Vermutlich, weil ich in diesem Log nur die Topics, nicht aber die Nachricht selbst sehe.
Titel: Antw:Shelly1PM Template shelly1_w_temperature_measuring
Beitrag von: rallye am 16 April 2022, 14:42:52
Zitat von: rudolfkoenig am 16 April 2022, 13:09:15
Danke, auch wenn ich eigentlich nach dem IODev log gefragt habe, s.o. "attr MQTT_Shellies verbose 5".

Danke. Soll ich das "attr MQTT_Shellies verbose 5" nachliefern oder ist in diesem Fall ohnehin alles klar ("online" wird nicht gesendet)?

Wahrscheinlich gibt es nur sehr wenige Benutzer die den Shelly hin und wieder stromlos machen, daher auch kein ernsthaftes generelles Problem.