Hi - wenn ich "Geofency" eingebe kommt als erstes "GPSPlus Work..." und als zweites "Geofency Zeierfassung" welches ist da nun das richtige!?!?Mike1509 hat geschrieben: ↑Fr 17. Jul 2020, 14:49Nachdem Locative bei meiner Frau schon seit 2 Jahren nicht mehr funktioniert hat, ist die Alternative für IOS "Geofency".
Ist aber etwas mühsam, da dort insbesondere nach App-Updates kein Geofence ausgelöst wird und das Ganze erst nach einem manuellen Start der App wieder normal funktioniert. Und da Apple ja nicht zulässt, dass man automatische Updates für einzelne Apps deaktiviert, muss man da halt immer hinterher sein.
lg MMichael
Empfehlung für Geofencing App für Andriod
ITL1000 für Hoftor und Garagentore, ITDM250 + ITL230 + CRM für Beleuchtung, ITT1500 + ITS + YAW8500 + ITW852 als Sender, Sonos One und Sonos 1
Keine Ahnung, bei mir kommt da nur 1 Resultat. Es ist Geofency Zeiterfassung. Einer der Zwecke der App ist offenbar, dass man bei betreten verlassen des Geofence eine automatische Zeiterfassung erstellen lassen kann. Aber HTTP Get Befehle gehen eben auch.
Ich habe bei mir auch die Anwesenheitserkennung über den Weg mit der Fritzbox, wo abgefragt wird welche Geräte im WLAN angemeldet sind gewählt. Für die Abfrage läuft alle 10 Minuten ein php-Script auf meinem NAS. Funktioniert prima.
Der Nachteil für mich ist allerdings, dass die LED vom LMAir dann auch alle 10 Minuten kurz rot aufblinkt, also jedesmal dann wenn das Script die Marker setzt. Da der LMAir bei mir unter dem TV platziert ist, stört es doch ein wenig.
In der ursprünglichen Lösung wurde ja vorher abgefragt, welche Werte in der params.xml gesetzt sind. Aber ich meine hier gelesen zu haben, dass es die nicht mehr gibt. Ist das korrekt so?
Mein Script setzt direkt die Marker, es wird keine Szene aufgerufen. Wie könnte ich es lösen, dass die Werte wirklich nur noch gesetzt werden, wenn sie sich ändern, damit der LMAir nur noch dann blinkt? Die Option "LED immer aus" ist aktiviert, hat darauf aber keinen Einfluss.
Der Nachteil für mich ist allerdings, dass die LED vom LMAir dann auch alle 10 Minuten kurz rot aufblinkt, also jedesmal dann wenn das Script die Marker setzt. Da der LMAir bei mir unter dem TV platziert ist, stört es doch ein wenig.
In der ursprünglichen Lösung wurde ja vorher abgefragt, welche Werte in der params.xml gesetzt sind. Aber ich meine hier gelesen zu haben, dass es die nicht mehr gibt. Ist das korrekt so?
Mein Script setzt direkt die Marker, es wird keine Szene aufgerufen. Wie könnte ich es lösen, dass die Werte wirklich nur noch gesetzt werden, wenn sie sich ändern, damit der LMAir nur noch dann blinkt? Die Option "LED immer aus" ist aktiviert, hat darauf aber keinen Einfluss.
Das hört sich sehr interessant an.Wahl-HHer hat geschrieben: ↑Do 8. Okt 2020, 23:07Ich habe bei mir auch die Anwesenheitserkennung über den Weg mit der Fritzbox, wo abgefragt wird welche Geräte im WLAN angemeldet sind gewählt. Für die Abfrage läuft alle 10 Minuten ein php-Script auf meinem NAS. Funktioniert prima.
Der Nachteil für mich ist allerdings, dass die LED vom LMAir dann auch alle 10 Minuten kurz rot aufblinkt, also jedesmal dann wenn das Script die Marker setzt. Da der LMAir bei mir unter dem TV platziert ist, stört es doch ein wenig.
In der ursprünglichen Lösung wurde ja vorher abgefragt, welche Werte in der params.xml gesetzt sind. Aber ich meine hier gelesen zu haben, dass es die nicht mehr gibt. Ist das korrekt so?
Mein Script setzt direkt die Marker, es wird keine Szene aufgerufen. Wie könnte ich es lösen, dass die Werte wirklich nur noch gesetzt werden, wenn sie sich ändern, damit der LMAir nur noch dann blinkt? Die Option "LED immer aus" ist aktiviert, hat darauf aber keinen Einfluss.
Kannst du mir das Skript mal zukommen lassen?
Indem Du eben doch eine Szene auslöst anstatt den Marker direkt zu setzen. Die Szene wiederum nur dann ausführen, wenn der Marker inaktiv ist. Genau dafür sind die Marker ja da!
Weil die LED ja trotz der Einstellung noch Warnungen signalisiert, wenn z.B. die Verbindung zum WiFi weg ist.
Hier das angepasste Script für alle die es interessiert. Original stammt von schlaue-huette.de.
Code: Alles auswählen
<?php
// Anwesenheitserkennung:
// Based on work of https://www.schlaue-huette.de
$fritzbox_ip = "fritz.box";
$tr64_port = "49000";
$Host1 = 'Name1'; //Dies muss der exakte Hostname sein, der in der FritzBox aufgeführt wird. Alternativ kann man auch IP oder MAC Adresse nutzen. Dazu muss jedoch die SOAP Abfrage geändert werden.
$Host2 = 'Name2'; //Dies muss der exakte Hostname sein, der in der FritzBox aufgeführt wird. Alternativ kann man auch IP oder MAC Adresse nutzen. Dazu muss jedoch die SOAP Abfrage geändert werden.
$Lightmanager_ip = 'xxx.xxx.xxx.xxx';
$host1_marker_nr = 4; // Die Marker-Nr -1. Also bei Marker1 wäre es hier 0.
$host2_marker_nr = 5; // Die Marker-Nr -1. Also bei Marker1 wäre es hier 0.
$abwesend_marker_nr = 0; // Die Marker-Nr -1. Also bei Marker1 wäre es hier 0.
// SOAP Abfrage:
$client = new SoapClient(null,array( 'location' => "http://" . $fritzbox_ip . ":" . $tr64_port . "/upnp/control/hosts",
'uri' => "urn:dslforum-org:service:Hosts:1",
'soapaction' => "urn:dslforum-org:service:Hosts:1#GetSpecificHostEntry",
'noroot' => False
));
$NumberOfHosts = $client->GetHostNumberOfEntries();
// Abfrage welcher Host online ist:
if (!(is_soap_fault($NumberOfHosts)))
{
for ($i=0;$i<$NumberOfHosts;$i++)
{
$Host = $client->GetGenericHostEntry(new SoapParam($i,'NewIndex'));
if ($Host['NewHostName'] == $Host1)
{
if(($Host['NewActive'] == 1))
{
$Host1anwesend = 1;
}
else
{
$Host1anwesend = 0;
}
}
}
}
if (!(is_soap_fault($NumberOfHosts)))
{
for ($i=0;$i<$NumberOfHosts;$i++)
{
$Host = $client->GetGenericHostEntry(new SoapParam($i,'NewIndex'));
if ($Host['NewHostName'] == $Host2)
{
if(($Host['NewActive'] == 1))
{
$Host2anwesend = 1;
}
else
{
$Host2anwesend = 0;
}
}
}
}
// Wenn Host1 anwesend ist, wird die Variable host1_marker_set auf 1 gesetzt, ansonsten auf 0.
if ($Host1anwesend == 1 )
{
$host1_marker_set = 1;
}
else
{
$host1_marker_set = 0;
}
// Wenn Host1 angemeldet ist, wird der Marker im Lightmanager auf ein setzt, sonst auf aus.
if ($Host1anwesend == '1')
{
$host1_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?cmd=typ,smk,". $host1_marker_nr . ",". $host1_marker_set);
}
elseif ($host1_marker_set == '0')
{
$host1_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?cmd=typ,smk,". $host1_marker_nr . ",". $host1_marker_set);
}
// Wenn Host2 anwesend ist, wird die Variable host2_marker_set auf 1 gesetzt, ansonsten auf 0.
if ($Host2anwesend == 1 )
{
$host2_marker_set = 1;
}
else
{
$host2_marker_set = 0;
}
// Wenn Host2 angemeldet ist, wird der Marker im Lightmanager auf ein setzt, sonst auf aus.
if ($Host2anwesend == '1')
{
$host2_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?cmd=typ,smk,". $host2_marker_nr . ",". $host2_marker_set);
}
elseif ($host2_marker_set == '0' )
{
$host2_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?cmd=typ,smk,". $host2_marker_nr . ",". $host2_marker_set);
}
// Wenn keiner von beiden angemeldet ist, wird der Marker $abwesend_marker_set auf 1 gesetzt, sonst auf 0.
if ($Host1anwesend == 0 AND $Host2anwesend == 0)
{
$abwesend_marker_set = 1;
}
else
{
$abwesend_marker_set = 0;
}
// Wenn keiner von beiden angemeldet ist wird der Marker $abwesend_marker_nr im Lightmanager auf ein setzt, sonst auf 0.
if ($abwesend_marker_set == '1' )
{
$abwesend_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?cmd=typ,smk," . $abwesend_marker_nr . ",". $abwesend_marker_set);
}
elseif ($abwesend_marker_set == '0')
{
$abwesend_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?cmd=typ,smk,". $abwesend_marker_nr . ",". $abwesend_marker_set);
}
?>
Ich habe es jetzt umgebaut und rufe eine Szene auf die die Marke umschaltet. Zuerst hatte ich nur eine Szene pro Person deren Anwesenheit geprüft werden sollte und darin das Ausschalten das Markers wenn er eingeschaltet ist. Und das Einschalten wenn er ausgeschaltet ist. Das hat aber leider nicht funktioniert.
Dann habe ich je eine Szene für das Ein- und Ausschalten der Marker mit den jeweiligen Bedingen angelegt. Damit funktioniert es jetzt wie gewünscht.
Hier das umgebaute Script:
Durch das verwenden der Szenen konnte ich auch noch folgendes Problem was ich hatte lösen.:
Ich nutze den Lightmanager in Kombination mit der Smarthome-Lösung homee ( mit Enocean und Z-Wave). Da beide Geräte Webhooks/Webrequests senden und darauf reagieren können, hatte ich es hinbekommen, dass beide Geräte den Modus synchronisieren.
Bei homee geht immer nur einer der vier Modi ("zuHause", "Abwesend", "Schlafend" und "Urlaub") zur gleichen Zeit.
Dabei war aber das Problem, immer wenn das Script lief und es wie vorgesehen den Modus auf "zuHause" gesetzt, wenn eines der Smartphones im WLan angemeldet war, dass dann der Modus "Schlafend" wieder überschrieben wurde. Im Modus "Schlafend" ist es bei mir z.B. so konfiguriert, dass die Beleuchtung im Flur bei Bewegungsalarm eines Bewegungsmelders nicht an geht, in den anderen dre Modi aber schon. Im Lightmanager konnte ich es jetzt so einstellen, dass der Modus nur dann auf "zuHause" gestellt wird, wenn der Marker "Schlafend" aus ist.
Jetzt bin ich soweit, dass schonmal 3 der 4 Modi automatisch aktiviert werden.
Dann habe ich je eine Szene für das Ein- und Ausschalten der Marker mit den jeweiligen Bedingen angelegt. Damit funktioniert es jetzt wie gewünscht.
Hier das umgebaute Script:
Code: Alles auswählen
<?php
// Anwesenheitserkennung:
// Based on work of https://www.schlaue-huette.de
$fritzbox_ip = "fritz.box";
$tr64_port = "49000";
$Lightmanager_ip = "lmair.fritz.box";//Dies muss der exakte Hostname wie er in der FritzBox aufgeführt wird sein, gefolgt von "fritz.box" (Standarddomäne der Fritzbox).
$Host1 = 'Name1'; //Dies muss der exakte Hostname sein, der in der FritzBox aufgeführt wird. Alternativ kann man auch IP oder MAC Adresse nutzen. Dazu muss jedoch die SOAP Abfrage geändert werden.
$Host2 = 'Name2'; //Dies muss der exakte Hostname sein, der in der FritzBox aufgeführt wird. Alternativ kann man auch IP oder MAC Adresse nutzen. Dazu muss jedoch die SOAP Abfrage geändert werden.
$host1_scene_on_nr = 22; // Die Szenen Nummer bzw. der Key lassen sich ganz einfach unter http://ipdeslightmanagers/config.xml herausfinden
$host1_scene_off_nr = 23; // Die Szenen Nummer bzw. der Key lassen sich ganz einfach unter http://ipdeslightmanagers/config.xml herausfinden
$host2_scene_on_nr = 24; // Die Szenen Nummer bzw. der Key lassen sich ganz einfach unter http://ipdeslightmanagers/config.xml herausfinden
$host2_scene_off_nr = 25; // Die Szenen Nummer bzw. der Key lassen sich ganz einfach unter http://ipdeslightmanagers/config.xml herausfinden
$zuHause_scene_nr = 19;
$Abwesend_scene_nr = 26;
// SOAP Abfrage:
$client = new SoapClient(null,array( 'location' => "http://" . $fritzbox_ip . ":" . $tr64_port . "/upnp/control/hosts",
'uri' => "urn:dslforum-org:service:Hosts:1",
'soapaction' => "urn:dslforum-org:service:Hosts:1#GetSpecificHostEntry",
'noroot' => False
));
$NumberOfHosts = $client->GetHostNumberOfEntries();
// Prüfung ob Host1 anwesend ist.
if (!(is_soap_fault($NumberOfHosts)))
{
for ($i=0;$i<$NumberOfHosts;$i++)
{
$Host = $client->GetGenericHostEntry(new SoapParam($i,'NewIndex'));
if ($Host['NewHostName'] == $Host1)
{
if(($Host['NewActive'] == 1))
{
$Host1anwesend = 1;
}
else
{
$Host1anwesend = 0;
}
}
}
}
// Prüfung ob Host2 anwesend ist.
if (!(is_soap_fault($NumberOfHosts)))
{
for ($i=0;$i<$NumberOfHosts;$i++)
{
$Host = $client->GetGenericHostEntry(new SoapParam($i,'NewIndex'));
if ($Host['NewHostName'] == $Host2)
{
if(($Host['NewActive'] == 1))
{
$Host2anwesend = 1;
}
else
{
$Host2anwesend = 0;
}
}
}
}
// Wenn Host1 anwesend ist, wird die Variable host2_marker_set auf 1 gesetzt, ansonsten auf 0.
if ($Host1anwesend == '1')
{
$host1_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?scene=" . $host1_scene_on_nr ); // Hinter dem scene= einfach die Nummer der Szene angeben, die den Marker auf an setzt.
}
else
{
$host1_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?scene=" . $host1_scene_off_nr ); // Hinter dem scene= einfach die Nummer der Szene angeben, die den Marker auf aus setzt.
}
// Wenn Host2 anwesend ist, wird die Variable host2_marker_set auf 1 gesetzt, ansonsten auf 0.
if ($Host2anwesend == '1')
{
$host2_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?scene=" . $host2_scene_on_nr ); // Hinter dem scene= einfach die Nummer der Szene angeben, die den Marker auf an setzt.
}
else
{
$host2_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?scene=" . $host2_scene_off_nr ); // Hinter dem scene= einfach die Nummer der Szene angeben, die den Marker auf aus setzt.
}
if ($Host1anwesend == 0 AND $Host2anwesend == 0)
{
$abwesend_marker_set = 1;
}
else
{
$abwesend_marker_set = 0;
}
if ($abwesend_marker_set == '1' )
{
$abwesend_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?scene=". $Abwesend_scene_nr ) ;
}
elseif ($abwesend_marker_set == '0')
{
$abwesend_marker = file_get_contents("http://" . $Lightmanager_ip . "/control?scene=". $zuHause_scene_nr );
}
?>
Ich nutze den Lightmanager in Kombination mit der Smarthome-Lösung homee ( mit Enocean und Z-Wave). Da beide Geräte Webhooks/Webrequests senden und darauf reagieren können, hatte ich es hinbekommen, dass beide Geräte den Modus synchronisieren.
Bei homee geht immer nur einer der vier Modi ("zuHause", "Abwesend", "Schlafend" und "Urlaub") zur gleichen Zeit.
Dabei war aber das Problem, immer wenn das Script lief und es wie vorgesehen den Modus auf "zuHause" gesetzt, wenn eines der Smartphones im WLan angemeldet war, dass dann der Modus "Schlafend" wieder überschrieben wurde. Im Modus "Schlafend" ist es bei mir z.B. so konfiguriert, dass die Beleuchtung im Flur bei Bewegungsalarm eines Bewegungsmelders nicht an geht, in den anderen dre Modi aber schon. Im Lightmanager konnte ich es jetzt so einstellen, dass der Modus nur dann auf "zuHause" gestellt wird, wenn der Marker "Schlafend" aus ist.
Jetzt bin ich soweit, dass schonmal 3 der 4 Modi automatisch aktiviert werden.
Hallo,
stelle mich gerade etwas doof an. Denke aber hier kann mir jemand sagen was ich falsch mache.
Probiere gerade auf iOS mit der APP Locative eine Anwesenheitserkennung nachzustellen. Leider habe ich da irgendwo etwas übersehen.
APP installiert, unter HTTP Push (GET) http://XXX.XXX.XXX.XX/control... (der Befehl aus dem Air) eingegeben und HTTP Basis Authentifizierung auf AUS.
Danke schon mal...
stelle mich gerade etwas doof an. Denke aber hier kann mir jemand sagen was ich falsch mache.
Probiere gerade auf iOS mit der APP Locative eine Anwesenheitserkennung nachzustellen. Leider habe ich da irgendwo etwas übersehen.
APP installiert, unter HTTP Push (GET) http://XXX.XXX.XXX.XX/control... (der Befehl aus dem Air) eingegeben und HTTP Basis Authentifizierung auf AUS.
Danke schon mal...