MQTT broker auf Teensy4

OP #7417438

moin, bei mir schlägt demnächst ein HM-1500 mit openDTU auf. da dieser dann daten an einen MQTT-broker senden kann würde ich diese gern auf meinem hauseigenen datenlogger sammeln. dieses ist ein teensy4.1 der bereits alles über meine heizung und allen sonstigen kram mit schreibt und diese als dateien und im browser bereit stellt. hat schon mal einer sowas gemacht? wie ist so ein mqtt-paket aufgebaut? den kompletten brocker muss ich hoffentlich nicht in den teensy stopfen.

#7417480

soll jetzt der broker oder ein Client auf dem Teensy laufen? Client ist kein Problem, dafür gibt es Libs die Topics publishen/subsriben können. Der Broker gehört eher auf einen Server, so mindestens Raspberry Pi Klasse. Was nicht heißt das es das vielleicht doch für µC gibt.

#7417516

das MQTT Protokoll ist öffentlich dokumentiert. Aber für eine Punkt zu Punkt Verbindung würde ich eher eine einfache TCP connection in openDTU einbauen. Bzw nein, meinen mosquitto nutzen. Das MQTT ist so praktisch einfach und gut, da braucht man einfach einen (kleinen) Rechner als Broker. Und auf dem Rechner macht die Auswertung und Ablage in DB mehr Spaß. Der Teensy wäre dann ein Client der die Daten schön auf einem Display anzeigen könnte. Aber jeder wie er mag.

https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html

Der Charme liegt in den m:n Verbindungen. Du kannst die Daten nicht nur von openDTU empfangen, sondern z.B. auch von einem Programm das die Daten simuliert. Der Teensy abonniert ein Topic und bekommt die Daten, egal von wem. Eben von jedem der auf dieses Topic schreibt. Und dafür braucht es die Zentrale, den Broker. Damit ist das gut zu debuggen, es gibt universelle Clients die alle oder gewünschte Topics anzeigen, sogar auf dem Smartphone/Tablet.

#7417714

Bei mir läuft mosquitto auf dem zentralen OpenWRT-Router als Broker. Ein Teensy ist Gateway zwischen MQTT und CAN-Bus, dort benutze ich die pubsubclient Bibliothek (von mir leicht aufgebohrt um darüber auch neue Software verteilen zu können).

LG, Sebastian

OP #7417946

moin, danke für die infos. da das mqtt-packet wirklich nicht so wild ausschaut werde ich dann doch einen mini-broker in den teensy progen. daten empfangen auf dem port 1883 geht schon mal. nun muss ich die nur noch zerlegen und meine werte rausholen. der opendtu sendet mir eine status information. hatt wer zufällig einen hm-1500 laufen und kann mir mal zeigen wie der datenaufbau im orginal ist? mein hm-1500 befindet sich noch auf der reise.

#7417958

Die Daten kommen von openDTU, damit musst du kommunizieren. Für den HM gibt es auch einen Simulator, Link ist im openDTU Repo. Wenn man keinen Broker nutzen möchte kann man ja das nRF Modul auch direkt an den Teensy hängen. Im openDTU Quellcode kann man ja auch die Topics sehen über die kommuniziert wird, das kann man mit Broker und Testclient auch simulieren.

OP #7418080

von dem opendtu kommen folgende daten: MQTT>| :MQTT214__OpenDTU-9635288_solar/dtu/status_offline___ 10 3A 5F 4 4D 51 54 54 4 D6 5F F 5F F 4F 70 65 6E 44 54 55 2D 39 36 33 35 32 38 38 5F 10 73 6F 6C 61 72 2F 64 74 75 2F 73 74 61 74 75 73 5F 7 6F 66 66 6C 69 6E 65 5F 5F 5F 5F |<MQTT weiss irgend wer wie das bei einem vorhandenem hm-1500 ausschaut? das zu zerlegen ist ja kein problem.

die 5F sind 0x00 und die 214 hinter "MQTT" sind in dezimal dargestellt.

OP #7419477

mal ein kleiner zwischen bericht: die openDTU sendet an meinen teensy ihre mqtt-sachen. verbndung zwischen beiden ist stabil. auswerten der daten recht einfach (es lebe mqtt). der teensy stellt sie im minutentakt als chart und tägliche csv-datei bereit. nun fehlt nur noch der hm-1500.

OP #7424574

moin, mein HM1500 ist endlich eingetrudelt. ich habe die pv mit einem panel aufgebaut und am laufen. nun hat sich gezeigt das der hm1500 nach sonnenuntergang die verbindung zum dtu kappt und morgens leider nicht von selbst wieder aufbaut. hat da wer erfahrung mit?

OP #7741463

mal ein bericht nach odentlich laufzeit. die pv werkelt munter vor sich hin und hatt bisher c.a. 1,5Mwatt/h geliefert. sie sendet ihre daten per OpenDTU (RaBa64). von hier aus geht es dann mit MQTT weiter. die OenDTU connected und bedient meinen miniMQTT-brocker. das läuft auf einem Teensy4.1. dieser sammelt die ankommen daten und speichert sie tagesweise als csv datei auf der sd-karte. über das http-interface habe nun zugrief darauf und kann die daten mit meinen anderen z.b. der heizung auswerten. der minibroker ist teil meiner wetterdatenerfassung auf dem teensy (temp-sensoren, BME280 u.s.w. ). da ich gern mit diagrammen arbeite ist das csv-format für mich am einfachsten in der nachbearbeitung. der aufbau der dateinamen besteht aus jahr,monat,tag also 20240921.csv. so kann man sie leichter sortiert anzeigen lassen. die daten werden einmal pro minute erfasst und im stundentakt abgespeichert ( zu verlängerung der lebenszeit der SD). Datum Ertrag Summe Panel1 Panel2 Panel3 Panel4 06:48:01 0 0 0,8 0,6 0,6 0,5 06:49:02 0 0 0,9 0,5 0,6 0,5 06:50:00 0 0 0,9 0,5 0,6 0,5 06:51:05 0 0 0,9 0,4 0,6 0,5 06:52:00 0 0 1 0,4 0,6 0,5 06:53:01 0 0 1 0,4 0,6 0,5 06:54:00 0 0 1 0,4 0,6 0,5 06:55:04 0 0 1 0,4 0,6 0,5 06:56:00 0 0 1,1 0,4 0,6 0,5 06:57:03 0 0 1,1 0,4 0,6 0,5 06:58:00 0 3,7 1,3 0,9 0,9 0,8 06:59:00 0 0 1,2 0,5 0,7 0,6 07:00:00 0 0 1,3 0,5 0,7 0,5 07:01:04 0 0 1,3 0,5 0,7 0,5 07:02:02 0 0 1,4 0,4 0,7 0,5 07:03:08 0 0 1,4 0,4 0,7 0,5 07:04:01 0 0 1,5 0,4 0,7 0,5 07:05:04 0 0 1,6 0,4 0,7 0,5 07:06:03 0 0 1,6 0,3 0,7 0,4 07:07:00 0 0 1,7 0,3 0,7 0,4 07:08:08 0 0 1,8 0,3 0,7 0,4 07:09:01 0 0 1,9 0,3 0,7 0,4 07:10:01 0 0 1,9 0,3 0,7 0,4 07:11:01 0 0 2 0,3 0,7 0,3 07:12:09 0 0 2,1 0,3 0,7 0,3 07:13:05 0 0 2,2 0,3 0,7 0,3 07:14:00 0 8,7 3,5 2,1 1,9 1,7 07:15:08 0 9,2 3,7 2,2 2 1,7 07:16:02 0 9,5 3,8 2,3 2,1 1,8 07:17:00 0 10,1 4 2,4 2,2 1,9 07:18:00 0 11,4 5 2,8 2,3 2 07:19:00 0 12,1 5,3 2,9 2,4 2,1 07:20:01 0 12,6 5,6 3 2,5 2,1 07:21:00 0 13,2 5,9 3,2 2,6 2,2 07:22:00 0 13,7 6,2 3,3 2,7 2,3 07:23:04 0 14,4 6,6 3,4 2,8 2,4 07:24:00 0 15 6,9 3,5 2,9 2,5 07:25:00 0 15,8 7,3 3,8 3 2,6 07:26:00 1 16,5 7,7 3,9 3,1 2,7 07:27:01 1 17,4 8,1 4,1 3,2 2,8 07:28:06 1 18,4 8,7 4,3 3,5 2,9 07:29:00 1 21,1 11,1 4,4 3,7 3,1

alles in allem bin ich recht zufrieden mit meiner lösung. ich habe nun 420 dateien mit je 1440 datenzeile von meiner PV. also reichlich zahlen zum spielen.

hat noch wer was in der art?

Angehängte Dateien:
#7741566

Horst S. schrieb:

temp-sensoren, BME280 u.s.w.

Du weisst aber schon, dass der BME280 bezüglich Temperatur nur ein Schätzeisen ist, er wird im Datenblatt auch nur als "Combined humidity and pressure sensor" bezeichnet.

Auf S. 3 des Datenblattes steht "The integrated temperature sensor has been optimized for lowest noise and highest resolution. Its output is used for temperature compensation of the pressure and humidity sensors and can also be used for estimation of the ambient temperature."

Estimation = Schätzung

Auf S.12 des Datenblattes werden nur "typische" Angaben zu Genauigkeit gemacht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 3 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.