Files
homelab/active/device_home_assistant/home_assistant.md
ducoterra ef9104c796
All checks were successful
Reese's Arch Toolbox / build-and-push-arch-toolbox (push) Successful in 14s
moving everything to active or retired vs incubating and graduated
2025-04-19 18:52:33 -04:00

338 lines
9.4 KiB
Markdown

# Home Assistant
- [Home Assistant](#home-assistant)
- [Setup and Configuration](#setup-and-configuration)
- [Schlage Door Lock](#schlage-door-lock)
- [Philips Hue Lights](#philips-hue-lights)
- [Shelly](#shelly)
- [Relative Humidity Calculator](#relative-humidity-calculator)
- [Font Colors](#font-colors)
- [Light Indicator for Voice Assistant](#light-indicator-for-voice-assistant)
- [Blank Button (Spacer)](#blank-button-spacer)
- [Roku Remote](#roku-remote)
## Setup and Configuration
### Schlage Door Lock
1. Install Z-wave
2. Install z-wave JS module
3. Add device -> How do you want to add your device -> Legacy Secure
4. Disconnect and Reconnect the battery on the lock
5. Press and hold the zwave button until the light turns solid red, release and it should flash red
1. (OR) Enter programming pin on lock -> 0 (this may take a few attempts, don't click the pair button)
If the lock ever disconnects you can safely delete it from home assistant and re-interview. It will
set back up with the correct entity IDs and automations/dashboards will work just fine.
### Philips Hue Lights
1. I configure all philips hue lights through zigbee directly connected to HA
hue lights support color_temp in mireds, here are some mired-kelvin conversions:
| Kelvin | Mired |
| ------ | ----- |
| 6000 | 167 |
| 4000 | 250 |
| 2600 | 385 |
### Shelly
1. Outbound Websocket `wss://homeassistant.reeseapps.com/api/shelly/ws`
Shelly devices can act as "passive" or "active" bluetooth scanners. Both of these configurations
allow home assistant to proxy bluetooth connections through shelly devices, significantly extending
the range of your home assistant's bluetooth capabilities. Active scanning uses more power but
is quicker to pick up and transmit device information. Note that "gateway mode" is not required,
just enable bluetooth and rpc or select "active" from the configuration menu for the shelly
device.
### Relative Humidity Calculator
<https://www.wikihow.com/Calculate-Humidity>
You can calculate the relative humidity of the outdoor air if warmed to indoor temperatures like so:
```jinja
{% set dew_point = state_attr("weather.forecast_home", "dew_point") %}
{% set air_temp_f = state_attr("climate.ecobee_thermostat", "current_temperature") %}
{% set air_temp = (5/9)*(air_temp_f-32) %}
{% set sat_vap_press = 6.11 * 10**((7.5*air_temp) / (237.3+air_temp)) %}
{% set act_vap_press = 6.11 * 10**((7.5*dew_point) / (237.3+dew_point)) %}
{% set rel_hum = 100*(act_vap_press / sat_vap_press) %}
{{ dew_point }}
{{ air_temp }}
{{ sat_vap_press }}
{{ act_vap_press }}
{{ rel_hum }}
```
### Font Colors
```html
<font color = {{ "green" if state_attr("climate.ecobee_thermostat", "current_humidity") > low_humidity and state_attr("climate.ecobee_thermostat", "current_humidity") < high_humidity else "red" }}>
HVAC Humidity: {{ state_attr("climate.ecobee_thermostat", "current_humidity") }}%
</font>
```
### Light Indicator for Voice Assistant
```yaml
alias: Flash Lights on Bedroom Voice Assistant Start
description: ""
triggers:
- type: turned_on
device_id: d50fa1ae499e88bf37225c7e82ed189b
entity_id: 7ab2896ca3a55efd2e0ee9bba91fdf68
domain: binary_sensor
metadata:
secondary: false
trigger: device
conditions: []
actions:
- action: scene.create
metadata: {}
data:
scene_id: bedroombeforescene
snapshot_entities:
- light.main_bedroom_lamps
- action: light.turn_on
metadata: {}
data:
transition: 0.25
brightness_step_pct: 5
target:
entity_id: light.main_bedroom_lamps
- delay:
hours: 0
minutes: 0
seconds: 0
milliseconds: 250
- action: scene.turn_on
data:
entity_id: scene.bedroombeforescene
transition: 0.25
mode: single
```
### Blank Button (Spacer)
```yaml
- type: button
tap_action:
action: none
show_state: false
show_name: false
show_icon: false
hold_action:
action: none
```
### Roku Remote
```yaml
type: vertical-stack
cards:
- type: entity
entity: select.left_living_room_application
- square: true
type: grid
cards:
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: power
entity: remote.left_living_room
icon: mdi:power
name: power
show_state: false
hold_action:
action: none
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: volume_down
entity: remote.left_living_room
icon: mdi:volume-minus
name: volume down / hold mute
show_state: false
hold_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: volume_mute
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: volume_up
entity: remote.left_living_room
icon: mdi:volume-plus
name: volume up / hold mute
show_state: false
"hold_action:":
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: volume_mute
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: back
entity: remote.left_living_room
icon: mdi:undo
name: back
show_state: false
hold_action:
action: none
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: up
entity: remote.left_living_room
icon: mdi:arrow-up-bold
name: up
hold_action:
action: none
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: home
entity: remote.left_living_room
icon: mdi:home
name: home
hold_action:
action: none
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: left
entity: remote.left_living_room
icon: mdi:arrow-left-bold
name: left
hold_action:
action: none
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: select
entity: remote.left_living_room
icon: mdi:select-all
name: select
hold_action:
action: none
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: right
entity: remote.left_living_room
icon: mdi:arrow-right-bold
name: right
hold_action:
action: none
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: play
entity: remote.left_living_room
icon: mdi:play-pause
name: play/pause
hold_action:
action: none
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: down
entity: remote.left_living_room
icon: mdi:arrow-down-bold
name: down
hold_action:
action: none
- show_name: true
show_icon: true
type: button
tap_action:
action: perform-action
perform_action: remote.send_command
target:
entity_id: remote.left_living_room
data:
command: info
entity: remote.left_living_room
icon: mdi:wrench
name: settings
hold_action:
action: none
title: Left Living Room TV
```