Anwesenheit per WLAN ohne Programmierung

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

Moderator: Co-Administratoren

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

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von abu » 03.12.2013, 18:52

Hab mal hier weiter geschrieben um aus dem Tipps und Tricks Forum zu kommen. Aber ich habe auch genau dieses Problem mit dem falschen Gerät.
http://homematic-forum.de/forum/viewtop ... 39#p123839

tYREL
Beiträge: 7
Registriert: 12.06.2015, 09:13

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von tYREL » 14.06.2015, 14:35

ayngush hat geschrieben: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
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
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
Hallo zusammen,

hat jemand das erfolgreich ans laufen bekommen. Ich tu mich damit echt schwer, das ganze umzusetzen.
Wenn jemand, der das bereits umgesetzt hat, noch ergänzende Hinweise geben könnte wäre das super.

Oder gibt es mittlerweile andere Ansätze um die Anwesenheit von Smartphones in der CCU zu erkennen?

Danke+Grüße
Tom

Benutzeravatar
AndiN
Beiträge: 2621
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von AndiN » 16.06.2015, 09:47

Hallo,

ich habe das erfolgreich umgesetzt. Einfach und sehr effektiv.

Das Programm arbeitet mit einem Counter. Bin ganz zufrieden mit der Lösung und es ist übersichtlich.

Programm:
bild1.png
Skript:
bild2.png
bild2.png (5.03 KiB) 3459 mal betrachtet
:D

Andi
Andi (Greenhorn)

Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control
- Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links

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

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von abu » 16.06.2015, 16:38

Danke für den Tipp. Das Programm läuft tadellos. [emoji2]

Gesendet von meinem Nexus 6 mit Tapatalk

Benutzeravatar
AndiN
Beiträge: 2621
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von AndiN » 02.11.2015, 18:08

Hallo zusammen,

ich habe es noch weiter vereinfacht.

Programm erstellen und Intervall X zur Prüfung nehmen (ich würde 5 Minuten nehmen)

und dann als Skript:

Code: Alles auswählen

if (dom.GetObject("CUxD.CUX2803001:1.UNREACH_CTR").Value() > 5) {dom.GetObject("SV_Anwesenheit_Andi").State(false)}
else{
if (dom.GetObject("SV_Anwesenheit_Andi").State()==false){
dom.GetObject("SV_Anwesenheit_Andi").State(true);
! Sprachansage
}
}
CUxD.CUX2803001:1 durch Eure CuxD Smartphone Einheit ersetzen ;-)
Ich arbeite mit Systemvariablen und daher anstelle von "SV_Anwesenheit_Andi" Eure Systemvariable eintragen.

Wenn das Smartphone 5x nicht angepingt werden konnte, wird die Systemvariable auf FALSE gesetzt. Ansonsten würde die Systemvariable auf TRUE gesetzt (wenn sie also unter 5 Fehlerversuchen ist und vorher FALSE war).

Da ich mit TTS (Talk to Speech) arbeite habe ich als Auslöser für das Programm noch ODER Schaltzustand ein (bei Änderung) ausgewählt. Das heißt sobald der Schaltzustand von FALSE auf TRUE geht, wird das Programm direkt gestartet und bei ! Sprachansage habe ich meinen TTS Code hinterlegt und der jeweilige Ankömmling wird mit Namen begrüßt.

Andi
Andi (Greenhorn)

Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control
- Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links

Xel66
Beiträge: 14149
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: AW: Anwesenheit per WLAN ohne Programmierung

Beitrag von Xel66 » 02.11.2015, 18:42

AndiN hat geschrieben: Programm erstellen und Intervall X zur Prüfung nehmen (ich würde 5 Minuten nehmen)
Wozu das? Man kann direkt und ohne Scriptverrenkung und zeitlichem Trigger den Counter des PingDevice als Auslösekriterum für ein Programm nehmen. Ich überwache da auch drei Mobiltelefone und setze ohne jegliches Script die Variablen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

alexderb
Beiträge: 21
Registriert: 20.08.2013, 18:34
System: Alternative CCU (auf Basis OCCU)

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von alexderb » 02.11.2015, 20:32

Hallo zusammen,

Counter Script ist wie auch die Stufen im ersten Post zu timen. Die CuxD bringt in der Ping Device eigene Counter mit, welche einfach genutzt oder für mehrere Stufen ausgewertet werden können.


Gerät:PING unreach_ctr bei im Wertebereich von größer 20 ...kann man im Programm auswählen. In diesem Fall ist die Schaltbedingung 20 erfolglose Pings

Mir THRESHOLD kann das Schalten generell verzogern

Beispiel:

THRESHOLD in der Ping Device auf 5 >>> es wird erst nach 5 erfolgreichen oder erfolglosen Pings in Folge geschaltet





Hier noch meine Einstellungen aus der Ping Device:


SWITCH|INTERVAL_ALIVE 180s (15-3600) Zeitintervall zwischen Pings bei abwesend

SWITCH|INTERVAL_FAIL 15s (15-3600) Zeitintervall zwischen Pings bei abwesend

SWITCH|THRESHOLD 1(1-255) Entscheidungswert

SWITCH|CMD_EXEC_TRUE Befehlszeile bei anwesend

SWITCH|CMD_EXEC_FALSE Befehlszeile bei abwesend



Das Wlan-Problem gibt es bei mir nicht mehr ist mir aber durchaus bekannt. Nach meinem Umstieg auf Blackberry funzt das alles bestens und absolut störungsfrei. Hier war der Trick, dass meine BBs über mein Heimnetz Zugriff auf allen möglichen Mediakram haben. Damit ist immer eine nicht akkusaugende Verbindung aktiv.
Beim Androiden hatte ich den besten Erfolg mit Liama. Ist ähnlich wie Tasker. Ich fand es einfacher . Liama bietet aber eine "Wlan-Check" Funktion, welche alle x Sekunden kurz Wlan neu aktiviert,

Mit dem LetztenUpdat der CuxD sind vielfältige Möglichkeiten in der Ping Device dazu gekommen. Mangels Android kann ich leider nichts selbst testen.

cheers

Benutzeravatar
AndiN
Beiträge: 2621
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von AndiN » 03.11.2015, 15:53

@Xel66:

Also ohne Skript meinst Du einfach den Schaltzustand abfragen? Kann ich dann das Smartphone direkt über den KANAL mit der Systemvariable koppeln. Ist es das was Du meintest? Oder habe ich da was falsch verstanden? Wäre ja noch viel einfacher :lol:

Mit dem Counter und dem Programm hatte ich nur gemacht, damit wirklich gewährleistet ist, dass bei x unbeantworteten Pings das Gerät auf nicht verfügbar zu setzen. Das Programm brauche ich aber weiterhin, weil ich dann im Statuswechselfall eine SYSVAR mit jeweiligen Namen befülle und eine TTS starte.

P.S. Das könnte ich aber evtl. auch in die CMD Zeilen der CuxD Device einbinden. Korrekt? Da habe ich aber noch gar keinen Peil... :roll:

Andi
Andi (Greenhorn)

Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control
- Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links

Xel66
Beiträge: 14149
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von Xel66 » 03.11.2015, 20:48

Du kannst einfach in der WENN-Bedingung den Counter auf z.B. >=5 abfragen um kurzfristige Nichterreichbarkeiten auszufiltern und dann über das DANN irgendwelche Aktionen auslösen (auch eine Systemvariable setzen oder die SONST-Bedingung resetten oder ein TTS auslösen). Wieviel Zeit bis dahin vergangen ist, kannst Du selbst über die Gerätekonfiguration des PingDevices bestimmen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
AndiN
Beiträge: 2621
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal

Re: Anwesenheit per WLAN ohne Programmierung

Beitrag von AndiN » 04.11.2015, 08:26

@Xel66: Das hatte ich probiert (also beim Auslöser die Nichterreichbarkeiten >=5. Dann hatte ich aber das Problem, dass ab 5 das Programm permanent ausgelöst wird. Also bei 6,7,8 etc. Sekunden. Daher hatte ich mich für den Counter entschieden beim Nichterreichbar, damit die CCU sich nicht hochschaukelt.

Aber Du hast Recht, ich müsste einfach nur den Schaltzustand abfragen und da kann ich ja einstellen, bei wie viel Nichterreichbar der auf AUS geht.

Vielen Dank für den Tipp.

Probier das jetzt mal so aus:

Geräteeinstellung:
2015-11-04 08_27_23-Fotos.png
2015-11-04 08_27_23-Fotos.png (9.44 KiB) 3040 mal betrachtet
Programmeinstellung:
2015-11-04 08_27_23-Fotos.png
2015-11-04 08_27_23-Fotos.png (9.44 KiB) 3040 mal betrachtet
Skript:
Jetzt müsste ich nur wissen, wie ich den Schaltzustand abfragen kann, damit ich im Skript nach dem Motto "Wenn nicht anwesend und jetzt Schaltzustand EIN, dann ist wohl der gekommen". Ich kenne nur den Befehl hier und der hilft mir zwar notfalls auch, aber der Schaltzustand wäre top.
if (dom.GetObject("CUxD.CUX2803003:1.UNREACH_CTR").Value()
P.S. da ich acht Smartphones abfrage nutze ich weiter das Programm, sonst müsste ich für jeden Einwohner ein Programm schreiben. So habe ich nur eins ;-)

Danke

Andi
Dateianhänge
2015-11-04 08_30_52-Fotos.png
2015-11-04 08_30_52-Fotos.png (6.72 KiB) 3040 mal betrachtet
Andi (Greenhorn)

Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control
- Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links

Antworten

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