Moin,
wie heute auf dem Ostertreffen besprochen, werden wir hier mal das Modul für die MiFlora Pflanzensensoren testen und entwickeln.
Für alle Interessieren hier mal ein paar Links zu den Sensoren.
Allgemeine Informationen
https://www.china-gadgets.de/xiaomi-mi-pflanzensensor/#
Code unter Python zum auslesen eines Sensors
https://github.com/open-homeautomation/miflora
Protokoll Reverse Engineered
https://www.open-homeautomation.com/2016/08/23/reverse-engineering-the-mi-plant-sensor/
Kronos würde diese evtl. im größeren Stil organisieren. Mehr dazu, dann später von ihm.
Ziel wird sein, auf einem Raspberry PI einen Dienst zu installieren, der die in seinem Umkreis detektierten Sensoren inkl. deren Messwerte an IPS schickt. Dort wird ein Modul die Daten empfangen, und automatisch entsprechende Kategorien für die entsprechende Pflanze erstellen.
Soweit erstmal als Start.
Hier nun die Anleitung für das Modul
https://github.com/Spoosie/KH_MiFlora.git
Das Modul entsprechend hinzufügen.
Zu allererst muss allerdings die Datenquelle vorbereitet werden. Dazu brauchen wir einen oder mehrere PIs (bessere Abdeckung) auf denen die unter /docs/README.txt aufgeführten Kommandos ausgeführt werden. Am besten ihr zieht euch das aktuellste Jessie und führt dann die ganzen Dinge aus, wie sie dort stehen. Das Skript GetMiFloras.py benötigt ihr nicht unbedingt, da es direkt per wget runter geladen wird.
Ich persönlich führte Skript alle 10 Minuten aus, und habe damit noch keine schnelle Entladung der Batterien feststellen können.
Wenn ihr mehrere Raspis, für eine anständige Abdeckung im Einsatz habt, sollte man die Cronjobs ein wenig zeitlich verteilen, damit nicht alle gleichzeitig auf die Sensoren zugreifen. Ein Abstand von einer Minute funktioniert bei mir mit 2 PIs wunderbar.
Sobald ihr das Skript fehlerfrei am laufen habt, und dieses per
IP/plants.log
aufrufbar ist, sind wir schon einen großen Schritt weiter.
Nun gilt es das Modul in IPS aufzusetzen. Hierfür eine Instanz entsprechend irgendwo in eurem IPS Baum installieren.
In der Konfiguration müssen nun der eine oder die verschiedenen Hub IP Adressen der Raspis eingetragen werden. Es kann ein Name vergeben (Beispiel oben/unten) unter dem später die Sensoren und ihre Erreichbarkeit dargestellt werden.
In der Listendarstellung kann (sobald die ersten Datensätze eingelesen wurden) jeder Sensor zugeordnet werden. Sprich einen Namen vergeben und ein Bild aus der Mediathek zuführen.
Intervall: Zeitraum in dem die Hubs abgefragt werden sollen. Hier empfiehlt es sich einen ähnlichen Intervall zu nehmen, wie unter den Cronjobs vorgegeben wurde. Alle 10 Minuten oder so.
Variablen automatisch loggen: Aktiviert bei allen Variablen die angelegt werden, und wo es sinnvoll ist, das Logging der gleichen. Dies wird aktiviert so lange die Checkbox gesetzt ist. Abschalten geht hier nicht!
MIN/MAX Auswertung: Für die 4 Sensorwerte (Feuchte/Leitfähigkeit/Temperatur/Helligkeit) werden extra Variablen angelegt, die eine Überwachung dieser ermöglichen. Es kommen MIN/MAX Variablen hinzu, die zum einen im Graphen genutzt werden können, als auch für eine entsprechende Hinweismeldung.
Erzeuge einen vorlesbaren Text: Es werden Variablen angelegt, die einen Text enthalten und entsprechend vorgelesen werden können. (Dies ist noch nicht richtig getestet, ob das so richtig nutzbar ist - bitte Feedback!)
Debug: Ausgabelevel der Meldungen der Instanz
Button - Hole aktuelle Daten: Holt von allen Hubs die aktuellen Daten und legt diese außerhalb des Intervalls an.
Es dürften alle Variablenprofile automatisch angelegt werden, und entsprechende Skripte für weitere notwendige Funktionen.
So, und nun viel Spass beim ausprobieren. Sofern ihr Sensoren habt.
Hier noch ein paar Bilder aus dem Webfront als Konfigurationsvorschlag, und dem Modul bzw. dem Baum.