Anwesenheit per WLAN ohne Programmierung

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Ratzinger
Beiträge: 161
Registriert: 03.03.2013, 23:26
Wohnort: Villingen-Schwenningen
Kontaktdaten:

Anwesenheit per WLAN ohne Programmierung

Beitrag von Ratzinger » 16.11.2013, 20:14

Ich habe bisher einige Anwesenheitsscipte probiert. Manchmal waren Programmierkenntnisse erforderlich, manchmal schaltete meine Homematic einfach alle Lichter aus und ich saß im Dunkeln, weil sie dachte, ich sei gegangen.

alexderb hat in seinem Beitrag einen interessanten Ansatz, den ich etwas weiter gedacht habe, weil bei mir ständig alle Lichter ausgingen, da ab und zu mal ein Ping fehlschlägt. Außerdem hat mir nicht gefallen, dass ich ständig eine bestimmte App laufen lassen muss. Daher diese Lösung:

Vorteile gegenüber einiger anderer Scripts:
[*] Keine Programmierkenntnisse erforderlich
[*] Sichere Schaltung
[*] Keine Installation einer App erforderlich
[*] Kostenlos ;)

Vorraussetzungen:
[*] Cux Daemon
[*] Variable 'Dominik' (Werteliste mit 'Anwesend', 'Abwesend Stufe 1', 'Abwesend Stufe 2' und 'Abwesend Stufe 3')
[*] Variable 'Weitere Person' (nach dem Muster von Variable 'Dominik'

Vorgehensweise:
[*] In Android-Geräten WLAN auf 'immer an' stellen (Einstellungen - WLAN - Erweitert - 'WLAN immer an' o.ä.)
[*] Im CuxD neues Gerät anlegen (Typ: 'System', Funktion: 'Ping/Alive', Seriennummer: beliebig (ich habe '2'), Name: 'Handy Dominik')
[*] Für jede weitere Person nach diesem Muster neues Gerät anlegen
[*] In Geräte - 'Handy Dominik' - Einstellungen diese wie folgt ändern: PING|IP_DNS_ADR: IP-Adresse des Handys, PING|PORT: 0, PING|INTERVAL_ALIVE: Ich habe hier 30 gesetzt, PING|MAX_ENTRY: 0. Für alle Handys die Einstellungen hier anlegen
[*] Programm anlegen 'Anwesend':
Geräteauswahl 'Handy Dominik' ALIVE = TRUE "bei Änderung auslösen", ODER
Geräteauswahl 'Anderes Handy' ALIVE = TRUE "bei Änderung auslösen", DANN
Systemzustand ANWESENHEIT = ANWESEND
Systemzustand DOMINIK = Anwesend

SONST WENN

Geräteauswahl 'Handy Dominik' ALIVE = FALSE "bei Änderung auslösen", DANN
Systemzustand DOMINIK = ABWESEND STUFE 1 nach 20 Sekunden

SONST WENN

Geräteauswahl 'Anderes Handy' ALIVE = FALSE "bei Änderung auslösen", DANN
Systemzustand ANDERESHANDY = ABWESEND STUFE 1

[*] Programm 'Dominik abwesend 1'
Systemvariable 'Dominik' = "Abwesend Stufe 1" "bei Änderung auslösen", DANN
Systemzustand 'Dominik' = "Abwesend Stufe 2" nach 20 Sekunden

SONST WENN
Geräteauswahl 'Handy Dominik' ALIVE = TRUE "nur prüfen", ODER
Systemvariable 'Dominik' = "Abwesend Stufe 1" "bei Änderung auslösen", DANN
Systemzustand ANWESENHEIT = ANWESEND
Systemzustand DOMINIK = "Anwesend"

[*] Programm 'Dominik abwesend 2'
Systemvariable 'Dominik' = "Abwesend Stufe 2" "bei Änderung auslösen", DANN
Systemzustand 'Dominik anwesend' = "Abwesend Stufe 3" nach 20 Sekunden

SONST WENN
Geräteauswahl 'Handy Dominik' ALIVE = TRUE "nur prüfen", ODER
Systemvariable 'Dominik' = "Abwesend Stufe 2" "bei Änderung auslösen", DANN
Systemzustand ANWESENHEIT = ANWESEND
Systemzustand DOMINIK = "Anwesend"

[*] Programm 'Dominik abwesend 3'
Systemvariable 'Dominik' = "Abwesend Stufe 3" "bei Änderung auslösen", DANN
Systemzustand 'Anwesenheit' = "Abwesend" nach 20 Sekunden

SONST WENN
Geräteauswahl 'Handy Dominik' ALIVE = TRUE "nur prüfen", ODER
Systemvariable 'Dominik' = "Abwesend Stufe 3" "bei Änderung auslösen", DANN
Systemzustand ANWESENHEIT = ANWESEND
Systemzustand DOMINIK = "Anwesend"

[*] Diese Programme müssen für alle Benutzer eingerichtet werden. Einmalig zwar ein großer Aufwand, dafür aber wirksam. Nochmal kurz die Erläuterung, falls ich oben einen Fehler gemacht habe, weil ich das schnell aus dem Kopf runtergeschrieben habe:

Wenn ein Handy nicht mehr anpingbar ist, wird eine Variable auf Stufe 1 gesetzt. Nach 20 Sekunden findet eine neue Prüfung statt. Ist das Handy dann wieder ansprechbar, wird die Variable wieder zurück auf Anwesend gesetzt. Falls nicht, tritt die Stufe 2 ein. Nach 20 Sekunden findet eine neue Prüfung statt. Ist das Handy dann wieder ansprechbar, wird die Variable wieder zurück auf Anwesend gesetzt. Falls nicht, tritt die Stufe 3 ein. Ist das Handy dann wieder ansprechbar, gibt es die letzte Möglichkeit, dass der Status wieder auf Anwesend zurückgesetzt wird. Ist es immernoch nicht ansprechbar, so wird die Variable "Anwesenheit" auf "nicht anwesend" gesetzt. So wird dreimal geprüft, ob Euer Handy angepingt werden kann. Eine versehentliche Abschaltung aller Geräte sollte somit vermieden werden.

Vielleicht könnt Ihr mit diesem Post etwas anfangen. Er soll lediglich als Anregung dienen.

Wer dieses Feature gerne nutzen würde, aber keine Lust hat, dieses selbst einzurichten, dem stehe ich gerne mit Rat und Tat als Agentur zur Seite.
136 Kanäle in 48 Geräten: (seit 20.02.2013):

3x HM-Sec-SC, 4x HM-Sec-MDIR, 3x HM-Sec-SD, 18x HM-LC-Sw1-Pl-2, 2x HM-Sen-Wa-Od, 1x HM-RC-12, 1x HM-RC-12-B, 2x HM-OU-CFM-Pl, 2x HM-CC-RT-DN, 5x HM-PB-2-WM55, 1x HM-Sec-WDS, 1x HM-LC-Dim1T-FM, 2x HM-CC-TC, 1x HM-Sec-SC-2

(Stand 04.11.2014)

Die erste twitternde Wohnung aus DE: http://twitter.com/dominikswohnung (vorübergehend offline)

fire0112
Beiträge: 38
Registriert: 11.11.2012, 23:52

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von fire0112 » 17.11.2013, 19:05

Hallo,

das wäre eine gute und schnelle Alternative, hab es mal ausprobiert doch es will nicht richtig laufen. Steckt da noch ein Fehler drin?

Vielleicht findet sich ja das Problem.

Gruß an Alle

Rainer

CaveCanem
Beiträge: 10
Registriert: 20.11.2013, 10:54

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von CaveCanem » 20.11.2013, 11:03

Hi,

vielen Dank für die Idee, finde ich deutlich besser als über Skripte, da mann hier über die grafische Oberfläche die Funktion einfach programmieren kann. So toll ist der Skripteditor im WebUI ja auch nicht.

Ich habe es auch so umgesetzt, allerdings drei Sachen leicht geändert:

Die Funktion "Ping/Alive" bietet mir mehrere Kanäle an, deshalb habe ich nur ein "Gerät" über CUxD erstellt und nutze die Kanäle für die einzelnen Endgeräte, das Gerät hat nur den Namen Abwesenheit bekommen, während ich den Kanälen die Rechner/Handy-Namen verpasst habe.

Ich habe auch nur eine Systemvariable "Abwesenheit" angelegt, diese wird dann wie beschrieben gesetzt, allerdings nur wenn keines der Endgeräte zu erreichen ist, spart auch Variablen und wird dadurch übersichtlicher.

Als letztes habe ich noch folgende Bedingung in dem "sonst wenn" Zweig:
"Systemvariable 'Dominik' = "Abwesend Stufe 1" "bei Änderung auslösen", DANN"
weg gelassen, mir leuchtet nicht so recht ein was damit erreicht werden soll, außerdem glaube ich dass es deshalb manchmal nicht funktionierte.

Benutzeravatar
mike2510
Beiträge: 35
Registriert: 30.09.2013, 06:54

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von mike2510 » 27.11.2013, 00:03

Hallo,

ich habe das Problem, das Gerät über CUxD anzulegen. In der CCu2 sieht das dann immer so aus.

Name Kanal Parameter
Z-Ping:1 Ch.: 1
SWITCH|ACTIVE
SWITCH|IP_DNS_ADR
SWITCH|PORT (0-65535)
SWITCH|INTERVAL_ALIVE s (15-3600)
SWITCH|INTERVAL_FAIL s (15-3600)
SWITCH|MAX_RETRY (0-5)

Gruß Michael

Nebulak
Beiträge: 33
Registriert: 10.11.2013, 18:40

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von Nebulak » 27.11.2013, 14:17

Genau das was ich suche, leider habe ich das selbe Problem.

Ich habe CUxD auf meine CCU2 installiert und das beschriebene Gerät erstellt

https://www.dropbox.com/s/rd3wle5un10qddv/01.jpg

Das hier sind die Optionen die allerdings nicht mit der Beschreibung übereinstimmen

https://www.dropbox.com/s/fm0fzjbagke3086/02.jpg

Dementsprechend kann ich auch kein passendes Programm erstellen

https://www.dropbox.com/s/uvvlzk2fp7uq8zd/03.jpg

Da man beim Geräte erstellen mit CUxD nichts weiter auswählen kann ist mir unklar wo der Fehler liegt....

Fugazzy
Beiträge: 254
Registriert: 11.09.2011, 21:00
Wohnort: Köln

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von Fugazzy » 30.11.2013, 17:32

Hallo, ich experimentiere nun auch mal mit dieser Lösung,
mir sind folgende Dinge aufgefallen:

Im 1. Programm 'Anwesend':
Ist da folgende Zeile nicht zuviel?

Code: Alles auswählen

Systemzustand DOMINIK = Anwesend

Code: Alles auswählen

SONST WENN
Geräteauswahl 'Anderes Handy' ALIVE = FALSE "bei Änderung auslösen", DANN
Systemzustand ANDERESHANDY = ABWESEND STUFE 1
da muss noch die 20 Sec Verzögerung dazu, oder?

generell in allen Programmen:

Code: Alles auswählen

SONST WENN
Geräteauswahl 'Handy Dominik' ALIVE = TRUE "nur prüfen", ODER
Systemvariable 'Dominik' = "Abwesend Stufe 1" "bei Änderung auslösen", DANN
Systemzustand ANWESENHEIT = ANWESEND
Systemzustand DOMINIK = "Anwesend"
die folgende Zeile weg lassen, oder?

Code: Alles auswählen

Systemvariable 'Dominik' = "Abwesend Stufe 1" "bei Änderung auslösen", DANN
für die Betrachtung "Abwesend"
fehlt die Einbeziehung der ggf. weiteren Handys, oder?

das Ganze ist Muli-Handy, aber nicht Mulit-User fähig, oder ?

ayngush
Beiträge: 322
Registriert: 02.02.2012, 12:05

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von ayngush » 02.12.2013, 10:13

Hallo,

ein guter Ansatz, jedoch kann ich mit der Handy-Anpingerei von zwei unterschiedlichen Erfahrungen berichten:

Ein Kumpel hat ein Samsung Galaxy S1 mit Cyanogenmod drauf, da funktioniert das problemlos - das Handy antwortet "durchgehend" auf PING-Anfragen.

Ich habe ein Samsung Galaxy S3 mit dem normalen Samsung ROM drauf, da funktioniert das nicht, da das WLAN Modul trotz der Option "dauerhaft eingeschaltet bleiben" und diversen Tricks in Systemmenüs den Stromsparmodus dafür auszuschalten, immer wieder nach 30 Minuten des "nicht Anfassens" die WLAN Verbindung in einen Status versetzt hat, in dem das WLAN-Modul nicht mehr auf ICMP-Echo-Anfragen antwortet - an dem Umstand ist einfach nichts zu ändern, außer eventuell mir einen anderen ROM, da habe ich aber ehrlich gesagt keine Lust mehr zu gehabt.

Zudem gefällt mir der Umstand nicht, dass wenn ich das Handy mal ausschalten muss oder die WLAN Verbindung ausfällt (AP defekt oder hängt etc.) oder das Handy kaputt geht oder Sonst etwas im Netzwerk los ist, die CCU an dieser doch recht sensiblen Stelle "macht, was sie für richtig hält, was aber zu dem Zeitpunkt falsch ist".

Deswegen habe ich meine Lösung komplett ohne CCU-Eingriff vorgenommen, nur mittels Tasker und der Fritz-Box-VPN-Verbindung.
In Tasker selber Prüfe ich auch auf die Verbindung mit meinen WLAN-Zuhause. Wird das verlassen, wartet der Task zunächst 10 Minunten und dann baut das Handy die VPN-Verbindung auf, setzt die Abwesenheit-Variable (oder bei mehreren Personen halt eine Personen-Variable), prüft auf Erfolg, sonst wird der Vorgang wiederholt, wenn Erfolgreich "abgemeldet", dann lasse ich meine Status-LED ein wenig blau leuchten und baue die VPN-Verbindung wieder ab.

Beim Anmelden wird zunächst der Task Abmelden gestoppt (falls ich innerhalb von 10 Minuten wieder in mein WLAN zurückkomme - Keller etc.) und dann die Anmeldung (ohne VPN, da ich zu dem Zeitpunkt ja in meinen WLAN bin) vorgenommen.

So sieht das ganze dann in Bildern aus:

Die Profile:
tasker_profil.png
tasker_profil.png (9.34 KiB) 9068 mal betrachtet
Der Status auf dem geprüft wird, in dem Fall das "verlassen" meines WLAN (beim "betreten" ist der Umkehren Haken nicht gesetzt):
tasker_status_abwesend.png
Der Abmelden-Task:
tasker_task_abmelden.png
Der Anmelden-Task:
tasker_task_anmelden.png
tasker_task_anmelden.png (22.89 KiB) 9068 mal betrachtet
Ist aus meiner Sicht etwas sauberer als diese ganze "Pingerei". Die VPN Verbindung baue ich mit VpnCilla auf, da ich mein Handy nicht unbedingt "rooten" möchte - dazu sind die "Intent" Aufrufe da, die ich von der Webseite genommen und angepasst habe: https://sites.google.com/site/mjm4456/v ... automation

Schöne Grüße

abu
Beiträge: 54
Registriert: 14.11.2013, 18:17

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von abu » 02.12.2013, 20:26

Hallo ayngush,

könntest Du Bitte eine kleine Anleitung schreiben wie man das in Tasker zusammen klickt? Oder wenigstens die Richtung? Ist für einen Anfänger schon etwas groß und verschachtelt. Kann man nicht auch eine vpn über meine-homatic.de aufbauen? Und Du setzt direkt eine Variable in der ccu zurück? Das ist gut. :-)

lg

Abu

CaveCanem
Beiträge: 10
Registriert: 20.11.2013, 10:54

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von CaveCanem » 03.12.2013, 07:52

mike2510 hat geschrieben:Hallo,

ich habe das Problem, das Gerät über CUxD anzulegen. In der CCu2 sieht das dann immer so aus.

Name Kanal Parameter
Z-Ping:1 Ch.: 1
SWITCH|ACTIVE
SWITCH|IP_DNS_ADR
SWITCH|PORT (0-65535)
SWITCH|INTERVAL_ALIVE s (15-3600)
SWITCH|INTERVAL_FAIL s (15-3600)
SWITCH|MAX_RETRY (0-5)

Gruß Michael
Ist doch ok, oder?
Bei IP die IP rein, Interval gibt vor wie oft nun angepingt werden soll.
g.png
g.png (14.61 KiB) 8949 mal betrachtet
Ich habe die Logik noch etwas vereinfacht, läuft nun seit einiger Zeit ohne Probleme:
anwesenheit.png
abwesend1.png
abwesend2.png
abwesend3.png

Nebulak
Beiträge: 33
Registriert: 10.11.2013, 18:40

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von Nebulak » 03.12.2013, 18:33

Danke CaveCanem für deine Screenshots die später beim Programm erstellen sicher den meissten helfen.

Aber du solltest deinen ersten Screenshot mit dem vergleichen was du als Zitat gepostet hast.
Denn genau hier liegt das Problem bei mir und den Anderen, bei uns steht dort SWITCH anstelle von PING.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“