NEWS
Blockly Skript für Abwesenheit per Smartphone
-
Hallo,
ich würde gerne ein zuverlässiges Blockly Skipt erstellen mit dem ich die Abwesenheit aller Familienmitglieder überprüfe und dann wenn keiner mehr zuhause ist bestimmte Aktoren zeitverzögert ausschalten.
Sollte mindestens eine Person nachhause kommen sollten sich diese Aktoren wieder einschalten.
In beiden Schaltfällen soll auch noch eine Telegram Nachricht versendet werden.
Vielleicht hat ja jemand schon ein solches Skript erstellt und könnte mir seine Vorlage zur Verfügung stellen?
Vielen Dank schonmal
Michael -
@mic905 sagte in Blockly Skript für Abwesenheit per Smartphone:
Hallo,
ich würde gerne ein zuverlässiges Blockly Skipt erstellen mit dem ich die Abwesenheit aller Familienmitglieder überprüfe und dann wenn keiner mehr zuhause ist bestimmte Aktoren zeitverzögert ausschalten.
Sollte mindestens eine Person nachhause kommen sollten sich diese Aktoren wieder einschalten.
In beiden Schaltfällen soll auch noch eine Telegram Nachricht versendet werden.
Vielleicht hat ja jemand schon ein solches Skript erstellt und könnte mir seine Vorlage zur Verfügung stellen?
Vielen Dank schonmal
MichaelImmer ein spannendes Thema...
Jetzt kommt aber erstmal die Frage nach der Technologie! Womit stellst du denn "zuverlässig" fest, ob sich ein Familienmitglied "zuhause" aufhält?
Dann würde es einfach werden, wenn du 1-n Familienmitglieder triggerst und enstsprechend reagierst. Aber zunächst wäre mal interessant zu wissen, was denn der Auslöser ist.
- Ping ist auf Telefonen nicht stabil
- Geofencing würde funktionieren, aber auch nur dann wenn jeder sein Telefon mitgenommen hat.
- Smart-Tags (Schlüsselsensor) ebenfalls nur, wenn jeder seinen Schlüssel mitnimmt
- Gesichtserkennung
- usw.
Erfordert immer Regeln und Disziplin...
-
@mic905
Pack alle DP in eine Aufzählung. Dann kannst Du da mit 'ner Liste arbeiten.
Als Beispiel mal meine Aufzählung der Fenster:
Dein Blockly könnte dann prinzipiell so aussehen:
Zunächst wird die Variable "Anwesend" auf "false" gesetzt.
Dann werden alle DP abgeklappert. Ist mindestens eine Person anwesend, wird die Variable "true" und die Schleife verlassen.Wie @Armilar schon schrieb: Die Erkennung kann tricky werden. Über die FritzBox und den tr-064-Adapter funktioniert das z.B. nicht sauber ... zumindest nicht sauber genug.
Ich erkenne das an meinem Unify-AP recht stabil, allerdings mit einer gewissen Verzögerung. -
@armilar
Also ich der Auslöser für meine Überlegung ist das ich zum Beispiel das schon öfters vorgekommen ist das die Kinder das eine oder andere Licht im Haus nicht ausschalten wenn sie es verlassen. Auch mir ist das schon passiert. Eine andere Sache ist das ich über Nacht schon alle im Wohnzimmerschrank verbauten Geräte abschalte. Dies würde ich auch gerne auslösen wenn ich ohnehin keiner zuhause ist.Also das einer von uns sein Smartphone zuhause vergisst kommt so gut wie nie vor. Darüber könnte man das schon triggern.
Das ganze per Geodaten zu lösen wäre natürlich schon schick.Wir alle benutzen Android Geräte. Soweit ich gesehen habe gibt es hierfür den EgiGeoZone Adapter.
Aber wie bekomme ich die Geodaten von aussen in den iOBroker ?Wenn das läuft sollte man das ganze ja per Blockly lösen können oder ?
-
@mic905 sagte in Blockly Skript für Abwesenheit per Smartphone:
Wenn das läuft sollte man das ganze ja per Blockly lösen können oder ?
Das sollte das geringste Problem sein.
EgiGeoZone kenne ich nicht, klingt aber für mich nicht unbedingt praktikabel, da Du die Daten ja irgendwie in den ioBroker kriegen musst. Portfreigaben sind ein NoGo und VPN klingt für mich auch nicht wirklich praktikabel für Kids und Gattin.
Meine bessere Hälfte hätte eh ein Problem, wenn ich versuchen würde ihr eine Art Tracker aufs Handy zu prömpeln.
Auch eine Cloud-basierte Lösung widerstrebt mir ... wer weiß, wer da alles Zugriff auf die Standortdaten erhält.
Mal ganz abgesehen davon, dass für den Kram auch die Lokalisierung (Standortdienste, GPS) auf dem Handy eingeschaltet werden muss.Welche Netzwerk-Hardware hast Du denn am Start?
-
@codierknecht
Ja vermutlich hast du damit recht.Also als Hardware habe ich zu bieten:
AVM Fritzbox 6490 Cable
AVM Repaeter
Aruba Switche
iOBroker läuft auf deinem Fujitsu Mini PC als VM
Synology NAS
Homematic IP CCU3 auf dem NASWas wäre noch interessant ?
-
@mic905 sagte in Blockly Skript für Abwesenheit per Smartphone:
AVM Fritzbox 6490 Cable
Dann bliebe wohl ohne GeoFencing nur der tr-064 Adapter.
Versuchs doch im ersten Wurf einfach mal damit. Für Tests sollte das ja ausreichen.Im Adapter die Geräteüberwachung aktivieren und alle zu überwachenden Handys hinzufügen.
Manchmal muss ein Gerät mehrfach rein, weil es sich mit unterschiedlichen MAC-Adressen verbindet.Den DP "active" aller Geräte packst Du dann in eine Aufzählung. Bei mir heißt die "enum.functions.presence"
Damit zähle ich die Anzahl anwesender Personen (in einem eigenen DP).
Der Rest ist dann einfach: Steht da 'ne 0, sind alle abwesend, bei > 0 ist mindestens 1 Person anwesend. -
@codierknecht
Das klingt doch alles schonmal ganz gut.
Leider habe ich bisher noch nichts mit den Aufzählungen gemacht.
Ich habe dort jetzt eine Kategorie angelegt. Darunter habe ich dann die tr-064 Datenpunkte "active" hinzugefügt.
Wenn ich es richtig verstehe muss ich dann unter Userdata einen Datenpunkt anlegen oder wie geht es dann weiter ?
Erst dann kann ich doch das Blockly Script erstellen oder ? -
Ich nutze Geofency seit ein paar Jahren auf dem iPhone und das sehr stabil. Ich weiß aber nicht, ob das auch mit Android klappt.
Vormals war es eine IFTTT-Lösung über webhook. Funktionierte - jedoch nicht zuverlässig.Wenn das läuft, dann gehe ich davon aus, dass im ioBroker dann je Familienmitglied (nennen wir mal FM) ein Datenpunkt existiert in dem true oder false steht. Eventuell noch einen zusätzlichen "manuellen" Datenpunkt (EXT), falls jemand gewollt im Haus ist, aber alle anderen weg (Nennen wir das mal Freunde, Bekannte, Oma, usw.)
Dann haben wir eine If-Abfrage auf alle Datenpunkte. Die sollte so aussehen:
Trigger auf FM1-n Wenn (FM1 == false && FM2 == false && FM3 == false && FMn == false && EXT == false) Dann Steuere Alle Datenpunkte mit unnötigen Verbrauchern = false Sonst (falls das in Frage kommt) Steuere die Geräte die bei Anwesenheit von Personen laufen sollen = true
Das wars schon. Versuche das mal zu bauen in Blockly - das hilft sehr wenn man es selbst versucht (Tolle Lösungen haben danach noch viele). Falls dann Probleme auftauchen, einfach melden. Mit Aufzählungen kann man es später auch noch lösen, wenn es komplexer wird. Im Moment ist es eher ein 3 Zeiler. Kommt viel mehr auf die Planung an.
-
@armilar
sieht ja recht einfach aus.
Für was steht beim FM1-n Trigger das -n ?
Unter wenn steht dann FMn.
Da komme ich etwas durcheinander. -
@mic905 Probiere doch mal den FB Presence Adapter.
Damit bekommst du pro Person Datenpunkte für die An-/Abwesenheit. Basiert auch auf der Fritzbox bzw. TR064. -
@mic905 sagte in Blockly Skript für Abwesenheit per Smartphone:
@codierknecht
Das klingt doch alles schonmal ganz gut.
Leider habe ich bisher noch nichts mit den Aufzählungen gemacht.
Ich habe dort jetzt eine Kategorie angelegt. Darunter habe ich dann die tr-064 Datenpunkte "active" hinzugefügt.
Wenn ich es richtig verstehe muss ich dann unter Userdata einen Datenpunkt anlegen oder wie geht es dann weiter ?
Erst dann kann ich doch das Blockly Script erstellen oder ?So hab ich es gemacht.
Beobachte aber zunächst mal, wie sich die DP im tr-064 verhalten. Wenn eine Person das Haus (oder besser: Dein WLAN) verlässt, sollte der entsprechende DP von "true" auf "false" wechseln. Das kann eine Weile dauern!
Wenn eine Person kommt eben andersrum.
Schau erst einmal, ob das für Deine Zwecke sicher genug funktioniert. -
@mic905 sagte in Blockly Skript für Abwesenheit per Smartphone:
@armilar
sieht ja recht einfach aus.
Für was steht beim FM1-n Trigger das -n ?
Unter wenn steht dann FMn.
Da komme ich etwas durcheinander.FM soll wie oben in der Klammer Familienmitglied heißen und Ext = Externer Besucher
Etwa so... Jetzt die Objekt ID (Datenpunkt) der einzelnen Familienmitglieder oben in den Trigger (roter Block) und ebenfalls in die Falls-Blöcke aufnehmen.
-
@armilar sagte in Blockly Skript für Abwesenheit per Smartphone:
@mic905 sagte in Blockly Skript für Abwesenheit per Smartphone:
@armilar
sieht ja recht einfach aus.
Für was steht beim FM1-n Trigger das -n ?
Unter wenn steht dann FMn.
Da komme ich etwas durcheinander.FM soll wie oben in der Klammer Familienmitglied heißen und Ext = Externer Besucher
Etwa so... Jetzt die Objekt ID (Datenpunkt) der einzelnen Familienmitglieder oben in den Trigger (roter Block) und ebenfalls in die Falls-Blöcke aufnehmen.
Oder auch zyklisch in diesem Fall mit der gewünschten Verzögerung:
Mein Tipp: Das sind die Blöcke, die du für deine Logik benötigst. Versuche es und verbessere dich mit der Zeit. Du solltest die Logik in deinem Haus kennen.