Neu: Die KI-Firewall überwacht die gesamte Plattform und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Antwort: MQTT auf LTE offen halten oder für jedes Senden neu verbinden? Wir wollen unsere Datenrechnung senken

Von English mit KI übersetzt ·

Ich habe das letztes Jahr an unseren Anhänger-Trackern gemessen, weil unsere Mobilfunkrechnung absurd war. Grobe Werte aus Paketmitschnitten auf einem SIM7600, TLS 1.2, dem Broker der Plattform:

  • vollständige Neuverbindung (TCP- + TLS-Handshake mit Zertifikatskette + CONNECT + SUBSCRIBEs): etwa 5 bis 6 KB
  • ein Keepalive-Roundtrip (PINGREQ/PINGRESP innerhalb von TLS, dazu TCP/IP-Header und ACKs): ungefähr 150 bis 200 Byte
  • Ihr 80-Byte-Messwert als QoS-1-Publish innerhalb von TLS mit PUBACK: ebenfalls ein paar hundert Byte

Eine Neuverbindung alle 5 Minuten würde also etwa 8.640 Handshakes im Monat kosten, 45+ MB. Deutlich schlechter. Keepalive 60 ergibt 43.200 Pings im Monat, rund 8 MB. Das ist ein großer Teil Ihrer 25 MB.Was bei uns funktioniert hat:Keepalive bis 300 s (der Broker setzt alles darüber ohnehin auf 300). Das reduziert die Pings auf ein Fünftel. Prüfen Sie, ob Ihr Provider inaktive NAT-Sitzungen nicht schneller trennt; bei uns hielten 6 Minuten, bei manchen werden sie nach 2 bis 4 Minuten getrennt. Wenn Sie keepalive_timeout im Log-Tab des Geräts sehen, senken Sie den Wert.Batching. Statt alle 5 Minuten einen Publish zu senden, puffern Sie 3 Messwerte und senden sie als ein Array mit Zeitstempeln (der ESP32 hat NTP, daher ist ts unproblematisch):

[{"ts":1762336800000,"values":{"flow":12.1,"pressure":2.4,"pump":1}},
 {"ts":1762337100000,"values":{"flow":12.3,"pressure":2.4,"pump":1}},
 {"ts":1762337400000,"values":{"flow":11.9,"pressure":2.3,"pump":1}}]

Gleiche Daten, ein Publish, und es zählt zudem als eine Nachricht auf das Monatskontingent statt drei.Suchen Sie nach unnötigem Datenverkehr. Bei uns war das Schlimmste, dass die Firmware bei jedem Publish Client-Attribute (IP, RSSI, Firmware-Version) mitgeschickt hat. Senden Sie diese nur bei Änderung.Zum Offline-Status: Mit Live connection als Online-Regel bleiben die Geräte online, solange die MQTT-Sitzung offen ist, bei Keepalive 300 ändert sich also nichts. Falls Sie jemals auf Verbinden-Senden-Trennen umstellen, wechseln Sie zu einem Profil mit Recent message, sonst werden sie zwischen den Sendungen als offline angezeigt.

Still waiting for the gateway to reconnect.
Akzeptierte Lösung♥ 8