Smart Home: Raspberry Pi MiFlora – Xiaomi Pflanzensensor einbinden

Wer von außerhalb die Werte seiner Pflanzen beobachten möchte, kann dies entweder selber bauen, oder auf bestehende Lösungen zurückgreifen. Vom Hersteller Xiaomi gibt es u.a. für den Raspberry Pi MiFlora – ein Alleskönner, was die Pflanzenüberwachung angeht. Dieses kleine Multitalent kann die Bodenfeuchtigkeit, Temperatur, Lichtintensität und Leitfähigkeit (Nährstoffhinweise) per Bluetooth verschicken, die zuhause oder im eigenen Gewächshaus sehr aufschlussreich sind. Mit Hilfe des Raspberry Pi’s bauen wir ein Digitalanzeige des Xiaomi Mi Flora Pflanzensensors.

Des weiteren können wir die ausgelesenen Werte in unser Smart Home System ein binden und lassen es auf dem OpenHAB Dashboard anzeigen.

Da der Sensor ebenfalls wasserdicht ist, können wir ihn auch außerhalb verwenden und so z.B. unsere Wetterstation erweitern.

 

Zubehör & Aufbau

Raspberry Pi Mi Flora - Xiaomi Pflanzensensor

Aufbau des Xiaomi Mi Flora Pflanzensensor

Da der Pflanzensensor über Bluetooth kommuniziert, sollte der Raspberry Pi enweder eingebautes Bluetooth haben (ab Version 3), oder ein Dongle verfügbar sein. Hier die Liste des verwendeten Zubehörs:

Weiteres Zubehör wie ein Bildschirm ist optional.

Öffne vorsichtig die Hinterseite des Mi Flora und setze die Batterie ein. Danach können wir bereits loslegen.

 

Raspberry Pi MiFlora Python Pakete installieren und Werte auslesen

Zunächst einmal möchten wir die reinen Werte des Sensors auslesen. Dazu müssen wir ein paar Bibliotheken installieren, bevor wir im nächsten Schritt das ganze in unsere Hausautomatisieren einbinden.

Verbinde dich mit deiner Konsole (per SSH) und gib folgendes ein (falls du den Raspberry Pi und den Xiaomi MiFlora Sensor in OpenHAB nutzen willst, sollte es bereits konfiguriert sein und als Betriebssystem zur Installation genutzt werden):

sudo pip3 install miflora

Nun müssen wir zunächst nach dem Sensor suchen. Rufe dazu folgenden Befehl über die Konsole auf:

sudo hcitool lescan

Hier ist ein beispielhaftes Ergebnis des Kommandos:

LE Scan ...
C4:7C:8D:66:1A:C3 (unknown)
C4:7C:8D:66:1A:C3 Flower care
D4:36:39:C7:DB:BD (unknown)

Die Mac Adresse vor „Flower Care“ ist jene, die wir brauchen (hier: C4:7C:8D:66:1A:C3). Diese werden wir gleich noch brauchen.

Anschließend wollen wir den Sensor mittels Python auselesen. Somit starten wir die Python 3 Konsole (oder speichern es alternativ als Skript ab).

sudo python3

Zunächst müssen wir die benötigten Bibliotheken importieren und den Xiami Mi Flora am Raspberry Pi initialisieren. Dabei ist es wichtig die MAC Adresse anzupassen. Natürlich kannst du auch mehr als einen Sensor verwenden.

from miflora.miflora_poller import MiFloraPoller
from miflora.backends.gatttool import GatttoolBackend
poller = MiFloraPoller('C4:7C:8D:66:1A:C3', GatttoolBackend)

Anschließend haben wir eine Reihe von Möglichkeiten. Da der Mi Flora Sensor verschiedene Werte misst (Bodenfeuchtigkeit, Temperatur, Lichtintensität und Leitfähigkeit), können wir diese auch alle einzeln auslesen.

Xiaomi Mi Flora Python Befehle

Folgende Befehle stehen über die Python Bibliothek des Xioami Mi Flora am Raspberry Pi zur Verfügung:

  • poller.battery_level() – gibt den Batteristatus zurück.
  • poller.firmware_version()– liefert die aktuelle Firmware Version als Text.
  • poller.parameter_value(parameter) mit einem der folgenden Parametern:
    • 'temperature'– liefert den Temperaturwert (in Grad Celsius)
    • 'light' – gibt den Lichtwert zurück (umso größer – umso heller).
    • 'moisture' – gibt die Feuchtigkeit an.
    • 'conductivity' – gibt die Leitfähigkeit des Bodens an.
    • 'battery' – gibt den Batteristatus an.

Daneben gibt es noch einige weitere Funktionen für den Cache, auf die in diesem Tutorial allerdings nicht näher eingegangen wird (siehe dazu Github).

Falls du also bspw. nur die Temperatur auslesen willst, so wäre folgender Python Code auszuführen:

temp = poller.parameter_value('temperature')

Hier gibt es außerdem noch ein etwas ausführlicheres Beispiel der Entwickler. Es werden die möglichen Szenarien gezeigt:

Raspberry Pi MiFlora - Xiaomi Mi Plant Sensor

Verschiedene Pflanzenkübel können mit einem Xiaomi MiFlora Sensor ausgestattet und überwacht werden.

Anwendungsfälle des Mi Flora Pflanzensensor mit dem Raspberry Pi

Wie bereits erwähnt ist eine verbreitete Anwendung des Sensors über ein Smart Home System wie OpenHAB. Hierbei kann ein entsprechendes Python Skript aufgerufen und dessen Werte angezeigt werden. Eine weitere Möglichkeit besteht direkt über MQTT. Auch hierfür gibt es verschiedene Bibliotheken.

Wer hingegen ein anderes Smart Home System nutzt, kann den Mehrzwecksensor auch nutzen. Für Lösungen wie Home Assistant gibt es ebenfalls bereits vorgefertigte Lösungen. Diese müssen lediglich installiert und die MAC Adresse angepasst werden.

Zu guter letzt kommt natürlich auch ein automatisches Gewächshaus in Frage. Der Sensor lässt sich mittels Python einfach auslesen und einbinden. Der Vorteil besteht darin, dass nun alles von einem Sensor kommt: Wofür vorher verschiedene, kabelgebunde Sensoren nötig waren, können wir nun einen kleinen Pflanzensensor nutzen.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!