Per Mosquitto erhaltene Daten in SQL-Datenbank speichern

FatManStanding

Lieutenant
Registriert
Aug. 2021
Beiträge
669
Hi,

mein Raspberry Pi bekommt per Mosquitto (MQTT) Daten von einem ESP32-Board (Temperatur+Luftfeuchte). Das geht soweit ganz gut. Ich suche eine Möglichkeit das ganze in eien sqlite-Datenbank zu schreiben. Bisher fällt mir nur spontan ein ein Shell-Script in Endlosschleife laufen zu lassen in etwas so:

Code:
mosquitto_sub -d -t esp32/bme280/humidity -t esp32/bme280/temperature -u user -P password | while read line; do \
if [[ "$line" =~ ^[0-9][0-9]\.[0-9][0-9]$ ]]; then
 echo $line;
fi
done

('if' ist hie rnötig um die "anderen" Ausgaben auszufiltern)

Das ganze dann statt mit echo auszugeben halt in die Datenbank schreiben. Geht das auch souveräner. Bietet Mosquitto da vielleicht eine eingebaute Möglichkeit? Ich habe ein paar Python-Scripte gefunden, da ich kein Python kann wusste ich nicht was die konkret machen.
 
Das hängt von Deinen persönlichen Vorstellungen ab. Du kannst ein Pythonprogramm schreiben oder NodeRed benutzen oder …
 
  • Gefällt mir
Reaktionen: schwimmcoder und GTrash81
Läuft da wirklich nur der ESP sowie Mosquitto? Weil bei zum Beispiel Homeassistent schreibt dieser selbst die Werte in die Datenbank rein.
 
  • Gefällt mir
Reaktionen: schwimmcoder, Der Lord und Cokocool
Wie wäre es damit den Sensor in Home Assistent einzubinden ?
 
Mosqitto ist ein reiner MQTT-Server, der darüber die Daten bereit stellt.
Was du natürlich machen kannst, ein kleines Script schreiben, was dann jedes Mal, wenn es Daten von MQTT-Broker empfängt, dann die Daten in eine Datenbank schreibt. Das klappt über Subscriptions in MQTT ganz gut.
Biliotheken für MQTT und SQL gibts genug für viele Sprachen, da kannst dir unter den beliebtesten quasi eine ausschen, Python als Beispiel mit pah_mqtt und sqlite als Package.

Wenn du HomeAssistant nutzt, kannst du den Broker direkt damit verbinden und in die Datenban von HomeAssistant schreiben lassen.
 
  • Gefällt mir
Reaktionen: Jawohl
"standard" und sehr einfach wäre wohl Node-RED, wenn man es "selber machen" möchte.
aber es gibt natürlich viele Methoden, abgesehen davon, dass es dafür "extra" Datenbanken ala Influx oder timescale gibt.
tatsächlich bringt HomeAssistant alles (zumindest über AddOn) dafür in einem sehr handlichen "Paket" (oder Framework) mit: MQTT Broker, Node-RED (z.B. für "Umrechnungen"), Influx Database bis hin zu Grafana für die graphische Aufbereitung.
ein Pi4 reicht dafür locker, ein 3er könnte knapp werden.
 
Zurück
Oben