HowTo: NodeRed - Presence detection via ping requests

In order to be able to automate your own smart home properly, one function is quite important: Are residents present or not? This is the only way the system can, for example, automatically deactivate the heating, switch certain lights on or off or even activate the alarm functions.

In the article Node Red / FritzBox - presence detection with the FritzBoxI already described how this can be implemented using the function integrated in a FritzBox. But what if you don't use a FritzBox as a router?

In that case, there are a few other options, one of which I would like to describe in this article. The presence of different devices (e.g. the smartphones of the residents) can also be realized via regular ping requests.

These regular ping queries can be automated and evaluated with NodeRed. A first basis for this automation is described in the following article.

Safety instructions

I know the following hints are always a bit annoying and seem unnecessary. But unfortunately, many people who knew it "better" from carelessness lost their eyes, fingers or other things or hurt themselves. In comparison, a loss of data is almost not worth mentioning, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Even the coolest project is worth no injury or other annoyance.

Affiliate links / advertising links

The links to online stores listed here are so-called affiliate links. If you click on such an affiliate link and store via this link, receives a commission from the online store or provider concerned. The price doesn't change for you. If you do your purchases via these links, you will support in being able to offer further useful projects in the future. 🙂


Helpful articles:
So that you can install new nodes, NodeRed should of course already be installed on your RaspberryPi.
How to prepare a RaspberryPi and then install NodeRed on it is described in the following articles.

In the following lists you will find all the parts you need to implement this article.

Required tool:

1xScrewdriver set  Buy at Amazon
1xSD card reader  Buy at Amazon

Required material:

1xSONOFF Zigbee 3.0 USB Dongle Plus  Buy at Amazon
1xUSB extension cable  Buy at Amazon
1x Raspberry Pi  Buy at Amazon
1x Raspberry Pi power supply  Buy at Amazon
1x Raspberry Pi case  Buy at Amazon
1x Micro SD card 64GB  Buy at Amazon

Import Node Red code

In this section you will find the Node Red code you need. How you can import this into your NodeRed environment is described in the article NodeRed - importing and exporting node code.

In order to be able to use the node code linked below with your ESPEasy device, you have to make a few changes. These are described in the next section.

You can find the Node Red code in the Nerdiy Git repository under the following link:

Another view of the Node Red Flow in the configuration interface.

In order for the Node Red Flow to work correctly, you must enter the IP address of the device whose presence you want to query in the red area.

Information on how to find out the IP addresses of individual devices can be found in the article

The JavaScript code that converts the response time into a presence signal can be seen in the area marked in red.

So you can use the global variable "device_is-present" to evaluate the presence status of the device.

More articles related to Node Red

In the following categories you will find further links on the subject of Node Red.

Have fun with the project

I hope everything worked as described. If not or you have any other questions or suggestions, please let me know in the comments. Also, ideas for new projects are always welcome. 🙂

P.S. Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you appreciate that I share this information with you, I would be happy about a small donation to the coffee box. 🙂

Buy Me a Coffee at   

Kommentar hinterlassen

Your email address will not be published. Erforderliche Felder sind mit * markiert