Anwesenheit über iBeacons

Begonnen von DJAlex, 10 Januar 2015, 13:16:26

Vorheriges Thema - Nächstes Thema

DJAlex

Hallo ich hab mir mal einen iBeacon organisiert,
also eigentlich einen LightBlueBean. Aber denn kann man als iBeacon verwenden.

Meine Idee war den an den Schlüsselbund zu hängen und damit meine Anwesenheit zu Hause zu überwachen.

Am Anfang dachte ich da er ein Bluetoothmodul hat kann ich Ihn einfach mit dem PRESENCE Modul anpingen.
Leider klappt das nicht. Wies hab ich auch noch nicht rausgefunden.

Mein derzeitiger Ansatz ist das Presence Modul so über ein Script anzusprechen, dass es den Anwesenheitsstatus des iBeacon erfasst.

Ich kann auf meinem Raspberry mit FHEM bereits den iBeacon auslesen. Um das zu realisieren hab ich folgende Anleitung umgesetzt.

http://www.switchdoc.com/2014/08/ibeacon-raspberry-pi-scanner-python/

Also Ausgabe bekomme ich folgendes:

d0:15:72:c9:d2:21,a495abffc5b14b44b5121370f02d74de,65535,65535,-59,-79
d0:15:72:c9:d2:21,a495abffc5b14b44b5121370f02d74de,65535,65535,-59,-79
d0:15:72:c9:d2:21,1106de742df0701312b5444bb1c510ff,38308,522,4,-78
d0:15:72:c9:d2:21,a495abffc5b14b44b5121370f02d74de,65535,65535,-59,-80
d0:15:72:c9:d2:21,a495abffc5b14b44b5121370f02d74de,65535,65535,-59,-91
51:32:89:b0:a8:3e,0613ff5c000c0e000c2ef57b28b517d3,63380,55073,13,-83
51:32:89:b0:a8:3e,0104043ea8,45193,37969,0,-83
51:32:89:b0:a8:3e,0613ff5c000c0e000c2ef57b28b517d3,63380,55073,13,-83
51:32:89:b0:a8:3e,0104023ea8,45193,37969,0,-82


Jetzt meine Frage wie kann ich diese Ausgabe so filtern, dass ich für den IBeacon (erster Eintrag) eine 1 oder eine 0 rausbekomme.
1 wenn die MAC-adresse auftaucht 0 wenn sie nicht auftaucht und wie kriege ich das in PRESENCE rein.
Die Abfrage läuft wenn man Sie gestartet hat ununterbrochen durch. Ich denke es wäre sinnvoll wenn man Sie dann auch wieder abbricht.
oder?

Hoffe mir kann jemand helfen. Bin im Skripten noch blutiger Anfänger.



lukasbastelpeter

Schau dir in dem Thread, in dem du den hier verlinkt hast noch mal folgendes an:
Zitatanbei mal eine version die ein eigenes fhem modul statt einem shellscript verwendet.

mit
Code: [Auswählen]
define pd PRESENCED
wird ein fhem device angelegt das ein mal das hcitool öffnet und kontinuierlich im hintergunrd ausliest. alle gefundenen mac adressen werden mit timstamp im {helper}->{DEVICES} abgelegt und sind mit list sichtbar.

dieses PRESENCED device muss es nur ein mal geben. im prinzip könnte man vermutlich statt dem lokalen hcitool auch eines per ssh auf einem anderen rechner starten.

im modifizierten PRESENCE modul kann man jetzt mit
Code: [Auswählen]
define <device> PRESENCE local-PRESENCED <mac>
ein zugehöriges PRESENCE device definieren. dieses schaut in den normal angegeben intervallen im PRESENCED nach ob es das device gibt und setzt es auf present wenn der zugehörige timestamp nicht älter als das presence intervall ist

der name PRESENCED ist nicht besonders gut. in einer eventuellen endgültigen version könnte statt dem PRESENCED modul das ganze in den presenced integriert werden.

hcitoll lescan wird ohne die --duplicates option verwendet.

gruss
  andre


Oder aber mein Shellskript, das könnte man modifizieren... Statt hcitool lescan, muss du dann halt den Befehl eingeben, den du eingibst um deine Ausgabe zu bekommen....
Und statt der XX:XX:XX:XX:XX:XX halt deine Mac-Adresse(n) und die entsprechenden Dummys anlegen. Entweder rufst du das Skript als at auf, oder als cronjob.


Zitat
#!/bin/bash
#Lukas Tag: XX:XX:XX:XX:XX:XX
#Maria Tag: XX:XX:XX:XX:XX:XX
#Guest Tag: XX:XX:XX:XX:XX:XX
hcitool lescan > /tmp/res.txt & sleep 50
pkill --signal SIGINT hcitool
sleep 1

lukas=$(grep -c XX:XX:XX:XX:XX:XX /tmp/res.txt)
if [ $lukas -gt 0 ]; then
        perl /opt/fhem/fhem.pl 7072 "set LukasDummy present"
else
        perl /opt/fhemfhem.pl 7072 "set LukasDummy absent"
fi

maria=$(grep -c XX:XX:XX:XX:XX:XX /tmp/res.txt)
if [ $maria -gt 0 ]; then
        perl /opt/fhem/fhem.pl 7072 "set MariaDummy present"
else
        perl /opt/fhem/fhem.pl 7072 "set MariaDummy absent"
fi

guest=$(grep -c XX:XX:XX:XX:XX:XX /tmp/res.txt)
if [ $guest -gt 0 ]; then
        perl /opt/fhem/fhem.pl 7072 "set GuestDummy present"
else
        perl /opt/fhem/fhem.pl 7072 "set GuestDummy absent"
fi

rm /tmp/res.txt
# Raspberry Pi
# Homematic, Z-Wave
# HUE, Tradfri
# Harmony
# ESP8266  Basteleien per MQTT

DJAlex

Ok,

Ich bin mir nicht sicher ob ochs verstanden habe.

Prinzipiell wäre mir ein Modul lieber als ein Script. Ich schau mal das ich des ausm Forum lade und ob ich das hinbekomme. Immens versteh ich da eher Bahnhof.