ESPHome · local only

Nodex PIR · for Home Assistant

Notices you, then gets out of the way.

A Panasonic PaPIRs element on a Wemos D1 mini, flashed with ESPHome. It reports to Home Assistant over your own network — no bridge, no battery to change, no cloud that can go quiet.

Built because Zigbee motion sensors kept missing people, or kept turning the lights off on them.

Motion + Occupancy/ Mains powered/ No cloud/ Config is open source
Motionbinary_sensor Clear
Occupancybinary_sensor Clear

Nobody about.

Built onESPHome RunsLocally, no cloud Yours toTake Control UpdatesOver the air

Open config and over-the-air updates, with the whole configuration public so nothing has to be taken on trust.

The whole idea

One sensor, two answers — because they're different questions.

“Did something just move?” and “is anyone still in here?” need opposite behaviour. Most sensors give you one number and make you bodge the other in an automation. This one gives you both.

Motion

Fast, honest, and quick to let go.

Goes on the instant the element trips and clears again a few seconds after the last detection. That's what you want behind an alert, a camera snapshot, or a notification — a clean edge you can trigger on.

Use it for: alerts, doorway triggers, “someone's in the garage”.

Occupancy

Patient, so the lights stay on.

Stays on for a couple of minutes after movement stops, and the timer restarts every time you so much as shift in a chair. It's the difference between a room that feels occupied and one that plunges you into the dark while you're reading.

Use it for: lights, heating, extractor fans, “is this room in use?”.

Both are ordinary Home Assistant binary sensors, so they work anywhere an entity works — automations, dashboards, history, the lot. Both timings are adjustable without touching the firmware.

Out of the box

Plug it in, give it your WiFi, click Configure.

It arrives flashed. There's nothing to install and no YAML to write unless you want to.

01

Plug it into USB power

Any phone charger or spare USB port. It's mains powered, so there's no battery to replace in two years' time.

02

Join its setup network

On your phone, join the WiFi network Nodex PIR Setup. A page opens by itself.

03

Give it your WiFi

Choose your network, enter the password. It reconnects on its own.

04

Click Configure in Home Assistant

A New device discovered notification appears. Click Configure and both sensors plus every setting show up at once.

Full instructions & config on GitHub → The same README that ships with the device.

Tuning it

Every timing is a knob in Home Assistant.

All of these live under the device's Configuration section. Change them from the UI or from an automation — nothing needs re-flashing.

SettingWhat it doesDefault
Motion hold timeHow long Motion stays on after the last detection.5 s
Minimum trigger timeIgnore detections shorter than this. Raise it if you're getting false triggers.0 ms
Occupancy timeoutHow long Occupancy stays on after movement stops.120 s
Motion detectionTurn sensing off without unplugging the thing.On
LED on motionLight the on-board LED when motion is detected.Off
Motion LED brightnessHow bright that LED is when motion lights it.20 %
The LED

It's also just a light.

Besides blinking on motion, the on-board LED appears in Home Assistant as a normal light entity. Turn it on, off, or dim it from the UI or an automation — a quiet little status lamp, or off entirely in a bedroom.

Make it yours

Take Control and it's your config.

In the ESPHome dashboard the device shows as discovered. Click Take Control to copy the config into your own ESPHome and change whatever you like.

Wiring it yourself? The PIR output goes to D0 (GPIO16); change pir_pin in the config if you put it somewhere else.

At a glance

Specifications

SensorPanasonic EKMC PaPIRs pyroelectric element
ControllerWemos D1 mini · ESP8266, running ESPHome
EntitiesMotion · Occupancy (binary sensors) · LED (light) · six configuration controls
Works withHome Assistant, over your own network. Discovered automatically.
PowerUSB — mains powered, no batteries
Network2.4 GHz WiFi, set up from a phone over its own hotspot
WiringPIR output on D0 (GPIO16), configurable via pir_pin
CloudNone. Nothing leaves your network.
UpdatesOver the air, offered inside Home Assistant
Sourcegithub.com/TPS505/Nodex-PIR — the full ESPHome config

Get one

The cheap one that proves the rest.

Assembled and flashed in the UK, sold through our Etsy shop where you'll find the current price, photos and postage. If you've been meaning to try a local-first sensor, start here.

Questions before you buy? Email hello@tps505.com — you'll get an answer from the person who built it.