Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. fb.checkpresence mit iPhone Ergänzung

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    fb.checkpresence mit iPhone Ergänzung

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      DennisMenger last edited by DennisMenger

      Hallo zusammen.

      Ich nutze zu Hause für die Anwesenheitserkennung den Adapter fb.checkpresence, welcher für die Samsung-Geräte von meiner Frau und mir auch sehr zuverlässig funktioniert. Allerdings sind die beiden Jungs iPhone-Jünger. Leider werden die iPhones auch bei Anwesenheit und Aktivität trotzdem unregelmäßig in den Schlafmodus geschickt. Bei Änderungen an den Anwesenheiten lassen wir uns eine Telegram-Nachricht schicken. Siehe angehängtes Blockly. Bei den iPhones der Jungs bekomme ich aber alle Nase lang Nachrichten ist weg, ist da, ist weg. Jetzt wollte ich das mit einem timeout lösen. Bei Änderung auf Abwesenheit funktioniert das auch. Allerdings bekomme ich dann immer wieder die Nachricht, dass jemand nach Hause kommt.

      Wie muss ich den timeout setzen bzw. stoppen, damit ich tatsächlich erst nach 10 Minuten eine Abwesenheitsnachricht bekomme und in der Zwischenzeit auch keine Anwesenheitsnachricht mehr bekomme?

      Vielen Dank für euren Input.

      Gruß
      Dennis

      anwesenheit.png

      DJMarc75 1 Reply Last reply Reply Quote 0
      • DJMarc75
        DJMarc75 @DennisMenger last edited by DJMarc75

        @dennismenger

        Servus,
        wir haben hier im Haushalt nur Androide aber auch diese können ja mal die Verbindung zum WLAN verlieren, z.B. durch einen Neustart.
        Um nervigen Nachrichten aus dem Wege zu gehen habe ich dies mit folgendem Blockly gelöst (in diesem Fall mein Smartphone):

        Screenshot 2023-02-09 100252.png

        Dazu frage ich aber nicht den DP

        fb-checkpresence.0.familyMembers.Familie.Marc.presence
        

        ab sondern zur Erkennung der Anwesenheit

        fb-checkpresence.0.familyMembers.Familie.Marc.present.since
        

        und zur Abwesenheit diesen

        fb-checkpresence.0.familyMembers.Familie.Marc.absent.since
        

        Ebenso hab ich mir für jeden User einen boolschen DP angelegt (hier MarcWLAN)
        und im Skript eine Variable (Marc) erzeugt.
        Beim Skriptstart wird die Variable erstmal auf false gesetzt.
        Falls ich daheim bin wird spätestens nach einer Minute der DP MarcWLAN nun auf true gesetzt und die Variable Marc ebenfalls (Entprellerfunktion).

        Falls ich nun das Haus für längere Zeit verlasse dann wird nach 10 Minuten der DP MarcWLAN auf false gesetzt und die Variable Marc ebenfalls um die Entprellerfunktion zu deaktivieren.
        Sollte ich aber mal das Smartphone neu starten, es kurz das WLAN verlieren oder ich bin mal eben nur 5 Minuten weg passiert ... NIX, also keine Änderung des DP MarcWLAN auf false da die beiden TriggerDatenpunkte die Zeit (in Minuten) nur bei An- bzw. Abwesenheit hochzählen und sich jeweils bei Statusänderung von "presence" auf Null setzen.
        Hoffe ich konnte das verständlich rüberbringen 🙂

        D 2 Replies Last reply Reply Quote 0
        • D
          DennisMenger @DJMarc75 last edited by

          @djmarc75 Moin

          Oh da muss ich erstmal durchsteigen ... vielen Dank schon mal

          Ich werde mir das mal in Ruhe angucken und versuchen umzusetzen

          1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO last edited by

            @dennismenger

            iphone/ios ist da etwas hartnäckig.
            bei manchen geräten reicht ein arp-scan nicht aus.
            selbst wenn das gerät aktiv zu sein erscheint, schaltet ios im hintergrund wlan aus. nach einer gewissen zeit verschwinden dann die geräte aus den arp tabellen bspw beim router (was dann die skripte/adapter dann auswerten) und das gerät ist weg.
            daher muss man das gerät immer wieder mal wecken. das geht mit einem weiteren tool, mit dem man beliebige layer 3 päckchen erzeugen kann (das normale ping erzeugt layer 2 icmp päckchen)

            mit der hier beschriebenen lösung funktioniert es bei mir einwandfrei. wohl auch bei den anderen die es ausprobiert haben
            https://forum.iobroker.net/topic/56566/probleme-mit-anwesenheitserkennung/15?_=1675935212567

            1 Reply Last reply Reply Quote 0
            • D
              DennisMenger @DJMarc75 last edited by

              @djmarc75 Guten Morgen. Ich habe das jetzt so erstmal für alle umgesetzt was auch bisher funktioniert. Ich werde jetzt mal mit den Zeiten in Bezug auf Abwesenheit spielen. Vielleicht komme ich ja auch mit weniger als 10 Minuten hin.

              @OliverIO vielen Dank, diese Variante werde ich mir mal angucken, wenn ich ein wenig mehr Zeit habe

              1 Reply Last reply Reply Quote 0
              • D
                DennisMenger last edited by

                Ich habe mir jetzt analog zum Adapter fb.checkpresence noch die Datenpunkte presence, presenceAll, absence und absenceAll erstellt. Über ein Blockly möchte ich mir jetzt mit UND/ODER-Prüfungen die einzelnen Datenpunkte steuern lassen. Aber es werden leider nicht immer die korrekten Werte in die Datenpunkte geschrieben. Hier mein Blockly zur Steuerung der genannten Datenpunkte. Übersehe ich was?

                Danke

                anwesenheit2.png

                DJMarc75 1 Reply Last reply Reply Quote 0
                • DJMarc75
                  DJMarc75 @DennisMenger last edited by

                  @dennismenger
                  Was ist Dein genaues Ziel von dem Blockly?
                  presence und absence gehen ja beide auf true sobald mind. 1 Person anwesend ist - macht wenig Sinn.

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    DennisMenger @DJMarc75 last edited by

                    @djmarc75 gibt ja unterschiedliche Konstellationen wo man die verschiedenen Anwesenheiten benötigt. Lichtsteuerung einzelner Zimmer. Ich würde halt gerne einige der Datenpunkte, die es in dem Adapter fb.checkpresence gibt, nutzen. Halt nicht die Originalen, sondern nach dem Prinzip wie du es oben erläutert hast. Müsste doch mit wenn/dann-Abfragen funktionieren. Oder habe ich da einen Denkfehler?

                    DJMarc75 1 Reply Last reply Reply Quote 0
                    • DJMarc75
                      DJMarc75 @DennisMenger last edited by

                      @dennismenger kannst Du mal die Ordnerstruktur der Datenpunkte zeigen?
                      Man könnte u.U. mit einer Aufzählung arbeiten.

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        DennisMenger @DJMarc75 last edited by

                        @djmarc75 datenpunkte.png

                        DJMarc75 1 Reply Last reply Reply Quote 0
                        • DJMarc75
                          DJMarc75 @DennisMenger last edited by

                          @dennismenger ok, dann könnte es nach diesen Prinzip umzusetzen sein (hier nur die DP absenceAll und presenceAll)

                          Screenshot 2023-02-10 115741.png

                          Bin jetzt mal ne Weile OFF 😉

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            DennisMenger @DJMarc75 last edited by

                            @djmarc75 ok danke schon mal, gucke ich mir an

                            D 1 Reply Last reply Reply Quote 0
                            • D
                              DennisMenger @DennisMenger last edited by

                              @DJMarc75 wenn ich das Blockly richtig verstehe zählt er für jeden Eintrag mit *WLAN, wo der Wert "wahr" ist den Wert um einen hoch. Da es maximal 4 Einträge mit *WLAN, die wahr sein können, muss der Wert der Variable "zähler" ja immer zwischen 0 und 4 sein. So weit richtig?

                              Ich habe mir über einen debug-Output anzeigen lassen welchen Wert die Variable hat. Aber ganz egal welche Personen im WLAN sind, die Variable bekommt nur den Wert 0 oder 4.

                              Oder habe ich da einen Denkfehler?

                              anwesenheit3.png

                              T DJMarc75 2 Replies Last reply Reply Quote 0
                              • T
                                TT-Tom @DennisMenger last edited by TT-Tom

                                @dennismenger

                                Du hast den Trigger falsch gesetzt. Hier ein Beispiel wie es aussehe sollte
                                Debug .png

                                Deine Variable wlan wird nur beim Start des Script gesetzt danach nicht mehr.

                                DJMarc75 1 Reply Last reply Reply Quote 0
                                • DJMarc75
                                  DJMarc75 @DennisMenger last edited by

                                  @dennismenger sagte in fb.checkpresence mit iPhone Ergänzung:

                                  die Variable bekommt nur den Wert 0 oder 4.

                                  Sorry, Fehler im Skript. So sollte es funktionieren:

                                  Screenshot 2023-02-11 033920.png

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    Solear last edited by

                                    Hinweis, wenn es um iPhones geht, wie im Eingangspost.
                                    Für iOS ist Geofency (iOS App und iobroker Adapter) absolut zuverlässig. Hierbei wird beim Verlassen des Hausradius ein Signal gegeben, ebenso wie beim Kommen.
                                    Ich habe es als Bonus mit Wireguard verbunden. Mein Handy ist immer per Wireguard mit dem Heimnetzwerk sowie Adguard DNS Zuhause verbunden (befindet sich damit immer im Heimnetzwerk). Für Geofency brauche deshalb nur die lokale iobroker IP hinterlegen.
                                    Das klappt seit bestimmt 6 Jahren problemlos (Wireguard kam später dazu)

                                    1 Reply Last reply Reply Quote 0
                                    • DJMarc75
                                      DJMarc75 @TT-Tom last edited by

                                      @tt-tom sagte in fb.checkpresence mit iPhone Ergänzung:

                                      Deine Variable wlan wird nur beim Start des Script gesetzt danach nicht mehr.

                                      die Variable wird jedesmal geändert wenn sich eine ID innerhalb der Aufzählung ändert, nicht nur beim Skriptstart.
                                      Bau es mal nach und setze ein Debug direkt unter den ersten (den was Du meinst) Block.

                                      D 1 Reply Last reply Reply Quote 1
                                      • D
                                        DennisMenger @DJMarc75 last edited by

                                        @djmarc75 Moin. Sieht gut aus bis jetzt. Ich werde das mal beobachten.

                                        Danke schon mal.

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        872
                                        Online

                                        32.0k
                                        Users

                                        80.5k
                                        Topics

                                        1.3m
                                        Posts

                                        5
                                        18
                                        1246
                                        Loading More Posts
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                        The ioBroker Community 2014-2023
                                        logo