mit dem Single wollte ich erstmal testen, ob überhaupt daten ankommen. Ebenfalls schreibe ich aktuell die Daten mit einem Raspberry. Nachher halt dann mit dem Arduino. Ich wollte halt erstmal anfangen, dass überhaupt was geht.
Aber wie kann ich mir denn nun die Daten anschauen? Das habe ich i-wie noch nicht wirklich verstanden…Die letzten Daten müssten nun nach deinem Schema angekommen sein oder?
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.
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^^
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:
Die ESP Libraries sind auf Größe optimiert. Die lange UID bläht den Base Topic über die von Homie und der async-mqtt Library vorgesehene Größe auf. Lösung: Keine lange UID verwenden.
Aber das kann auch einfach schon daran liegen, dass, wenn ich mit Authentifizierung arbeite, die beiden Werte für MQTT_TOPIC & MQTT_ID länger sind.
Fazit: die Variable MAXBUFFERSIZE (150) in Adafruit_MQTT.h erhöhen brachte für mich die Lösung.
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.
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 ;].
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 ;].
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?
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.
@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.