Planten monitoren in Domoticz (Flower Mate en Xiaomi Mi Flora Monitor)


Wat is er toch een hoop leuk speelgoed te krijgen in China. Deze Flora monitor van Xiaomi kost net iets meer dan 10 euro en meet het licht, de temperatuur, vochtigheidsgraad en de voedingswaarde van de bodem. Met zo'n apparaatje heb je dus geen groene vingers meer nodig om je planten te verzorgen.

Maar dat willen we natuurlijk wel in Domoticz kunnen volgen. Het apparaat communiceert via Bluetooth met een app op je telefoon, dus dat signaal moeten we eerst zien op te pikken op de domoticz server.

En daarvoor heb je een Bluetooth dongel nodig die je op de usb poort van je domoticz server (in mijn geval een raspberry pi) kunt aansluiten. Om te controleren of hij herkend wordt log je met ssh in op je server en geef je het commando 'lsusb'.
USB apparaten hebben niet altijd even herkenbare namen. Als je deze opdracht eerst opgeeft voor je de dongel inplugged, en nogmaals nadat je de dongel hebt aangesloten zie je eenvoudig of en welk apparaat erbij is gekomen.
In mijn geval is 'Bus 001 Device 016: ID 13dd:0001 i.Tech Dynamic Limited' de bluetooth dongel.

pi@Domoticz:~ $ lsusb
Bus 001 Device 016: ID 13dd:0001 i.Tech Dynamic Limited
Bus 001 Device 015: ID 0c45:6341 Microdia
Bus 001 Device 007: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Flower Mate plugin installeren:


Voor de Flower Mate plugin hebben we Python nodig met Bluetooth ondersteuning. Geef daarvoor onderstaande opdrachten op in je ssh-terminal:

pi@Domoticz:~ $ sudo apt-get install python3 python3-pip libglib2.0-dev
pi@Domoticz:~ $ sudo pip3 install bluepy
pi@Domoticz:~ $ sudo pip3 install pygatt
pi@Domoticz:~ $ sudo pip3 install requests

Als dat allemaal probleemloos werd geinstalleerd, kunnen we de plugin zelf in de Domoticz script folder installeren:

pi@Domoticz:~ $ sudo apt-get install -y git-core
pi@Domoticz:~ $ git clone https://github.com/Tristan79/miflora.git
pi@Domoticz:~ $ cp -R ~/miflora/ ~/domoticz/scripts/python/miflora
Als het goed is draait nu alle benodigde software. Tijd om de nieuwe hardware te herkennen.

Bluetoothcontrol starten:

pi@Domoticz:~ $ bluetoothctl
[NEW] Controller 00:00:1A:11:22:1B Domoticz.localdomain [default]
[bluetooth]#

Scannen

[bluetooth]# scan on
Discovery started
[CHG] Controller 00:0D:3C:38:12:1B Discovering: yes
[NEW] Device 10:71:AE:79:B0:34 60-FB-42-79-B0-7C
[NEW] Device 20:61:BE:89:C4:56 38-71-DE-A9-C4-3C
[CHG] Device 30:51:CE:99:B0:78 Name: MacBook
[CHG] Device 40:41:DE:A9:C4:90 Name: IPhone
[CHG] Device 50:31:EE:B9:B0:12 RSSI: -61
[CHG] Device 60:21:FE:C9:C4:34 Flora Monitor

Na Device volg het MAC adres van je Flora monitor. Hier 60:21:FE:C9:C4:34. Dit adres heb je straks nodig als we het script gaan bewerken dus schrijf of sla dat ergens op.

Afsluiten:

[bluetooth]# exit
[DEL] Controller 00:00:1A:11:22:1B Domoticz.localdomain [default]

Virtual sensoren in Domoticz:


In Domoticz maken we per apparaat 4 Dummy devices aan op de hardware pagina:



Voor mijn peperplant (Capsicum annuum) Zijn dat:
Capsicum Vocht, Capsicum Licht, Capsicum Temp en Capsicum Voeding


Klik op 'Create Virtual Sensors' om de sensoren in Domoticz Devices te activeren.

Kies voor vocht: Humidity
Kies voor temp: Temperature
Kies voor licht: Lux
Kies voor voeding: Custom Sensor met Axis label 'Voeding'


Hierna zijn de sensoren terug te vinden onder Devices. Klik op het blauwe pijltje om ze te activeren. Let ook op de Idx nummers die deze devices hier hebben. Hier zijn dat Idx 501 t/m 504. Deze hebben we straks weer nodig.


Het domoticz.py script aanpassen


In mijn geval draait Domoticz op hetzelfde apparaat als het script en hoeft de onderstaande informatie niet te worden aangepast. Als Domoticz op een ander apparaat draait moet hier het ip-adres worden aangepast en moet je wellicht een gebruikersnaam en wachtwoord invullen indien nodig.

# Settings for the domoticz server
domoticzserver   = "127.0.0.1:8080"
domoticzusername = ""
domoticzpassword = ""

Vervolgens voegen we helemaal onderin het script een nieuwe regel toe:
Hier vul je je eigen Mac adres in die je verkregen hebt bij de bluetooth scan en je eigen Idx nummers.

update("macadres","vocht","temp","licht","voeding")

Heb je een andere volgorde aangehouden, let dan op de volgorde. Als je de Sensoren in de deze volgorde hebt aangemaakt word het als volgt:

update("60:21:FE:C9:C4:34","501","502","503","504")
De bestaande print en update regels in het bestand mag je wissen of deactiveren door er een # voor te plaatsen. Met de opdracht '/usr/bin/python3 /home/pi/domoticz/scripts/python/miflora/domoticz.py' kun je testen of de gegevens worden uitgelezen.

Cron gebruiken om het script regelmatig aan te roepen

Om het script elk uur een update van de gegevens te krijgen gebruiken we cron. Bewerk de 'crontab' met onterstaand commando:

pi@Domoticz:~ $ crontab -e

En voeg deze regel toe aan het bestand:

0 * * * * /usr/bin/python3 /home/pi/domoticz/scripts/python/miflora/domoticz.py

Als nano of pico als editor voor crontab staat ingesteld, sla je het bestand op met ctrl-o en sluit je af met ctrl-x. 
Is vi je default editor de moet je eerst op de i toets drukken om het bestand te kunnen bewerken. Met de esc toets verlaat je de bewerkingsmodus weer en dan kun je opslaan met :w en afsluiten met :q

Als het goed is krijgt Domoticz nu ieder uur een update over het welzijn van je planten. Veel plezier met je nieuwe domotica planten!

Recommended Posts × +

2 reacties:

  1. Heb alles geinstalleerd op een slave (Raspberry) draait prima op de slave! Op de master krijg ik de devices niet binnen. Alle andere devices die ik aanmaak wel maar deze (dummies) niet. Iemand een idee?

    BeantwoordenVerwijderen