From dd0fe033e8e305e5a11098d658cd53e8bd550e3c Mon Sep 17 00:00:00 2001 From: Andrew Neisch Date: Sun, 18 Aug 2024 20:44:00 -0500 Subject: [PATCH] Changes --- README.md | 4 ++-- automations.yaml | 14 ++++++------- custom_components/alexa_media/__init__.py | 18 +++++++++++++++++ custom_components/alexa_media/const.py | 2 +- custom_components/alexa_media/manifest.json | 2 +- images/nodered_1.png | Bin 33020 -> 33020 bytes images/nodered_2.png | Bin 35258 -> 35258 bytes python_scripts/utility_meter_reset.py | 3 +++ www/community/lovelace-wallpanel/wallpanel.js | 19 ++++++++++++++---- .../lovelace-wallpanel/wallpanel.js.gz | Bin 27948 -> 27989 bytes 10 files changed, 46 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 8d561f13..56a9ccb4 100644 --- a/README.md +++ b/README.md @@ -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.8.1%20(Latest)-brightgreen)](https://github.com/home-assistant/home-assistant/releases/latest) +[![HA Version](https://img.shields.io/badge/Running%20Home%20Assistant-2024.8.2%20(Latest)-brightgreen)](https://github.com/home-assistant/home-assistant/releases/latest)
Buy Me A Coffee 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). @@ -59,7 +59,7 @@ Home Assistant and other containers have ingress handled automatically by [Traef Description | value -- | -- Lines of ESPHome YAML | 3250 -Lines of Home Assistant YAML | 9669 +Lines of Home Assistant YAML | 9667 [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 diff --git a/automations.yaml b/automations.yaml index 0a0c3988..3c1b7f8b 100644 --- a/automations.yaml +++ b/automations.yaml @@ -171,12 +171,6 @@ trigger: - platform: state entity_id: - # below set by esphome now - # - binary_sensor.front_door - # - binary_sensor.back_porch_door - # - binary_sensor.garage_exterior_door - # - binary_sensor.garage_interior_door - # - binary_sensor.master_bedroom_exterior_door - input_boolean.kitchen_motion - binary_sensor.living_room_motion - binary_sensor.hallway_motion @@ -659,11 +653,15 @@ - action: python_script.compute_utility_costs data: meter_entity: sensor.water_usage -- alias: Reset Utility Meters - id: reset_utility_meters +- id: reset_utility_meters + alias: Reset Utility Meters trigger: - platform: time at: 00:00:00 + enabled: true + condition: + - condition: template + value_template: '{{ now().day == 1 }}' action: - action: python_script.utility_meter_reset data: diff --git a/custom_components/alexa_media/__init__.py b/custom_components/alexa_media/__init__.py index dadc1b2b..b50517db 100644 --- a/custom_components/alexa_media/__init__.py +++ b/custom_components/alexa_media/__init__.py @@ -11,6 +11,7 @@ from datetime import datetime, timedelta from json import JSONDecodeError, loads import logging +import os import time from typing import Optional @@ -1288,6 +1289,7 @@ async def http2_error_handler(message): async def async_unload_entry(hass, entry) -> bool: """Unload a config entry.""" email = entry.data["email"] + login_obj = hass.data[DATA_ALEXAMEDIA]["accounts"][email]["login_obj"] _LOGGER.debug("Attempting to unload entry for %s", hide_email(email)) for component in ALEXA_COMPONENTS + DEPENDENT_ALEXA_COMPONENTS: _LOGGER.debug("Forwarding unload entry to %s", component) @@ -1329,6 +1331,22 @@ async def async_unload_entry(hass, entry) -> bool: _LOGGER.debug("Removing alexa_media data structure") if hass.data.get(DATA_ALEXAMEDIA): hass.data.pop(DATA_ALEXAMEDIA) + # Delete cookiefile + if callable(getattr(AlexaLogin, "delete_cookiefile", None)): + try: + await login_obj.delete_cookiefile() + _LOGGER.debug("Deleted cookiefile") + except Exception as ex: + _LOGGER.error( + "Failed to delete cookiefile: %s", + ex, + ) + else: + _LOGGER.warn( + "Could not remove cookiefile: /config/.storage/alexa_media.%s.pickle." + " Please manually delete the file.", + email, + ) else: _LOGGER.debug( "Unable to remove alexa_media data structure: %s", diff --git a/custom_components/alexa_media/const.py b/custom_components/alexa_media/const.py index 13cbc8b2..01c402a0 100644 --- a/custom_components/alexa_media/const.py +++ b/custom_components/alexa_media/const.py @@ -15,7 +15,7 @@ PERCENTAGE, ) -__version__ = "4.12.7" +__version__ = "4.12.9" PROJECT_URL = "https://github.com/alandtse/alexa_media_player/" ISSUE_URL = f"{PROJECT_URL}issues" NOTIFY_URL = f"{PROJECT_URL}wiki/Configuration%3A-Notification-Component#use-the-notifyalexa_media-service" diff --git a/custom_components/alexa_media/manifest.json b/custom_components/alexa_media/manifest.json index d3b0ca68..c7c16227 100644 --- a/custom_components/alexa_media/manifest.json +++ b/custom_components/alexa_media/manifest.json @@ -9,5 +9,5 @@ "issue_tracker": "https://github.com/alandtse/alexa_media_player/issues", "loggers": ["alexapy", "authcaptureproxy"], "requirements": ["alexapy==1.28.2", "packaging>=20.3", "wrapt>=1.14.0"], - "version": "4.12.7" + "version": "4.12.9" } diff --git a/images/nodered_1.png b/images/nodered_1.png index 19171e226ee6ebfe4036d57d9906b1463a138c7f..f44251c750a6ade92e091548e0dcff937478bcc2 100644 GIT binary patch delta 81 zcmey<$n>X?X+jl;Fr&87?X?X+jl;0F$w}(lqIgjZGR2q6U^B21Zr}mR82*+6D$z1_r@xj;@pUH^?Yr V$SB?Z`I7+%JYD@<);T3K0RZu57##or diff --git a/images/nodered_2.png b/images/nodered_2.png index c6826926c0d0568e0d78911da0cf4dbc266786c6..f409dda9ae697187c36f22e901cef61ab0a794b5 100644 GIT binary patch delta 81 zcmdlrnQ7N#rU_LX!i?JH-2$7|ZESkhA!=wAVqj!tYG`F-scm3jWni%6ewF9s+D;io V44JD(eRl>R@O1TaS?83{1OOTZ7zY3V diff --git a/python_scripts/utility_meter_reset.py b/python_scripts/utility_meter_reset.py index 807d0596..4d8caa69 100644 --- a/python_scripts/utility_meter_reset.py +++ b/python_scripts/utility_meter_reset.py @@ -1,6 +1,9 @@ ResetEntity = data.get('cycle_reset_entity_id') MeterEntity = data.get('meter_entity') +# Comment this out once the sensor.utilities_cycle_end is fixed +hass.services.call("utility_meter", "calibrate", {'value': '0', 'entity_id': MeterEntity}) + # Handle Meter Reset -- Run daily at midnight via automation # Get state of reset entity (probably sensor.utilities_cycle_start) diff --git a/www/community/lovelace-wallpanel/wallpanel.js b/www/community/lovelace-wallpanel/wallpanel.js index 9b9b1629..b8618891 100644 --- a/www/community/lovelace-wallpanel/wallpanel.js +++ b/www/community/lovelace-wallpanel/wallpanel.js @@ -107,7 +107,7 @@ class ScreenWakeLock { } } -const version = "4.25.6"; +const version = "4.26.0"; const defaultConfig = { enabled: false, enabled_on_tabs: [], @@ -670,7 +670,7 @@ class WallpanelView extends HuiView { this.lastEnergyCollectionUpdate = 0; this.screensaverStopNavigationPathTimeout = null; - this.lovelace = getHaPanelLovelace().__lovelace; + this.lovelace = null; this.__hass = elHass.__hass; this.__cards = []; this.__badges = []; @@ -1108,6 +1108,7 @@ class WallpanelView extends HuiView { createInfoBoxContent() { logger.debug("Creating info box content"); + this.lovelace = getHaPanelLovelace().__lovelace; this.infoBoxContentCreatedDate = new Date(); this.infoBoxContent.innerHTML = ''; this.__badges = []; @@ -1130,12 +1131,21 @@ class WallpanelView extends HuiView { div.style.justifyContent = 'center'; div.style.gap = '8px'; div.style.margin = '0px'; + div.style.minWidth = '200px' config.badges.forEach(badge => { - let badgeConfig = structuredClone(badge); + let badgeConfig = JSON.parse(JSON.stringify(badge)); logger.debug("Creating badge:", badgeConfig); + let style = {}; + if (badgeConfig.wp_style) { + style = badgeConfig.wp_style; + delete badgeConfig.wp_style; + } const createBadgeElement = this._createBadgeElement ? this._createBadgeElement : this.createBadgeElement; const badgeElement = createBadgeElement.bind(this)(badgeConfig); badgeElement.hass = this.hass; + for (const attr in style) { + badgeElement.style.setProperty(attr, style[attr]); + } this.__badges.push(badgeElement); div.append(badgeElement); }); @@ -1144,7 +1154,7 @@ class WallpanelView extends HuiView { if (config.cards) { config.cards.forEach(card => { // Copy object - let cardConfig = structuredClone(card); + let cardConfig = JSON.parse(JSON.stringify(card)); logger.debug("Creating card:", cardConfig); let style = {}; if (cardConfig.wp_style) { @@ -3644,3 +3654,4 @@ EXIF.pretty = function(img) { EXIF.readFromBinaryFile = function(file) { return findEXIFinJPEG(file); } + diff --git a/www/community/lovelace-wallpanel/wallpanel.js.gz b/www/community/lovelace-wallpanel/wallpanel.js.gz index 26bbb6f9d1e15d0d19ea10904301901f9bc5fcd7..88ad6c48be0a73ed35cab881a5379e1c4f7377d0 100644 GIT binary patch delta 24615 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

DkPeE)45n?9 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