appdaemon 4.5.0__tar.gz → 4.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {appdaemon-4.5.0/appdaemon.egg-info → appdaemon-4.5.1}/PKG-INFO +2 -1
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/adapi.py +6 -3
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/app_management.py +2 -2
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/default/variables.yaml +1 -1
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/glassic/variables.yaml +1 -1
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/obsidian/variables.yaml +1 -1
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/simplyred/variables.yaml +1 -1
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/entity.py +2 -3
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/exceptions.py +1 -1
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/http.py +3 -2
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/hass/hassapi.py +2 -2
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/hass/hassplugin.py +2 -2
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/mqtt/mqttapi.py +1 -1
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/scheduler.py +74 -215
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/threads.py +30 -59
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/utils.py +19 -20
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/version.py +1 -1
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basefan/basefan.js +1 -1
- {appdaemon-4.5.0 → appdaemon-4.5.1/appdaemon.egg-info}/PKG-INFO +2 -1
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon.egg-info/requires.txt +1 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/ObjectTracker/general_app_functions.py +4 -8
- {appdaemon-4.5.0 → appdaemon-4.5.1}/pyproject.toml +10 -2
- {appdaemon-4.5.0 → appdaemon-4.5.1}/LICENSE.md +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/MANIFEST.in +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/README.md +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/README.rst +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/__init__.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/__main__.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/adbase.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/admin.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/admin_loop.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/appdaemon.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/aui/appdaemon.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/aui/css/app.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/aui/css/chunk-vendors.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/aui/favicon.ico +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/aui/index.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/aui/js/app.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/aui/js/app.js.map +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/aui/js/chunk-vendors.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/aui/js/chunk-vendors.js.map +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/all.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/climacons-font.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/default/dashboard.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/fontawesome.min.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/fonts.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/glassic/dashboard.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/glassic/img/carbon1.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/glassic/img/carbon2.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/glassic/img/carbon3.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/glassic/img/carbon4.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/glassic/img/glassic_bg.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/images/ui-icons_444444_256x240.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/images/ui-icons_555555_256x240.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/images/ui-icons_777620_256x240.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/images/ui-icons_777777_256x240.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/images/ui-icons_cc0000_256x240.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/images/ui-icons_ffffff_256x240.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/jquery-ui.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/jquery.gridster.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/main.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/materialdesignicons.min.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/non_dashboard.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/obsidian/dashboard.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/obsidian/img/obsidian_bg.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/obsidian/img/obsidian_w_bg.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/obsidian/img/obsidianbg.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/obsidian/img/widgetbg.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/rickshaw.min.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/simplyred/dashboard.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/simplyred/img/goldgradient.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/simplyred/img/goldtexture.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/simplyred/js/timer.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/v4-shims.min.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/zen/dashboard.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/zen/img/zen_bg.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/zen/img/zen_bg2.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/zen/img/zen_weatherbg.jpg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/css/zen/variables.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/TickingTimebombBB.ttf +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/climacons-webfont.eot +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/climacons-webfont.svg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/climacons-webfont.ttf +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/climacons-webfont.woff +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/digital-7-mono.eot +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/digital-7-mono.ttf +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/materialdesignicons-webfont.eot +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/materialdesignicons-webfont.ttf +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/materialdesignicons-webfont.woff +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/materialdesignicons-webfont.woff2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/fonts/repetition.ttf +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/Blank.gif +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/android-chrome-192x192.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/android-chrome-512x512.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/apple-touch-icon.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/browserconfig.xml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/favicon-16x16.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/favicon-32x32.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/favicon.ico +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/manifest.json +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/mstile-144x144.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/mstile-150x150.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/mstile-310x150.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/mstile-310x310.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/images/mstile-70x70.png +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/admin.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/d3.layout.min.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/d3.min.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/dashboard.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/gauge.min.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/jquery-3.1.1.min.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/jquery-ui.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/jquery.gridster.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/justgage.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/knockout-3.4.1.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/list.min.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/plotly.min.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/raphael-2.1.4.min.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/reconnecting-websocket.min.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/rickshaw.min.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/socket.io.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/sockjs.min.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/javascript/stream.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/templates/admin.jinja2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/templates/body_include.jinja2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/templates/dashboard.jinja2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/templates/dashinit.jinja2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/templates/error.jinja2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/templates/head_include.jinja2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/templates/list.jinja2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/templates/logon.jinja2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-brands-400.eot +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-brands-400.svg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-brands-400.ttf +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-brands-400.woff +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-brands-400.woff2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-regular-400.eot +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-regular-400.svg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-regular-400.ttf +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-regular-400.woff +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-regular-400.woff2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-solid-900.eot +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-solid-900.svg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-solid-900.ttf +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-solid-900.woff +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/assets/webfonts/fa-solid-900.woff2 +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/callbacks.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/dashboard.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/dependency.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/dependency_manager.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/events.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/futures.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/logging.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/__init__.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/__init__.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/api.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/app.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/appdaemon.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/common.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/dashboard.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/http.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/log.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/misc.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/plugin.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/sequence.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/config/yaml.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/internal/__init__.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/internal/app_management.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/internal/file_check.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/internal/plugin.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/internal/state.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/internal/threading.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/notification/__init__.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/notification/android.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/notification/base.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/models/notification/iOS.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugin_management.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/__init__.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/dummy/dummyapi.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/dummy/dummyplugin.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/hass/__init__.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/hass/exceptions.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/hass/models.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/hass/notifications.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/hass/utils.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/mqtt/__init__.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/plugins/mqtt/mqttplugin.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/pyversions.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/sequences.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/services.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/state.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/stream/__init__.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/stream/adstream.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/stream/socketio_handler.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/stream/sockjs_handler.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/stream/ws_handler.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/thread_async.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/utility_loop.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/AdminLog.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/AdminSummary.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/AdminTable.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/alarm.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basealarm/basealarm.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basealarm/basealarm.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basealarm/basealarm.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basecamera/basecamera.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basecamera/basecamera.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basecamera/basecamera.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseclimate/baseclimate.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseclimate/baseclimate.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseclimate/baseclimate.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseclock/baseclock.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseclock/baseclock.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseclock/baseclock.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basedatetime/basedatetime.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basedatetime/basedatetime.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basedatetime/basedatetime.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basedisplay/basedisplay.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basedisplay/basedisplay.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basedisplay/basedisplay.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseentitypicture/baseentitypicture.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseentitypicture/baseentitypicture.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseentitypicture/baseentitypicture.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseerror/baseerror.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseerror/baseerror.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseerror/baseerror.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basefan/basefan.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basefan/basefan.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basegauge/basegauge.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basegauge/basegauge.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basegauge/basegauge.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseheater/baseheater.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseheater/baseheater.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseheater/baseheater.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseicon/baseicon.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseicon/baseicon.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseicon/baseicon.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseiframe/baseiframe.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseiframe/baseiframe.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseiframe/baseiframe.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseinputnumber/baseinputnumber.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseinputnumber/baseinputnumber.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseinputnumber/baseinputnumber.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basejavascript/basejavascript.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basejavascript/basejavascript.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basejavascript/basejavascript.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baselight/baselight.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baselight/baselight.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baselight/baselight.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basemedia/basemedia.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basemedia/basemedia.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basemedia/basemedia.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseradial/baseradial.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseradial/baseradial.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseradial/baseradial.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baserss/baserss.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baserss/baserss.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baserss/baserss.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseselect/baseselect.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseselect/baseselect.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseselect/baseselect.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseslider/baseslider.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseslider/baseslider.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseslider/baseslider.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseswitch/baseswitch.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseswitch/baseswitch.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseswitch/baseswitch.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basetemperature/basetemperature.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basetemperature/basetemperature.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basetemperature/basetemperature.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basetext/basetext.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basetext/basetext.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/basetext/basetext.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseweather/baseweather.css +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseweather/baseweather.html +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/baseweather/baseweather.js +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/binary_sensor.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/camera.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/climate.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/clock.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/cover.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/device_tracker.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/entitypicture.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/fan.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/gauge.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/group.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/heater.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/icon.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/iframe.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/input_boolean.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/input_datetime.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/input_number.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/input_select.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/input_slider.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/input_text.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/javascript.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/label.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/light.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/lock.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/london_underground.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/media_player.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/mode.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/navigate.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/person.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/pirateweather.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/radial.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/reload.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/rss.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/scene.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/script.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/sensor.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/sequence.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/switch.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/temperature.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/text_sensor.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/weather.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon/widgets/weather_summary.yaml +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon.egg-info/SOURCES.txt +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon.egg-info/dependency_links.txt +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon.egg-info/entry_points.txt +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/appdaemon.egg-info/top_level.txt +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/apps/hello.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/ObjectTracker/objectcontrole.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/alexa.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/battery.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/bysykkel.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/commute.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/dark_day.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/door_notification.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/eventCache.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/eventMonitor.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/globals.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/grandfather.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/hwcheck.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/ical.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/minimote.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/modes.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/momentary_switch.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/motion_lights.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/motion_notification.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/occusim.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/outside_lights.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/presence.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/ruter.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/secure.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/sensor_notification.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/sensor_notify.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/sequence.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/smart_heat.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/sound.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/switch_reset.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/conf/example_apps/yr.py +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/setup.cfg +0 -0
- {appdaemon-4.5.0 → appdaemon-4.5.1}/tests/test_main.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: appdaemon
|
|
3
|
-
Version: 4.5.
|
|
3
|
+
Version: 4.5.1
|
|
4
4
|
Summary: Apps for the Home Assistant home automation package.
|
|
5
5
|
Author-email: Andrew I Cockburn <appdaemon@acockburn.com>
|
|
6
6
|
License: Apache License
|
|
@@ -241,6 +241,7 @@ Requires-Dist: black<25.2,>=23.1; extra == "dev"
|
|
|
241
241
|
Requires-Dist: pre-commit<3.9.0,>=3.1.1; python_version > "3.7" and extra == "dev"
|
|
242
242
|
Requires-Dist: pytest<8.4.0,>=7.2.1; extra == "dev"
|
|
243
243
|
Requires-Dist: ruff<0.7.0,>=0.0.261; extra == "dev"
|
|
244
|
+
Requires-Dist: codespell>=2.4.1; extra == "dev"
|
|
244
245
|
Provides-Extra: doc
|
|
245
246
|
Requires-Dist: sphinx-autobuild<2024.10.0,>=2021.3.14; extra == "doc"
|
|
246
247
|
Requires-Dist: sphinx-rtd-theme==3.0.2; extra == "doc"
|
|
@@ -255,8 +255,11 @@ class ADAPI:
|
|
|
255
255
|
# Its a user defined log
|
|
256
256
|
logger = self.logger if log is None else self.get_user_log(log)
|
|
257
257
|
|
|
258
|
+
if ascii_encode is None:
|
|
259
|
+
ascii_encode = self.AD.config.ascii_encode
|
|
260
|
+
|
|
258
261
|
kwargs = dict(
|
|
259
|
-
ascii_encode=ascii_encode
|
|
262
|
+
ascii_encode=ascii_encode,
|
|
260
263
|
stack_info=stack_info,
|
|
261
264
|
stacklevel=stacklevel,
|
|
262
265
|
extra=extra,
|
|
@@ -1678,7 +1681,7 @@ class ADAPI:
|
|
|
1678
1681
|
`namespace documentation <APPGUIDE.html#namespaces>`__ for more information.
|
|
1679
1682
|
copy (bool, optional): Whether to return a copy of the internal data. This is ``True`` by default in order
|
|
1680
1683
|
to protect the user from accidentally modifying AppDaemon's internal data structures, which is dangerous
|
|
1681
|
-
and can cause undefined
|
|
1684
|
+
and can cause undefined behavior. Only set this to ``False`` for read-only operations.
|
|
1682
1685
|
|
|
1683
1686
|
Returns:
|
|
1684
1687
|
The state or attribute of the entity ID provided or a dict of that maps entity IDs to their respective
|
|
@@ -1809,7 +1812,7 @@ class ADAPI:
|
|
|
1809
1812
|
accept arbitrary keyword arguments.
|
|
1810
1813
|
|
|
1811
1814
|
Registering services in namespaces that already have plugins is not recommended, as it can lead to some
|
|
1812
|
-
unpredictable behavior.
|
|
1815
|
+
unpredictable behavior. Instead, it's recommended to use a user-defined namespace or one that is not tied to
|
|
1813
1816
|
plugin.
|
|
1814
1817
|
|
|
1815
1818
|
Args:
|
|
@@ -569,7 +569,7 @@ class AppManagement:
|
|
|
569
569
|
yield new_cfg
|
|
570
570
|
|
|
571
571
|
def update(d1: dict, d2: dict) -> dict:
|
|
572
|
-
"""Internal
|
|
572
|
+
"""Internal function to log warnings if an app's name gets repeated."""
|
|
573
573
|
if overlap := set(k.lower() for k in d2 if k in d1):
|
|
574
574
|
# There's a special case for the sequences in order to merge them if they're defined in multiple files
|
|
575
575
|
if "sequence" in overlap:
|
|
@@ -846,7 +846,7 @@ class AppManagement:
|
|
|
846
846
|
for path in import_dirs:
|
|
847
847
|
self.add_to_import_path(path)
|
|
848
848
|
|
|
849
|
-
# Add any
|
|
849
|
+
# Add any additional import paths
|
|
850
850
|
for path in map(Path, self.AD.import_paths):
|
|
851
851
|
if not path.exists():
|
|
852
852
|
self.logger.warning(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Core styles. Reference these wherever possible rather than making custom
|
|
2
2
|
# versions of red, green, etc. This will make it easier to quickly change the
|
|
3
|
-
# overall
|
|
3
|
+
# overall palette of the dashboard just by overriding these variables.
|
|
4
4
|
|
|
5
5
|
# This file contains the application "defaults".
|
|
6
6
|
# IF YOU WANT TO CUSTOMIZE styleS FOR YOUR OWN INSTANCE, DO NOT EDIT THIS FILE.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Core styles. Reference these wherever possible rather than making custom
|
|
2
2
|
# versions of red, green, etc. This will make it easier to quickly change the
|
|
3
|
-
# overall
|
|
3
|
+
# overall palette of the dashboard just by overriding these variables.
|
|
4
4
|
|
|
5
5
|
# This file contains the application "defaults".
|
|
6
6
|
# IF YOU WANT TO CUSTOMIZE styleS FOR YOUR OWN INSTANCE, DO NOT EDIT THIS FILE.
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
# gray and getting progressively darker towards night. Be aware that if you remove
|
|
23
23
|
# it, you will end up with a white background so plan accordingly if this is a problem.
|
|
24
24
|
#
|
|
25
|
-
# The meta tag
|
|
25
|
+
# The meta tag just above this refreshes your dash once an hour so you can see the
|
|
26
26
|
# effect of the script without manually reloading the dashboard. The content value
|
|
27
27
|
# is in seconds so if you want it shorter or longer you can adjust that value
|
|
28
28
|
#
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
# gray and getting progressively darker towards night. Be aware that if you remove
|
|
23
23
|
# it, you will end up with a white background so plan accordingly if this is a problem.
|
|
24
24
|
#
|
|
25
|
-
# The meta tag
|
|
25
|
+
# The meta tag just above this refreshes your dash once an hour so you can see the
|
|
26
26
|
# effect of the script without manually reloading the dashboard. The content value
|
|
27
27
|
# is in seconds so if you want it shorter or longer you can adjust that value
|
|
28
28
|
#
|
|
@@ -151,7 +151,7 @@ class Entity:
|
|
|
151
151
|
default (any, optional): The value to return when the entity or the attribute doesn't exist.
|
|
152
152
|
copy (bool, optional): Whether to return a copy of the internal data. This is ``True`` by default in order
|
|
153
153
|
to protect the user from accidentally modifying AppDaemon's internal data structures, which is dangerous
|
|
154
|
-
and can cause undefined
|
|
154
|
+
and can cause undefined behavior. Only set this to ``False`` for read-only operations.
|
|
155
155
|
|
|
156
156
|
Returns:
|
|
157
157
|
The entire state of the entity at that given time, if if ``get_state()``
|
|
@@ -550,7 +550,6 @@ class Entity:
|
|
|
550
550
|
|
|
551
551
|
@property
|
|
552
552
|
def _simple_state(self) -> dict[str, Any]:
|
|
553
|
-
return self.adapi.get_state()
|
|
554
553
|
return self.AD.state.get_state_simple(self.namespace, self.entity_id)
|
|
555
554
|
|
|
556
555
|
@property
|
|
@@ -603,7 +602,7 @@ class Entity:
|
|
|
603
602
|
def last_changed_delta(self) -> timedelta | None:
|
|
604
603
|
"""A timedelta object representing the time since the entity was last changed"""
|
|
605
604
|
if time_str := self.last_changed:
|
|
606
|
-
compare = self.adapi.
|
|
605
|
+
compare = self.adapi.parse_datetime(time_str, aware=True)
|
|
607
606
|
now = self.AD.sched.get_now_sync()
|
|
608
607
|
return (now - compare)
|
|
609
608
|
|
|
@@ -318,7 +318,7 @@ class HTTPHostError(AppDaemonException):
|
|
|
318
318
|
|
|
319
319
|
def __str__(self):
|
|
320
320
|
res = "Invalid host specified in URL for HTTP component\n"
|
|
321
|
-
res += "As of AppDaemon 4.5 the host name
|
|
321
|
+
res += "As of AppDaemon 4.5 the host name specified in the URL must resolve to a known host\n"
|
|
322
322
|
res += "You can restore previous behavior by using `0.0.0.0` as the host portion of the URL\n"
|
|
323
323
|
res += f"For instance: `http://0.0.0.0:{self.port}`\n"
|
|
324
324
|
return res
|
|
@@ -117,13 +117,14 @@ class HTTP:
|
|
|
117
117
|
AD: "AppDaemon"
|
|
118
118
|
"""Reference to the AppDaemon container object
|
|
119
119
|
"""
|
|
120
|
+
name: str = "_http"
|
|
120
121
|
|
|
121
122
|
stopping: bool
|
|
122
123
|
executor: concurrent.futures.ThreadPoolExecutor
|
|
123
124
|
|
|
124
125
|
def __init__(self, ad: "AppDaemon", dashboard, old_admin, admin, api, http):
|
|
125
126
|
self.AD = ad
|
|
126
|
-
self.logger = self.logging.get_child(
|
|
127
|
+
self.logger = self.logging.get_child(self.name)
|
|
127
128
|
self.access = self.logging.get_access()
|
|
128
129
|
|
|
129
130
|
self.dashboard = dashboard
|
|
@@ -893,7 +894,7 @@ class HTTP:
|
|
|
893
894
|
return self.get_response(request, code, "App Not Found")
|
|
894
895
|
|
|
895
896
|
elif code == 500:
|
|
896
|
-
return self.get_response(request, code, "An Error
|
|
897
|
+
return self.get_response(request, code, "An Error occurred while processing request")
|
|
897
898
|
|
|
898
899
|
response = "OK"
|
|
899
900
|
self.access.info("API Call to %s: status: %s %s", endpoint, code, response)
|
|
@@ -384,7 +384,7 @@ class Hass(ADBase, ADAPI):
|
|
|
384
384
|
case Iterable():
|
|
385
385
|
constraints = value if isinstance(value, list) else list(value)
|
|
386
386
|
|
|
387
|
-
assert isinstance(
|
|
387
|
+
assert isinstance(constraints, list) and all(isinstance(v, str) for v in constraints)
|
|
388
388
|
|
|
389
389
|
for constraint in constraints:
|
|
390
390
|
parts = re.split(r',\s*', constraint)
|
|
@@ -475,7 +475,7 @@ class Hass(ADBase, ADAPI):
|
|
|
475
475
|
``timeout``. If ``timeout`` is shorter than this one, it will trigger before this one does.
|
|
476
476
|
suppress_log_messages (bool, optional): Only applicable to the Hass plugin. If this is set to ``True``,
|
|
477
477
|
Appdaemon will suppress logging of warnings for service calls to Home Assistant, specifically timeouts
|
|
478
|
-
and non OK statuses. Use this flag and set it to ``True`` to
|
|
478
|
+
and non OK statuses. Use this flag and set it to ``True`` to suppress these log messages if you are
|
|
479
479
|
performing your own error checking as described `here <APPGUIDE.html#some-notes-on-service-calls>`__
|
|
480
480
|
service_data (dict, optional): Used as an additional dictionary to pass arguments into the ``service_data``
|
|
481
481
|
field of the JSON that goes to Home Assistant. This is useful if you have a dictionary that you want to
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Interface with Home Assistant, send and
|
|
2
|
+
Interface with Home Assistant, send and receive evets, state etc.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
import asyncio
|
|
@@ -661,7 +661,7 @@ class HassPlugin(PluginBase):
|
|
|
661
661
|
shorter than this one, it will trigger before this one does.
|
|
662
662
|
suppress_log_messages (bool, optional): If this is set to ``True``, Appdaemon will suppress logging of
|
|
663
663
|
warnings for service calls to Home Assistant, specifically timeouts and non OK statuses. Use this flag
|
|
664
|
-
and set it to ``True`` to
|
|
664
|
+
and set it to ``True`` to suppress these log messages if you are performing your own error checking as
|
|
665
665
|
described `here <APPGUIDE.html#some-notes-on-service-calls>`__
|
|
666
666
|
service_data (dict, optional): Used as an additional dictionary to pass arguments into the ``service_data``
|
|
667
667
|
field of the JSON that goes to Home Assistant. This is useful if you have a dictionary that you want to
|
|
@@ -120,7 +120,7 @@ class Mqtt(adbase.ADBase, adapi.ADAPI):
|
|
|
120
120
|
|
|
121
121
|
binary (bool, optional): If wanting the payload to be returned as binary, this should
|
|
122
122
|
be specified. If not given, AD will return the payload as decoded data. It should
|
|
123
|
-
be noted that it is not possible to have different apps
|
|
123
|
+
be noted that it is not possible to have different apps receive both binary and non-binary
|
|
124
124
|
data on the same topic
|
|
125
125
|
|
|
126
126
|
Returns:
|