DS18B20 Datenlogger mit Raspberry Pi und Grafana

ds18b20-datalogger 0.0.3 hat nun eine Konfigurationsmöglichkeit per YAML Datei bekommen. So wird endlich ein Schuh draus.

@mois: Als Beispiel, bzw. Schnellstarthilfe, findest Du Dein Setup reflektiert in etc/mois.yaml. Der Code selbst, in core.py, ist nun ganz schmal und kompakt geworden, da er nun nicht mehr die Sensordefinition beherbergen muss.

Jetzt müsste diese Version auf Korrektheit und Vollständigkeit überprüft werden, am besten entlang der aktuellen Dokumentation. Vielleicht kannst Du das übernehmen, da Du die entsprechende Hardware auf dem Tisch oder im Wohnzimmer hast, @mois?

2 Likes

toll!

ja, voraussichtlich morgen abend.

1 Like

erster testlauf:

installation einfach so per pip install klappt natürlich erstmal nicht.

aber entlang des walkthrough sandbox klappts dann:

erstellung der config-datei :white_check_mark:
(anpassung mit eigenen werten (mqtt-connection, sensor-ids) nicht vergessen!!)

testausgabe aufs terminal :white_check_mark:

testausgabe in die datenbank :white_check_mark:

erstellung des dashboard.json :grey_exclamation:
wenn ich das dashboard.json in grafana importiere und speichern will, bekomme ich eine fehlermeldung, weil die UID schon existiert:

es gibt sogar einen überschreiben-button :bangbang:
die uid sollte also besser dynamisch pseudozufällig generiert werden beim auspielen der dashboard.json per
ds18b20-datalogger make-dashboard > dashboard.json
hab das zur bearbeitung in ein issue gepackt.
edit: lösbar, indem wir einfach die zeile in dashboard.json weglassen, in der die uid übermittelt wird. grafana erstellt dann eine neue und einmalige uid beim ersten speichern des dashboards.

test der anleitung “production setup” folgt.

2 Likes

Vielen Dank für Deine Eingaben und Verbesserungsvorschläge.

Sie wurden hiermit allesamt adressiert.

Die Ergebnisse wurden mit Version 0.0.4 gerade eben veröffentlicht.

1 Like

sudo su - :white_check_mark:
python3 -m venv /opt/ds18b20-datalogger :white_check_mark:
/opt/ds18b20-datalogger/bin/pip install ds18b20-datalogger :white_check_mark:
:warning:
~# /opt/ds18b20-datalogger/bin/ds18b20-datalogger make-config > /etc/ds18b20-datalogger/config.yaml :x: -bash: /etc/ds18b20-datalogger/config.yaml: No such file or directory

also:
mkdir /etc/ds18b20-datalogger
und nochmal ds18b20-datalogger make-config :white_check_mark:
:grey_exclamation: config.yaml ist nur eine vorlage: anpassen der MQTT-infos und der sensor ids bzw. device-pfade nicht vergessen. :grey_exclamation:

und weiter:
/opt/ds18b20-datalogger/bin/ds18b20-datalogger read /etc/ds18b20-datalogger/config.yaml :white_check_mark:

/etc/cron.d/ds18b20-datalogger :white_check_mark:

und per services:

sieht auch gut aus und die werte sind zu sehen in grafana :white_check_mark:

1 Like

Alles klar. Gefixt per Fix documentation about production use: Missing statement about `mkdir` · hiveeyes/ds18b20-datalogger@70742b7 · GitHub. Bitte noch einmal auf »reboot safeness« überprüfen, wegen der Systemd Geschichte.

hmm.
die pixmap scheint broken mit den werten aus dem service. eigentlich sollten alle kacheln so etwa 20° anzeigen.

aber:

Schade. Kriegen wir einen vorher/nachher Vergleich hin? Die ausgelesenen Daten kannst Du per ds18b20-datalogger read prüfen. Das was Du da siehst, müsste das gleiche sein, das auch aufs Telemetriekabel geht.

bringt uns der weiter? die daten kommen doch gut an, wie das panel mit den einzelmesspunkten zeigt.

hier der vorher-screenshot. sobald messreihen von vorher mit in der auswahl sind, stimmts wieder.

was hat sich da geändert, dass es das pixmap-panel zerhagelt?

Wenn dort ebenfalls nur Leerstellen zu sehen sind – führt dies denn dann zur Anzeige von 0°C in der Grafana Pixmap? – vielleicht ist der Abstand zwischen “modprobe” und “Auslesen” zu kurz, oder “modprobe” sollte besser gar nicht vom Programm ausgeführt werden?

Wahrscheinlich ist es aber noch etwas anderes. Wenn Du nichts signifikantes herausfinden kannst, müsste ich wohl mal bei Dir auf die Maschine – oder nochmal scharf auf den Code schauen.

Na dann… Was ist dann krumm? Kam die Messung vielleicht nur ein einziges Mal falsch an, z.B. beim erstmaligen Start? Bitte prüfen! Und:

bindestrich vs. unterstriche in den temperatur-variablen-namen.

früher hatte ich nur bindestriche: temp-ir-4-1
jetzt heißt er temp_ir_4_1.

ist der wechsel auf die untersriche zwingend? wenn ja, dann ändere ich das eben im pixmap-panel und dann ist das nicht rückwärtskompatibel.
wenn nein, dann wären mir bindesriche lieber.

Ah. Habe ich da was umbenannt? Das tut mir leid! Hießen die vorher temp_ir_2_4? Aber im Grafana Dashboard stehen sie ja auch so drin mit Bindestrichen: temp-ir-2-4? Bei Dir noch anders?

ja, so hießen sie früher.

/opt/ds18b20-datalogger/bin/pip install ds18b20-datalogger --upgrade :white_check_mark:

muss ich den service neu starten?
(den timer ja nicht, oder?)

Ich steh auf dem Schlauch.

So sehen die Feldnamen in der allerersten Version aus:

Und so sehen in der jüngsten Version 0.0.4 aus:

Das sieht für mich ziemlich identisch aus.

Vielleicht stimmt doch etwas an den Werten nicht. Produziert ds18b20-datalogger run denn eine annehmbare Ausgabe? So musst Du nicht immer fünf Minuten auf Ergebnisse warten, bzw. weißt andersrum, dass es am Grafana liegen muss, wenn run valide Ergebnisse ausgibt?

0.0.4 läuft seit ein paar sekunden erst hier. mal sehen obs das bringt.

Eigentlich “läuft” der Service nicht, denn es ist ja kein Daemon, sondern wird nur ganz normal als Programm alle fünf Minuten vom Timer gestartet. Daher: Normalerweise schon, in unserem Falle nicht. Hier ist das “service unit” File also nur ein Vehikel, um einen Timer drauf legen zu können.

1 Like

ich selbst hab das zerschrotet. irgendwie in der lokal zugrunde liegenden config.yaml
und erst jetzt gemerkt, wo das eine weile läuft. keine ahnung warum ich da inkonsistent wurde.

ist berichtigt. jetzt wirds spannend.

1 Like

sieht gut aus.

jetzt teste ich die neuen offsets.
zuerst mit 3-5. der liegt mit 17°C deutlich zu niedrig. habe gegengesteuert mit

  - path: /sys/bus/w1/devices/28-450ed4430afe
    name: temp-ir-3-5
    offset: 3

auch mit werten wie -0.5 :white_check_mark:

1 Like