MQTT broker auf Teensy4

#7417438
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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.

#7417946
Lesenswert?

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
Lesenswert?

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.

#7418080
Lesenswert?

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.

#7419477
Lesenswert?

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.

#7741463
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren