take your D-Link DCS-D150 out of the cloud and into Home Assistant
I wouldn’t especially recommend the D-Link DCS-D150 motion sensor but it does have some features that had me buy it. Firstly it plugs into a wall socket above a worktop so it can sense when someone is in the kitchen. (I can then turn on the lighting – whatever). Secondly this motion sensor was one of the few sensors that worked without the need for a separate hub. It could send its ‘motion detected’ signal to IFTTT and I could then make the lights turn on and more. At £25 that’s not bad.
A few years later D-link went over to a new system and the DCS-D150 was no longer supported. A few years later still, in 2020, D-link dropped support for IFTTT so that I was left with a stupid sensor that talked to a stupid app that talked to nothing.
Luckily I found a custom component for Home Assistant. The motion sensor is back in use and can now be ‘heard’ over the network. If you want a motion sensor today (2020) consider using an RF or Zigbee model. And if you’ve any words to feedback to D-link for ‘killing off’ support like this please add them below.

Install the Dlink component into Home Assistant (method 1)

Go to the file editor in the Home Assistant frontend.
- In /config create a new folder ‘custom_components’.
- In the custom-components folder make another folder ‘dlink_motion_sensor’
- Add the three files shown (go to the end of this thread to find the files)
- Still in File editor open your configuration.yaml and add this code to the binary_sensor section.
- Save the edits and completely shut down and restart the Raspberry Pi
binary_sensor:
- platform: dlink_motion_sensor
name: kitchen_motion
host: 192.168.1.131
password: 9957XX
# the password or PIN is printed on the sensor. The ip address can be found # via the router.
# do set the router to use a fixed IP for this sensor because if the IP changes this config will fail
After Home Assistant restarts
You’ll now have an new entity called binary_sensor.kitchen_motion. When you walk past the sensor the state changes from Open to Closed.
Create an automation to turn on the lights and start a timer
id: '1566591XX7312'
alias: motion day lightson
trigger:
entity_id: binary_sensor.kitchen_motion
from: 'off'
platform: state
to: 'on'
condition:
after: 06:30
before: '23:00'
condition: time
action:
data: {}
entity_id: switch.cupboard_lights
service: switch.turn_on
data: {}
entity_id: switch.ceiling_lights
service: switch.turn_on
data: {}
entity_id: timer.ceiling_lights
service: timer.start
Create an automation to turn off the lights when a timer finishes
id: '1578935XX2018'
alias: motion light timer finished so turn off lights
trigger:
event_data:
entity: timer.ceiling_lights
event_type: timer.finished
platform: event
action:
alias: ''
data: {}
entity_id: switch.ceiling_lights
service: switch.turn_off
data: {}
entity_id: switch.cupboard_lights
service: switch.turn_off
Install the Dlink component into Home Assistant (method 2)
After a while my D-link motion sensor stopped working in Home Assistant so I looked for further solutions and found this Github code based on HNAP (Home Network Administration Protocol – whatever). The solution was to again
- Copy the dlink_hnap folder to your Home Assistant custom_components folder.
- Add this text to the binary sensor section of configuration.yaml (as above). Save, validate, restart home assistant and then look for an entity called binary_sensor.kitchen_motion.
- Continue as above – “After Home Assistant restarts …
binary_sensor:
- platform: dlink_hnap
name: kitchen_motion
host: 192.168.1.131
password: 9957XX
type: motion
username: Admin
timeout: 35
# the password or PIN is printed on the sensor. The ip address can be found # via the router.
# do set the router to use a fixed IP for this sensor because if the IP changes this config will fail