HowTo: Node Red / FritzBox – aanwezigheidsdetectie met de FritzBox

Een belangrijke gebeurtenis waarop je SmartHome moet kunnen reageren is de aanwezigheidsstatus van de bewoner. Je kunt bijvoorbeeld lichten uitschakelen als ze afwezig zijn of radiatoren inschakelen als ze aanwezig zijn.
Als je toevallig nog een FritzBox hebt, is deze aanwezigheidsdetectie bijzonder eenvoudig.

Alles wat je nodig hebt is een FritzBox, NodeRed en het MAC-adres van de smartphones.

Hoe je de aanwezigheidsdetectie met de FritzBox in NodeRed implementeert, wordt beschreven in het volgende artikel.


Veiligheidsinstructies

Ik weet dat de volgende opmerkingen altijd een beetje vervelend zijn en onnodig lijken. Helaas hebben veel mensen die "beter" wisten door onvoorzichtigheid ogen, vingers of andere dingen verloren of zichzelf verwond. Gegevensverlies is in vergelijking bijna te verwaarlozen, maar zelfs dit kan erg vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Omdat zelfs het coolste project geen blessure of andere problemen waard is.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links / reclame links

De hier vermelde links naar online winkels zijn zogenaamde affiliate-links. Als u op zo'n affiliate-link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende onlineshop of aanbieder. De prijs verandert voor jou niet. Als u via deze links uw aankopen doet, steunt u Nerdiy.de om in de toekomst andere nuttige projecten aan te kunnen bieden. 🙂 


Eisen

Handige artikelen:
Om deze configuratie te kunnen gebruiken, moet NodeRed natuurlijk al geïnstalleerd zijn.
Hoe je een RaspberryPi voorbereidt en vervolgens NodeRed erop installeert, wordt beschreven in de volgende artikelen.

In de volgende artikelen wordt beschreven wat er moet gebeuren om de RaspberryPi voor te bereiden:
RaspberryPi – setup voor nerds!
RaspberryPi – De eerste configuratie!
RaspberryPi – Bedien de RaspberryPi via SSH

NodeRed – NodeRed installeren op de RaspberryPi
NodeRed – Installeer nieuwe knooppunten

Vereist gereedschap
-Nee-

Benodigd materiaal:

In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.


Log in op de configuratie-interface van NodeRed

Voordat u uw NodeRed-configuratie kunt bewerken, moet u - indien geactiveerd - eerst inloggen op de NodeRed-configuratie-interface.

Weergave van het aanmeldingsvenster. Hier moet u de inloggegevens invoeren die u tijdens de configuratie van de login hebt opgegeven. Informatie hierover vind je in het artikel NodeRed - gebruikersaanmelding instellen.

Installeer het FritzBox-knooppunt

Om NodeRed te laten communiceren met je FritzBox, moet je de node "node-red-contrib-fritz" installeren. Hoe je nodes installeert staat beschreven in het artikel NodeRed – Installeer nieuwe knooppunten beschreven.


Voer de FritzBox-knooppuntconfiguratie in

Om ervoor te zorgen dat de FritzBox node die je net hebt geïnstalleerd kan communiceren met je FritzBox, moet je je FritzBox login gegevens invoeren in de configuratie van de node.

Klik hiervoor op het knooppunt "Fritz!Box Callmonitor". Er wordt een nieuw venster geopend waarin je "Add new fritzbox-config" kunt selecteren uit de vervolgkeuzelijst in de regel "Device". Selecteer dit en klik vervolgens op het potloodpictogram rechts ervan.
In het venster dat nu opent moet je de inloggegevens voor je FritzBox invoeren. Voer eerst de naam in zodat de configuratie niet naamloos blijft en daarna de gebruikersnaam en het wachtwoord. Als de FritzBox zich in uw privénetwerk bevindt, kunt u de gegevens voor Host laten zoals ze zijn. Alleen als je toegang hebt tot een remote FritzBox moet je hier de URL naar de FritzBox invullen. Dan moet je er ook voor zorgen dat deze verbinding versleuteld is via HTTPS. in dit geval moet je ook het vakje "Is SSL connection" aanvinken. als je alles hebt ingevuld bevestig je dit door op "Add" te klikken.
Dit brengt je terug naar het vorige venster. De New FritzBox configuratie is nu al geselecteerd. Je moet het venster alleen nog bevestigen door op "Done" te klikken.

Knooppuntcode voor aanwezigheidsdetectie

In principe werkt aanwezigheidsdetectie via de FritzBox door te controleren welke smartphones zijn aangemeld bij de Wi-Fi of het netwerk van de FritzBox.

Ten eerste moet je de onderstaande node-code invoegen in je NodeRed-configuratie.
Vervolgens heb je de MAC-adressen nodig van de smartphones waarvan je de aanwezigheid wilt herkennen. Deze moet je vervolgens invoeren in de configuratie van de Fritz!

Knooppuntstructuur in de NodeRed-configuratie

Knooppuntcode:

[
    {
        "id": "cf98613.60e11a",
        "type": "comment",
        "z": "7289f257a02aeac1",
        "naam": "PresenceHandy1",
        "info": "",
        "x": 210,
        "y": 720,
        "wires": []
    },
    {
        "id": "eedc08fb.12b8f8",
        "type": "inject",
        "z": "7289f257a02aeac1",
        "naam": "PresenceHandy1",
        }, "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "60",
        "crontab": ""
        "once": true,
        "onceDelay": "1",
        "topic": "",
        "payload":"{"NewMACAddress":"XX: XX: XX: XX: XX: XX: XX'}",
        "payloadType": "jsonata",
        "x": 260,
        "y": 780,
        "wires": [
            [
                "38b70c39.68f504"
            ]
        ]
    },
    {
        "id": "c546f3f1.387d1",
        "type": "debug",
        "z": "7289f257a02aeac1",
        "naam": "PresenceHandy1",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload.NewActive",
        "x": 680,
        "y": 760,
        "wires": []
    },
    {
        "id": "1c07ae94.c6b621",
        "type": "trigger",
        "z": "7289f257a02aeac1",
        "naam": "",
        "op1": "PresenceMobile1 is aangemeld bij het netwerk",
        "op2": "0",
        "op1type": "str",
        "op2type": "str",
        "duration": "0",
        "extend": false,
        "units": "ms
        "reset": "0",
        "bytopic": "all",
        "outputs": 1,
        "x": 950,
        "y": 780,
        "wires": [
            [
                "38b38282.c0058e"
            ]
        ]
    },
    {
        "id": "3c25ea32.a803d6",
        "type": "change",
        "z": "7289f257a02aeac1",
        "naam": "",
        "regels": [
            {
                "t": "set
                "p": "payload
                "pt": "msg",
                "to": "payload.NewActive",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 700,
        "y": 840,
        "wires": [
            [
                "1c07ae94.c6b621",
                "379d6bd2.312594"
            ]
        ]
    },
    {
        "id": "379d6bd2.312594",
        "type": "trigger",
        "z": "7289f257a02aeac1",
        "naam": "",
        "op1": "PresenceMobile1 is niet langer aangemeld bij het netwerk",
        "op2": "0",
        "op1type": "str",
        "op2type": "str",
        "duration": "0",
        "extend": false,
        "units": "ms
        "reset": "1",
        "bytopic": "all",
        "outputs": 1,
        "x": 950,
        "y": 860,
        "wires": [
            [
                "59fcf739.918c68"
            ]
        ]
    },
    {
        "id": "38b38282.c0058e",
        "type": "pushbullet",
        "z": "7289f257a02aeac1",
        "config": "274f4530.883c1a",
        "pushtype": "note",
        "title": "Aanwezigheid",
        "chan": ""
        "naam": "",
        "x": 1170,
        "y": 780,
        "wires": []
    },
    {
        "id": "59fcf739.918c68",
        "type": "pushbullet",
        "z": "7289f257a02aeac1",
        "config": "274f4530.883c1a",
        "pushtype": "note",
        "title": "Aanwezigheid",
        "chan": ""
        "naam": "",
        "x": 1170,
        "y": 860,
        "wires": []
    },
    {
        "id": "38b70c39.68f504",
        "type": "fritzbox-in",
        "z": "7289f257a02aeac1",
        "apparaat": "eef817a2.74b848",
        "naam": "",
        "service": "urn:dslforum-org:service:Hosts:1",
        "action":"GetSpecificHostEntry",
        arguments": "{"NewMACAddress":"value"}",
        "x": 460,
        "y": 780,
        "wires": [
            [
                "c546f3f1.387d1",
                "3c25ea32.a803d6"
            ]
        ]
    }
]

Het is belangrijk dat je na het importeren van de NodeCode het MAC-adres bijwerkt dat in de FritzBox node is ingevoerd. Dit moet natuurlijk overeenkomen met het apparaat waarvan je de aanwezigheid wilt bewaken. Hoe je de MAC-adressen van apparaten in je netwerk kunt achterhalen, staat beschreven in het artikel Toon/ontdek het IP-adres van de apparaten in het netwerk genoemd.

Weergave van het FritzBox knooppunt waarin het MAC-adres van het te bewaken apparaat moet worden opgegeven.

Stel een vast MAC-adres in voor de smartphone

Sommige smartphonefabrikanten zijn nu begonnen met het willekeurig wijzigen van de MAC-adressen van hun apparaten. Dit is een beveiligingsfunctie zodat je smartphone niet gevolgd kan worden in mogelijk onbekende WLAN's.

In ons geval is het echter een belemmering omdat we de smartphones identificeren aan de hand van het vaste MAC-adres. Daarom moet je deze functie uitschakelen voor je Wi-Fi.

Deactiveer willekeurig MAC-adres onder Android 11:

Schakelt over naar:

  • Ideeën
  • koppelingen
  • DRAADLOZE INTERNETTOEGANG
  • Klik op het tandwiel naast je (verbonden) WLAN
  • geavanceerd
  • Type MAC-adres -> Instellen op "Phone MAC".

Deactiveer willekeurig MAC-adres onder iOS:

Op iOS is deze functie enigszins cryptisch verborgen onder de term "Privé WLAN-adres". Je kunt het vinden onder:

  • Ideeën
  • DRAADLOZE INTERNETTOEGANG
  • Netwerk (het netwerk waarmee u momenteel bent verbonden)
  • Privé WLAN-adres -> deactiveren

Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn altijd welkom. 🙂

PS Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik dit omdat ik het leuk vind, maar als je het cool vindt dat ik de informatie met je deel, dan zou ik blij zijn met een kleine donatie aan het koffiefonds. 🙂

Koop Me a Coffee op ko-fi.com       

8 comments

  1. Dag iedereen,

    Ik heb je instructies gebruikt zoals hierboven beschreven.
    Helaas verschijnt het volgende in de "debug"-balk:

    "Geen referenties ingesteld voor pushbullet config."

    waar kan ik referenties instellen voor pushbullet-configuratie?
    En wat moet ik daar precies instellen?
    Ik hoop dat je me kunt helpen 🙂
    Eerlijk
    Jürgen

  2. Hallo Ik hoop dat dit gebied nog steeds in de gaten wordt gehouden. Wanneer ik de Node-code wil importeren, schrijft Node RED me een syntaxfout op verschillende plaatsen

      1. Het injecteertype is onjuist. Het moet worden ingesteld op "JSONata" voor het MAC-adres, niet op "JSON". Dan werkt de fun zoals het hoort 🙂

        Maar bedankt voor de tip over Pushbullet, dat is precies wat ik zocht.

        1. Hoi,
          oh dan moet er iets veranderd zijn in de implementatie. Ik had de code al eerder op deze manier gebruikt. Maar ik heb het nu aangepast.
          Bedankt voor de tip. 🙂
          Hartelijke groeten
          Fabian

  3. Hoi Fabian, ik heb een vraag; alles werkt goed, maar ik ontvang geen pushbericht wanneer de iPhone weer op het netwerk zit. Ik zie dat er een vierkant vakje staat onder het andere knooppunt "Trigger and Block". Mijn tweede vraag is dat ik een andere Fritzbox (zelfde SSID, geen DHCP etc) op mijn netwerk heb om mijn netwerk te versterken. Als mijn iPhone daarheen gaat, krijg ik ook een melding van het netwerk

    1. Hoi Bert,
      Heb je aandacht besteed aan het punt over het Mac-adres op de iPhone? Om ongeoorloofde tracering te voorkomen, simuleert de iPhone standaard verschillende Mac-adressen wanneer hij inlogt op een WLAN. Je moet dit uitschakelen voor jouw WLAN. Ik denk dat ik dit in het artikel heb beschreven. (Helaas kan ik het nu niet opzoeken). Heb je dit punt al overwogen? 🙂
      Hartelijke groeten
      Fabian

Kommentar hinterlassen

Het e-mailadres wordt niet gepubliceerd. Erforderliche Felder sind mit * markiert

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.