Hallo Zusammen,
ich habe einen Shelly 2.5 über MQTT in FHEM eingebunden. Nun empfange ich alle 30 Sekunden Daten von dem Gerät. Gibt es eine Möglichkeit die Intervalle in denen die Pakete gesendet werden zu verlängern? Alle 3 Minuten würde mir auch reichen.
Anbei die list des devices:
Internals:
CID shellyswitch25_483FDA97F672
DEF shellyswitch25_483FDA97F672
DEVICETOPIC pl_Switch.SFA
FUUID 60eb1c50-f33f-d024-fd79-47f87fdedfd0b0bd
IODev MQTT2_FHEM_Server
LASTInputDev MQTT2_FHEM_Server
MQTT2_FHEM_Server_MSGCNT 339444
MQTT2_FHEM_Server_TIME 2021-07-27 08:57:36
MSGCNT 339444
NAME pl_Switch.SFA
NR 236
STATE off
TYPE MQTT2_DEVICE
OLDREADINGS:
READINGS:
2021-07-12 15:21:51 IODev MQTT2_FHEM_Server
2021-07-18 18:47:37 associatedWith pl_Switch.Chlorinator
2021-07-12 15:38:07 attrTemplateVersion 20210126
2021-07-17 17:00:52 event
2021-07-17 17:00:52 event_cnt 0
2021-07-26 17:01:30 fw_ver 20210429-100559/v1.10.4-g3f94cd7
2021-07-26 17:01:30 id shellyswitch25-483FDA97F672
2021-07-27 08:57:36 input0 1
2021-07-26 17:01:30 ip 192.168.178.80
2021-07-26 22:27:00 loadState off
2021-07-26 17:01:30 mac 483FDA97F672
2021-07-26 17:01:30 model SHSW-25
2021-07-26 17:01:30 new_fw true
2021-07-17 17:00:52 online true
2021-07-27 08:57:36 overtemperature 0
2021-07-27 08:57:36 relay0 off
2021-07-27 08:57:36 relay_0_energy 1562898
2021-07-27 08:57:36 relay_0_kWh 26.05
2021-07-27 08:57:36 relay_0_power 0.00
2021-07-27 08:57:36 state off
2021-07-27 08:57:36 temperature 51.33
2021-07-27 08:57:36 temperature_f 124.39
2021-07-27 08:57:36 temperature_status Normal
2021-07-12 15:38:07 x_mqttcom set announce
Attributes:
comment Channel 1 for MQTT2_shellyswitch25_483FDA97F672, see also MQTT2_shellyswitch25_483FDA97F672_CH2
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>"}
group Pool-Schalter
icon sani_pump
model shelly25_split
readingList shellies/shellyswitch25-483FDA97F672/relay/0:.* state
shellies/shellyswitch25-483FDA97F672/relay/0:.* relay0
shellies/shellyswitch25-483FDA97F672/input/0:.* input0
shellies/shellyswitch25-483FDA97F672/online:.* online
shellies/announce:.* { $EVENT =~ m,..id...shellyswitch25-483FDA97F672...mac.*, ? json2nameValue($EVENT) : return }
shellies/shellyswitch25-483FDA97F672/announce:.* { json2nameValue($EVENT) }
shellies/shellyswitch25-483FDA97F672/relay/0/power:.* relay_0_power
shellies/shellyswitch25-483FDA97F672/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }
shellies/shellyswitch25-483FDA97F672/temperature:.* temperature
shellies/shellyswitch25-483FDA97F672/temperature_f:.* temperature_f
shellies/shellyswitch25-483FDA97F672/input_event/0:.* { json2nameValue($EVENT) }
shellies/shellyswitch25-483FDA97F672/overtemperature:.* overtemperature
shellies/shellyswitch25-483FDA97F672/relay/0/energy:.* relay_0_energy
shellies/shellyswitch25-483FDA97F672/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
shellies/shellyswitch25-483FDA97F672/longpush/0:.* longpush_0
shellyswitch25_483FDA97F672:shellies/shellyswitch25-483FDA97F672/temperature_status:.* temperature_status
room 02_Pool,MQTT2_DEVICE
setList relay0:on,off,toggle shellies/shellyswitch25-483FDA97F672/relay/0/command $EVTPART1
toggle:noArg shellies/shellyswitch25-483FDA97F672/relay/0/command toggle
off:noArg shellies/shellyswitch25-483FDA97F672/relay/0/command off
on:noArg shellies/shellyswitch25-483FDA97F672/relay/0/command on
x_update:noArg shellies/shellyswitch25-483FDA97F672/command update_fw
x_mqttcom shellies/shellyswitch25-483FDA97F672/command $EVTPART1
setStateList on off toggle
webCmd :
Hallo z0lt1,
schau dir mal event-min-interval an: https://wiki.fhem.de/wiki/Event-min-interval (https://wiki.fhem.de/wiki/Event-min-interval)
Viele Grüße Gisbert
Zitat von: Gisbert am 27 Juli 2021, 09:26:37
schau dir mal event-min-interval an: https://wiki.fhem.de/wiki/Event-min-interval (https://wiki.fhem.de/wiki/Event-min-interval)
...das ist aber nur ein Teil der Gesamtstory...
Die beginnt bei https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Vorbemerkung (https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Vorbemerkung) (
mqtt_update_period), geht dann über event-on-change-reading und das genannte Attribut hin zu timestamp-on-change-reading. Ist häufiger Thema, siehe z.B. https://forum.fhem.de/index.php/topic,94060.msg1075460.html#msg1075460 (https://forum.fhem.de/index.php/topic,94060.msg1075460.html#msg1075460). (EDIT: oder https://forum.fhem.de/index.php/topic,112547.msg1068825.html#msg1068825).
Leider habe ich bis dato keine konsolidierte Rückmeldung, sonst könnte man ja sowas wie einen Vorschlag via attrTemplate mit ausliefern.
Danke euch für die Antworten. D.h. ich kann über die bekannten Attribute bestimmen wieviele der gesendeten Daten geloggt werden. Das Update-Intervall der Shellys von 30 Sekunden lässt sich nicht ändern, lediglich das Senden der statischen Werte.
doch es lässt sich ändern, hat Beta-user etwas versteckt: -> mqtt_update_period
https://shelly-api-docs.shelly.cloud/#mqtt-configuration
kurz und knapp - Beispiel:
http://<shelly-ip>/settings?mqtt_update_period=40
Steht in Beta-Users Link ;) https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Vorbemerkung
Oh dann habe ich das mit dem mqtt_update_period=0
falsch gedeutet. Vielen Dank für die Richtigstellung und die Hilfe, jetzt funktioniert es so wie es soll.