Anwesenheit per Bluetooth / Tür öffnen per Handy :-)

So nach vielen testen habe ich endlich eine Lösung gefunden wie man per Bluetooth seine Tür, wenn man davor steht mit vollen Einkaufstüten, automatisch aufschließen kann.

Ich habe erst mit dem PioTek Bundle - 1 Tracker + 1 USB Stick es versucht:

  • zu ungenau, 30 Zeitfenster ist immer noch zu groß…

  • verlieret mehrmals den Kontakt zum Empfänger bei 1m Entfernung…

Dann habe ich es mit dem IPS-LAN-T-868 LAN Transceiver + IPS-AKM-868 Repeater + PS-TRACKER-868 xOVO versucht:

  • zu ungenau, 30 Zeitfenster ist immer noch zu groß…

  • Repeater näher an das Hoftor stellen brachte keine Verbesserung…

Also dachte ich mir es muss doch besser gehen:

Am Mac nutze ich schon seit Monaten das Tool TokenLock, das sperrt mir den Mac sobald mein iPhone ausser Bluetooth-Reichweite ist und entsperrt den Mac sobald ich wieder in der BT-Reichweite bin. Das funktioniert perfekt und zuverlässig.

Also begann ich nach eine Alternative für Windoff zu suchen und wurde fündig:

BTProx

Dieses Tool macht genau was ich suchte:

Wenn das BT Gerät in Reichweite ist löst es ein Aktion aus, z.B. eine CMD Datei und wenn das BT Gerät außerhalb der BT Reichweite ist, wird eine andere Aktion ausgeführt z.B. eine 2te CMD Datei.

Also es Funktioniert so:

In IPS:

Lege eine Kategorie an z.B. Anwesenheit per Bluetooth

Dort 2 Bootleen-Variable, Anwesend, nicht Anwesend.

Dann erstellt man 2 CMD-Dateien:

  1. CMD Datei : aus_reichweite.cmd:
C:\Users\drapple\Desktop\IPSCommand.exe -host 192.168.0.5 -run "20098"
  1. CMD Datei : in_reichweite.cmd
C:\Users\drapple\Desktop\IPSCommand.exe -host ipadresse vom IPS-Server -run "42218"

Eklränung:

C:\Users\drapple\Desktop\IPSCommand.exe ist der Pfad zur IPSCommand.exe (ist in Zip dabei…)

20098 = Die ID vom Script das gestarten wird, wenn es das BT Gerät auser Reichweite ist.

42218 = Die ID vom Script das gestarten wird, wenn es das BT Gerät in Reichweite ist.

Jetzt brauchen wir noch 2 Scripte, 1 für in Reichweite und eins für auser Reichweite:

In Reichweite:

<?
$text=24734 /*[Google Latitude\Anwesenheit per Bluetooth\Wann war ich das letze mal Anwesend ?]*/  ;
$awh=getvalue(15675 /*[Google Latitude\Anwesenheit per Bluetooth\Anwesent ?]*/ );

$bm= 25098 /*[Klingel und Türöffner\Hoftor Tür\Tür offen gewesen :]*/  ;
$Var= IPS_GetVariable($bm);
$Zeit= date("U", time() - $Var['VariableUpdated']);
$Tage      = intval($Zeit/86400);
$Zeit     -= $Tage*86400;
$Stunden   = intval($Zeit/3600);
$Zeit     -= $Stunden*3600;
$Minuten   = intval($Zeit/60);

$Tage2=$Tage*24;
$Tage2=$Tage2*60;
$Stunden2=$Stunden*60;
$Minuten2=$Tage2+$Stunden2+$Minuten;

//****************Bewegungsmelder******************************
$lb=GetValue (18704 /*[Bewegungsmelder\Bewegungsmelder\Letzte Bewegung war im]*/  );
$lb1 = substr ($lb, 0, 10);

//***************Aktion *********************************

If (($lb1=="Aussenflur") and ($awh ==false))

{
setvalue(15675 /*[Google Latitude\Anwesenheit per Bluetooth\Anwesent ?]*/ ,true);
setvalue(29601 /*[Google Latitude\Anwesenheit per Bluetooth\Bin ich abwesend ?]*/ , false);

//***********************Türen aufschließen ***************************
Hier die Aktion wo ausgelöst werden soll !

}
?>

Auser Reichweite:

<?

$bm= 14870 /*[Klingel und Türöffner\Hoftor Tür\War die Tür die letzte Minute geöffnet ?]*/ ;
$Var= IPS_GetVariable($bm);
$Zeit= date("U", time() - $Var['VariableUpdated']);
$Tage      = intval($Zeit/86400);
$Zeit     -= $Tage*86400;
$Stunden   = intval($Zeit/3600);
$Zeit     -= $Stunden*3600;
$Minuten   = intval($Zeit/60);

$Tage2=$Tage*24;
$Tage2=$Tage2*60;
$Stunden2=$Stunden*60;
$Minuten2=$Tage2+$Stunden2+$Minuten;



$bm3= 15675 /*[Google Latitude\Anwesenheit per Bluetooth\Anwesent ?]*/   ;
$Var3= IPS_GetVariable($bm3);
$Zeit3= date("U", time() - $Var3['VariableUpdated']);
$Tage3      = intval($Zeit3/86400);
$Zeit3     -= $Tage3*86400;
$Stunden3   = intval($Zeit3/3600);
$Zeit3     -= $Stunden3*3600;
$Minuten3   = intval($Zeit3/60);



//****************Bewegungsmelder******************************
$lb=GetValue (18704 /*[Bewegungsmelder\Bewegungsmelder\Letzte Bewegung war im]*/  );
$lb1 = substr ($lb, 0, 10);


//***************Aktion *********************************
If (($lb1=="Aussenflur") and ($Minuten2 <1) and ($Minuten3 >1))
{
setvalue(29601 /*[Google Latitude\Anwesenheit per Bluetooth\Bin ich abwesend ?]*/ , true);
setvalue(15675 /*[Google Latitude\Anwesenheit per Bluetooth\Anwesent ?]*/ ,false);
}
?>

Zur Info:

Da ich einen großen Hof habe, und ein Hoftor, musste ich den BT Dongle an das Hoftor bauen, und da ich ja nicht alleine bin, habe ich noch einen Tür-Sensor am Hoftor angebracht, damit kann ich eindeutig ermitteln ob ich auch wirklich gegangen bin.
Ist das erledigt muss nur noch BTProx eingerichtet werden:

BTProx starten, verwendetes Gerät auswählen, jetzt sucht er nach BT Geräten, das Gerät muss sichtbar sein ! BT Gerät auswählen.

Wartezeit auf 0 Minuten einstellen.
Sperrbefehl: die auser_reichweite.cmd Datei von vorhin auswählen.
Parameter leer lassen !

Haken setzten bei Nicht Sperren !

Freigabebefehl: die in_reichweite.cmd Datei von vorhin auswählen.
Parameter leer lassen !

dann auf Optionen klicken: Überwachungsintervall: 0 Sekunden

Zum Schluss auf starten und dann auf verstecken fertig.

Man kann es einfach testen in dem man BT am Hnady einschaltet und wieder ausschalten…

Für mich funktioniert diese Lösung perfekt, ich kann jetzt einfach zu meinem Hoftor laufen und wenn ich davorstehe öffnet sich es wie von Geisterhand die Tür (dank HM Key Magic ;-).

Noch ein Tipp:

Da es leider keinen BT over Lan gibt oder sonst was in dieser Richtung musste ich viele USB Server testen, bis ich nach 4 Schrottgeräten endlich einen gefunden hatte der mit BT Dongles klar kommt:

Digitus DN-13020 und als BT Dongle : DLink DBT-122

Andere BT Dongles habe ich nicht getest !

Wenn man ein RJ45 Kabel hat kann man auch einfach zur Verlängerung bei Ebay so was benutzen:

Sucht bei Ebay nach „usb cat5“ damit kann man locker 45m überbrücken.

btprox_1_5_0.zip (697 KB)

Bildschirmfoto 2013-05-20 um 12.17.41.png

Dass es mit deinem BT-Dongle problemlos klappt hat übrigens auch mit Glück zu tun… ich kann nur davon abraten, auf Windows-Kisten nachträglich irgendwelche Bluetooth-Treiber zu installieren. Der einzige unter Windows relativ stabil laufende Stack ist witzigerweise der von Apple. Bei den beiden anderen ist es ein Lotteriespiel, bei dem man mit etwas Pech sein System arg destabilisiert.

Aber wenn es bei euch klappt, Gratulation! Es gibt ja immer auch ein paar Glückspilze. :wink:

Hallo drapple,

Danke. Ich suche schon lange nach einer Alternative für xAPBlue, das bei mir auf W8 nicht mehr läuft.
Leider wird jedoch mit BTProx nur ein Gerät verfolgt und es muss manuell gestartet werden.

Ein paar Probleme habe ich. BTProx sieht das BT Gerät und die Anwesenheit richtig, startet den Befehl jedoch nicht. Hat wohl mit Admin Rechten zu tun. Pfad und Parameter sind richtig. Wenn ich IPSCommand im cmd Fenster starte geht es.
Bei einem der Scripte bekomme ich von IPSCommand nach korrektem Ausführen eine Fehlermeldung. Das Script hat aber keine Fehler. Da ist nur eine Zeile drin.

Gruß,
Zapp

Fehler.png

Leider wird jedoch mit BTProx nur ein Gerät verfolgt und es muss manuell gestartet werden.

Ja es wird nur ein Gerät unterstützt aber du kannst einfach mehrmals das Programm kopieren und dann starten, dann kannst du auch mehrere Geräte verfolgen :wink:

Ich habe BTProx im Autostart, wenn es gestartet ist und versteckt, startet es nach einem Neustart genauso wieder.

Ein paar Probleme habe ich. BTProx sieht das BT Gerät und die Anwesenheit richtig, startet den Befehl jedoch nicht

Ich habe habe IPSCommand nicht direkt in BTProx drin, sondern starte es über eine Batchdatei (CMD) damit sollte besser funktionieren :slight_smile:

BTProx wird bei mir unter Win 7 nicht als Admin oder mit Adminrechten gestartet.

Bei einem der Scripte bekomme ich von IPSCommand nach korrektem Ausführen eine Fehlermeldung. Das Script hat aber keine Fehler. Da ist nur eine Zeile drin.

Poste mal das Script :slight_smile:

OK. Das hatte ich jetzt nicht probiert.

Funktioniert sowohl mit batch Datei als auch direkt mit dem IPSCommand Befehl bei mir nicht. Liegt wohl an W8.

Daran kann es nicht liegen. Das Script ist eindeutig OK. Und die Variable gibt es und ist bool.


<?
SetValue(44010, false);
?>

Gruss,
Zapp

Hm das ist sehr komisch.

Versuche folgendes :

  1. Gerät sichtbar machen und in BTProx nochmal auswählen

  2. BT am Gerät ausschalten

  3. BT am Gerät einschalten und sichtbar machen und schauen ob er es dann erkennt

Eigentlich entdeckt er ja das Gerät richtig. Das wird im Fenster von BTProx unten und als „Balloon Tip“ angezeigt.
Er startet halt nur den Befehl, der in den Settings angegeben wurde, nicht.

Gruß,

Zapp

Hallo,

läuft echt gut…
Wie machst Du das mit dem Verbinden des usb Sticks nach einem Neustart? das geht doch nur manuell da es kein Drucker ist, oder?
Das Symbol zeigt zwar einen Drucker aber in der Auflistung für Autoconnect steht er nicht drin.

Gruss Sebastian

Hi ka musste dafür nichts einstellen er verbindet den uSb Stick immer automatisch sobald die digitus Software gestartet ist

Ne, leider nicht…
benutze den gleichen server aber einen kensington usb stick.
Erkennt er bei Dir den Stick? Bei mir ist ein Druckersysmbol und daneben ein Gedankenstrich. Treiber habe ich keine. Hat Win selbst installiert.

Sebastian

Ja als Drucker siehe Bild

Es steht zwar manuell verbunden nebendran, aber ich verbinde es nie selber

Nach etwas Spielerei läuft das System jetzt stabil.
Allerdings habe ich unter xp immer einen Runtime Error beim Herunterfahren bekommen und man musste das System resetten.
Ich wollte eh Win 7 und jetzt läuft Ips auf Win7. Hier geht alles wie bei Dir beschrieben.
Das einzige was mich noch stört, ist, dass wenn ich BTprox ein zweites Mal laufen lassen um ein zweites Gerät zu monitoren, das ich nach jedem Neustart von Hand wieder gestartet werden muss.

Gruß Sebastian

Hi also du musst den Ordner mit BTProx kopieren, du darfst nicht 2 x das selbe Programm aus dem selben Ordner ausführen…

Hallo,

Ich habe jetzt etwas mit den Einstellungen des Programmstarts gespielt und es läuft in W8. Die Entdeckung meines Telefons ist um einiges schneller als mit XAPBlue und die Lösung ist daher viel effizienter zur Anwesenheitserkennung. Ich muss es noch mit mehreren Geräten probieren und dann wird es optimal.

Ich habe erst gerade herausgefunden, dass eigentlich IPSCommand Toni’s Program ist. Habe wohl in den letzten Jahren einiges im Forum verpasst. Dann muss ich meine Fragen an ihn richten, denn das Programm wirft mir regelmäßig echt komische Fehler raus obwohl es eigentlich richtig läuft.

Gruß

Zapp

Hier der Curl Command für die Aufrufe der beiden IP-Symcon Scipts für An- und Abwesenheit, gedacht für 3.1 Beta Users.

cURL muss installiert sein.

curl.exe -i -X POST -H „Content-Type: application/json“ --user IPSuser:IPSpassword http://ip-symcon-ip:82/api/ --data „{„jsonrpc“: „2.0“, „method“: „IPS_RunScript“, „params“: [12345], „id“: 7}“

Natürlich kann der Syntax für das Starten irgendeines Scripts gebraucht werden.

Gruss!

Tom

Geht viel leichter mit Toni Tools. Stichwort ipscommand

Ich kenne ipscommand und hatte es auch eingesetzt. Nach dem Beta Update war es jedoch nicht fähig username & password weiterzugeben…

die cURL Variante ist davon unabhängig.

Tom

Wieso Passwort. Wenn’s Lokal läuft kannst Du doch direkt eine variable setzen

Bei mir geht ipscommand mit Beta 3.1 nicht mehr.

Gruss Tom

mit 3.1 gehts bei mir auch nicht mehr :frowning: