Hi, ich habe hier neulich gelesen, dass so manche iot-projekte über mosquitto bewerkstelligt werden. > ich fande das thema spannend und habe mich selbst etwas eingelesen und auch gleich mal eine Testumgebung aufgebaut. ich habe einen kleinen ESP8266 an welchen ein Drehgeber und ein Relais angeschlossen ist... => der Drehgeber bewegt sich aktuell nur wenn man mit der Hand dran dreht <- funktioniert aber "annähernd" perfekt. der Server steht im Internet, und das ganze läuft über eine Mobilfunkverbindung (hierzu ein LTE-Router, welcher ein WLAN für das ESP bereitstellt). jetzt habe ich über nacht ~8 Stunden, fast 500MB verbraucht. Andere verbraucher sind ausgeschlossen. => Ich bin doch sehr überrascht wieviel so ein kleiner ESP verbrauchen kann. Ich habe einen Thread Aboniert über welchen zu Nacht aber nicht Kommuniziert wurde. Daten übermittle ich nur, wenn ich am Drehgeber drehe... Hat jemand eine idee was "falsch" läuft bzw. falsch laufen kann? Ich will heute nachmittag die Verbindung nochmal mit Wireshark analysieren... da ich aber verschlüsselt Kommuniziere, erwarte ich hier nicht viel auskunft. > Bitte Fragt nach, wenn ich euch noch Informationen geben könnte um mir helfen zu können... danke ;)
Log doch mal mit, was der ESP macht. So weit wie ich weiß hat MQTT eine Möglichkeit die Verbindung durch regelmäßigen Austausch von speziellen Ping-Nachrichten am Leben zu erhalten. Das braucht man, wenn ein NAT dazwischen ist (hier im Mobilfunkrouter und beim Mobilfunkbetreiber).
Hallo, MQTT ist eigentlich für geringe Datenmengen usw. entwicklet worden. 500MB in 8 Stunden wären rund 1MB pro Minute, da kann man ja Romane hin- und herschicken. MQTT selbst nutzt eine keepAlive-Message damit der Broker weiß, daß der Client noch da ist. Wie oft und wieviel Byte das sind weiß ich jetzt nicht, aber eine übliche keepAlive Zeit sind 15 Minuten. Ich habe nur mal mqttfx gestartet und alles lokale abboniert, sind so ca. 30 Message/min. Der Windows Resourcenmonitor meldet auch nur einige Byte/s von mqtt.fx Wireshark o.ä. habe ich hier gerade nicht drauf. Gruß aus Berlin Michael
Michael U. schrieb: > aber eine übliche keepAlive Zeit sind 15 Minuten. Nein, das konnte man früher mal machen. Inzwischen haben NAT-Router einen Timeout von 5 Minuten (bei den guten) oder gar weniger als eine Minute (bei ganz schlechten). Sprich mit einem Keepalive alle 15 Minuten würde Dir jedes mal die Verbindung abbrechen. Aber das kann man alles sehr einfach nachschauen, einfach, zum Beispiel am Server, per tcpdump oder Wireshark den Netzwerkverkehr mitschreiben, wichtig ist dabei natürlich, dass auch der Verbindungsaufbau aufgezeichnet wird, und dann ein paar Minuten aufzeichen, dann sieht man ja alles sofort.
Michael U. schrieb: > Wireshark o.ä. habe ich hier gerade nicht drauf. Dann wirst Du nichts sehen können, und musst mit Hellseherei arbeiten. Setzt dann doch mal eine Anzeige in das "Elexier-Magazin". ;)
Hallo, Christian B. schrieb: > Nein, das konnte man früher mal machen. Inzwischen haben NAT-Router > einen Timeout von 5 Minuten (bei den guten) oder gar weniger als eine > Minute (bei ganz schlechten). Sprich mit einem Keepalive alle 15 > Minuten würde Dir jedes mal die Verbindung abbrechen. ok. Sortieren wir: keepAlive wird vom Client beim Broker gesetzt, mit keepAlive kann man es auch für diesen Client komplett abschalten. Macht z.B. Sinn, wenn man nur published und nichts abboniert hat. Bowser scheint default 10s zu sein, müßte man in dessen Einstellungen klären. Beim Client hängt es auch von den Voreinstellungen ab. Das Verhalten von NAT oder bei mir z.B. CGN (Timeout 1 Minute...) hat darauf erstmal nur indirekt Einfluß. Ich nutze MQTT nur im lokalen Netz, meine Antwort bezog sich auch nur auf die Datenmengen von MQTT, nicht auf irgendwelche Verbindungsaufbauten wegen NAT-Timeout usw. Das wird sich wohl nur vor Ort klären lassen. Christian B. schrieb: > Dann wirst Du nichts sehen können, und musst mit Hellseherei arbeiten. > Setzt dann doch mal eine Anzeige in das "Elexier-Magazin". ;) wenn ich wissen will, wieviel durch die Netzwerkverbindung des MQTT-Clients an Daten geht, muß ich weder deren Inhalt noch andere Daten dazu wissen. Und das sagt der Windows-Resourcenmonitor durchaus brauchbar aus. Gruß aus Berlin Michael
Wenn man die Pubsubclient lib für den ESP8266 benutzt ist der Keep-Alive auf 15s gesetzt (richtig wären eigentlich 10s). Da dürften aber trotzdem nicht so viele Daten zusammen kommen. Aber vielleicht hast du in deiner ESP Firmware auch einen Bug dass du versehendlich alle paar Millisekunden eine Message schickst weil du denkst dass der Drehgeber sich bewegt hat.
Hallo, Timmo H. schrieb: > Wenn man die Pubsubclient lib für den ESP8266 benutzt ist der Keep-Alive > auf 15s gesetzt (richtig wären eigentlich 10s). ja, habe ich auch gefunden, beim AsyncMQTT sind es auch 15s dafault. Da hat wohl wer gepokert und sich auf die keepAlive + 50% verlassen, bis der Broker disconnected... Ein keepAlive-Ping vom Client wird nur gesendet, wenn über die Zeit keine andere Message gesendet wird. Gruß aus Berlin Michael
:
Bearbeitet durch User
ich kann euch zwar folgen, aber selbst wenn ich alle 10 Sekunden 2 Byte austausche, komme ich auf 5kb (wenn ich mich nicht verrechnet habe) und wenn ich das 1000 mal so oft mache, evtl. 5MB aber 500MB ist schon echt viel? Der Drehgeber bringt definitiv keine "falscheingaben" da er einrastet und ich die Ausgabe auch über die Konsole sehe, und da gibt es keine neuen werte... => aber evtl. ist auch mein Script im ESP falsch,... dennoch bringen mich die 500MB ins grübeln Kennt jemand eine gute Library für MQTT? ich habe jetzt irgendwas von pubsubclient gefunden. Das Arbeitet ziemlich schnell <- inwiefern das aber sauber und stabil ist, weiß ich noch nicht...
Hallo, anna schrieb: > Kennt jemand eine gute Library für MQTT? ich habe jetzt irgendwas von > pubsubclient gefunden. Das Arbeitet ziemlich schnell <- inwiefern das > aber sauber und stabil ist, weiß ich noch nicht... Pubsubclient ist auch auf dem ESP8266 absolut stabil, nutze ich aber nur noch auf Sensoren, die nur alle paar Minuten aufwachen und z.B. temperatur schicken. Ansonsten AsyncMQTT für den ESP, ebenfalls stabil. Beim AsyncMQTT muß man evtl. aufpassen, wenn man DHCP nutzt und es einen WLAN-Reconnect gab. WiFi.status() meldet WL_CONNECTED wenn die Verbindung zum Router steht. Wenn man jetzt sofort MQTT-connect aufruft kann das gegen die Wand laufen, weil man vom DHCP noch keine IP bekommen hat... Passiert selten, ist aber unberechenbar, weil es dann keinen neuen Versuch eines connect zum MQTT gibt und man Messages nach weißen Sand schickt. Fehlerabfragen macht man erfahrungsgemäß dort selten. Man sollte also ers5t WiFiEventStationModeGotIP auf eine gültige IP testen. Stabil heißt 24/7 über inzwischen etliche Monate. Gruß aus Berlin Michael
anna schrieb: > ~8 Stunden, fast 500MB verbraucht Je nach Servicequalität könnte er viele erfolglose Versuche gestartet haben um seine Meldung loszuwerden? https://www.sic-software.com/das-mqtt-protokoll-1/
Da verursacht was anderes die Traffic. Selbst mit gedrosselter Datenrate funktioniert MQTT zuverlässig. Bei solch einer Geschichte kann man den kleinste Tarif wählen, so lange die Paketdaten nicht abgeschaltet werden funktioniert MQTT.
leider habe ich den Fehler immer noch nicht gefunden... => zum Mitschnitt im wireshark bin ich noch nicht gekommen aber ich habe gestern mal einen Delay von 15 Sekunden im loop eingebaut und konnte dann gut beobachten wie alle 15 Sekunden im (lte)router ein größeres (80kb) Paket an Daten transferiert wurde... ich versteh das nicht. => Ich arbeite im QOS0 also fire and forget <- da müsste man schon die wenigsten daten brauchen. am Router hängt NICHTS anderes... => ich habe zwar zum "nachschauen" wieviele Daten verbraucht wurden, kurzzeitig einen Windows Rechner dran hängen... aber um auszuschließen dass der Updates zieht oder irgendwelche Daten verbraucht (obwohl er so eingestellt ist, dass er dies nicht machen soll) => schalte ich diesen auch direkt nach dem "nachschaueeen" wieder komplett aus. => niemand anderes Hat Zugriff auf dem Router nur der kleine ESP8266 schafft es nach wie vor in der Stunde ~80MB an Daten zu verbraten (im übrigen 80% Davon ist upload). für weitere Ideen bin ich immer noch offen
Wird ständig die Mobilfunk-Verbindung auf und ab gebaut? Was hast du für einen Tarif? So einen Tarif, mit "angefangene 100 KB zählen als 100 KB"? oder noch schlimmer? Hat das Modem oder der ESP versucht ein Firmware-Update über Mobilfunk zu machen? Allgemein, läuft auf dem ESP oder dem Modem irgendein anderer Dienst der das Datenvolumen verursacht? Ist das bereitgestellte WLAN vielleicht offen und der Nachbar surft "versehentlich" drüber? Und für die Zukunft (löst nicht das aktuelle Problem), schau mal nach NB-IoT oder Cat-M1 Modems und Tarifen. Am besten mit LwM2M statt MQTT. So langsam kommt da richtig feines Zeug auf den Markt.
Hallo, anna schrieb: > der Server steht im Internet, und das ganze läuft über eine > Mobilfunkverbindung (hierzu ein LTE-Router, welcher ein WLAN für das ESP > bereitstellt). Server heißt hier ein im INet erreichbarer MQTT-Broker? anna schrieb: > nur der kleine ESP8266 schafft es nach wie vor in der Stunde ~80MB an > Daten zu verbraten (im übrigen 80% Davon ist upload). Dann wirst Du wohl wirklich den Datenverkehr des ESP im WLAN mitloggen und kontrollieren müssen. Ich müßte jetzt überlegen, wie man das am günstigsten macht in dieser Konfiguration (ESP und LTE-Router) macht. Gute Router sollten ja selbst zumindest die Menge an den Traffic zwischen Router und einer bestimmten Client-IP in beiden Richtungen anzeigen können. Hannes J. schrieb: > Hat das Modem oder der ESP versucht ein Firmware-Update über Mobilfunk > zu machen? Allgemein, läuft auf dem ESP oder dem Modem irgendein anderer > Dienst der das Datenvolumen verursacht? Vielleicht kannst Du hier mal den User fragen, ob er was über seine Datenmengen weiß: https://www.arduinoforum.de/arduino-Thread-NODEMCU-vs-ESP8266?page=6 Er nutzt ESP direkt mit SIM-Modul und MQTT. Gruß aus Berlin Michael Der ESP macht definitiv nur, was man drauf programmiert hat. Wobei hier eine Frage bei mir auftaucht: wenn der ESP sich beim Router anmeldet hält er auch diese Verbindung bis man sie disconnected. Wie verhält sich ein LTE-Router mit der Verbindung nach außen? Wie verhält sich der Router in Verbindung mit MQTT wenn sich der Client im Internet beim Broker anmeldet? Wie lange bleibt diese Verbindung und damit auch die LTE-verbindung aktiv auch wenn keine Daten aktiv gesendet werden?
@Michael U. > Server heißt hier ein im INet erreichbarer MQTT-Broker? warum sollte ich das sonst über Mobilfunk realisieren? @Hannes J. > Was hast du für einen Tarif? So einen Tarif, mit "angefangene 100 KB > zählen als 100 KB"? oder noch schlimmer? was hat das mit meinem Verbrauch zu tun... das sind exakt die Daten die mir der Router und die Mobilfunkverbindung anzeigt > Ist das bereitgestellte WLAN vielleicht offen und der Nachbar surft > "versehentlich" drüber? wenn ich doch sage, dass niemand da Zugriff drauf hat. @Marco H. > Da verursacht was anderes die Traffic. Selbst mit gedrosselter Datenrate > funktioniert MQTT zuverlässig. Bei solch einer Geschichte kann man den > kleinste Tarif wählen, so lange die Paketdaten nicht abgeschaltet werden > funktioniert MQTT. nichts weiter da... jetzt kommt wireshark action... > aber damit kenn ich mich nicht sooo gut aus :/
anna schrieb: > nichts weiter da... jetzt kommt wireshark action... Zeit wird's... Das ganze Geseiere bisher war völlig sinnbefreit. Wenn man was untersuchen will, muss man erstmal sehen, was passiert, das ist doch sowas von logisch, dass man das nichtmal weiter diskutieren muss... >> aber damit kenn ich mich nicht sooo gut aus :/ Lernen hat noch niemandem wirklich geschadet, Faulheit und Ignoranz hingegen schon...
anna schrieb: > @Hannes J. >> Was hast du für einen Tarif? So einen Tarif, mit "angefangene 100 KB >> zählen als 100 KB"? oder noch schlimmer? > > was hat das mit meinem Verbrauch zu tun... das sind exakt die Daten die > mir der Router und die Mobilfunkverbindung anzeigt Weil Mobilfunkanbieter in manchen Verträgen aufrunden. Kräftig. Aber da stehst du ja drüber, du Maximalspezialistin. >> Ist das bereitgestellte WLAN vielleicht offen und der Nachbar surft >> "versehentlich" drüber? > > wenn ich doch sage, dass niemand da Zugriff drauf hat. Ja, klar, du sagst viel. WEISST du es? Ach, weißt du was? Ist mir egal.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.