Probleme beim Datentransfer über SIM800 Modul per MQTT

Verstehe ich, also die MQTT Bus Kommunikation scheint ja gut zu funktionieren. Haken dran.

Um Daten zu Gesicht zu bekommen, muss man allerdings die oben beschriebene Adressierungskonvention verwenden, da unser Datenschnorchel sich nur für Topics mit diesem Schema interessiert, um sie in Richtung Datenbank abzukippen und Dir ein initiales Grafana Dashboard anzulegen.

Bisher konnte ich leider noch keine korrekten Nachrichten unter den jüngsten Dateneingängen entdecken. Hier noch einmal zur Sicherheit die Konvention des Topic Schemas am Beispiel:

hiveeyes/kasper/Garten/Stand1/data/Temperatur 20

Sobald alles geklappt hat, solltest Du dann Deine Daten unter https://swarm.hiveeyes.org/grafana/ betrachten können. Das initial erzeugte Dashboard hieße dann entweder "hiveeyes 37577b01-4a9b-4b08-92a2-3867f11106a5 automatic" oder "hiveeyes kasper automatic". Anschließend kannst Du das dann klonen und nach Belieben weiter bearbeiten. Sag Bescheid, wenn Dir der Account fürs Grafana noch fehlen sollte.

Hier noch gschwind die Direktlinks:

^^ Bei letzterem kommt nun was. Gratuliere und viel Spaß damit!

jap jetzt Sehe ich es auch…jetzt muss dann nur noch alles auf dem Arduino laufen^^ aber da schaue ich nach meinem Urlaub nach^^

Danke nochmal @Andreas und @clemens

Exzellent! Schön, dass das so schnell geklappt hat.

Gute Erholung wünschen wir Dir!

Ok, du hast auch nur TX und RX als Datenleitung verwendet. Falls du so ein einfaches board hast wie das hier

soltest du den Pegel angleichen, die vertragen keine 3,3 V und damit auch keine 5 V.

Hallo, ich bin gut Ausgeruht aus dem Urlaub zurück, konnte ein wenig über MQTT lesen und bin nun eine ganze ecke Weiter gekommen. Ich habe es nun geschafft, eine “echte” Temperatur per MQTT hier her zu senden. Doch leider immer nur genau 2 Datenpunkte. Danach kann ich bei mir keine Fehler feststellen. Bei mir sendet er alles schön weiter.

Ich habe schonmal ein wenig gelesen und bin auf diesen Thread gekommen. Da ich nicht genau diese Libary verwende sondern die PubSubClient habe ich dort schon ein wenig geschaut und habe dort ebenfalls die Buffersize (welche gleichgestellt ist mit der MAX_PACKET_SIZE gleichgestellt ist) schon auf 500 hochgenommen. Noch viel höher geht nicht. Dann mekert er rum er habe nicht genug Speicher.

Was ich jetzt noch nicht getestet habe, ist das ganze ohne Auth. mit dem testdrive. Das werde ich eventuell heute noch schaffen. Spätestens morgen dann.

Hat sonst jemand eine Idee was der Fehler sein könnte?

Grüße Julian

Edit…Ging doch schneller als gedacht. Also ohne Auth funktionieren auch nur 2 Datenpunkte. Das verstehe ich nun nicht so ganz.
@Stefan Kannst du mir vllt. sagen, auf welchen wert du nun gekommen bist?

@Andreas Könntest du bitte das Shell-Script wieder aktivieren,damit ich schauen kann, wie die Daten rein kommen?

Edit2… So es hat mit der Verbindung zu tun gehabt. warum auch immer, hat er nach 2 mal senden nicht mehr richtig was ermitteln können. Nachdem ich das Programm etwas umgebaut habe, funzt es nun.
Jetzt muss ich den Rest nur noch hinbekommen^^

1 Like

Hallo Julian,

Sehr schön, willkommen zurück!

Exzellent! Der Vollständigkeit halber hier für andere Interessierte noch einmal Referenzen auf alle Einträge bei uns von @Alex, @Thias und @Stefan, die sich mit diesem Thema beschäftigten:

Sehr schön, wir freuen uns, dass Du Dich für diese Bibliothek entschieden hast! Sie wurde bei uns auch schon mehrmals erwähnt:

… bisher konnten wir sie jedoch noch nicht zum Einsatz bringen.

Wunderbar. Du berichtest weiter unten (Edit2) ja, dass Du am Ende Erfolg mit der Datenübertragung hattest. Hattest Du die Änderung auf "MAX_PACKET_SIZE = 500" dabei nun im Endeffekt weiter aktiv?

Sorry, dass ich so spät dran war. Damit Du es aber über die nächsten Tage hinweg zur Verfügung hast, habe ich es nun direkt auf unserem Server in einer Hintergrundsitzung gestartet. Das könnte als bis zum nächsten Reboot durchhalten:

mosquitto_sub -h swarm.hiveeyes.org -p 1883 -t 'hiveeyes/#' -v | tee >(nc seashells.io 1337)
serving at https://seashells.io/v/6zwMX5f3

Du kannst das Kommando aber jederzeit auf jeder x-beliebigen Shell einer Linux Maschine ausführen, die eine Netzwerkverbindung ins Internet und die Pakete “mosquitto-clients” und “netcat” o.ä. installiert hat. Das kann übrigens auch jede andere, die das hier liest.

Anmerkung: Wenn jemand unserer Leserinnen ein Pendant für Windows liefern könnte, wäre das hervorragend! Gäbe es “mosquitto_sub” und “netcat” als executables (.exe) kompakt für Windows? Cygwin? Lasst uns das doch gebündelt als Zip Datei zur Verfügung stellen für alle, die (noch!) kein Linux nutzen können ;].

Hier also gehts einstweilen lang: https://seashells.io/v/6zwMX5f3. Wie gesagt hält das nur bis zum nächsten Reboot des Servers durch, das ist aber nun deutlich stabiler als auf der Workstation, auf der es das letzte Mal lief. Viel Spaß damit!

Wunderbar, gratuliere!

Sag Bescheid, wenn Du noch irgendwo Unterstützung brauchen kannst. Wir freuen uns, wenn wir Dir weiterhelfen können.

Hallo Julian nochmals,

was wir an dieser Stelle noch loswerden wollten…

Wir würden uns sehr freuen, wenn Du den Quelltext Deiner Sensorsoftware mit uns teilen möchtest. Wenn Du magst, mach das doch auf eigene Faust auf GitHub oder wo Du es am liebsten hast, wir bieten Dir aber genauso gerne ein Dach in Form unseres kollektiven Repositories, dann müsstest Du Dich nicht so stark selbst darum kümmern:

Als Seiteneffekt davon stünde Dir damit auch fast automatisch die komplette Infrastruktur rund um die Dokumentation und den Firmware Builder zur Verfügung, um kurz die wichtigsten Vorteile zu nennen. Vielleicht interessiert Dich das ja?

Wir hätten Dein MCU Programm u.a. auch deshalb so gerne zur Verfügung für die Community, weil es in der von uns publizierten kollektiven Firmware Sammlung bisher keine Referenzimplementierung mit der PubSubClient Bibliothek von Nick O’Leary gibt, auf die wir schon sehnsüchtig warten ;].

Viele Grüße,
Andreas.

Hallo Julian,

Kann ich gerne machen, Du musst Dich nur gedulden bis ich aus dem Urlaub wiederkomme.

Grüße
Stefan

Hey Stefan. Es wäre cool, wenn du mit deinen Wert demnächst mal sagen kannst. Ist jetzt aber nicht akut. Bis jetzt läuft es erstmal.

Ich habe es erstmal mit 500 weiter versucht. Da mir aber so langsam der Speicher ausgeht, habe ich es wieder auf Standart 128 zurück gesetzt.

Ich werde es mir überlegen. Da ich aktuell sehr viel Beschreibung zwecks Speicher rausgeschmissen habe, und es noch nicht alles funktioniert, werde ich mich erstmal darum kümmern, dass alles funktioniert. Wenn ich dann das ganze noch ein wenig schön gemacht habe, werde ich es mir überlegen. Generell habe ich aber kein Problem damit^^

Wunderbar! Falls Du an irgendeiner Stelle nicht weiterkommen solltest, können wir ggf. auch unsere “Codeanalyse im Trockendock” Hüte aufsetzen und den Quelltext von Ferne betrachten. Das wäre u.U. auch eine passende Gelegenheit, ihn zu veröffentlichen.

Ansonsten verstehen wir natürlich, wenn Du ihn erst polieren und dann veröffentlichen willst. Wir machen halt nur generell immer offensiv Werbung für Release early, release often ;].

Have fun!

Meinst du mit “Speicher” den Arduino? Falls ja, kannst du alles was du möchtest in Kommentaren in den Quelltext schreiben. Kommentare werden nicht mit-compiliert und blähen damit zwar deine *.ino-Datei auf, aber nicht die compilierte Datei, die dann auf den Arduino kommt.

Vielen Dank erstmal für die große Unterstützung. Leider “fressen” die brauchbaren Libs den Speicher der Variablen auf. Somit kann ich mit MQTT und dem Sim-Modul so nicht weiter machen.

@Andreas Wie kann ich denn Sinnvoll mal den aktuellen Quellcode hier senden, damit mal alle drüber schauen können, wie ich weniger Speicher verwenden kann?

Grüße Julian

Hi Julian,

Herzlich gern!

Schade!

Wenn Du Dich mit Git und GitHub auskennst, kannst Du gerne hier [1] einen Pull Request einreichen oder den Code erstmal in ein eigenes Git Repository werfen.

Ansonsten schicke mir den Quelltext doch einfach per Email, dann übernehme ich das, ihn an einer passenden Stelle einzupflegen.

Viele Grüße,
Andreas.

[1] GitHub - hiveeyes/arduino: Arduino-compatible MCU firmware code for sensor-, telemetry-, and gateway-appliances.

Hier hat übrigens auch jemand Probleme mit der TinyGSM-library in Verbindung mit PubSubClient:

Hallo Julian,

ich habe den Wert für die MAXBUFFERSIZE auf 1024 in der Adafruit_MQTT.h gesetzt.

#define MAXBUFFERSIZE (1024)

Viel Erfolg!

Die TinyGSM Bibliothek nutzt für die Unterstützung von MQTT wiederum die PubSubClient Bibliothek und deren Autor Nick O’Leary schreibt dazu ganz klar:

  • The maximum message size, including header, is 128 bytes by default. This
    is configurable via MQTT_MAX_PACKET_SIZE in PubSubClient.h.

und:

  • Reject topic/payloads that exceed MQTT_MAX_PACKET_SIZE
1 Like

@Kasper027 nochmal eine Nachfrage zum Stand der Dinge. ;-) Hast du mit einem Arduino Uno / ProMini die TinyGSM mit den nötigen MQTT-Libs speichertechnisch zum Laufen bekommen oder ist der einfach zu klein?`

Also mit dem Uno geht es nicht zuverlässig. Ich habe jetzt einen Mega in Verwendung. Da läuft es erstmal. Leider habe ich aber noch andere Probleme, wo ich noch nicht herausgefunden habe, woran es liegt. Hier werde ich demnächst nochmal einen Stand bringen, wo ihr mir eventuell helfen könntet.

6 posts were split to a new topic: SIM800 Stromverbrauch reduzieren