Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. fb.checkpresence mit iPhone Ergänzung

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    870

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

fb.checkpresence mit iPhone Ergänzung

Geplant Angeheftet Gesperrt Verschoben Blockly
18 Beiträge 5 Kommentatoren 1.8k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D 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

    DJMarc75D Offline
    DJMarc75D Offline
    DJMarc75
    schrieb am zuletzt editiert von DJMarc75
    #2

    @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 :)

    Lehrling seit 1975 !!!
    Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
    https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

    D 2 Antworten Letzte Antwort
    0
    • DJMarc75D 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 Online
      D Online
      DennisMenger
      schrieb am zuletzt editiert von
      #3

      @djmarc75 Moin

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

      Ich werde mir das mal in Ruhe angucken und versuchen umzusetzen

      1 Antwort Letzte Antwort
      0
      • OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #4

        @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

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        1 Antwort Letzte Antwort
        0
        • DJMarc75D 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 Online
          D Online
          DennisMenger
          schrieb am zuletzt editiert von
          #5

          @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 Antwort Letzte Antwort
          0
          • D Online
            D Online
            DennisMenger
            schrieb am zuletzt editiert von
            #6

            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

            DJMarc75D 1 Antwort Letzte Antwort
            0
            • D DennisMenger

              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

              DJMarc75D Offline
              DJMarc75D Offline
              DJMarc75
              schrieb am zuletzt editiert von
              #7

              @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.

              Lehrling seit 1975 !!!
              Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
              https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

              D 1 Antwort Letzte Antwort
              0
              • DJMarc75D DJMarc75

                @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 Online
                D Online
                DennisMenger
                schrieb am zuletzt editiert von
                #8

                @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?

                DJMarc75D 1 Antwort Letzte Antwort
                0
                • D DennisMenger

                  @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?

                  DJMarc75D Offline
                  DJMarc75D Offline
                  DJMarc75
                  schrieb am zuletzt editiert von
                  #9

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

                  Lehrling seit 1975 !!!
                  Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                  https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                  D 1 Antwort Letzte Antwort
                  0
                  • DJMarc75D DJMarc75

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

                    D Online
                    D Online
                    DennisMenger
                    schrieb am zuletzt editiert von
                    #10

                    @djmarc75 datenpunkte.png

                    DJMarc75D 1 Antwort Letzte Antwort
                    0
                    • D DennisMenger

                      @djmarc75 datenpunkte.png

                      DJMarc75D Offline
                      DJMarc75D Offline
                      DJMarc75
                      schrieb am zuletzt editiert von
                      #11

                      @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 ;)

                      Lehrling seit 1975 !!!
                      Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                      https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                      D 1 Antwort Letzte Antwort
                      0
                      • DJMarc75D DJMarc75

                        @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 Online
                        D Online
                        DennisMenger
                        schrieb am zuletzt editiert von
                        #12

                        @djmarc75 ok danke schon mal, gucke ich mir an

                        D 1 Antwort Letzte Antwort
                        0
                        • D DennisMenger

                          @djmarc75 ok danke schon mal, gucke ich mir an

                          D Online
                          D Online
                          DennisMenger
                          schrieb am zuletzt editiert von
                          #13

                          @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 DJMarc75D 2 Antworten Letzte Antwort
                          0
                          • D DennisMenger

                            @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 Offline
                            T Offline
                            TT-Tom
                            schrieb am zuletzt editiert von TT-Tom
                            #14

                            @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.

                            Gruß Tom
                            https://github.com/tt-tom17
                            Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                            NSPanel Script Wiki
                            https://github.com/joBr99/nspanel-lovelace-ui/wiki

                            NSPanel Adapter Wiki
                            https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                            DJMarc75D 1 Antwort Letzte Antwort
                            0
                            • D DennisMenger

                              @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

                              DJMarc75D Offline
                              DJMarc75D Offline
                              DJMarc75
                              schrieb am zuletzt editiert von
                              #15

                              @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

                              Lehrling seit 1975 !!!
                              Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                              https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                Solear
                                schrieb am zuletzt editiert von
                                #16

                                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)

                                iobroker als LXC unter Proxmox

                                1 Antwort Letzte Antwort
                                0
                                • T 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.

                                  DJMarc75D Offline
                                  DJMarc75D Offline
                                  DJMarc75
                                  schrieb am zuletzt editiert von
                                  #17

                                  @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.

                                  Lehrling seit 1975 !!!
                                  Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                                  https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                                  D 1 Antwort Letzte Antwort
                                  1
                                  • DJMarc75D DJMarc75

                                    @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 Online
                                    D Online
                                    DennisMenger
                                    schrieb am zuletzt editiert von
                                    #18

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

                                    Danke schon mal.

                                    1 Antwort Letzte Antwort
                                    0
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    323

                                    Online

                                    32.6k

                                    Benutzer

                                    82.1k

                                    Themen

                                    1.3m

                                    Beiträge
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Anmelden

                                    • Du hast noch kein Konto? Registrieren

                                    • Anmelden oder registrieren, um zu suchen
                                    • Erster Beitrag
                                      Letzter Beitrag
                                    0
                                    • Home
                                    • Aktuell
                                    • Tags
                                    • Ungelesen 0
                                    • Kategorien
                                    • Unreplied
                                    • Beliebt
                                    • GitHub
                                    • Docu
                                    • Hilfe