Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
aneisch committed Dec 9, 2024
1 parent 5a8bac8 commit d21696d
Show file tree
Hide file tree
Showing 124 changed files with 2,803 additions and 374 deletions.
14 changes: 7 additions & 7 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.11.2%20(Latest)-brightgreen)](https://github.com/home-assistant/home-assistant/releases/latest)
[![HA Version](https://img.shields.io/badge/Running%20Home%20Assistant-2024.12.1%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 @@ -59,14 +59,14 @@ Home Assistant and other containers have ingress handled automatically by [Traef
Description | value
-- | --
Lines of ESPHome YAML | 3297
Lines of Home Assistant YAML | 10787
Lines of Home Assistant YAML | 10853
[Integrations](https://www.home-assistant.io/integrations/) in use | 66
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 | 135
Entities in the [`automation`](https://www.home-assistant.io/components/automation) domain | 136
Entities in the [`binary_sensor`](https://www.home-assistant.io/components/binary_sensor) domain | 175
Entities in the [`button`](https://www.home-assistant.io/components/button) domain | 53
Entities in the [`camera`](https://www.home-assistant.io/components/camera) domain | 16
Expand All @@ -80,11 +80,11 @@ Entities in the [`event`](https://www.home-assistant.io/components/event) domain
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 | 21
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 | 31
Entities in the [`input_boolean`](https://www.home-assistant.io/components/input_boolean) domain | 32
Entities in the [`input_datetime`](https://www.home-assistant.io/components/input_datetime) domain | 33
Entities in the [`input_number`](https://www.home-assistant.io/components/input_number) domain | 6
Entities in the [`input_select`](https://www.home-assistant.io/components/input_select) domain | 19
Entities in the [`input_text`](https://www.home-assistant.io/components/input_text) domain | 17
Entities in the [`input_text`](https://www.home-assistant.io/components/input_text) domain | 18
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 | 20
Expand All @@ -95,7 +95,7 @@ Entities in the [`plant`](https://www.home-assistant.io/components/plant) domain
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 | 52
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 | 569
Entities in the [`sensor`](https://www.home-assistant.io/components/sensor) domain | 605
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
Expand All @@ -106,7 +106,7 @@ Entities in the [`update`](https://www.home-assistant.io/components/update) doma
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 | 8
**Total state objects** | **1579**
**Total state objects** | **1618**
## The HACS integrations/plugins that I use:

**Appdaemon**:<br>
Expand Down
61 changes: 40 additions & 21 deletions automations.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -350,37 +350,56 @@
then:
- action: homeassistant.turn_on
entity_id: switch.andrew_office_speakers
- alias: Turn on speakers and tv when XBOX powers on
id: speakers_with_xbox
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.xbox_power
- id: speakers_with_xbox
alias: Turn on speakers and tv when XBOX powers on
triggers:
- entity_id:
- binary_sensor.xbox_power
to: 'on'
condition: '{{ states(''input_boolean.goodnight'') == ''off'' and states(''group.trackers'')
== ''home'' }}'
action:
action: homeassistant.turn_on
trigger: state
for:
hours: 0
minutes: 1
seconds: 0
conditions:
- condition: template
value_template: '{{ states(''input_boolean.goodnight'') == ''off'' and states(''group.trackers'')
== ''home'' }}'
actions:
- action: homeassistant.turn_on
entity_id:
- switch.living_room_speakers
- switch.tv
- alias: Turn off speakers when tv OR xbox powers off
id: tv_off_with_xbox_off
initial_state: true
trigger:
- platform: state
entity_id: switch.tv
- id: tv_off_with_xbox_off
alias: Turn off speakers when tv OR xbox powers off
triggers:
- entity_id:
- switch.tv
to: 'off'
- platform: state
entity_id: binary_sensor.xbox_power
trigger: state
for:
hours: 0
minutes: 1
seconds: 0
- entity_id:
- binary_sensor.xbox_power
to: 'off'
condition: '{{ states(''input_boolean.goodnight'') == ''off'' and states(''group.trackers'')
== ''home'' }}'
action:
action: homeassistant.turn_off
trigger: state
for:
hours: 0
minutes: 1
seconds: 0
conditions:
- condition: template
value_template: '{{ states(''input_boolean.goodnight'') == ''off'' and states(''group.trackers'')
== ''home'' }}'
actions:
- action: homeassistant.turn_off
entity_id:
- switch.living_room_speakers
- switch.tv
initial_state: true
- id: desk_lamp_macbook_active
alias: Desk Lamp on when MacBook Active
trigger:
Expand Down
2 changes: 1 addition & 1 deletion custom_components/alexa_media/.translations/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
"scan_interval": "Sekunden zwischen den Scans"
},
"description": "Erforderlich *",
"title": "Alexa Media Player - Neukonfiguration"
"title": "Alexa Media Player - Rekonfikuration"
}
}
},
Expand Down
100 changes: 50 additions & 50 deletions custom_components/alexa_media/.translations/nl.json
Original file line number Diff line number Diff line change
@@ -1,106 +1,106 @@
{
"config": {
"abort": {
"forgot_password": "The Forgot Password page was detected. This normally is the result of too may failed logins. Amazon may require action before a relogin can be attempted.",
"login_failed": "Alexa Media Player failed to login.",
"reauth_successful": "Alexa Media Player successfully reauthenticated."
"forgot_password": "De pagina wachtwoord vergeten is gedetecteerd. Dit is normaal gesproken het gevolg van te veel mislukte aanmeldingen. Amazon kan actie vereisen voordat opnieuw kan worden ingelogd.",
"login_failed": "Het inloggen van Alexa Mediaspeler is mislukt.",
"reauth_successful": "Alexa Mediaspeler is met succes opnieuw geverifieerd. Negeer a.u.b. het bericht \"Afgebroken\" van HA."
},
"error": {
"2fa_key_invalid": "Invalid Built-In 2FA key",
"connection_error": "Fout bij verbinden; controleer netwerk en probeer opnieuw",
"identifier_exists": "Dit e-mailadres is reeds geregistreerd",
"2fa_key_invalid": "Ongeldige ingebouwde 2FA sleutel",
"connection_error": "Fout bij verbinding; controleer netwerk en probeer opnieuw",
"identifier_exists": "Dit e-mailadres voor Alexa URL is al geregistreerd",
"invalid_credentials": "Ongeldige inloggegevens",
"invalid_url": "URL is ongeldig: {message}",
"unable_to_connect_hass_url": "Kan geen verbinding maken met de Home Assistant-url. Controleer de externe URL onder Configuratie - > Algemeen",
"unknown_error": "Onbekende fout, meld de loggegevens"
"invalid_url": "De URL is ongeldig: {message}",
"unable_to_connect_hass_url": "Kan geen verbinding maken met de Home Assistant url. Controleer de externe url onder Configuratie - > Algemeen",
"unknown_error": "Onbekende fout: {message}"
},
"step": {
"proxy_warning": {
"data": {
"proxy_warning": "Ignore and Continue - I understand that no support for login issues are provided for bypassing this warning."
"proxy_warning": "Negeren en doorgaan - Ik begrijp dat er geen ondersteuning wordt geboden bij inlogproblemen wanneer ik deze waarschuwing omzeil."
},
"description": "The HA server cannot connect to the URL provided: {hass_url}.\n> {error}\n\nTo fix this, please confirm your **HA server** can reach {hass_url}. This field is from the External Url under Configuration -> General but you can try your internal url.\n\nIf you are **certain** your client can reach this url, you can bypass this warning.",
"title": "Alexa Media Player - Unable to Connect to HA URL"
"description": "De HA server kan geen verbinding maken met de opgegeven URL: {hass_url}.\n> {error}\n\nOm dit op te lossen, moet u bevestigen dat uw **HA server** {hass_url} kan bereiken. Dit veld is afkomstig van de externe url onder Configuratie -> Algemeen, maar je kunt ook de interne url proberen.\n\nAls je er **zeker** van bent dat jouw client deze url kan bereiken, dan kun je deze waarschuwing negeren.",
"title": "Alexa Mediaspeler - Kan geen verbinding maken met HA URL"
},
"totp_register": {
"data": {
"registered": "OTP from the Built-in 2FA App Key confirmed successfully."
"registered": "OTP van de ingebouwde 2FA App Key is succesvol bevestigd."
},
"description": "**{email} - alexa.{url}** \nHave you successfully confirmed an OTP from the Built-in 2FA App Key with Amazon? \n >OTP Code {message}",
"title": "Alexa Media Player - OTP Confirmation"
"description": "**{email} -Alexa.{url}**\nHeb je met succes een OTP van de ingebouwde 2FA App Key met Amazon bevestigd? \n >OTP-code {message}",
"title": "Alexa Mediaspeler - OTP Bevestiging"
},
"user": {
"data": {
"debug": "Geavanceerd debuggen",
"debug": "Geavanceerde foutopsporing",
"email": "E-mailadres",
"exclude_devices": "Apparaten uitsluiten (Scheiding: komma)",
"extended_entity_discovery": "Include devices connected via Echo",
"hass_url": "Url to access Home Assistant",
"include_devices": "Apparaten toevoegen (Scheiding: komma)",
"otp_secret": "Built-in 2FA App Key (automatically generate 2FA Codes)",
"password": "Paswoord",
"queue_delay": "Seconden om te wachten om opdrachten in de wachtrij te plaatsen",
"exclude_devices": "Uitgesloten apparaten (Scheiding: komma)",
"extended_entity_discovery": "Inclusief apparaten verbonden via Echo",
"hass_url": "URL voor toegang tot Home Assistant",
"include_devices": "Inbegrepen apparaten (Scheiding: komma)",
"otp_secret": "Ingebouwde 2FA App Key (genereert automatisch 2FA-codes). Deze is niet zes cijfers lang.",
"password": "Wachtwoord",
"queue_delay": "Aantal seconden wachten om opdrachten in de wachtrij te groeperen",
"scan_interval": "Aantal seconden tussen scans",
"securitycode": "2FA Code (recommended to avoid login issues)",
"url": "Domeinnaam van Amazon regio (bv.amazon.co.uk)"
"securitycode": "2FA sleutel (aanbevolen om inlogproblemen te voorkomen)",
"url": "Domeinnaam van Amazon regio (bijv: amazon.co.uk)"
},
"description": "Vul je gegevens in a.u.b.",
"title": "Alexa Media Player - Configuratie"
"description": "Bevestig de onderstaande informatie. Schakel voor oudere configuraties de optie 'Inlogproxymethode gebruiken' uit.",
"title": "Alexa Mediaspeler - Configuratie"
}
}
},
"options": {
"step": {
"init": {
"data": {
"debug": "Geavanceerd debuggen",
"exclude_devices": "Apparaten uitsluiten (Scheiding: komma)",
"extended_entity_discovery": "Inclusief apparaten die zijn verbonden via Echo",
"hass_url": "Openbare URL om toegang te krijgen tot Home Assistant (inclusief afsluitende '/')",
"include_devices": "Apparaten toevoegen (Scheiding: komma)",
"public_url": "Openbare URL om toegang te krijgen tot Home Assistant (inclusief afsluitende '/')",
"queue_delay": "Seconden om te wachten om opdrachten in de wachtrij te plaatsen",
"debug": "Geavanceerde foutopsporing",
"exclude_devices": "Uitgesloten apparaten (Scheiding: komma)",
"extended_entity_discovery": "Inclusief apparaten verbonden via Echo",
"hass_url": "Openbare URL voor toegang tot Home Assistant (inclusief afsluitende '/')",
"include_devices": "Inbegrepen apparaten (Scheiding: komma)",
"public_url": "Openbare URL voor toegang tot Home Assistant (inclusief afsluitende '/')",
"queue_delay": "Aantal seconden wachten om opdrachten in de wachtrij te groeperen",
"scan_interval": "Aantal seconden tussen scans"
},
"description": "Required *",
"title": "Alexa Media Player - Reconfiguration"
"description": "Vereist *",
"title": "Alexa Mediaspeler - Herconfiguratie"
}
}
},
"services": {
"clear_history": {
"description": "Clear last entries from Alexa Voice history for each Alexa account.",
"description": "Wis de laatste items uit de Alexa stemgeschiedenis voor elk Alexa account.",
"fields": {
"email": {
"description": "Accounts to clear. Empty will clear all.",
"name": "Email address"
"description": "Accounts om te wissen. Als het veld leeg is, wordt alles gewist.",
"name": "E-mailadres"
},
"entries": {
"description": "Number of entries to clear from 1 to 50. If empty, clear 50.",
"name": "Number of Entries"
"description": "Aantal items om te wissen van 1 tot 50. Als het veld leeg is, verwijder er dan 50.",
"name": "Aantal items"
}
},
"name": "Clear Amazon Voice History"
"name": "Wis Amazon stemgeschiedenis"
},
"force_logout": {
"description": "Force account to logout. Used mainly for debugging.",
"description": "Forceer account om uit te loggen. Voornamelijk gebruikt voor foutopsporing.",
"fields": {
"email": {
"description": "Accounts to clear. Empty will clear all.",
"name": "Email address"
"description": "Accounts om te wissen. Als het veld leeg is, wordt alles gewist.",
"name": "E-mailadres"
}
},
"name": "Force Logout"
"name": "Uitloggen forceren"
},
"update_last_called": {
"description": "Forces update of last_called echo device for each Alexa account.",
"description": "Forceert update van last_called echo apparaat voor elk Alexa-account.",
"fields": {
"email": {
"description": "List of Alexa accounts to update. If empty, will update all known accounts.",
"name": "Email address"
"description": "Lijst met Alexa accounts om bij te werken. Als het veld leeg is, worden alle bekende accounts bijgewerkt.",
"name": "E-mailadres"
}
},
"name": "Update Last Called Sensor"
"name": "Laatst opgeroepen sensor bijwerken"
}
}
}
25 changes: 22 additions & 3 deletions custom_components/alexa_media/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
from homeassistant.helpers import config_validation as cv, device_registry as dr
from homeassistant.helpers.discovery import async_load_platform
from homeassistant.helpers.dispatcher import async_dispatcher_send
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util import dt, slugify
import voluptuous as vol
Expand Down Expand Up @@ -134,6 +135,25 @@ async def async_setup(hass, config, discovery_info=None):
)
return True

async_create_issue(
hass,
DOMAIN,
"deprecated_yaml_configuration",
is_fixable=False,
issue_domain=DOMAIN,
severity=IssueSeverity.WARNING,
translation_key="deprecated_yaml_configuration",
learn_more_url="https://github.com/alandtse/alexa_media_player/wiki/Configuration#configurationyaml",
)
_LOGGER.warning(
"YAML configuration of Alexa Media Player is deprecated "
"and will be removed in version 4.14.0."
"There will be no automatic import of this. "
"Please remove it from your configuration, "
"restart Home Assistant and use the UI to configure it instead. "
"Settings > Devices and services > Integrations > ADD INTEGRATION"
)

domainconfig = config.get(DOMAIN)
for account in domainconfig[CONF_ACCOUNTS]:
entry_found = False
Expand All @@ -153,10 +173,9 @@ async def async_setup(hass, config, discovery_info=None):
hass.config_entries.async_update_entry(
entry,
data={
CONF_URL: account[CONF_URL],
CONF_EMAIL: account[CONF_EMAIL],
CONF_PASSWORD: account[CONF_PASSWORD],
CONF_PUBLIC_URL: account[CONF_PUBLIC_URL],
CONF_URL: account[CONF_URL],
CONF_INCLUDE_DEVICES: account[CONF_INCLUDE_DEVICES],
CONF_EXCLUDE_DEVICES: account[CONF_EXCLUDE_DEVICES],
CONF_SCAN_INTERVAL: account[
Expand Down Expand Up @@ -187,7 +206,7 @@ async def async_setup(hass, config, discovery_info=None):
CONF_URL: account[CONF_URL],
CONF_EMAIL: account[CONF_EMAIL],
CONF_PASSWORD: account[CONF_PASSWORD],
CONF_PUBLIC_URL: account.get(CONF_PUBLIC_URL, ""),
CONF_PUBLIC_URL: account[CONF_PUBLIC_URL],
CONF_INCLUDE_DEVICES: account[CONF_INCLUDE_DEVICES],
CONF_EXCLUDE_DEVICES: account[CONF_EXCLUDE_DEVICES],
CONF_SCAN_INTERVAL: account[CONF_SCAN_INTERVAL].total_seconds(),
Expand Down
Loading

0 comments on commit d21696d

Please sign in to comment.