Ankündigung

Einklappen
Keine Ankündigung bisher.

Anwesenheitserkennung über Smartphone mit Node Red

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Anwesenheitserkennung über Smartphone mit Node Red

    Hallo,

    ich suche (noch immer) eine Möglichkeit die Anwesenheit von Personen über ihre (Android-)Smartphones festzustellen.

    Nach Möglichkeit möchte ich auf Apps, die eine Menge Rechte benötigen, verzichten. Die Lösung mit Automate (siehe Link), die auf der PROKNX-Webseite zu finden ist, finde ich wirklich gut (danke Christian!). Leider benötigt Automate zwei Apps, die m. E. doch etwas Akku kosten und daneben wird z.B. GPS-Ortungs-Recht benötigt, was mir etwas widerstrebt, auch weil es für den Anwendungszweck m.E. gar nicht benötigt wird. Liegt wohl an der Rechteverwaltung in Android. Daneben soll Automate auch nur auf Android verfügbar sein.
    Ich suche sozusagen etwas schlankeres, das mit möglichst wenig Rechten auskommt.

    Die Variante mit einem Ping von NodeRed aus wäre mir am liebsten. Dies funktioniert ja aber leider nur bedingt, da Android irgendwann in einen Sleep-Modus geht und dann kein Ping mehr möglich ist.

    Hat jemand eine einfache, sichere Lösung in Betrieb und kann ein paar Worte darüber verlieren?

    Danke
    Jens
    This flow demonstrates presence detection based on mobile phone wifi. It uses Automate which is available for Android only. When the user’s phone enters the home Wifi network, a http POST is sent Node-RED flow.

    #2
    Hallo Jens,
    hab das hier noch gefunden:
    https://harizanov.com/2014/03/presen...-and-node-red/
    LG
    christian
    Chris (https://proknx.com)
    wir haben ARAGON entwickelt, einen offline Sprachassistenten für KNX.

    Google, Amazon und Apple hätten das auch gekonnt. Aber sie verdienen eben besser an unseren persönlichen Daten...

    Kommentar


      #3
      Will mich mal einklinken. Schau mal ob es Geofency für Android gibt. Da könnte ich dir den fertigen Code für Node-Red rüberschicken.

      Gruß

      Stefan

      Kommentar


        #4
        Stefan22


        Hallo Stefan,

        würde das Angebot gerne annehmen und den Node Red Code gerne nehmen
        Versuche mich gerade auch an der Anwesenheitserkennung


        Gruß
        Manfred

        Kommentar


          #5
          Hallo Manfred.

          Klar kann dir gern behilflich dabei sein. Bin zwar gerade wieder beruflich bis nächste Woche Unterwegs , aber das kriegen wir schon irgendwie hin
          Hast du jetzt schon mit was angefangen.

          Gruß Stefan

          Kommentar


            #6
            Hallo zusammen,
            wollte das Thema mal aufwärmen.
            Ich würde gerne iPhones heranziehen zur Anwesenheitsprüfung.
            Hätte einen X1 sowie Unifi Hardware, aber nach meiner Recherche habe ich nichts gefunden.
            Es gibt was um über eine FritzBox zu gehen, diese habe ich aber leider nicht. Würde daher gerne den Weg über Node Red nehmen.
            Hat jemand da schon mal was umgesetzt und Tipps, bevor ich dabei 0 anfange?
            Danke.

            Kommentar


              #7
              Wenn du mit einer gewissen Fehlertoleranz leben kannst, kannst du das mit Node Red mit node-red-node-ping​ machen. Damit pinge ich alle 15s mein Handy (in dem Fall aber Android, geht aber mit IPhones auch) an. Allerdings sind die IPhones echt oft nicht im Wlan. Wenn ich mich recht erinnere, wird bei IPhones das WLAN im Standby automatisch nach einer gewissen Zeit deaktiviert und dann immer mal wieder kurz aktiviert. Kann aber auch sein, dass ich mir das nur einbilde. Dennoch sind sie oft kurz nicht erreichbar. Das bekommst du halbwegs hin, wenn du da mit großen Toleranzen arbeitest (größere Intervalle bei den PINGS oder größere Anzahl an fehlgeschlagenen Pings). Ich habe das in einem Function Node folgendermaßen gemacht:

              [CODE]
              context.gotping = context.gotping || true;
              context.pingfails = context.pingfails || 0;

              if(msg.payload) {
              context.gotping = true;
              context.pingfails = 0;
              }
              else
              {
              context.pingfails += 1;
              if(context.pingfails > 15) context.gotping = false;
              }

              msg.payload = context.gotping;

              return msg;​
              ​[/CODE

              Den Return schicke ich auf eine Gruppenadresse, damit ich dann damit Gedöns machen kann (Automatischen Anwesenheitsstatus usw.).

              Kommentar


                #8
                Ich möchte die Reedkontakte meiner Fenster auswerten. Diese werden als 1bit Wert gesendet. Über Node Red möchte ich nun auswerten ob Reedkontakt geschlossen (false) oder offen (true) ist. Da ich für die GA der Zwangsstellungsfunktion am Gira Jalousieaktor ein 2 bit Wert einlesen muss möchte ich über die Change Funktion im Node Red die Werte ändern. Aus false wird 0 und aus true soll $02 werden. $02 soll für ein 2 bit Objekt stehen.
                Die GA der Zwangssteuerfunktion ist als 2bit Datentyp eingestellt (DPT 23.002). Ich habe auch schon andere 2bit DPT probiert, jedoch kommt immer nur 00 für false und 01 für true auf dem Bus an.
                Wenn ich im Diagnoseprogramm den Wert 02 setze funktioniert die Zwangsstellung.
                Es liegt also nur an der Ausgabe von Node Red:

                ​​​​​​[
                {
                "id": "ee1a95ec.214b88",
                "type": "tab",
                "label": "Alarm Fenster",
                "disabled": false,
                "info": ""
                },
                {
                "id": "a5150da6.03844",
                "type": "debug",
                "z": "ee1a95ec.214b88",
                "name": "Zwangssteuerung Schiebetür Office",
                "active": true,
                "console": "false",
                "complete": "payload",
                "x": 1150,
                "y": 120,
                "wires": []
                },
                {
                "id": "1e56781.2e82888",
                "type": "inject",
                "z": "ee1a95ec.214b88",
                "name": "Read",
                "topic": "",
                "payload": "true",
                "payloadType": "bool",
                "repeat": "",
                "crontab": "",
                "once": false,
                "x": 110,
                "y": 117,
                "wires": [
                [
                "ba49e9a2.44d528"
                ]
                ]
                },
                {
                "id": "2c38384b.2bb9f8",
                "type": "comment",
                "z": "ee1a95ec.214b88",
                "name": "Issue a READ request",
                "info": "",
                "x": 159,
                "y": 77,
                "wires": []
                },
                {
                "id": "43615d49.089ba4",
                "type": "debug",
                "z": "ee1a95ec.214b88",
                "name": "Reed Offices Terrasse",
                "active": true,
                "console": "false",
                "complete": "payload",
                "x": 1100,
                "y": 180,
                "wires": []
                },
                {
                "id": "9998589.37cdda8",
                "type": "change",
                "z": "ee1a95ec.214b88",
                "name": "Tür geschlossen",
                "rules": [
                {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "false",
                "fromt": "bool",
                "to": "0",
                "tot": "num"
                }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 760,
                "y": 60,
                "wires": [
                [
                "a5150da6.03844",
                "c97db599.32c1d8"
                ]
                ]
                },
                {
                "id": "38a7324e.7b3ace",
                "type": "change",
                "z": "ee1a95ec.214b88",
                "name": "Tür offen",
                "rules": [
                {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "true",
                "fromt": "bool",
                "to": "2",
                "tot": "num"
                }
                ],
                "action": "",
                "property": "",
                "from": "",
                "to": "",
                "reg": false,
                "x": 740,
                "y": 100,
                "wires": [
                [
                "a5150da6.03844",
                "c97db599.32c1d8"
                ]
                ]
                },
                {
                "id": "c97db599.32c1d8",
                "type": "knxEasy-out",
                "z": "ee1a95ec.214b88",
                "server": "6dd6f0b1.ad24",
                "topic": "3/1/120",
                "dpt": "",
                "name": "Zwangssteuerung JA 2",
                "outputtype": "write",
                "x": 1117.5,
                "y": 63,
                "wires": []
                },
                {
                "id": "ba49e9a2.44d528",
                "type": "knxEasy-in",
                "z": "ee1a95ec.214b88",
                "server": "6dd6f0b1.ad24",
                "topic": "3/1/100",
                "dpt": "",
                "initialread": false,
                "notifyreadrequest": true,
                "notifyresponse": false,
                "notifywrite": true,
                "name": "Reed Schiebetür Office",
                "x": 330,
                "y": 120,
                "wires": [
                [
                "9998589.37cdda8",
                "38a7324e.7b3ace",
                "43615d49.089ba4"
                ]
                ]
                },
                {
                "id": "6dd6f0b1.ad24",
                "type": "knxEasy-config",
                "z": "",
                "host": "192.168.1.221",
                "port": "3671"
                }
                ]​​
                Angehängte Dateien

                Kommentar


                  #9
                  Zitat von MPolo Beitrag anzeigen
                  Wenn ich im Diagnoseprogramm den Wert 02 setze funktioniert die Zwangsstellung.
                  ]​​
                  Meinst Du damit den Gruppenmonitor ?
                  Evtl hat der EasyKnx mit dem Schreiben von 2bit Werten ein Problem. Ich denke der Ultimate wäre hier die bessere Wahl.
                  Chris (https://proknx.com)
                  wir haben ARAGON entwickelt, einen offline Sprachassistenten für KNX.

                  Google, Amazon und Apple hätten das auch gekonnt. Aber sie verdienen eben besser an unseren persönlichen Daten...

                  Kommentar

                  Lädt...
                  X