Skip to content

Commit

Permalink
Changes
Browse files Browse the repository at this point in the history
  • Loading branch information
aneisch committed Jul 30, 2024
1 parent 0fb5ca4 commit 1bb5b7d
Show file tree
Hide file tree
Showing 61 changed files with 1,102 additions and 402 deletions.
28 changes: 15 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[![Build Status](https://github.com/aneisch/home-assistant-config/actions/workflows/check-ha-release-compatibility.yml/badge.svg)](https://github.com/aneisch/home-assistant-config/actions)
[![GitHub last commit](https://img.shields.io/github/last-commit/aneisch/home-assistant-config)](https://github.com/aneisch/home-assistant-config/commits/master)
[![GitHub commit activity](https://img.shields.io/github/commit-activity/y/aneisch/home-assistant-config)](https://github.com/aneisch/home-assistant-config/graphs/commit-activity)
[![HA Version](https://img.shields.io/badge/Running%20Home%20Assistant-2024.7.2%20(Latest)-brightgreen)](https://github.com/home-assistant/home-assistant/releases/latest)
[![HA Version](https://img.shields.io/badge/Running%20Home%20Assistant-2024.7.3%20(Latest)-brightgreen)](https://github.com/home-assistant/home-assistant/releases/latest)
<br><a href="https://www.buymeacoffee.com/aneisch" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-black.png" width="150px" height="35px" alt="Buy Me A Coffee" style="height: 35px !important;width: 150px !important;" ></a>

I do my best to keep [Home Assistant](https://github.com/home-assistant/home-assistant) on the [latest release](https://github.com/home-assistant/home-assistant/releases/latest). I'm heavily utilizing [AppDaemon](http://appdaemon.readthedocs.io/en/latest/) and [NodeRed](https://flows.nodered.org/node/node-red-contrib-home-assistant-websocket) for advanced/templated automations. See [Appdaemon config](https://github.com/aneisch/home-assistant-config/tree/master/extras/appdaemon) and my NodeRed screenshots below for details. Most of my setup is run as Docker containers (see [docker-compose](https://github.com/aneisch/home-assistant-config/tree/master/extras/docker-compose) for container list).
Expand Down Expand Up @@ -58,18 +58,18 @@ Home Assistant and other containers have ingress handled automatically by [Traef
## Some statistics about my installation:
Description | value
-- | --
Lines of ESPHome YAML | 3157
Lines of Home Assistant YAML | 9391
Lines of ESPHome YAML | 3250
Lines of Home Assistant YAML | 9631
[Integrations](https://www.home-assistant.io/integrations/) in use | 62
Zigbee devices in [`zha`](https://www.home-assistant.io/integrations/zha/) | 26
Z-Wave devices in [`zwave_js`](https://www.home-assistant.io/integrations/zwave_js/) | 37

Description | value
-- | --
Entities in the [`automation`](https://www.home-assistant.io/components/automation) domain | 125
Entities in the [`binary_sensor`](https://www.home-assistant.io/components/binary_sensor) domain | 156
Entities in the [`button`](https://www.home-assistant.io/components/button) domain | 36
Entities in the [`camera`](https://www.home-assistant.io/components/camera) domain | 15
Entities in the [`automation`](https://www.home-assistant.io/components/automation) domain | 127
Entities in the [`binary_sensor`](https://www.home-assistant.io/components/binary_sensor) domain | 157
Entities in the [`button`](https://www.home-assistant.io/components/button) domain | 45
Entities in the [`camera`](https://www.home-assistant.io/components/camera) domain | 16
Entities in the [`climate`](https://www.home-assistant.io/components/climate) domain | 1
Entities in the [`conversation`](https://www.home-assistant.io/components/conversation) domain | 2
Entities in the [`counter`](https://www.home-assistant.io/components/counter) domain | 1
Expand All @@ -79,7 +79,7 @@ Entities in the [`device_tracker`](https://www.home-assistant.io/components/devi
Entities in the [`event`](https://www.home-assistant.io/components/event) domain | 14
Entities in the [`fan`](https://www.home-assistant.io/components/fan) domain | 3
Entities in the [`group`](https://www.home-assistant.io/components/group) domain | 19
Entities in the [`image`](https://www.home-assistant.io/components/image) domain | 7
Entities in the [`image`](https://www.home-assistant.io/components/image) domain | 8
Entities in the [`input_boolean`](https://www.home-assistant.io/components/input_boolean) domain | 30
Entities in the [`input_datetime`](https://www.home-assistant.io/components/input_datetime) domain | 32
Entities in the [`input_number`](https://www.home-assistant.io/components/input_number) domain | 6
Expand All @@ -88,23 +88,25 @@ Entities in the [`input_text`](https://www.home-assistant.io/components/input_te
Entities in the [`light`](https://www.home-assistant.io/components/light) domain | 39
Entities in the [`lock`](https://www.home-assistant.io/components/lock) domain | 4
Entities in the [`media_player`](https://www.home-assistant.io/components/media_player) domain | 18
Entities in the [`number`](https://www.home-assistant.io/components/number) domain | 12
Entities in the [`notify`](https://www.home-assistant.io/components/notify) domain | 2
Entities in the [`number`](https://www.home-assistant.io/components/number) domain | 15
Entities in the [`person`](https://www.home-assistant.io/components/person) domain | 2
Entities in the [`plant`](https://www.home-assistant.io/components/plant) domain | 1
Entities in the [`remote`](https://www.home-assistant.io/components/remote) domain | 4
Entities in the [`script`](https://www.home-assistant.io/components/script) domain | 48
Entities in the [`script`](https://www.home-assistant.io/components/script) domain | 50
Entities in the [`select`](https://www.home-assistant.io/components/select) domain | 4
Entities in the [`sensor`](https://www.home-assistant.io/components/sensor) domain | 516
Entities in the [`sensor`](https://www.home-assistant.io/components/sensor) domain | 517
Entities in the [`setter`](https://www.home-assistant.io/components/setter) domain | 1
Entities in the [`siren`](https://www.home-assistant.io/components/siren) domain | 1
Entities in the [`sun`](https://www.home-assistant.io/components/sun) domain | 1
Entities in the [`switch`](https://www.home-assistant.io/components/switch) domain | 178
Entities in the [`switch`](https://www.home-assistant.io/components/switch) domain | 179
Entities in the [`timer`](https://www.home-assistant.io/components/timer) domain | 6
Entities in the [`tts`](https://www.home-assistant.io/components/tts) domain | 1
Entities in the [`update`](https://www.home-assistant.io/components/update) domain | 35
Entities in the [`vacuum`](https://www.home-assistant.io/components/vacuum) domain | 1
Entities in the [`weather`](https://www.home-assistant.io/components/weather) domain | 1
Entities in the [`zone`](https://www.home-assistant.io/components/zone) domain | 6
**Total state objects** | **1386**
**Total state objects** | **1410**
## The HACS integrations/plugins that I use:

**Appdaemon**:<br>
Expand Down
185 changes: 156 additions & 29 deletions automations.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -183,12 +183,19 @@
from: 'off'
to: 'on'
action:
- service: input_datetime.set_datetime
data:
entity_id: input_datetime.{{trigger.entity_id | regex_replace(find='binary_sensor.',
replace='') | regex_replace(find='input_boolean.', replace='') | regex_replace(find='sensor.',
replace='') }}_last
datetime: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'
- if: '{{ trigger.entity_id == ''binary_sensor.garage_person_occupancy'' }}'
then:
- service: input_datetime.set_datetime
data:
entity_id: input_datetime.garage_motion_last
datetime: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'
else:
- service: input_datetime.set_datetime
data:
entity_id: input_datetime.{{trigger.entity_id | regex_replace(find='binary_sensor.',
replace='') | regex_replace(find='input_boolean.', replace='') | regex_replace(find='sensor.',
replace='') }}_last
datetime: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'
- alias: Door Lock Alerts
id: door_lock_alerts
initial_state: true
Expand Down Expand Up @@ -797,52 +804,129 @@
message: 'Home Assistant v{{ states(''sensor.ha_version'')}} has started!
'
- alias: Coffee Maker on With Alarm Clock
id: coffee_maker_alarm_clock
initial_state: true
- id: coffee_maker_alarm_clock
alias: Coffee Maker on With Alarm Clock
trigger:
- platform: state
entity_id: sensor.andrew_phone_last_notification
attribute: channel_id
to: Firing
id: alarm
alias: Phone Alarm
- platform: event
id: respond
event_type: mobile_app_notification_action
event_data:
action: confirm_coffee_on
alias: Mobile Notification Response
- alias: Mobile Notification Response
platform: event
id: make
event_type: mobile_app_notification_action
event_data:
action: confirm_make_latte
condition:
condition: and
- condition: and
conditions:
- '{{ states(''binary_sensor.workday_sensor'') == ''on'' }}'
- '{{ states(''person.andrew'') == ''home'' }}'
- condition: template
value_template: '{{ states(''binary_sensor.workday_sensor'') == ''on'' }}'
alias: Workday?
enabled: false
- condition: time
after: 05:30:00
before: 09:45:00
- '{{ states(''sensor.andrew_phone_charger_type'') != ''none'' }}'
before: '10:00:00'
enabled: true
alias: Morning?
- condition: template
value_template: '{{ states(''person.andrew'') == ''home'' }}'
alias: Andrew Home?
action:
- wait_template: '{{ is_state(''sensor.andrew_phone_charger_type'', ''none'') }}'
timeout: 00:05:00
- service: switch.turn_on
entity_id: switch.coffee_maker
- service: switch.turn_on
entity_id: switch.under_cabinet_lights_coffee
- wait_template: '{{ is_state(''switch.under_cabinet_lights_coffee'', ''off'') }}'
timeout: 00:20:00
- if:
- '{{ wait.completed }}'
- condition: trigger
id:
- alarm
then:
- service: switch.turn_off
entity_id: switch.coffee_maker
- alias: Coffee Maker Off
id: coffee_maker_off
- wait_template: '{{ is_state(''sensor.andrew_phone_charger_type'', ''none'')
}}'
timeout: 00:05:00
- service: notify.mobile_app_andrew_phone
data:
message: Turn on Coffee Maker?
data:
persistent: true
tag: persistent
actions:
- action: confirm_coffee_on
title: 'Yes'
- action: ignore_coffee_on
title: 'No'
alias: Send Notification
- alias: Turn on Coffee Maker
if:
- condition: trigger
id:
- respond
then:
- service: switch.turn_on
data: {}
target:
entity_id: switch.coffee_maker_power_with_cleaning
alias: Turn on Coffee Maker
- wait_for_trigger:
- platform: state
entity_id:
- sensor.coffee_maker_status
to: Idle
for:
hours: 0
minutes: 1
seconds: 0
timeout:
hours: 0
minutes: 2
seconds: 0
milliseconds: 0
alias: Wait For Idle Status
- service: notify.mobile_app_andrew_phone
data:
message: Make Double Latte?
data:
persistent: true
tag: persistent
actions:
- action: confirm_make_latte
title: 'Yes'
- action: ignore_make_latte
title: 'No'
alias: Send Make Late Question
- alias: Make Double Latte
if:
- condition: trigger
id:
- make
then:
- service: script.andrew_double_latte
data: {}
initial_state: true
- id: coffee_maker_off
alias: Coffee Maker Off
trigger:
- platform: time
at: '10:00:00'
condition: '{{ states(''switch.coffee_maker'') == ''on'' }}'
condition:
- condition: template
value_template: '{{ states(''switch.coffee_maker'') == ''on'' }}'
action:
- service: switch.turn_off
entity_id: switch.coffee_maker
data: {}
target:
entity_id: switch.coffee_maker_power_without_cleaning
- service: notify.signal_homeassistant
data:
message: 'Turned coffee maker off!
'
initial_state: true
- alias: Turn off AC Fan
id: turn_off_ac_fan
trigger:
Expand Down Expand Up @@ -1095,3 +1179,46 @@
- cover.master_bedroom_blind_left
- cover.master_bedroom_blind_right
automation_mode: restart
- id: '1722280146692'
alias: Reset Master Bathroom Motion
description: ''
trigger:
- platform: state
entity_id:
- binary_sensor.433_motion_master_bathroom
to: 'on'
for:
hours: 0
minutes: 1
seconds: 0
condition: []
action:
- service: setter.set
data:
entity_id: binary_sensor.433_motion_master_bathroom
state: 'off'
attributes:
device_class: motion
friendly_name: 433 Motion Master Bathroom
mode: single
- id: '1722300479686'
alias: Turn off Master Bathroom Lights
description: ''
trigger:
- platform: state
entity_id:
- binary_sensor.433_motion_master_bathroom
to: 'off'
for:
hours: 0
minutes: 30
seconds: 0
condition: []
action:
- service: switch.turn_off
target:
entity_id:
- switch.master_bathroom_light_main
- switch.master_bathroom_light_secondary
data: {}
mode: single
2 changes: 1 addition & 1 deletion configuration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,7 @@ scene: !include scene.yaml

script: !include scripts.yaml

#setter:
setter:

sensor: !include sensors.yaml

Expand Down
13 changes: 11 additions & 2 deletions custom_components/alexa_media/.translations/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,12 @@
"debug": "Erweitertes Debugging",
"email": "E-Mail-Adresse",
"exclude_devices": "Ausgeschlossene Geräte (Komma getrennt)",
"extended_entity_discovery": "Include devices connected via Echo",
"hass_url": "Home Assistant-URL",
"include_devices": "Eingebundene Geräte (Komma getrennt)",
"otp_secret": "Integrierter 2FA-App-Schlüssel (automatisch generierte 2FA-Code)",
"password": "Passwort",
"queue_delay": "Sekunden zu warten, um Befehle in die Warteschlange zu stellen",
"scan_interval": "Sekunden zwischen den Scans",
"securitycode": "2FA-Code (empfohlen, um Anmeldeprobleme zu vermeiden)",
"url": "Amazon Region (z.B. amazon.de)"
Expand All @@ -51,10 +53,17 @@
"step": {
"init": {
"data": {
"debug": "Erweitertes Debugging",
"exclude_devices": "Ausgeschlossene Geräte (Komma getrennt)",
"extended_entity_discovery": "Schließen Sie Geräte ein, die über Echo verbunden sind",
"hass_url": "Öffentliche URL zum Zugriff auf Home Assistant (einschließlich '/' am Ende)",
"include_devices": "Eingebundene Geräte (Komma getrennt)",
"public_url": "Öffentliche URL zum Zugriff auf Home Assistant (einschließlich '/' am Ende)",
"queue_delay": "Sekunden zu warten, um Befehle in die Warteschlange zu stellen"
}
"queue_delay": "Sekunden zu warten, um Befehle in die Warteschlange zu stellen",
"scan_interval": "Sekunden zwischen den Scans"
},
"description": "Required *",
"title": "Alexa Media Player - Reconfiguration"
}
}
},
Expand Down
13 changes: 11 additions & 2 deletions custom_components/alexa_media/.translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,12 @@
"debug": "Advanced debugging",
"email": "Email Address",
"exclude_devices": "Excluded device (comma separated)",
"extended_entity_discovery": "Include devices connected via Echo",
"hass_url": "Url to access Home Assistant",
"include_devices": "Included device (comma separated)",
"otp_secret": "Built-in 2FA App Key (automatically generate 2FA Codes). This is not six digits long.",
"password": "Password",
"queue_delay": "Seconds to wait to queue commands together",
"scan_interval": "Seconds between scans",
"securitycode": "[%key_id:55616596%]",
"url": "Amazon region domain (e.g., amazon.co.uk)"
Expand All @@ -51,10 +53,17 @@
"step": {
"init": {
"data": {
"debug": "Advanced debugging",
"exclude_devices": "Excluded device (comma separated)",
"extended_entity_discovery": "Include devices connected via Echo",
"hass_url": "Public URL to access Home Assistant (including trailing '/')",
"include_devices": "Included device (comma separated)",
"public_url": "Public URL to access Home Assistant (including trailing '/')",
"queue_delay": "Seconds to wait to queue commands together"
}
"queue_delay": "Seconds to wait to queue commands together",
"scan_interval": "Seconds between scans"
},
"description": "Required *",
"title": "Alexa Media Player - Reconfiguration"
}
}
},
Expand Down
Loading

0 comments on commit 1bb5b7d

Please sign in to comment.