Inhaltsverzeichnis
Heim-Automatisierung
Ich bastele gerne mit Computern, Linux und Elektronik. Viele Teile sammelten sich mit der Zeit an. Als dann der erste Raspberry Pi bei mir ankam, sollten mehrere Dinge damit gelöst werden. Alles anschliessen, was ich so hatte und irgendwie nützlich sein. Was tut er jetzt hauptsächlich?
Manchmal nichts! Und das ist ja sowas von frustrierend. Da macht man einen Besuch bei seinen Eltern 400km entfernt und hofft, alles läuft zu Hause wie geschmiert, und dann steigen plötzlich nachts um 3 Uhr die beiden Raspberry-Pis aus, der Rolladen ist schon am Tag vorher nicht mehr hoch gefahren, die Batterien in der Pflanzenüberwachung und beim Aussenthermometer sind leer und nach einem entfernten Neustart der FritzBox komme ich nicht mehr in mein Heimnetz *jammer* (Weihnachten / Neujahr 2020/2021)
Inzwischen bin ich fast schon abhängig. Wenn meine Haus-Automatisierung mal nicht geht, fehlt mir was.
Ohne Internet-Verbindung
- Tonausgabe mittels Bluetooth
- Sprachausgabe in hoher Qualität in Deutsch über den Befehl 'say' in OS X.
- Anwesenheitserkennung über Bewegungsmelder und Geräte-Erkennung.
- Lichsteuerung mittels Funk - mit Steckdosen Schaltern und Licht Schaltern fängt man an
- iTunes-Steuerung
- Anzeige diverser Daten auf LCD-Anzeige
- Steuerung von Licht, Licht-Schaltern und Informationsausgabe mittels Infrarot
-
- Wetter - Modul und Aktion von der Webseite
- Wie bitte? - Modul und Aktion von der Webseite
- Licht - Modul ohne Aktionen von der Webseite, weiter ausgebaut
- Wohnung - aus 'Licht' selbst entwickeltes Modul
- Befehle - Was ich hier Snips befehlen kann und die Reaktion
- Ich gehe... - selbst entwickeltes Modul
- Luftbefeuchter schalten
- ambi-light am iMac
- Datenbank für späteres Maschinelles Lernen (ML)
- Rolladen,
aktuell nur mit Fernbedienung - Schlafüberwachung mittels Infrarot-Cam, die Kamera am Raspberry Pi Zero
Mit Internet-Verbindung
- RSS-News Feed vorlesen
- Wetter vorlesen
- Unwetterwarnungen
- Standortermittlung über WLAN - aktuell nicht mehr
Kommunikation intern
- MQTT - Rollo, Pflanzen, Sprachausgabe -retained messages
- mysql - so ziemlich alles
- bluetooth - Pflanzen, Anwesenheit
- wlan - Pflanzen, Bewässerung, Luftbefeuchter
- dateibasiert - IPC
- funk - Rollo, Steckdosen
Batterie / Akku / Powerbank / Netzteil
Die Raspberry Pi's und die Steuerung für die Luftfeuchtigkeit laufen mit Netzteilen; der Rollandenmotor mit seinem eingebauten Akku; eine Pflanzenüberwachung sowie die inzwischen 4 Fenster-Sensoren und der Türsensor mit den eingebauten CR2032 Knopfbatterien.
Der Außensensor läuft mit einer TR18650 Lithium Zelle. Die hat leider das Problem, dass sie dauern leer ist, obwohl ich den ESP01 schon mit diversen Tricks zum Stromsparen gezwungen habe. WiFi braucht halt immer Energie.
Der zweite Pflanzensensor und die Wasserpumpe laufen bisher mit kleinen Lithium-Zellen, die ich für meine Indoor Hubschrauber nutze - sollte ich denn mal wieder fliegen. So haben sie weiter Nutzen. Aber auch dort ist das Problem, dass ich sie Wochenweise(?) wechseln muss.
Das Betreiben mit meiner PowerBank ist ein Problem - sie schaltet nach 10-20 Sekunden ab, wenn weniger als 50mA gezogen wird. Bei der Pflanze (Überwachung und Pumpe) sind es unter 10 mA. Also habe ich jetzt einfach meinen Raspberry Zero mit dran gehängt - für den ich mir noch eine Aufgabe überlegen muss.
PowerBank >10.000mAh sollten dann *Taschenrechner auspack* waaaas - nur 100 Stunden = 4 Tage halten?
Also doch so schnell wie möglich die Alternative:
Alternativ gibt es hier eine Schaltung mit einem IC555, drei Wiederständen und zwei Kondensatoren, die alle paar Sekunden einen kurzen Strom von 160mA zieht (was sich ind er Stunde so auf 10mA mittels). Damit wird verhindert, dass die PowerBank abschaltet. Werde ich mal ausprobieren.. (Stand 12/2020)
Ansonsten erinnert mich meine Hausüberwachung alle x-Tage ans laden des Rolladen-Akkus; merkt, wenn der Pflanzensensor oder der Aussensensor keine Daten mehr liefert und erinnert mich.
Auch die Wassermenge im Luftbefeuchter wird indirekt über die Betriebsdauer ermittelt und mir freundlich das Auffüllen angeraten.
Status Anzeigen/Berechnen
Status meiner Wohnung und Abhängigkeiten
Aktuell am wichtigsten:
Küchenpflanze Batterie
———————-
Messungen: Warnung bei Spannung< xV habe ich schon.
→Falls nach x-Minuten keine Messung aufgetaucht ist, ist er auf jeden Fall alle oder Netzprobleme.
Datenbank Select siehe unten.
→Voraussichtliche Haltbarkeit berechnen
Suche vor heute, den letzten höchsten Wert. Da wurde die Batterie gewechselt;Anzahl der Werte dazwischen;Interpolieren bis 3.800
Küchenpflanze Bewässerung
————————-
Füllstand muss erfasst werden, dann über Anzahl der Aufrufe Füllstand berechnen
Ladestatus nicht ermittelbar → Wechsel notieren; Anzahl Aufrufe seit letztem Wechsel
Wenn Pflanze trocken und nicht bewässert wird→entweder Batterie alle oder Wasser
→Falls nach x-Minuten keine Messung aufgetaucht ist, ist er auf jeden Fall alle oder Netzprobleme.
Datenbank Select siehe unten.
Ladestatus:
http://raspberrypi.fritz.box/b.php
- miband
- rollo - (DB status sensor=rollo)
- befeuchter - (DB status ein/aus rollo, habe ich aber schon berechnet)
Zeitdifferenz der letzten beiden Messungen an den Pflanzen
Wenn die Zeitdifferenz zu groß ist, ist die Batterie möglicherweise leer.
drop table if exists p1; CREATE TABLE p1 SELECT * FROM pflanzen where sensor = 'lilygo' order by datum desc limit 2; insert into p1 select * from pflanzen where sensor = 'Flower care' order by datum desc limit 2; SELECT t1.sensor,t1.datum,t2.datum last, ifnull(t1.datum-t2.datum,-1) as diff, NOW()-t1.datum jetzt FROM p1 t1 join p1 t2 on t2.datum = ( select max(datum) datum from p1 t3 where t3.datum < t1.datum and t3.sensor=t1.sensor );
sensor | datum | last | diff | jetzt |
---|---|---|---|---|
lilygo | 2020-07-23 09:55:47 | 2020-07-23 08:56:02 | 9945.000000 | 8981.000000 |
Flower care | 2020-07-23 09:30:14 | 2020-07-23 07:30:09 | 20005.000000 | 11514.000000 |
Solange 'jetzt' nicht viel größer als 'diff' ist, läuft es wohl noch (bei regelmäßigen Updates).
Braucht die Pflanze länger Wasser ist entweder Wasser leer oder Akku alle
SELECT date_format(datum,'%Y-%m-%d') datum, count(date_format(datum,'%Y-%m-%d')) anzahl, max(datum) letzterEintrag FROM `pflanzen` where sensor='lilygo' and salt < 25 group by date_format(datum,'%Y-%m-%d') ORDER BY `datum` DESC limit 1
datum | anzahl | letzterEintrag |
---|---|---|
2020-07-23 | 1 | 2020-07-23 11:55:05 |
Wenn die Anzahl mehr als 2-3 ist, dann mal schauen. Wenn das Datum nicht von heute ist, kein Problem aber es könnte auch der Akku der Überwachung alle sein. Da sollte man dann mit dem letzterEintrag vergleichen. ~~DISCUSSION~~