Temp Logger
Output
(http://buendtegaessli.gotdns.ch/current_temp.htm aktuell nicht mehr in Betrieb)
besseres Cockpit ist noch erwünscht.
Zusätzlich wird ein Logfile (CSV) mit Temperatur, Feuchte von den drei Sensoren (Aussen, Küche, Vorlauf) gespeichert.
Beschreibung
Sensoren
es werden folgende Sensoren verwendet: Xiaomi Mijia bluetooth Temperature Humidity Sensor
ist sehr genau dank Sensirion Sensor, hat BLE und läuft lange ab einer AAA Batterie.
Nicht wirklich geeignet für Aussenbereich. (Der erste draussen hielt nur 1.5 Jahre. Das Problem ist, dass bei Regen das Wasser direkt auf den Sensor läuft. Dank einem Loch im Gehäuse fliesst es nun auch wieder ab.)
Mac-Adressen (BLE)
Aussen (Ersatz): | 58:2d:34:30:ae:09 |
Küche: | 4c:65:a8:d2:be:66 |
Vorlauf: | 4c:65:a8:d7:c2:ff |
Aussen (Defekt): | 4c:65:a8:d7:c2:c8 |
Funktion
via Cron-Job liest der Raspi alle 10 Min. die Temperatur von den (erreichbaren) Sensoren. Die Werte werden in ein CSV gespeichert. Die letzte Messung wird in ein HTML-File an der richtigen Stelle eingesetzt und dieses in den Webordner kopiert. Das HTML-File ist via DynDNS erreichbar.
Datenbank
in MySQL Format für DATETIME ist 'YYYY-MM-DD hh:mm:ss.uuuuuu, (die Nachkommastellen der Sekunden (max. Microsekunden) können auch weggelassen werden.
(TIMESTAMP wäre auch möglich, der wird aber in UTC umgerechnet. Könnte interessant sein, für die Sommerzeitumstellung. Vielleicht später mal anschauen.)
Installation
auf Raspberry gemäss folgender Anleitung: https://zsitko.com/xiaomi-mijia-hygrothermo-v2-sensor-data-on-raspberry-pi/
benötigt:
- bluepy
- python3
- python3-pip
- libglib2.0-dev
- https://github.com/ratcashdev/mitemp.git
- https://github.com/ChristianKuehnel/btlewrap.git
Publikation mit Thingspeak
es braucht dazu die Thingspeak Library. Einfach installiert mit:sudo pip install thingspeak
dann können im Script z.B. mittels\\/usr/local/bin/thingspeak --api-key=________________ -r=0 "$channel" 3 "$Temp" 4 "$Humidity" > /dev/null 2>&1
die Daten an die Thingspeak Datenbank geschickt werden. api-key und channel müssen seine eigenen sein.
Beispiel falls in Betrieb: Bündtegässli
Probleme
negative Temperaturen
negative Werte scheinen nicht zuverlässig angezeigt zu werden.
aktueller Versuch als Gegenmassnahme: im mitemp_bt_poller.py auf Zeile 109 read_cached auf False gesetzt. Falls das wirksam ist, müsste das bei einem neuen clonene des Repos noch eingefügt werden.