#openHAB Items anlegen
Code: Alles auswählen
Switch GTag_1 "Gtag Schlüssel 1"
Switch GTag_2 "Gtag Schlüssel 2"
Switch GTag_3 "Gtag Schlüssel 3"
Code: Alles auswählen
sudo apt install jq bluez
Code: Alles auswählen
sudo hcitool lescan
Code: Alles auswählen
sudo mkdir /usr/local/gtag_presence/
Code: Alles auswählen
sudo nano /usr/local/gtag_presence/presence_detection.sh
Code: Alles auswählen
#!/bin/bash
###########################################
# Openhab presence detection using G-Tags #
# version 0.1 #
# copyright by eiGelbGeek #
###########################################
#configuration
openhab_url="192.168.10.10"
openhab_port="8484"
openhab_items=("GTag_1" "GTag_2" "GTag_3")
gtag_ids=("78:8F:88:99:89:6D" "78:8F:80:99:8D:88" "78:28:88:99:C8:38")
#From here changes can lead to loss of function!
filename=/tmp/bluetooth_devices.$$
hcitool lescan > $filename & sleep 10
pkill --signal SIGINT hcitool
sleep 1
for ((i=0;i<${#gtag_ids[@]};++i)); do
searchresult=$(grep -c ${gtag_ids[i]} $filename)
current_state="$(curl -X GET --header "Accept: application/json" "http://$openhab_url:$openhab_port/rest/items/${openhab_items[i]}" | jq -r '.state')"
if [ $searchresult -gt 0 ]; then
if [ $current_state == "OFF" ]; then
curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "ON" "http://$openhab_url:$openhab_port/rest/items/${openhab_items[i]}"
fi
else
if [ $current_state == "ON" ]; then
curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "OFF" "http://$openhab_url:$openhab_port/rest/items/${openhab_items[i]}"
fi
fi
done
rm $filename
Code: Alles auswählen
sudo chmod u+x /usr/local/gtag_presence/presence_detection.sh
Code: Alles auswählen
sudo crontab -e
Code: Alles auswählen
0-59/2 * * * * bash /usr/local/gtag_presence/presence_detection.sh >/dev/null 2>&1