FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: mcfly71 am 07 Mai 2021, 09:26:01

Titel: MQTT Server mit Meldungen : left us (keepalive check)
Beitrag von: mcfly71 am 07 Mai 2021, 09:26:01
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
Titel: Antw:MQTT Server mit Meldungen : left us (keepalive check)
Beitrag von: rudolfkoenig am 07 Mai 2021, 09:37:04
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.
Titel: Antw:MQTT Server mit Meldungen : left us (keepalive check)
Beitrag von: mcfly71 am 08 Mai 2021, 07:10:43
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
Titel: Antw:MQTT Server mit Meldungen : left us (keepalive check)
Beitrag von: rudolfkoenig am 08 Mai 2021, 10:15:18
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 (https://fhem.de/commandref_modular.html#MQTT2_SERVER-attr-keepaliveFactor) zu definieren, wenn es sein muss, auf einem separaten MQTT2_SERVER Instanz.
Titel: Antw:MQTT Server mit Meldungen : left us (keepalive check)
Beitrag von: Otto123 am 08 Mai 2021, 10:38:39
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
Titel: Antw:MQTT Server mit Meldungen : left us (keepalive check)
Beitrag von: mcfly71 am 09 Mai 2021, 07:14:37
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