This is a slight departure from my normal RGB pixel display videos. We look at using strip lights as pathway lights and controlling them through Home Assistant. I go through setting up Home Assistant and programming the NodeMCU modules using Ben’s code on GitHub.
SD Card Formatter: https://www.sdcard.org/
Etcher Image Writer: https://etcher.io
Home Assistant: https://www.home-assistant.io/
CloudMQTT: https://www.cloudmqtt.com/
Arduino IDE: https://www.arduino.cc
Multi-sensor GitHub Page: https://bit.ly/2GUnSmQ
Pixel controller GitHub Page: https://bit.ly/2IKBLR7
Parts Lists:
Multi-Sensor
- Raspberry Pi 3 B (not the B+) https://amzn.to/2JEcuJR
- Raspberry Pi 3 B+ https://amzn.to/2GRRuBt
- NodeMCU Development Board https://amzn.to/2qp1A2s
- Mini Pyroelectric PIR Sensor https://amzn.to/2qqaa07
- **Adjustable PIR Motion Sensor (5-pack) https://amzn.to/2qoLZ2f
- DHT22 Digital Temperature & Humidity Sensor https://amzn.to/2IOgFl3
- TEMT6000 Light Sensor https://amzn.to/2HvcWJE
- 50-pack RGB (dumb) LED https://amzn.to/2GVxxWt
Pixel Controller
- Logic Level Converter (may not need this) https://amzn.to/2qqajkb
- DC-DC Buck Converter https://amzn.to/2Jzn4lj
- 5A 12V Power Supply https://amzn.to/2GUD27V
- Aluminum Channel System https://amzn.to/2JBjlDT
My YAML configuration for this:
# Binary Sensors
binary_sensor:
- platform: threshold
name: isdark
entity_id: sensor.light_level
lower: 100
hidden: true
# Regular Sensors
sensor:
- platform: template
sensors:
rgbtemp:
friendly_name: RGB Temp
value_template: >-
{% if states('sensor.temperature')|float > 79.9 %}
Hot
{% elif states('sensor.temperature')|float < 70 %}
Cold
{% else %}
Just Right
{% endif %}
Automations
- alias: Stair Pathway Lighting On
trigger:
- platform: state
entity_id: binary_sensor.isdark
to: 'on'
- platform: state
entity_id: sensor.rgbtemp
condition:
- condition: state
entity_id: binary_sensor.isdark
state: 'on'
action:
- service: mqtt.publish
data_template:
topic: "mqtt/topic"
payload: >-
{% if is_state('sensor.rgbtemp', 'Hot') %}
{"state":"ON","color":{"r":255,"g":100,"b":100},"brightness":6,"effect":"solid"}
{% elif is_state('sensor.rgbtemp', 'Cold') %}
{"state":"ON","color":{"r":100,"g":100,"b":255},"brightness":6,"effect":"solid"}
{% else %}
{"state":"ON","color":{"r":100,"g":200,"b":100},"brightness":6,"effect":"solid"}
{% endif %}
- alias: Stair Pathway Lighting Off
trigger:
- platform: state
entity_id: binary_sensor.isdark
to: 'off'
condition:
- condition: state
entity_id: light.stair_strip
state: 'on'
action:
- service: mqtt.publish
data_template:
topic: "mqtt/topic"
payload: '{"state":"OFF"}'
