in Domotica

Come monitorare la bilancia di Xiaomi con Domoticz

La Xiaomi Mi Scale è la bilancia di Xiaomi con il Bluetooth (quindi per farla semplice potrete salvarvi i dati dove meglio preferite e farvi un grafico con i pesi misurati) che potete acquistare qui.

Con l’integrazione con Domoticz potrete gestirla come meglio preferite, eventualmente anche con HomeKit di Apple e l’emulazione del server con Homebridge.

Iniziamo!

sudo git clone https://github.com/marcotini/node-xiaomi-scale /home/pi/domoticz/scripts

Ora create un sensore virtuale che abbia uno switch (quindi un semplice bottone) e mettete come On Action:

script:///home/pi/domoticz/scripts/weight.sh

Vi serviranno anche 2 sensori virtuali per persona che usa la bilancia, uno per i KG e uno per il valore di BMI.

Adesso create lo script con sudo nano /home/pi/domoticz/scripts/weight.sh e incollate:

#!/bin/bash

before=$(head -1  /home/pi/domoticz/scripts/node-xiaomi-scale/scaleData.txt)

sudo /usr/bin/node /home/pi/domoticz/scripts/node-xiaomi-scale/fetchscaledata.js > /home/pi/domoticz/scripts/node-xiaomi-scale/scaleData.txt

kg=$(head -1  /home/pi/domoticz/scripts/node-xiaomi-scale/scaleData.txt)
bmi=$(tail -1 /home/pi/domoticz/scripts/node-xiaomi-scale/scaleData.txt)

maggiore=60
zero=0

if (( $(echo "$kg != $before" |bc -l) )); then
if (( $(echo "$kg > $maggiore" |bc -l) )); then

curl -s -k "http://127.1.1.1:8080/json.htm?type=command&param=udevice&idx=123&nvalue=0&svalue=$kg" > /dev/null
curl -s -k "http://127.1.1.1:8080/json.htm?type=command&param=udevice&idx=456&nvalue=0&svalue=$bmi" > /dev/null

elif (( $(echo "$kg > $zero" |bc -l) )); then

curl -s -k "http://127.1.1.1:8080/json.htm?type=command&param=udevice&idx=789&nvalue=0&svalue=$kg" > /dev/null
curl -s -k "http://127.1.1.1:8080/json.htm?type=command&param=udevice&idx=012&nvalue=0&svalue=$bmi" > /dev/null

fi
fi

Lo script è utile per due persone ma può essere allargato per quante preferite.
Gli IDX 123 e 456 si riferiscono ai KG e BMI della persona che pesa di più di 60 KG (come potrete notare dalla variabile maggiore è stato settato così, ma potete benissimo mettere quello che preferite in base alla vostra differenza di peso). 789 e 012 invece si riferiscono a quella che ha peso inferiore.

Inoltre lo script controlla che il valore non sia uguale al precedente (nel caso abbiate effettuato due letture consecutive).

NB: dovete aver installato sul vostro sistema Node JS.

Eventualmente potete anche creare l’automazione per far in modo che (ad esempio il Raspberry Pi) la bilancia venga interrogata la mattina, ad esempio alle 7, 8 o 9 di mattina (così da non dover ogni volta ripremere il tasto su Domoticz). Voi sapete che ogni giorno alle 7.00 di mattina la bilancia fornisce i dati, se ce ne sono: lo script li salva. Altrimenti no. Eseguite sudo crontab -e e incollate:

0 7 * * * /home/pi/domoticz/scripts/weight.sh
0 8 * * * /home/pi/domoticz/scripts/weight.sh
0 9 * * * /home/pi/domoticz/scripts/weight.sh

Scrivi un commento

Commento