So, ich habe das erneut zum Laufen bekommen, aber es ist tatsächlich eine arge Bastelei. Komischerweise wurde plötzlich keine Werte mehr angezeigt und gleichzeitig konnte auch die Flower Care-App sich auf einmal nicht mehr mit den Sensoren verbinden. Ich musste meinen zwei Sensoren die Batterie entnehmen und neu einsetzen, damit die App sich wieder verbinden konnte. Wie das zustande kommt: keine Ahnung. Weiter beobachten.
homebridge-mi-flower-care unter Node 10.16.3
Das Problem liegt im Modul bluetooth-hci-socket. Darin befindet sich irgendein Bug, der den Betrieb unter Node 10 unmöglich macht. Das hat irgendwer repariert und im npmjs-Repository hinterlegt. Der Trick besteht nun darin, dieses Modul zu installieren und homebridge-mi-flower-care unterzuschieben.
Zuerst muss der ganze Bluetooth-Kram auf den Raspi installiert werden. Ich schätze mal, das hat schon jeder getan, aber der Ordnung halber hier nochmal:
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev libcap2-bin
Es schadet nicht, das Bluetooth-Zeugs noch mal zu installieren, auch wenn es schon drauf ist.
Den Rest der Installation habe ich als root vorgenommen.
sudo su -
Installation der verbesserten Module
npm install -g --unsafe-perm @abandonware/bluetooth-hci-socket
npm install -g --unsafe-perm @abandonware/noble
Auch hier wird der Bildschirm mit Fehlermeldungen und Warnungen überschwemmt, aber jeweils am Ende sieht man, dass was installiert wurde.
homebridge-mi-flower-care mal anders installieren
git clone https://github.com/honkmaster/homebridge-mi-flower-care.git
npm install -g --unsafe-perm ./homebridge-mi-flower-care
Man beachte bitte den ./ bei der Installation.
Starten der Bastelarbeiten
rm -rf /usr/local/lib/node_modules/homebridge-mi-flower-care
cp -av homebridge-mi-flower-care/ /usr/local/lib/node_modules/
Während der Laie ungerührt kopiert und pastet, staunt der Fachmann. Erst habe ich mit npm das Plugin installiert, dann mit rm -rf wieder gelöscht und dann manuell mit cp -av wieder hinkopiert. Ich werde zu diesem Vorgang keine Fragen beantworten, weil ich ihn selber nicht verstehe. Aber ohne ging's nicht.
Da homebridge-mi-flower-care die falsche noble- und bluetooth-hci-socket-Version mitinstalliert hat und diese nutzen will, schiebe ich ihr jetzt die verbesserten Versionen unter:
cd /usr/local/lib/node_modules/homebridge-mi-flower-care/node_modules/
rm -rf bluetooth-hci-socket noble
ln -s ../../@abandonware/noble/ .
ln -s ../../@abandonware/bluetooth-hci-socket/ .
Und ganz zum Schluss:
setcap cap_net_raw+eip $(eval readlink -f `which node`)
Danach kann man den root-Modus wieder verlassen mit
exit
Nun konfiguriert man config.json wie hier beschrieben:
{
"accessory": "mi-flower-care",
"name": "Golden cane palm",
"deviceId": "AA:BB:CC:DD:EE:FF",
"interval": 300
}
Die deviceId findet man, indem man sudo hcitool lescan eingibt. Irgendwann wird dann auch die Adresse des Flower Care-Sensors ausgegeben.
Und dann Homebridge restarten. Mein Log zeigt das folgende:
Aug 19 18:43:15 fourPi systemd[1]: Started Node.js HomeKit Server.
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] Loaded config.json with 2 accessories and 1 platforms.
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] ---
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] Loaded plugin: homebridge-config-ui-x
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] Registering platform 'homebridge-config-ui-x.config'
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] ---
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] Loaded plugin: homebridge-mi-flower-care
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] Registering accessory 'homebridge-mi-flower-care.mi-flower-care'
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] ---
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] Loading 1 platforms...
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] [Config] Initializing config platform...
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] [Config] Spawning homebridge-config-ui-x with PID 5296
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] Loading 2 accessories...
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] [Dracaena] Initializing mi-flower-care accessory...
Aug 19 18:43:17 fourPi homebridge[5273]: [8/19/2019, 6:43:17 PM] [Fittonia] Initializing mi-flower-care accessory...
Aug 19 18:43:17 fourPi homebridge[5273]: Setup Payload:
Aug 19 18:43:17 fourPi homebridge[5273]: X-HM://0023ISZKF0M16
Aug 19 18:43:17 fourPi homebridge[5273]: Scan this code with your HomeKit app on your iOS device to pair with Homebridge:
Alles anzeigen
Da sieht man meine beiden Planzen: eine Dracaena und eine Fittonia. Und die melden munter:
ug 19 18:43:18 fourPi homebridge[5273]: [8/19/2019, 6:43:18 PM] Homebridge is running on port 51826.
Aug 19 18:43:20 fourPi homebridge[5273]: [8/19/2019, 6:43:20 PM] [Config] Console v4.6.0 is listening on :: port 8080
Aug 19 18:48:20 fourPi homebridge[5273]: [8/19/2019, 6:48:20 PM] [Dracaena] Lux: 283, Temperature: 23.3, Moisture: 41, Fertility: 385
Aug 19 18:48:20 fourPi homebridge[5273]: [8/19/2019, 6:48:20 PM] [Dracaena] Firmware: 3.2.1, Battery level: 98
Aug 19 18:48:22 fourPi homebridge[5273]: [8/19/2019, 6:48:22 PM] [Fittonia] Lux: 140, Temperature: 21.6, Moisture: 46, Fertility: 927
Aug 19 18:48:22 fourPi homebridge[5273]: [8/19/2019, 6:48:22 PM] [Fittonia] Firmware: 3.2.1, Battery level: 98
Aug 19 18:53:21 fourPi homebridge[5273]: [8/19/2019, 6:53:21 PM] [Dracaena] Lux: 314, Temperature: 23.3, Moisture: 41, Fertility: 380
Aug 19 18:53:21 fourPi homebridge[5273]: [8/19/2019, 6:53:21 PM] [Dracaena] Firmware: 3.2.1, Battery level: 98
Aug 19 19:08:23 fourPi homebridge[5273]: [8/19/2019, 7:08:23 PM] [Dracaena] Lux: 167, Temperature: 23.3, Moisture: 41, Fertility: 377
Aug 19 19:08:23 fourPi homebridge[5273]: [8/19/2019, 7:08:23 PM] [Dracaena] Firmware: 3.2.1, Battery level: 98
Aug 19 19:13:21 fourPi homebridge[5273]: [8/19/2019, 7:13:21 PM] [Dracaena] Lux: 185, Temperature: 23.2, Moisture: 41, Fertility: 378
Aug 19 19:13:21 fourPi homebridge[5273]: [8/19/2019, 7:13:21 PM] [Dracaena] Firmware: 3.2.1, Battery level: 98
Aug 19 19:13:21 fourPi homebridge[5273]: [8/19/2019, 7:13:21 PM] [Fittonia] Lux: 284, Temperature: 22, Moisture: 47, Fertility: 907
Aug 19 19:13:21 fourPi homebridge[5273]: [8/19/2019, 7:13:21 PM] [Fittonia] Firmware: 3.2.1, Battery level: 98
Aug 19 19:18:19 fourPi homebridge[5273]: [8/19/2019, 7:18:19 PM] [Fittonia] Lux: 299, Temperature: 21.9, Moisture: 47, Fertility: 904
Aug 19 19:18:19 fourPi homebridge[5273]: [8/19/2019, 7:18:19 PM] [Fittonia] Firmware: 3.2.1, Battery level: 98
Aug 19 19:23:19 fourPi homebridge[5273]: [8/19/2019, 7:23:19 PM] [Fittonia] Lux: 267, Temperature: 22, Moisture: 47, Fertility: 899
Aug 19 19:23:19 fourPi homebridge[5273]: [8/19/2019, 7:23:19 PM] [Fittonia] Firmware: 3.2.1, Battery level: 98
Aug 19 19:28:23 fourPi homebridge[5273]: [8/19/2019, 7:28:23 PM] [Dracaena] Lux: 217, Temperature: 23.3, Moisture: 41, Fertility: 370
Aug 19 19:28:23 fourPi homebridge[5273]: [8/19/2019, 7:28:23 PM] [Dracaena] Firmware: 3.2.1, Battery level: 98
Aug 19 19:38:21 fourPi homebridge[5273]: [8/19/2019, 7:38:21 PM] [Dracaena] Lux: 193, Temperature: 23.2, Moisture: 41, Fertility: 368
Aug 19 19:38:21 fourPi homebridge[5273]: [8/19/2019, 7:38:21 PM] [Dracaena] Firmware: 3.2.1, Battery level: 98
Alles anzeigen
Die erste Meldung kam übrigens fünf Minuten nach dem Start von Homebridge, also müsst ihr ein bisschen warten.
Noch mal: das ist alles fiese Bastelei. Ich bin sicher, dass mir bei einem Update von homebridge-mi-flower-care alles um die Ohren fliegt. Und nach einem Update von node muss der Befehl sudo setcap cap_net_raw+eip $(eval readlink -f `which node`) wieder eingegeben werden.
Ach ja: das läuft bei mir sowohl auf einem Raspi 3 als auch auf einem Raspi 4.
Stefan