Probleme mit MQTT Stabilität

Hallo zusammen,

Ich habe den MQTT Server ink. Username und Passwort auf der Version 5.5-100 am laufen. Nur ist es das nach kurzer Zeit, teilweise nach wenigen sec. der MQTT Dienst nicht mehr reagiert. Wenn ich mit dem Windows Programm (MQTT.fx) Werte schicke klappt alles.(auch über Stunden)

Wenn ich einen ESP32 per Wlan MQTT schicken lasse bzw. vom Handy über die APP (owntracks) Werte schicke hängt der Dienst nach wenigen Sekunden bzw. Minuten.

Alles andere Läuft noch nur MQTT ist nicht mehr erreichbar. Ich kann den Symcon Dienst auch nicht neu starten da er sich anscheinend nicht schließt. Auch über SSH das Raspi neu zu starten geht nicht. Irgendwas hängt gewaltig dann fest.

Die einzige Möglichkeit ist Strom weg um neu zu starten.

Zuerst dachte ich es liegt an der APP „owntracks“. Das schließe ich aber aus. Das Demo Beispiel für den ESP32 in der Arduino Umgebung verursacht das selbe auch wenn ich nur eine Zahl zwischen 1 und 10000 schicke. Also der Payload ist sehr klein.

Ich habe zum testen die Beta verwendet da tritt das selbe Problem auf.

sG Chris

Kannst du mal einen Gegentest machen, ohne „Username und Passwort“ ?
Hier läuft das stabil, aber ohne Anmeldung.

Ich hab es ohne Anmeldung getestet. Da passiert das selbe.
Es schein Probleme mit offene Sessions zu geben.

Das Debug Log vom MQTT ist voll mit dieser Meldung. Wenn ich dieses länger als 10sec offen lasse stürzt das ganze Symcon ab.

Hier noch das Log direkt vom RPI

13/12/20 09:09:14 | 19490 | ERROR | TimerPool | MQTT Server (Cleanup): std::bad_alloc
13/12/20 09:09:14 | 19490 | ERROR | KernelMT | Settings: Error for Message KL_DEBUG: Unknown error

Jetzt vermute ich, es liegt an deinem ESP32. Was hast du da drauf, ev kann man das mal gegen testen.
Wir haben hier zig MQTT Geräte, auch einen ESP32 mit Tasmota als BLE Bridge, läuft absolut stabil.

ich glaube es hat mit einem Bug von hier zu tun.

grroßes MQTT-Topic läßt IPS abstürzen

Ich habe das gleiche Problem mit Shelly Plugs (Steckdosenadapter). Bei mir tritt es auf, wenn ich einen Plug aus der Steckdose ziehe und wieder einsetze.
Dann kommt es bei mir zu mehr als 15.000 (!) Einträgen pro Sekunde von

15.12.2020 11:50:57 | TXT | CLEANUP | Session shellyplug-s-EF2A7E is expired but still has an active connection: 192.168.178.138:51905. Skipping Cleanup. Maybe your Session Timeout is too low?

An der Größe des Payloads liegt es es eher nicht. Die sind klein:


15.12.2020 11:47:12 | TXT | CONNECT | [b]192.168.178.138:51905[/b]
15.12.2020 11:47:12 | TXT | BUFFER IN | <DLE>K<NUL><EOT>MQTT<EOT><ACK><NUL><<NUL><DC3>shellyplug-s-EF2A7E<NUL>#shellies/shellyplug-s-EF2A7E/online<NUL><ENQ>false
15.12.2020 11:47:12 | TXT | MQTT:RX:CONNECT | Protocol: MQTT, Version: MQTT 3.1.1, ClientID: shellyplug-s-EF2A7E
15.12.2020 11:47:12 | TXT | ClientID collision | Disconnecting 192.168.178.138:61961 for shellyplug-s-EF2A7E
15.12.2020 11:47:12 | TXT | MQTT:RX:CONNECT | Successful (Session cleared)
15.12.2020 11:47:12 | TXT | BUFFER IN | 0)<NUL>#shellies/shellyplug-s-EF2A7E/onlinetrue0§<SOH><NUL><DC1>shellies/announce{"id":"shellyplug-s-EF2A7E","model":"SHPLG-S","mac":"8CAAB5EF2A7E","ip":"192.168.178.138","new_fw":false,"fw_ver":"20201124-092310/v1.9.0@57ac4ad8"}0»<SOH><NUL>%shellies/shellyplug-s-EF2A7E/announce{"id":"shellyplug-s-EF2A7E","model":"SHPLG-S","mac":"8CAAB5EF2A7E","ip":"192.168.178.138","new_fw":false,"fw_ver":"20201124-092310/v1.9.0@57ac4ad8"}00<NUL>*shellies/shellyplug-s-EF2A7E/relay/0/power0.000.<NUL>+shellies/shellyplug-s-EF2A7E/relay/0/energy00(<NUL>$shellies/shellyplug-s-EF2A7E/re
15.12.2020 11:47:12 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/online, Payload: true
15.12.2020 11:47:12 | TXT | MQTT:RX:PUBLISH | Topic: shellies/announce, Payload: {"id":"shellyplug-s-EF2A7E","model":"SHPLG-S","mac":"8CAAB5EF2A7E","ip":"192.168.178.138","new_fw":false,"fw_ver":"20201124-092310/v1.9.0@57ac4ad8"}
15.12.2020 11:47:12 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/announce, Payload: {"id":"shellyplug-s-EF2A7E","model":"SHPLG-S","mac":"8CAAB5EF2A7E","ip":"192.168.178.138","new_fw":false,"fw_ver":"20201124-092310/v1.9.0@57ac4ad8"}
15.12.2020 11:47:12 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/relay/0/power, Payload: 0.00
15.12.2020 11:47:12 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/relay/0/energy, Payload: 0
15.12.2020 11:47:12 | TXT | MQTT:RX | Incomplete packet. Wait for more data
15.12.2020 11:47:12 | TXT | BUFFER IN | lay/0on0.<NUL>(shellies/shellyplug-s-EF2A7E/temperature0.0001<NUL>*shellies/shellyplug-s-EF2A7E/temperature_f32.000/<NUL>,shellies/shellyplug-s-EF2A7E/overtemperature0‚<NAK><NUL><LF><NUL><DLE>shellies/command<NUL>‚)<NUL><VT><NUL>$shellies/shellyplug-s-EF2A7E/command<NUL>‚1<NUL><FF><NUL>,shellies/shellyplug-s-EF2A7E/relay/0/command<NUL>
15.12.2020 11:47:12 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/relay/0, Payload: on
15.12.2020 11:47:12 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/temperature, Payload: 0.00
15.12.2020 11:47:12 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/temperature_f, Payload: 32.00
15.12.2020 11:47:12 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/overtemperature, Payload: 0
15.12.2020 11:47:12 | TXT | MQTT:RX:SUBSCRIBE | shellies/command
15.12.2020 11:47:12 | TXT | MQTT:RX:SUBSCRIBE | shellies/shellyplug-s-EF2A7E/command
15.12.2020 11:47:12 | TXT | MQTT:RX:SUBSCRIBE | shellies/shellyplug-s-EF2A7E/relay/0/command
15.12.2020 11:47:13 | TXT | BUFFER IN | À<NUL>
15.12.2020 11:47:13 | TXT | MQTT:RX:PINGREQ | 
15.12.2020 11:47:15 | TXT | BUFFER IN | 0/<NUL>(shellies/shellyplug-s-EF2A7E/temperature24.7001<NUL>*shellies/shellyplug-s-EF2A7E/temperature_f76.450/<NUL>,shellies/shellyplug-s-EF2A7E/overtemperature0
15.12.2020 11:47:15 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/temperature, Payload: 24.70
15.12.2020 11:47:15 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/temperature_f, Payload: 76.45
15.12.2020 11:47:15 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/overtemperature, Payload: 0
...
15.12.2020 11:49:42 | TXT | BUFFER IN | 00<NUL>*shellies/shellyplug-s-EF2A7E/relay/0/power0.000.<NUL>+shellies/shellyplug-s-EF2A7E/relay/0/energy00(<NUL>$shellies/shellyplug-s-EF2A7E/relay/0on0/<NUL>(shellies/shellyplug-s-EF2A7E/temperature28.0201<NUL>*shellies/shellyplug-s-EF2A7E/temperature_f82.440/<NUL>,shellies/shellyplug-s-EF2A7E/overtemperature0
15.12.2020 11:49:42 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/relay/0/power, Payload: 0.00
15.12.2020 11:49:42 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/relay/0/energy, Payload: 0
15.12.2020 11:49:42 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/relay/0, Payload: on
15.12.2020 11:49:42 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/temperature, Payload: 28.02
15.12.2020 11:49:42 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/temperature_f, Payload: 82.44
15.12.2020 11:49:42 | TXT | MQTT:RX:PUBLISH | Topic: shellies/shellyplug-s-EF2A7E/overtemperature, Payload: 0
15.12.2020 11:50:57 | TXT | CLEANUP | Session shellyplug-s-EF2A7E is expired but still has an active connection: [b]192.168.178.138:51905[/b]. Skipping Cleanup. Maybe your Session Timeout is too low?
15.12.2020 11:50:57 | TXT | CLEANUP | Session shellyplug-s-EF2A7E is expired but still has an active connection: [b]192.168.178.138:51905[/b]. Skipping Cleanup. Maybe your Session Timeout is too low?
15.12.2020 11:50:57 | TXT | CLEANUP | Session shellyplug-s-EF2A7E is expired but still has an active connection: [b]192.168.178.138:51905[/b]. Skipping Cleanup. Maybe your Session Timeout is too low?
...

Bei mir ist es ein Windows System.

Burkhard

Hi Jungs!

Danke für die genau Beschreibung. Ich konnte das Problem fixen. Update müsste noch heute dafür kommen!

paresy

Fix jetzt im Beta-Kanal.

paresy

Besten Dank! Das Ein- und Ausstecken eines Plugs funktioniert bei mir nun problemlos.

Burkhard

Hi paresy,
auch was gegen lange Pakete gemacht? IPS hat mir eben wieder einen Neustart gemeldet und wieder langes Paket:-(

Ralf

Leider nein. Das Problem ist noch offen.

paresy

Was sind lange Pakete? Ab wie vielen Zeichen?

Hi,
bei mir handelt es sich um Pakete >50K. In dem verlinkten Thread von Paresy heißt es das bei RegEx, welches verwendet wird, ab ca. 27K Probleme auftreten können.

Einige Systeme wie jetzt Zigbee2MQTT verschicken beim Start Gerätelisten und die sind teilweise sehr umfangreich.

Ralf

Ok Danke für die Infos.

Dann hoffen wir das „Paresy“ das eventuell in einer der nächsten Versionen gefixt bekomme. :slight_smile:

Hi Kampfwurst,

dein Problem ist in der aktuell Beta bereits korrigiert.

paresy

Hi,
welches Problem? Auch das mit den langen Paketen?

Ralf

Ich schließe mal hier, da das Problem gelöst ist.

Der Bug mit den zu großen MQTT Topics wird hier fortgeführt: grroßes MQTT-Topic läßt IPS abstürzen

paresy