Zwei Ideen kamen hier bei mir endlich zu einer Umsetzung:
- lässt sich so eine hübsche 2D-Darstellung der Situation in der Heiztraube nicht auch mit einer Menge einzelner Temperatursensoren realisieren?
- Wenn ich im Winter eh Dämmmaterial auf die Bienenkiste packe, dann kann ich per in die Dämmung gearbeiteter Temperatursensoren auch gleich die Wanderschaft der Heiztraube aufzeichnen.
(Bisher gabs hier den Ansatz eines Temperatur-Arrays in den Wabengassen - das ist bei eher vertikalen Beuten sicher sinnvoll. Die Bienenkiste hingegen ist so flach, dass ich testen möchte, ob nicht eine Temperaturmatrix von oben aufgelegt ähnlich tolle Einblicke ermöglicht.)
Die Hardware ist ziemlich weich, Filzmatten-basiert nämlich. So sieht das aus mit den Sensoren am One-Wire:
Hier mein kleiner Bastelbericht:
Zum Einsatz gebracht habe ich die blauen Verbinder wie von @poesel entdeckt (in dem Thread sind auch noch eine Menge anderer Möglichkeiten zum Thema Kabelabzweigungen diskutiert - lohnt sich im Ganzen!).
Bei Zimmertemperatur (in einem kühlen Raum war die Umhüllung der Litzen zu hart und hat den Klippern der Verbinder standgehalten) und bei zu den Klippern passenden Kabeldurchmessern verarbeiten sich die Dinger ganz gut:
Ein frisch mit dem rpi-imager aufgesetzter Raspi will für 1wire ausdrücklich klargemacht werden. Hilfreich war da ein externes Rezept. Auch den ursprünglichen Python-Code zur Datenerhebung auf dem Pi hab ich von dort, allerdings aus einem Kommentar.
Danach mussten die Sensordaten gemapped und geordnet werden, das hat @clemens vorbildlich in eine Anleitung gepackt:
Pi zum Datenversand vorbereiten
paho-mqtt in einer virtualenv hat gefehlt: paho-mqtt · PyPI
dann ssh zum pi, dort
source paho-mqtt/bin/activate
cd ~/temp-matrix
python test.py
Für den mqtt-Daten-Upload nach Hiveeyes hab ich mich am Beispiel von @mde orientiert:
Die Namenskonvention der Daten im Array ist identisch mit der von clemens:
matrix = [[temp_ir_1_1, temp_ir_1_2, temp_ir_1_3, temp_ir_1_4, temp_ir_1_5], \ [temp_ir_2_1, temp_ir_2_2, temp_ir_2_3, temp_ir_2_4, temp_ir_2_5], \ [temp_ir_3_1, temp_ir_3_2, temp_ir_3_3, temp_ir_3_4, temp_ir_3_5], \ [temp_ir_4_1, temp_ir_4_2, temp_ir_4_3, temp_ir_4_4, temp_ir_4_5]]
Dadurch konnte ich im nächsten Schritt die Grafana-Panels von @wtf sehr einfach übernehmen und anpassen. Die Panels (svg, js) musste ich auf mein 4x5-format reduzieren (prozentzahlen, adressierung der array-variablen) und von quadratischer auf rechteckige Darstellung umbiegen, um der tatsächlichen Form des Filzmattensensors gerecht zu werden.
Das Skript temp-matrix-anon.py (5,4 KB) läuft viertelstündlich per cron auf dem Pi und noch hier zuhause im Testbetrieb (beachte cron&virtualenv).
Vielen Dank für die vielen tollen Vorarbeiten, auf die ich hier zurückgreifen konnte!
Stand und Ausblick
Derzeit tut sich wenig auf der Heatmap im Labor, weil ich dafür ja extra irgendwelche temperaturdiversen Oberflächen herstellen muss, damit sich was tut.
Bin gespannt wie das, sobald alles gelötet ist, auf der Bienenkiste aussieht: Ob die Filzeinfassung der Sensoren ausreichend die Zugluft im Freien abschirmt und ob die Heiztraube durch das Holz eine ausreichende Temperatursignatur abliefert.
Offene Frage(n)
- Wie kann ich den js-code im svg-Panel so anpassen, dass die Farbgebung nicht absolut an Temperaturwerte gebunden ist, sondern sich relativ über die tatsächlich gemessene Spanne der Temparaturwerter verteilt. So ließen sich viel kleinere Temperaturdifferenzen auffällig abbilden. Damit würde ich gerne experimentieren in der Visualisierung, verstehe aber den Code nicht ausreichend. (Und im Grunde ist das kein Thema für hier, sondern gehört ins ursprüngliche 2D-Visualisierungsthema.)
todo
-
Kabelverbinder an die Füßchen der DS18B20 anlöten. - Offset der Sensoren ermitteln, Temperatursensoren justieren / kalibrieren - #2
appendix
how to delete sensor failure entries from database
root@elbanco:~# influx
Connected to http://localhost:8086 version 1.7.10
InfluxDB shell version: 1.7.10
> use hiveeyes_....
Using database hiveeyes_....
> show series
key
---
mois_noho_sensors
...
> SHOW FIELD KEYS FROM mois_noho_sensors
name: mois_noho_sensors
fieldKey fieldType
-------- ---------
temp-ir-1-1 float
temp-ir-1-2 float
temp-ir-1-3 float
...
temp-ir-4-5 float
> select "temp-ir-1-2" from mois_noho_sensors where "temp-ir-1-2" < -50
name: mois_noho_sensors
time temp-ir-1-2
---- -----------
1699396254643410035 -99
> delete from mois_noho_sensors where time = 1699396254643410035
> exit
root@elbanco:~# exit
logout
Connection to elbanco.hiveeyes.org closed.