MQTT Server mit Meldungen : left us (keepalive check)

Begonnen von mcfly71, 07 Mai 2021, 09:26:01

Vorheriges Thema - Nächstes Thema

mcfly71

Servus Gemeinde,

ich habe eine Frage zum MQTT-Server.

Ich habe Shelly H&T Devices eingebunden. Diese loggen sich automatisch immer nach ca. 6 Minuten ins WLAN Netz ein,
melden ihre Dinge und melden sich ab.

Im Logbuch der Devices steht folgendes:


2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE online: true
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE ip: 192.168.6.222
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE fw_ver: 20210413-154417/v1.10.2-gb89901a
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE id: shellyht-DDDDD
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE mac: XXXXXXXXXXXX
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE model: SHHT-1
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE new_fw: false
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE mac: XXXXXXXXXXXX
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE id: shellyht-DDDDD
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE new_fw: false
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE model: SHHT-1
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE ip: 192.168.6.222
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE fw_ver: 20210413-154417/v1.10.2-gb89901a
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE temperature: 20.88
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE humidity: 65.5
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE battery: 90
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE error: 0
2021-05-07_08:54:04 TH_SCHLAFZIMMER_VORNE 1: sensor
2021-05-07_08:55:39 TH_SCHLAFZIMMER_VORNE online: false


Im Hauptlogbuch mehren sich nun die KeepAlive Meldungen, jedesmal zu dem Zeitpunkt, wo im Logbuch des Shellies

2021-05-07_08:55:39 TH_SCHLAFZIMMER_VORNE online: false


steht.


MQTT_FHEM: MQTT_FHEM_192.168.6.222_2592/shellyht-DDDDDD left us (keepalive check)


Ja, ich kann den Keepalive Check mit 0 ausstellen, jedoch ist das Verhalten der 4 Temperatur Sensoren ja richtig, und ich
habe auch noch andere Shelly-MQTT Devices, die ich schon noch gerne überwacht hätte.
Mache ich was falsch, wo ist mein Denkfehler, oder was kann ich tun ???

VG
mcfly
- HMLAN / Raspberry auf hmmode
- Homematic

rudolfkoenig

ZitatMache ich was falsch, wo ist mein Denkfehler, oder was kann ich tun ???

Dein Problem konkret benennen, bzw. was haettest Du gerne.

Wenn ich richtig rate: keepalive soll fuer manche Clients nicht gelten, obwohl diese das explizit bestellt haben.
In diesem Fall wuerde ich zwei MQTT2_SERVER Instanzen anlegen, und diese unterschiedlich parametrisieren.

mcfly71

Servus Rudolf,

ja... das wäre meine Bitte, aber der Satz von dir: Obwohl explizit bestellt.... macht mich stutzig. Woran sieht man das ?

Ansonsten hast du recht: Vielleicht ein Attribut einbauen, welches bei gewollten MQTT Devices Die Keepalives auf zB. Sekunden
oder Minuten definiert. Dann würde ich bei Minuten zB. bei den Shellies 8 Minuten eintragen. Bis dahin sollten die sich melden....
Oder im MQTT Server ein DeviceName und Keepalive .....



VG
mcfly
- HMLAN / Raspberry auf hmmode
- Homematic

rudolfkoenig

ZitatObwohl explizit bestellt.... macht mich stutzig. Woran sieht man das ?
Na an "left us (keepalive check)". Der server macht nur ein keepalive check nur fuer die Clients, die das bestellt haben.

ZitatVielleicht ein Attribut einbauen, welches bei gewollten MQTT Devices Die Keepalives auf zB. Sekunden
oder Minuten definiert.
Das ist mir zu bunt. Man kann was Vergleichbares jetzt schon mit anderen mitteln loesen (s.u.), und neue Attribute machen das Programm komplizierter, sowohl fuer mich, wie auch fuer den Anwender.

Die korrekte Loesung ist in den Shellies das richtige Keepalive zu definieren, das ist laut MQTT Spec ein Client-Parameter.
Wenn das nicht geht, dann im MQTT2_SERVER keepaliveFactor zu definieren, wenn es sein muss, auf einem separaten MQTT2_SERVER Instanz.

Otto123

#4
Moin,

man kann doch beim shelly in den MQTT Settings KeepAlive einstellen? steht bei meinem einen plug-s auf 60 sekunden per default. Dort einfach den gewünschten Wert einstellen?
Auszug shelly api https://shelly-api-docs.shelly.cloud/#settings
"mqtt": {
        "enable": false,
        "server": "192.168.33.3:1883",
        "user": "",
        "id": "shelly1-B929CC",
        "reconnect_timeout_max": 60,
        "reconnect_timeout_min": 2,
        "clean_session": true,
        "keep_alive": 60,
        "max_qos": 0,
        "retain": false,
        "update_period": 30
    },


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mcfly71

#5
Servus....

ein Danke schön an beide... ich werde experimentieren....

Ich habe beim Shelly nun festgestellt, dass man 3 Intervalle eingeben kann, die da heißen:

Min reconnect timeout:  2
Max reconnect timeout: 60
Keep alive: 30

Diese Werte standen defaultmäßig drin. Laut Beschreibung lautet es:

Zitat
mqtt_reconnect_timeout_max    number    Maximum interval for reconnect attempts
mqtt_reconnect_timeout_min    number    Minimum interval for reconnect attempts
mqtt_keep_alive    number    MQTT keep alive period in seconds

Aber danke erstmal....

VG
mcfly


- HMLAN / Raspberry auf hmmode
- Homematic