Home-Assistant Config by @ccostan
Home Assistant configuration files (YAMLs)
This is my Home Assistant Configuration created with the All In One installer. I update it pretty regularly. Home Assistant runs on my Raspberry Pi 3 with Aeon Labs Z Wave Stick (GEN 5). I've also added a 433Mhz Transmitter and receiver
Software on the Pi : Home Assistant , Dasher, SSL via SSLS - 5 Bucks A Year!
Devices I have :
- Lots of iOS Devices (iPads, iPods, iPhones)
- Nest Thermostats
- Amazon Echo and DOT
- Amazon Dash Buttons
- Phillips Hue Hub Gen 2
- Circle by Disney
- Rachio Sprinkler system
- SkyBell HD
- Rokus for all streaming
- Samsung Smart TV
- ChromeCast Audios
- Etekcity Outlets
- Door Sensors (AEON Labs)
- Garadget - Garage Door opener/sensor
- Nintendo Wii
- Emulated Hue pushes all Switch, Group and scene information to Alexa for First Class Control! [Broked! Worked for literally long enough for me to clear out all my devices in Alexa. :( ]
- iTeadStudio goodies - SonOff and SonOn with a Slampher!
Automations:
- Guest mode to disable certain interior automations. Trigger via Alexa & IFTTT.
- IFTTT Notifications for Offline Devices, BadLogins, HA Startups, new HA versions and External IP changes for DSN.
- Monitor the reflection rates of Garadget and notify when they being to drop too low when closed (indicating a shift in the controller)
- Notifications when the garage door is left open at night or when we leave the house.
- (IFTTT) Logging entries in Logbooks for Rachio, Doorbell
- Auto Heal ZWave at 2:30am
- Using Etekcity Outlets to control accent lighting above kitchen cabinets and room cutouts.
- Turn on Hallway light for no more than 20 minutes when Pantry door is opened.
- Turn on TV Time Lights (dim and color) at Sunset (if home and TV is on)
- Turn on Upstairs light if Nest detects people and it's nighttime.
- Turn off lights when Nest detects we are away. (Upstairs and Downstairs)
- Turn on some lights abd switches when we get home
- Turn on some outdoor Lights at Sunset, Turn off 4 hours before sunrise. Turn off interior lights when we go to sleep.
- Turn on lights during school days for a morning routine for the kids and wife. Has No School overide boolean in GUI.
- Detects when lights are turned on and adjusts them to correct brightness based on time of day.
- Leverage Alexa, IFTTT and Elekcity outlet to control Printer On/Off via Voice. Turns off automatically after 20 minutes.
- (IFTTT) Blink ALL lights at 9:30 to remind me to take medicine. (also Alexa Alert)
- (IFTTT) Blink Office lights 15 minutes before ANY meeting on my calendar (using IFTTT)
- (IFTTT) Stop watering grass via Rachio if winds are greater than 20 MPH.
- (IFTTT) Blink ALL lights if Winds get to 70MPH - Hurricance warning.
- Sets up the front lights in the house with preset colors depending on the month.
- On motion from Doorbell (IFTTT) Turn front lights to Bright White lights for 10 minutes and then back to original colors.
#Todo List
-
AutoIt script to control lights via REST and also auto light office when I am working on Laptop.
-
Configure the Alexa Component.
-
Put Dash Buttons out there.
-
Put Door Sensor in Mailbox
-
Add Pi-Hole (Ad blocking) to the network with the Pi Zero. (Add to Home Assistant)
-
Flash backyard lights when doorbell rings.
-
Bedside dash button for morning, night and bathroom trips.
-
Create various scenes (early morning, breakfast, work, entertaining, )
-
Doorbell motion after dusk turns on light and changes it color. Dims foyer light up as well. Maybe a sconce light too.
-
Motion after midnight and the sprinklers go on.
-
Using Input Booleans, list trashday and kid's chore day on Main Screen.
-
Bathroom lights flash when door bell is pressed.
-
Vacation mode and mocupancy scenes to simulate being here.
-
Figure out a way to change the color of outdoor lights based on various minor holidays automagically.
-
Time based automations - blink light notifications (location), dash button options (https://github.com/dale3h/homeassistant-config/blob/master/examples/%40CCOSTAN/detect_state_change.yaml)
-
This : http://groundp.in/2016/10/18/step-by-step-guide-to-setting-up-esp-easy-with-home-assistant/
-
https://github.com/thundergreen/home-assistant/wiki/Add-OZWCP-in-HASS
https://community.home-assistant.io/t/snmp-bandwidth-monitor/7122
https://i.imgur.com/xy10yI1.png
#Lab notes:
- alias: 'Get Random Time'
trigger:
platform: time
after: '21:00:00'
action:
- service: input_slider.select_value data_template: entity_id: input_slider.hour value: '{{ (range(22, 23) | random) }}'
- service: input_slider.select_value data_template: entity_id: input_slider.random_minute value: '{{ (range(30, 45) | random) }}'
Then simply use that in your light turn off automation:
-
alias: 'Turn lights off' trigger: platform: template value_template: '{{ now.hour == (states.input_slider.random_hour.state | int) and now.minute == (states.input_slider.random_minute.state | int) }}' action:
- service: light.turn_off data: entity_id: light.hue_color_lamp_1
-
automation: alias: Random GLeft initial_state: False hide_entity: False trigger: platform: time seconds: '/5' action: service: homeassistant.turn_on entity_id:
- light.gright data: effect: random transition: 1 brightness: 255
-
platform: template sensors: front_door_clean: value_template: '{% if is_state("binary_sensor.front_door", "on") %}Open{% else %}Closed{% endif %}' friendly_name: 'Front Door' entity_id: binary_sensor.front_door
Template Binary Sensors
platform: template sensors: flood_sensor: value_template: >- {% if states.sensor.everspring_st812_flood_detector_flood_2_5.state == '255' %} 'on' {% elif states.sensor.everspring_st812_flood_detector_flood_2_5.state == '0' %} 'off' {% else %} n/a {% endif %}
Using Slider_Booleans to store data and restore it after.
input_slider: porch_brightness: name: Front Porch Brightness initial: 25 min: 0 max: 255 step: 1
script: record_front_porch: alias: Record front porch status to slider sequence: - service: input_slider.select_value data_template: entity_id: input_slider.porch_brightness value: '{% if states.light.front_porch_light_level_32_0.state == "off" %}0{% else %}{{states.light.front_porch_light_level_32_0.attributes.brightness}}{% endif %}'
return_front_porch: alias: Return front porch to recorded value sequence: - service: light.turn_on entity_id: light.front_porch_light_level_32_0 data_template: brightness: '{{states.input_slider.porch_brightness.state | int}}' - service: input_boolean.turn_off entity_id: input_boolean.front_porch_motion_light_active
return_front_porch_delayed: alias: Wait 5 min and then return front porch to recorded value sequence: - delay: minutes: 5 - service: script.return_front_porch
automation: - alias: Motion ON front porch trigger: # if motion is ON - this is triggered via IFTTT and Arlo - platform: state entity_id: input_boolean.motion_front_porch to: 'on' from: 'off' action: # some notifications - service: notify.scott_notifier data: message: "Motion front porch" title: "Front Porch" data: priority: 0 - service: notify.kodi data: message: "Motion front porch" title: "Front Porch" # only at night - condition: state entity_id: sun.sun state: 'below_horizon' #remember the state of front porch - service: script.record_front_porch # turn the light on - service: light.turn_on entity_id: light.front_porch_light_level_32_0 data: brightness: 255 # script with a delay that'll reset light in 5 min - service: script.return_front_porch_delayed
Easy Garbage Automation
- alias: brown garbage trigger: platform: time hours: 20 minutes: 00 seconds: 0 condition: condition: time
At least one of the following is required.
weekday:
- mon
- thu
action:
service: notify.thorsten
data:
message: 'Put the brown garbage out!'
- alias: blue garbage trigger: platform: time hours: 20 minutes: 00 seconds: 0 condition: condition: time
At least one of the following is required.
weekday:
- tue
action:
service: notify.thorsten
data:
message: 'Put the blue garbage out!'
{%- if now().month in [01, 11, 12] -%} Yes {%- else -%} NO {%- endif %}
binary_sensor: platform: command_line name: Daughter Laptop command: ping -W 1 -c 1 192.168.0.101 > /dev/null 2>&1 && echo success || echo fail sensor_class: connectivity payload_on: "success" payload_off: "fail"