MiFlora Modul

Hallo Matthias,

vielen Dank.

Nach der Anpassung der GetMiFloras.py funktioniert es wieder .

Grüße

Moin, bin immer noch interessiert, von den Sensoren einen Schwung zu erwerben. In meiner Heimatstadt bekomme ich die nicht durch den Zoll :banghead:

Kann jemand helfen ?

Grüße,
Tom

Moin, bin immer noch interessiert, von den Sensoren einen Schwung zu erwerben.
Ich habe sie durch googeln unter dem Namen FlowerCare entdeckt.

lg, sigi

Servus Spoosie,

vielen Dank für Deine sehr exakte Beschreibung! Habe diese Sensoren schon länger, aber immer mit der dazugehörigen App in Verwendung. Da ja bald Urlaubszeit über uns hereinbricht, ist natürlich automatische Bewässerung angesagt. Als Steuerung eben die FlowerCare Sensoren (ich kenne sie unter diesem Namen) die mir dann die Pümpchen für die Bewässerung steuern sollen. So weit so gut, aber…

Ich habe es geschafft einen nagelneuen Raspberry Pi 3 Model B+ (daher stretch version, jellie läuft darauf nicht mehr) nach fünf Minuten zu crashen. Bitte entschuldigt den Stil, ist nur ein Auszug meiner Mitschrift:

####################################################################
MiFlora Modul

–> GitHub - Spoosie/KH_MiFlora: IP-Symcon Modul für MiFlora Sensoren
–> KH_MiFlora/README.txt at master · Spoosie/KH_MiFlora · GitHub

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.

sudo su
apt-get update
cd /home/pi
git clone https://github.com/open-homeautomation/miflora.git
cd miflora
wget https://raw.githubusercontent.com/Spoosie/KH_MiFlora/master/docs/GetMiFloras.py
apt-get install python3 libglib2.0-dev libbluetooth-dev python3-pip apache2 libboost-python-dev libboost-thread-dev
pip3 install gattlib

Genau da ist Pi hängengeblieben, es half nur noch Stecker ziehen.
Nach Neustart nochmals

pip3 install gattlib

Nach ewig langem Warten kam dann die Fehlermeldung

error: command 'arm-linux-gnueabihf-g++' failed with exit status 1

Damit habe ich gerechnet… Aber die ist hier beschrieben:

MiFlora Modul - Seite 21
Somit:

pip download gattlib
tar xvzf ./gattlib-0.20150805.tar.gz
cd gattlib-0.20150805/
sed -ie 's/boost_python-py34/boost_python-py35/' setup.py
pip install .

wieder Absturz, wieder Stecker gezogen.
Nach Neustart zuerst die neue Library geladen (wie im post post339797 beschrieben):

wget https://raw.githubusercontent.com/micbuh/KH_MiFlora/master/docs/GetMiFloras.py

und dann nochmals

cd gattlib-0.20150805/
sed -ie 's/boost_python-py34/boost_python-py35/' setup.py
pip install .

versucht.

Nach 6 Stunden ununterbrochen grüne ACT-LED leuchtend, wieder Stecker gezogen.

Tja, und jetzt die übliche Frage, was mache ich falsch?

Danke für Eure Unterstützung! :smiley:

Vermutlich nichts, die aktuellen Treiber scheinen relativ instabil zu sein.

Bei mir läuft ein aktuelles Raspbian Stretch Lite 4.14.39+ #1112, ich reboote jede Nacht und trotzdem hängt sich der PIzero häufig nach ein paar Stunden auf und schafft es nicht mal bis zum nächsten Reboot :(.

Auch der Empfang der Sensoren im PI ist deutlich schlechter geworden. Aktuell sieht der PI immer nur ein paar Sensoren, somit teilweise über mehrere Zyklen (cron 10 Minuten) nicht alle Sensoren und Werteabstände teilweise von mehreren Stunden.

Mein Android Tablet sieht alle Sensoren bei einem Scan nahezu sofort.

Hi,
hatte es mit dem Zero W damals aufgegeben, würde das aber jetzt gerne wieder angehen. Was ist mit Swap Space im filesystem aktivieren gemeint? Was muss ich tun?

Danke für die Antwort, habe inzwischen herausgefunden, was der Fehler war: auf der Stretch Version muss alles mit Python3, also auch mit pip3, installiert sein. Hier zusammengefasst was alles zu tun ist, damit die Sensoren auch mit einem Stretch-Rasperry PI3 funktionieren. Vielleicht ist das ja für Anfänger wie mich hilfreich. Zwar war es sehr lehrreich die benötigten code-schnipsel aus allen posts hier herauszusuchen und dann in der richtigen Reihenfolge zusammenzusetzen, aber auch mühsam, da mir das entsprechende Grundwissen dazu fehlt.

Bevor es los geht, muss IP-Symcon 4.4 auf dem Raspberry installiert werden, gemäß
Installation — IP-Symcon :: Automatisierungssoftware
Wird im Raspberry z.B: eine 32 oder 64 GB microSD-Karte eingesetzt, gibt’s kein Problem mit dem Speicherplatz, dann ist es also nicht notwendig Swap Space im filesystem zu aktivieren.

Dann folgendes in dieser Reihenfolge eingeben, einige Zeilen benötigen zum Abarbeiten einige Minuten, also ein wenig Geduld:

sudo su
apt-get update
cd /home/pi
git clone https://github.com/open-homeautomation/miflora.git
cd miflora
wget https://raw.githubusercontent.com/micbuh/KH_MiFlora/master/docs/GetMiFloras.py
apt-get install python3 libglib2.0-dev libbluetooth-dev python3-pip apache2 libboost-python-dev libboost-thread-dev
cd ..
pip3 download gattlib
tar xvzf ./gattlib-0.20150805.tar.gz
cd gattlib-0.20150805/
sed -ie 's/boost_python-py34/boost_python-py35/' setup.py
pip3 install .

sudo apt-get install bluetooth bluez-utils blueman
cd ..
pip3 install btlewrap
cd miflora
sudo chmod 777 GetMiFloras.py
cd ..

Hinweis: die letzten drei Zeilen sind nur notwendig, wenn die Datei GetMiFloras.py schreibgeschützt ist, merkt man, wenn sich die Datei nach der folgenden Änderung nicht mehr abspeichern lässt.

Folgende Datei in einem editor öffnen (z.B. Thonny)
/home/pi/miflora/GetMiFloras.py
Zeile 8: from miflora.backends.gatttool import GatttoolBackend
ersetzen durch: from btlewrap import GatttoolBackend

Jetzt ist das Wichtigste geschafft, zum Testen:

sudo python3 /home/pi/miflora/GetMiFloras.py

→ (10:03:11 03-06-2018) Mac=C4:7C:8D:66:00:F5 Name=Flower care Fw=3.1.8 Temp=22.10 Moist=7 Light=1601 Cond=71 Bat=99
→ DONE!
Hinweis: die vorletzte Zeile erscheint natürlich nur, wenn ein Sensor in der Nähe ist und einschalten (also Batterie ist drin und Schutzfolie abgezogen)

hciconfig hci0 reset
crontab -e

→ 2 ausgewählt (/bin/nano)
am Ende hinzufügen:

*/10 * * * * python3 /home/pi/miflora/GetMiFloras.py > /var/www/html/plants.log

Strg+O, Enter, Strg+X
→ crontab: installing new crontab

sudo python3 /home/pi/miflora/GetMiFloras.py

→ DONE!

http://192.168.0.137/plants.log oder /var/www/html/plants.log aufrufen
Datei existiert, drin steht: DONE!
Wenn auch nach oftmaligem „sudo python3 /home/pi/miflora/GetMiFloras.py“ immer nur „DONE!“ angezeigt wird, OHNE z.B.
„(10:03:11 03-06-2018) Mac=C4:7C:8D:66:00:F5 Name=Flower care Fw=3.1.8 Temp=22.10 Moist=7 Light=1601 Cond=71 Bat=99“

sudo hciconfig hci0 down
sudo hciconfig hci0 up
sudo hcitool lescan


LE Scan …
29:07:44:BF:6A:98 (unknown)
C4:7C:8D:66:00:F5 (unknown)
C4:7C:8D:66:00:F5 Flower care

und dann scannt PI halt ewig weiter, aber Flower Care wurde jetzt gefunden.

Jetzt am Windows-PC die IP-Symcon Konsole starten. Nicht vergessen im Startfenster die IP-Adresse vom Raspberry auszuwählen.
Welche ist das? Dazu auf dem PI

hostname -I

eingeben, dann wird die IP vom Raspberry angezeigt.

Dann auf dem Windows-PC:
IP-Symcon Management Konsole → Willkommen → Objektbaum (logische Baumansicht) → Kern Instanzen → doppelklick auf Modules → hinzufügen:

https://github.com/micbuh/KH_MiFlora.git

Sicherstellen, dass unter Objektbaum → Kern Instanzen → Connect (doppelklick), die Verbindung auch hergestellt ist. Wenn nicht, „IP-Symcon Connect (beta)“ aktivieren und auf „Server reaktivieren“ klicken.

Objektbaum:
rechte Maus „IP-Symcon“ (kann natürlich auch ein anderer Standort sein) → Objekt hinzufügen → Instanz hinzufügen
→ Im Schnellfilter „MiFlora“ eingeben (dropdown „- Alle Hersteller -“)
→ den einen Eintrag in der Liste „MiFlora“ auswählen → weiter
→ Name ist vorausgefüllt mit „MiFlora“, icon: Leaf → OK.
→ hinzufügen
→ auf linken Bleistift: IP-vom-Raspberry
→ auf rechten Bleistift: name-des-raspberries
→ Intervall: 600 Sekunden
→ Variablen automatisch loggen: aktiviert
→ Min/Max Auswertung: aktiviert
→ Erzeuge vorlesbaren Text: deaktiviert
→ Übernehmen
→ hole aktuelle Daten: es passiert nix, Liste Sensoren bleibt leer.
→ Komplette IP-Symcon Management Konsole schließen und wieder öffnen

Baumsansicht → IP-Symcon → rechte Maus „MiFlora“ → Objekt öffnen
→ und jetzt steht in der Liste „Sensoren“ der FlowerCare Sensor drin (mit der MAC adresse C4:7C:8D:66:00:F5)

Baumsansicht → IP-Symcon → MiFlora → rechte Maus „C4:7C:8D:66:00:F5 (In Instanz umbenennen!)“ → Objekt umbenennen → „Kaktus“ oder sowas ähnliches eingeben → Enter

MIN/MAX-Werte ändern:
Baumsansicht → IP-Symcon → MiFlora → Kaktus
→ rechte Maus jeweiliger Wert → Variable verändern
→ zuerst leeren, dann neuen Wert eingeben, dann „schreiben“, dann Fenster schließen mit dem Kreuz rechts oben (es gibt keinen schließen-Button)

WebFront:
http://IP-Rasperry:3777

→ auf das Plus → Kategorien → Startkategorie und da dann weiterklicken bis zum Sensor
→ alles super! Alle Werte stehen da, Charts, Warnungen, Hinweise

##########################################################

Wieder auf dem PI:

sudo su
sudo python3 /home/pi/miflora/GetMiFloras.py

falls dort erscheint:

Traceback (most recent call last):
File „/home/pi/miflora/GetMiFloras.py“, line 32, in
devices = service.discover(2)
RuntimeError: Set scan parameters failed (are you root?)

folgendes eingeben:

sudo hciconfig hci0 reset
sudo python3 /home/pi/miflora/GetMiFloras.py

–>
(21:07:02 02-06-2018) Mac=C4:7C:8D:66:00:F5 Name=Flower care Fw=3.1.8 Temp=23.00 Moist=8 Light=1361 Cond=67 Bat=99
DONE!
pi@raspberrypi01:~ $ sudo python3 /home/pi/miflora/GetMiFloras.py
DONE!
pi@raspberrypi01:~ $ sudo python3 /home/pi/miflora/GetMiFloras.py
DONE!
pi@raspberrypi01:~ $ sudo python3 /home/pi/miflora/GetMiFloras.py
(21:10:30 02-06-2018) Mac=C4:7C:8D:66:00:F5 Name=Flower care Fw=3.1.8 Temp=23.10 Moist=8 Light=1344 Cond=67 Bat=99
DONE!
pi@raspberrypi01:~ $ sudo python3 /home/pi/miflora/GetMiFloras.py
(21:28:50 02-06-2018) Mac=C4:7C:8D:66:00:F5 Name=Flower care Fw=3.1.8 Temp=23.20 Moist=8 Light=55 Cond=69 Bat=99
DONE!

Hinweis: wie in den letzten Zeilen ersichtlich, liefert der Sensor nicht jedesmal Werte wenn „sudo python3 /home/pi/miflora/GetMiFloras.py“ aufgerufen wird, einfach ein paar mal hintereinander mit ein wenig Pause dazwischen probieren. Dieses Verhalten ist aber normal. Wie bereits geschrieben, betreibe ich die Sensoren schon seit längerem mit der dazugelieferten App für Android (Samsung Galaxy S7). Da funktioniert der Empfang der Daten auch nicht immer jedesmal. Wenn’s drei, vier Mal hintereinader nicht funktioniert, einige Minuten warten und wieder probieren. Da der PI aber automatisiert alle 10 min Werte abfrägt und die Symcon Konsole anscheinend nur einmal stündlich diese auch auswertet, hat das keinerlei Auswirkung.

Hi,

habe den ZERO wieder am Laufen.

Neben der Aktivierung des SWAP (Hilfe) - ich habe 1000MBYTE eingestellt, musste ich statt gattlibb

 sudo pip3 install pygattlib

installieren.

Mit

sudo service bluetooth status

prüfen ob BT aktiv ist, sonst:

sudo apt-get install pi-bluetooth

Ciao
HerbertF

Das nicht immer alle Sensoren gefunden werden liegt aus meiner Sicht an der zu kurzen Scanzeit.

devices = service.discover(2)

Ich habe bei mir auf 10 (Sekunden) hochgesetzt, seit dem werden fast immer alle Sensoren gefunden. Der gesamte Durchlauf dauert bei mir mit 9 Sensoren ca. 70-90 Sekunden. Über cron lasse ich das Script alle 5 Minuten laufen, damit habe ich fast immer stabile Daten.

Eigentlich sind es bald 16 Monate. Zeit sich mal wieder damit zu beschäftigen.

Bis auf einen laufen alle die ganze Zeit problemlos. Ich habe in der Zwischenzeit 27 Geräte mit einem Pi3 und einem PiZeroW. Die Batterien gehen langsam zur Neige. Einige zeigen schon weniger als 15% an. Die meisten um die 20%, einige sogar 100% was sicherlich nicht stimmt. Der Eine ist ein Totalausfall. Die Dinger vertragen schon mal eine Dusche von oben. Sie dürfen aber nicht zu tief in der Erde stecken. Dann dringt Wasser von unten in das Gerät ein, trotz Dichtung. Mein Gerät war innen total oxidiert und nicht mehr zu retten.
Alles in Allem bin ich sehr zufrieden mit dem MiFloras. Sie melden zuverlässig die fehlende Feuchtigkeit. Denn unteren Alarmwert muss man etwas justieren je nach Topfgrösse. Sogar meine Töpfe mit Seramis werden zuverlässig gemeldet. Da muss aber stark nachjustiert werden.

Nun will ich die Batterien wechseln und gleich neue Firmware aufspielen. Das will aber nicht so klappen. Mein SuperVPN funktioniert nicht mehr und das neue läuft nicht. Ich habe bisher keines gefunden bei dem sich China anwählen lässt, damit es für die FlowerCare APP funktioniert , und kostenlos ist.
Hat jemand einen Vorschlag?

Ich habe gerade 10 Batterien gewechselt und die letzten zwei aus der Schublade angelernt.

„China VPN“ aus dem Playstore hat einige Server im Zielgebiet und mit mehreren Versuchen hat einer dann funktioniert. Rotes Logo mit gelber Schrift.

Leider konnte ich gestern meinen PIzeroW nach root = 100% nicht mehr retten.
Die Neuinstallation ist etwas problematisch, da ich gattlib nicht installieren kann.
Mit bluepy funktioniert es, aber spoosies Script passt nicht mehr. Ich habe dann direkt an die Funktionen der miflora Python Library angepasst, aber die bekommt nicht immer alle Sensoren abgefragt.
Der Scan findet innerhalb von 10 Sekunden alle, aber der Poll scheitert häufiger mit einem Python Fehler, weil der Sensor dann nicht antwortet. Damit gibt es in dem Durchgang überhaupt keine Daten :(.

Es ist mühsam mit ChinaVPN eine Verbindung zu finden die FlowerCare akzeptiert. Mir ist es noch nicht gelungen Firmware auf die Sensoren zu installieren. Letztes Jahr ging es wenn man die Sensoren direkt neben das Smartphone legte. Kann es auch an Oreo liegen?

Ich habe 12 MiFloras im Einsatz. Sie sind alle über eine VPN-Verbindung aktiviert worden.
Zwei RasPis empfangen die Daten.
Mit der App „Flower Care“ lese ich die Sensoren ca. alle 7-14 Tage zusätzlich aus.
Updates werden angezeigt, wenn sie anstehen.
Jetzt: 3.1.8 auf 3.1.9. Es ist keine VPN-Verbindung erforderlich.

Was ich mir wünsche: (Das ist aber in der API nicht enthalten)

  1. Die Lichtanreicherung (mmol) übernehmen.
    Sie sagt aus, ob die Lichtmenge (für den Tag) zu gering, ausreichend oder zu hoch ist.
    Dies würde sicherlich die Orchideenzüchter interessieren.
  2. Die Grenzwerte der Pflanzen übernehmen.
  3. Wie mit der App die Historie in Symcon übernehmen.

Matthias

‚sind alle über eine VPN-Verbindung aktiviert worden‘

Wäre schön wenn du das ausführlicher beschreiben könntest.

Ich habe gestern auch zwei „chinesische“ aktiviert mit „Hidemyass“. Hidemyass hat einen chinesischen Server der hier funktioniert hat. Ich habe einfach das 7-Tage Testabo (man muss zwar Kreditkartendaten eingeben), welches ich vor Ablauf der sieben Tage wieder im Kundenkonto beenden werde gemacht. Hidemyass App auf dem Iphone, china gewählt und connected. Dann Flowercare-app gestartet und ohne Probleme eingebunden.
LG Adam

Gesendet von iPhone mit Tapatalk Pro

Frage: warum seid ihr alle so heiß auf die Firmware-Updates? Was bringt das? Gibt es ein Changelog? Ich halte es hier derzeit mit 9 Sensoren (2 davon draußen) mit „never touch a running system“

Gesendet von iPhone mit Tapatalk Pro

Zumindest alle auf den gleichen Stand bringen.

Ich habe 2.7.0 / 2.9.4 / 3.1.6, aktuell ist scheinbar 3.1.9
Schon 2.7.0 zu 2.9.4 bringt andere Werte wenn man sie zusammen in ein Sandglas steckt. Nimmt man mehrere gleiche z.B. 2.9.4 sind es annähern gleiche Werte.
Genaueres weiß ich nicht mehr. Das waren Erfahrungswerte von letztem Jahr.

Moin,

zu 1: Dieser Wert wird doch schon ausgelesen?! mmol kann mit einem Faktor in Lux umgerechnet werden. Den fand ich persönlich irgendwie schöner. Als diese für „Normalpflanzenliebhaber“ etwas kryptische Einheit. In dem Modul wird dies schon erledigt!

https://www.apogeeinstruments.com/conversion-ppfd-to-lux/

zu 2: Da nur die App die Grenzen kennt, kann ich die leider nicht so ohne weiteres aus den Sensoren auslesen. Dort sind sie nämlich nicht gespeichert. Es geht nur durch händisches Übertragen von der App in IPS. Tut mir leid. :frowning:

zu 3: Historie übernehmen fand ich jetzt etwas unlogisch, weil wir ja in festen Intervallen die Werte abrufen. Da dürfte ja gar kein Datenstau entstehen. Per App ist das durchaus nachvollziehbar, aber über IPS erachte ich das nicht als notwendig.

Ein Firmware Update empfinde ich auch nicht als sonderlich wichtig. Zumal ich eher die Angst davor habe, dass plötzlich gar nichts mehr geht, weil die etwas an der Kommunikation geändert haben. Also am besten so lassen. :slight_smile:

Gruß
Kevin

Guten Morgen Spoosie,

nutze dein Modul nun schon für drei Pflanzen und bin begeistert.

Mir ist am WE aufgefallen, dass wenn man im Modul unter Sensoren ein Bild verlinkt und dieses dann im Objektbaum unter Media Dateien löscht, man nur noch eine Fehlermeldung bekommt und nicht mehr ins Modul kommt.

Die Fehlermeldung sagt was von Zeile 654 in der Modul.php.
Ich konnte wieder ins Modul, nachdem ich ein @ vor base64_decode gesetzt hatte. Vorher war nichts zu machen, bzw. ich wusste nicht wie es sonst gehen soll. :slight_smile:

Vielleicht könntest du das in einem kommenden Release abfangen, das die Fehlermeldung nicht kommt.

Vielen Dank

Grüße aus Düsseldorf

Gesendet von iPhone mit Tapatalk

Mein MiFlora Modul bringt keinen Werte mehr. Nachdem es nun weit mehr als 1 Jahr ohne Probleme läuft funktioniert es nicht mehr. Natürlich genau ein paar Tage nachdem ich im Urlaub bin. Ich habe noch Zugriff auf die Pi3 per VPN, weiss aber nicht so richtig was ich machen soll. In der plants.log steht nur noch ‚Done!‘
Hat jemand eine Idee wie man den Fehler einkreisen kann?