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
...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?
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 :
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) }
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
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"
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"
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
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.
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?
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.
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)...
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.
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.
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.
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...)
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.
@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.
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").
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.
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.
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.