iBeacon mal anders rum

WebUIs (DashUI, yahui, ...), Adapter (Hue, IRTrans, Sonos, ...), Logging, Scripting

Moderator: Co-Administratoren

Free_Dom
Beiträge: 20
Registriert: 07.04.2015, 08:39

Re: iBeacon mal anders rum

Beitrag von Free_Dom » 09.04.2015, 19:09

Hallo,

50m laut Whitepaper. Wie 300m bei WLAN :D.
Meiner schafft so ca 5-7m in der Wohnung. Wenn eine Wand dazwischen ist ist aber definitiv Funkstille. Die Reichweite verringern ist kein Problem. Vergrößern schon. Mit einer guten BT-Antenne am Empfänger wirst Du nochmals einiges rausholen können.

LG

Nachtrag: Ich weiß zwar nicht was Du vor hast, aber wenn der Raum/Haus zu groß ist und du mehrere Sender benötigst, nimmst Du einfach mehrere iBeacons und programmierst Sie auf die gleiche UUID. Dann hast Due in flächendeckendes gleiches Signal.

ThomasF
Beiträge: 13
Registriert: 10.06.2014, 10:07

Re: iBeacon mal anders rum

Beitrag von ThomasF » 09.04.2015, 20:41

Free_Dom hat geschrieben:Hallo in die Runde,

habe eine ähnliche Idee gehabt und für 15 EUR umgesetzt. Zumindest wenn man einen Raspberry hat und "nur" die generelle Anwesenheit steuern möchte :D.

Hier eine schnelle Beschreibung:

Habe mir bei Gimbal ein paar Gimbal Proximity Beacon Series 10 geholt. Stück 5 Dollar. Passt perfekt an meinen Schlüsselbund. Meinem RPi habe ich einen USB BT LE Dongel (10 eur) verpasst und scanne jede Minute für 5s ob einer der iBeacons in der Nähe ist (wenn ich zu Hause bin liegt der Schlüssel neben dem RPi). Das Script, welches jede Minute läuft, setzt eine Variable auf TRUE (wenn eine passende UUID in der nähe ist) welche per ScriptGUI weiterverarbeitet wird und so die Anwesenheit steuert. Habe im Script noch eine Latenz zur Abwesenheit eingebaut, dass wenn der Schlüsselanhänger mal nicht gefunden wird, oder ich mal schnell im Keller bin die Anwesenheit erst nach 600 Sekunden auf FALSE gesetzt wird.

Bild

Es sind natürlich noch so einige Dinge zu verbessern. Aber grundlegend funktioniert das ganze super und mein IPhone Akku dankt es mir, dass ich nicht mit Homezone arbeiten muss :D

Werde die Tage noch etwas dran rumspielen...

LG Free_Dom
Das hört sich ziemlich gut an! Genau das was ich brauche. Kannst du mal ein paar Details posten? zB. wie du den Raspi eingerichtet hast und welche scripts da laufen?

Gruß,
Thomas

Free_Dom
Beiträge: 20
Registriert: 07.04.2015, 08:39

Re: iBeacon mal anders rum

Beitrag von Free_Dom » 09.04.2015, 21:45

Hallo Thomas,

das ganze war recht schnell eingerichtet obwohl ich nicht gerade der Crack bin. Ich versuche das ganze mal zu beschreiben.

### Stückliste ###
1x CCU1/2
1x RPi mit ccu.io
1x Bluetooth USB Dongel v4 LE // LE ist wichtig sonst kannst Du keine iBeacons scannen // ich habe einen Broadcom BCM20702 Chipsatz
1x iBeacon für den Schlüsselbund // z.B. Gimbal 10

### Setup ###
iBeacon mit UUID versehen // Webportal von Gimbal + Smartphone App // Kostenfrei

Bluetooth Module installieren auf RPi

Code: Alles auswählen

apt-get update
apt-get install -y bluetooth bluez-utils
Testen kannst Du mit

Code: Alles auswählen

hcitool lescan
ob der iBeacon auch gefunden wird. Du wirst aber nur Random MACs bekommen und keine UUIDs.

Nun noch ein Script, das jede Minute nach dem/den iBeacon(s) scanned.
Dazu habe ich mir das Script von dieser Seite angepasst: http://stackoverflow.com/questions/2173 ... t-ibeacons

Angepasst Version (nicht schön, tut aber):

Code: Alles auswählen

#!/bin/bash
# iBeacon Scan by Radius Networks

if [[ $1 == "parse" ]]; then
  packet=""
  capturing=""
  count=0
  myUUID1=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
while read line
  do
    count=$[count + 1]
    if [ "$capturing" ]; then
      if [[ $line =~ ^[0-9a-fA-F]{2}\ [0-9a-fA-F] ]]; then
        packet="$packet $line"
      else
        if [[ $packet =~ ^04\ 3E\ 2A\ 02\ 01\ .{26}\ 02\ 01\ .{14}\ 02\ 15 ]]; then
          UUID=`echo $packet | sed 's/^.\{69\}\(.\{47\}\).*$/\1/'`
          MAJOR=`echo $packet | sed 's/^.\{117\}\(.\{5\}\).*$/\1/'`
          MINOR=`echo $packet | sed 's/^.\{123\}\(.\{5\}\).*$/\1/'`
          POWER=`echo $packet | sed 's/^.\{129\}\(.\{2\}\).*$/\1/'`
          UUID=`echo $UUID | sed -e 's/\ //g' -e 's/^\(.\{8\}\)\(.\{4\}\)\(.\{4\}\)\(.\{4\}\)\(.\{12\}\)$/\1-\2-\3-\4-\5/'`
          MAJOR=`echo $MAJOR | sed 's/\ //g'`
          MAJOR=`echo "ibase=16; $MAJOR" | bc`
          MINOR=`echo $MINOR | sed 's/\ //g'`
          MINOR=`echo "ibase=16; $MINOR" | bc`
          POWER=`echo "ibase=16; $POWER" | bc`
          POWER=$[POWER - 256]
          if [[ $2 == "-b" ]]; then

	     if [[ $UUID == $myUUID1 ]]; then
            sudo wget http://192.168.98.166:8080/api/set/90015/?value=lselect 1>/dev/null &
		exit
	     fi
          else
		if [[ $UUID == $myUUID1 ]]; then
            sudo wget http://192.168.98.166:8080/api/set/90015/?value=lselect 1>/dev/null &
		exit
             fi
           fi
        fi
        capturing=""
        packet=""
      fi
    fi

    if [ ! "$capturing" ]; then
      if [[ $line =~ ^\> ]]; then
        packet=`echo $line | sed 's/^>.\(.*$\)/\1/'`
        capturing=1
      fi
    fi

if [[ $count == "20" ]]; then
            exit
fi
  done
else
  sudo hcitool lescan --duplicates 1>/dev/null &
  if [ "$(pidof hcitool)" ]; then
    sudo hcidump --raw | $0 parse $1
  fi
fi
Das script durchläuft 20 SCAN-Zyklen (Dauer ca. 3s) und beendet sich dann von selber.
Theoretisch kannst Du den Counter auch raus nehmen und das Script im Dauerlauf betreiben. Auf meinem RPi2 (QuadCore) hat das aber schon mächtig Prozessorleistung gebraucht. der RPi2 wäre damit zwar nicht an der Grenze der Leistung, aber 1x pro Minute genügt mir. Die Last kommt vom bluetoothd und nicht vom Script selber.

Wird die UUID unter myUUID1 gefunden, wird die Variable Person1 (vorher in der CCU anlegen) auf 1 gesetzt. Wenn nicht auf 0 (per wget).

Mit Hilfe des Scriptes aus ScriptGUI aus dem vorherigen Post wird bei erkennen des iBeacons sofort die Anwesenheit auf 1 gesetzt. Sollte der iBeacon nciht gefunden werden wird die Anwesenheit nach 600s auf 0 gesetzt.

jetzt noch das Script in die Crontab setzten und das wars

Code: Alles auswählen

* * * * * sudo /home/pi/scripts/ibeacon.sh >/dev/null 2>&1
Wie schon erwähnt. Es gibt viel Potential zur Verbesserung. Vielleicht posten noch ein paar User weitere Ideen und Vorschläge.
Viel Spaß damit.

ThomasF
Beiträge: 13
Registriert: 10.06.2014, 10:07

Re: iBeacon mal anders rum

Beitrag von ThomasF » 09.04.2015, 22:02

Klasse! Danke dir dafür. Ich werde mal weiterbasteln und berichten!

Gruß,
Thomas

Zamon
Beiträge: 20
Registriert: 17.01.2016, 16:01

Re: iBeacon mal anders rum

Beitrag von Zamon » 30.01.2016, 08:49

Hallo Thomas F, FreeDom,

Das Thema ANWESENHEIT nervt mich seit ich vor ein paar Monaten in die HOMEMATIC Welt eingetaucht bin. Weder das manuelle Einstellen noch GeoFencing sind wirklich zufriedenstellend.

Insofern bin ich auf Idee iBeacon und Schlüsselbund gekommen.... Und siehe da..... Es wurde schon gemacht :D

Bevor ich mich da reinstürze, wollte ich mal nach Euren Erfahrungen im täglichen Betrieb erkundigen ...
- läuft die Lösung stabil?
- habt Ihr die Lösung für mehrere Personen realisiert?
- funktioniert die Erkennung zuverlässig, reicht das minütliche Scannen?
- welche Erfahrung gibt es bzgl der Lebensdauer der Beacon Betterien?
- Welche Verbesserungen/Änderungen habt Ihr seit dieser Version vorgenommen?
- Welche Empfehlungen und Tipps/Tricks habt Ihr sonst noch?

Bin mir noch nicht sicher, ob ich nen Rasberry einsetzen soll, oder ob man die Synology überreden kann, den Dienst zu übernehmen. Evtl auch ne Frage der Reichweite..... Beacon am Schlüsselbund würde nicht in der Nähe der Synology liegen.....

Freue mich auf Eure Erfahrungen in der Produktivumgebung.

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: iBeacon mal anders rum

Beitrag von grissli1 » 30.01.2016, 10:51

Ich habe die Anwesenheitssteuerung über die Bluetoothverbindung von meinem Handy gelöst (gibt einen entsprechenden Thread hier). Das reicht fast für die ganze Wohnung (130qm Altbau).
Werde aber zusätzlich das hier mit den iBeacons testen.
Danke.

Viele Grüße
Chris

Unterwegs @ G-Pad
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

Free_Dom
Beiträge: 20
Registriert: 07.04.2015, 08:39

Re: iBeacon mal anders rum

Beitrag von Free_Dom » 30.01.2016, 11:02

Hallo zusammen,

ich habe die Anwesenheitssteuerung inzw. aus folgenden Gründen auf NFC umgestellt:

1. Batterie des iBeacons am Schlüssel war alle 2-3 Monate leer (wobei es da wohl auch welche gibt, die 1 Jahr halten sollen)
2. Durch die Implementierung (zumindest die, die ich beschrieben habe) musste ich ein Scan-Intervall einstellen und konnte nicht dauerhaft scannen, da sonst die SD-Card im RasPI ständig kaputt war.
3. Das BT Modul vom Handy statt iBeacon nehmen geht nicht bei iPhone nur bei Android (soweit ich weiß), da der BT sender sichtbar sein muss
4. War mir am Ende zu unsicher, da die BT IDs sehr leicht auslesbar sind und imitiert werden können (Spoofing).

Jetzt habe ich an der Türe ein NFC Reader mit dem RASPi gebaut und ziehe einfach meine Geldbeutel, in dem meine NFC CreditCard ist, vorbei und werde erkannt. Die Tochter hat in Ihrer Handy-Hülle einen NFC-Sticker kleber, der das gleiche macht.

Das System läuft super stabil und zuverlässig! Einziger Nachteil ist, dass man aktiv den NFC Tag über den Sensor ziehen muss und nicht "einfach" erkannt wird wie bei der BT-Lösung.

LG

ThomasF
Beiträge: 13
Registriert: 10.06.2014, 10:07

Re: iBeacon mal anders rum

Beitrag von ThomasF » 30.01.2016, 18:28

N'abend zusammen,

ich habe das Projekt erstmal nicht weiterverfolgt, da ich mit dem Geofencing ganz zufrieden bin und es für meine Zwecke ausreicht.

Gruß,
Thomas

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: iBeacon mal anders rum

Beitrag von grissli1 » 31.01.2016, 15:22

@Free_Dom: der BT Sender muss nur beim Pairen sichtbar sein. Dann läufts ohne Sichtbarkeit.

Viele Grüße
Chris

Unterwegs @ G-Pad
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

MathiasZ

Re: iBeacon mal anders rum

Beitrag von MathiasZ » 07.02.2018, 05:17

Ich weiß, das Thema ist schon älter.
Vllt habe ich doch noch eine Chance, gehört zo werden.
Ich habe die Anwesesenheit bisher mit der fritzbox gelöst.
Nun ein neues Handy musste her. Da ich nun auf Apple umgestiegen bin, sitze ich in der kalten Wohnung und musste von der Anwesenheit wieder weg.
Dann hatte ich mir die Enocean Tracker bestellt und schicke diese wieder zurück.
Schlafzimmer, Esszimmer, Flur kein Problem.
Sobald ich in's Wohnzimmer gehe regelt die Heizung zurück, weil nicht mehr anwesend.
Ich habe mir ein paar G-Tags zugelegt und bin dabei, Tests zu machen.
Kann mir hier jemand erklären, wie man das ganze bei der CCU bzw der piVCCU einbinden kann?
Wenn möglich, soll das alles auf der piVCCU installiert werden.
Im Moment nutze ich noch die Raspberrymatic. Das soll sich aber ändern.
Ich selber habe eine PI3, die auch Bluetooth LE beherrschen soll.
Auf Eure Antworten freue ich mich.
Gruß,
Mathias

Antworten

Zurück zu „CCU.IO“