appdaemon 4.5.3__tar.gz → 4.5.4__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.3/appdaemon.egg-info → appdaemon-4.5.4}/PKG-INFO +1 -1
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/app_management.py +9 -6
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/entity.py +1 -1
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugin_management.py +8 -2
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/hass/hassapi.py +9 -6
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/hass/hassplugin.py +2 -2
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/stream/adstream.py +12 -10
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/stream/ws_handler.py +4 -3
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/threads.py +6 -1
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/version.py +1 -1
- {appdaemon-4.5.3 → appdaemon-4.5.4/appdaemon.egg-info}/PKG-INFO +1 -1
- {appdaemon-4.5.3 → appdaemon-4.5.4}/LICENSE.md +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/MANIFEST.in +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/README.md +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/README.rst +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/__init__.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/__main__.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/adapi.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/adbase.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/admin.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/admin_loop.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/appdaemon.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/aui/appdaemon.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/aui/css/app.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/aui/css/chunk-vendors.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/aui/favicon.ico +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/aui/index.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/aui/js/app.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/aui/js/app.js.map +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/aui/js/chunk-vendors.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/aui/js/chunk-vendors.js.map +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/all.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/climacons-font.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/default/dashboard.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/default/variables.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/fontawesome.min.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/fonts.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/glassic/dashboard.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/glassic/img/carbon1.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/glassic/img/carbon2.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/glassic/img/carbon3.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/glassic/img/carbon4.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/glassic/img/glassic_bg.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/glassic/variables.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/images/ui-icons_444444_256x240.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/images/ui-icons_555555_256x240.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/images/ui-icons_777620_256x240.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/images/ui-icons_777777_256x240.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/images/ui-icons_cc0000_256x240.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/images/ui-icons_ffffff_256x240.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/jquery-ui.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/jquery.gridster.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/main.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/materialdesignicons.min.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/non_dashboard.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/obsidian/dashboard.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/obsidian/img/obsidian_bg.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/obsidian/img/obsidian_w_bg.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/obsidian/img/obsidianbg.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/obsidian/img/widgetbg.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/obsidian/variables.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/rickshaw.min.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/simplyred/dashboard.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/simplyred/img/goldgradient.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/simplyred/img/goldtexture.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/simplyred/js/timer.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/simplyred/variables.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/v4-shims.min.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/zen/dashboard.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/zen/img/zen_bg.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/zen/img/zen_bg2.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/zen/img/zen_weatherbg.jpg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/css/zen/variables.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/TickingTimebombBB.ttf +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/climacons-webfont.eot +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/climacons-webfont.svg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/climacons-webfont.ttf +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/climacons-webfont.woff +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/digital-7-mono.eot +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/digital-7-mono.ttf +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/materialdesignicons-webfont.eot +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/materialdesignicons-webfont.ttf +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/materialdesignicons-webfont.woff +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/materialdesignicons-webfont.woff2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/repetition.ttf +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/Blank.gif +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/android-chrome-192x192.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/android-chrome-512x512.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/apple-touch-icon.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/browserconfig.xml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/favicon-16x16.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/favicon-32x32.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/favicon.ico +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/manifest.json +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/mstile-144x144.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/mstile-150x150.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/mstile-310x150.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/mstile-310x310.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/images/mstile-70x70.png +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/admin.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/d3.layout.min.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/d3.min.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/dashboard.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/gauge.min.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/jquery-3.1.1.min.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/jquery-ui.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/jquery.gridster.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/justgage.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/knockout-3.4.1.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/list.min.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/plotly.min.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/raphael-2.1.4.min.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/reconnecting-websocket.min.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/rickshaw.min.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/socket.io.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/sockjs.min.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/stream.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/templates/admin.jinja2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/templates/body_include.jinja2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/templates/dashboard.jinja2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/templates/dashinit.jinja2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/templates/error.jinja2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/templates/head_include.jinja2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/templates/list.jinja2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/templates/logon.jinja2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-brands-400.eot +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-brands-400.svg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-brands-400.ttf +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-brands-400.woff +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-brands-400.woff2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-regular-400.eot +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-regular-400.svg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-regular-400.ttf +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-regular-400.woff +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-regular-400.woff2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-solid-900.eot +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-solid-900.svg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-solid-900.ttf +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-solid-900.woff +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/webfonts/fa-solid-900.woff2 +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/callbacks.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/dashboard.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/dependency.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/dependency_manager.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/events.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/exceptions.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/futures.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/http.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/logging.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/__init__.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/__init__.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/api.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/app.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/appdaemon.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/common.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/dashboard.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/http.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/log.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/misc.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/plugin.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/sequence.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/config/yaml.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/internal/__init__.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/internal/app_management.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/internal/file_check.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/internal/plugin.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/internal/state.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/internal/threading.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/notification/__init__.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/notification/android.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/notification/base.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/models/notification/iOS.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/__init__.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/dummy/dummyapi.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/dummy/dummyplugin.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/hass/__init__.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/hass/exceptions.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/hass/models.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/hass/notifications.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/hass/utils.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/mqtt/__init__.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/mqtt/mqttapi.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/plugins/mqtt/mqttplugin.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/pyversions.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/scheduler.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/sequences.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/services.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/state.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/stream/__init__.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/stream/socketio_handler.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/stream/sockjs_handler.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/thread_async.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/utility_loop.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/utils.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/AdminLog.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/AdminSummary.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/AdminTable.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/alarm.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basealarm/basealarm.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basealarm/basealarm.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basealarm/basealarm.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basecamera/basecamera.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basecamera/basecamera.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basecamera/basecamera.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseclimate/baseclimate.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseclimate/baseclimate.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseclimate/baseclimate.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseclock/baseclock.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseclock/baseclock.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseclock/baseclock.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basedatetime/basedatetime.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basedatetime/basedatetime.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basedatetime/basedatetime.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basedisplay/basedisplay.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basedisplay/basedisplay.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basedisplay/basedisplay.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseentitypicture/baseentitypicture.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseentitypicture/baseentitypicture.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseentitypicture/baseentitypicture.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseerror/baseerror.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseerror/baseerror.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseerror/baseerror.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basefan/basefan.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basefan/basefan.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basefan/basefan.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basegauge/basegauge.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basegauge/basegauge.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basegauge/basegauge.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseheater/baseheater.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseheater/baseheater.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseheater/baseheater.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseicon/baseicon.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseicon/baseicon.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseicon/baseicon.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseiframe/baseiframe.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseiframe/baseiframe.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseiframe/baseiframe.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseinputnumber/baseinputnumber.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseinputnumber/baseinputnumber.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseinputnumber/baseinputnumber.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basejavascript/basejavascript.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basejavascript/basejavascript.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basejavascript/basejavascript.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baselight/baselight.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baselight/baselight.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baselight/baselight.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basemedia/basemedia.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basemedia/basemedia.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basemedia/basemedia.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseradial/baseradial.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseradial/baseradial.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseradial/baseradial.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baserss/baserss.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baserss/baserss.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baserss/baserss.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseselect/baseselect.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseselect/baseselect.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseselect/baseselect.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseslider/baseslider.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseslider/baseslider.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseslider/baseslider.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseswitch/baseswitch.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseswitch/baseswitch.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseswitch/baseswitch.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basetemperature/basetemperature.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basetemperature/basetemperature.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basetemperature/basetemperature.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basetext/basetext.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basetext/basetext.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/basetext/basetext.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseweather/baseweather.css +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseweather/baseweather.html +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/baseweather/baseweather.js +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/binary_sensor.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/camera.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/climate.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/clock.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/cover.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/device_tracker.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/entitypicture.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/fan.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/gauge.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/group.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/heater.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/icon.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/iframe.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/input_boolean.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/input_datetime.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/input_number.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/input_select.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/input_slider.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/input_text.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/javascript.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/label.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/light.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/lock.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/london_underground.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/media_player.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/mode.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/navigate.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/person.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/pirateweather.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/radial.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/reload.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/rss.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/scene.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/script.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/sensor.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/sequence.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/switch.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/temperature.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/text_sensor.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/weather.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/widgets/weather_summary.yaml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon.egg-info/SOURCES.txt +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon.egg-info/dependency_links.txt +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon.egg-info/entry_points.txt +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon.egg-info/requires.txt +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon.egg-info/top_level.txt +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/apps/hello.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/ObjectTracker/general_app_functions.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/ObjectTracker/objectcontrole.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/alexa.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/battery.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/bysykkel.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/commute.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/dark_day.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/door_notification.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/eventCache.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/eventMonitor.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/globals.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/grandfather.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/hwcheck.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/ical.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/minimote.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/modes.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/momentary_switch.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/motion_lights.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/motion_notification.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/occusim.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/outside_lights.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/presence.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/ruter.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/secure.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/sensor_notification.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/sensor_notify.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/sequence.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/smart_heat.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/sound.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/switch_reset.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/conf/example_apps/yr.py +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/pyproject.toml +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/setup.cfg +0 -0
- {appdaemon-4.5.3 → appdaemon-4.5.4}/tests/test_main.py +0 -0
|
@@ -191,10 +191,11 @@ class AppManagement:
|
|
|
191
191
|
def app_rel_path(self, app_name: str) -> Path:
|
|
192
192
|
return self.app_config.root[app_name].config_path.relative_to(self.AD.app_dir.parent)
|
|
193
193
|
|
|
194
|
-
def
|
|
194
|
+
def err_app_path(self, app_obj: object) -> Path:
|
|
195
195
|
module_path = Path(sys.modules[app_obj.__module__].__file__)
|
|
196
|
-
|
|
197
|
-
|
|
196
|
+
if module_path.is_relative_to(self.AD.app_dir.parent):
|
|
197
|
+
return module_path.relative_to(self.AD.app_dir.parent)
|
|
198
|
+
return module_path
|
|
198
199
|
|
|
199
200
|
async def init_admin_stats(self):
|
|
200
201
|
# create sensors
|
|
@@ -266,16 +267,18 @@ class AppManagement:
|
|
|
266
267
|
async def initialize_app(self, app_name: str):
|
|
267
268
|
assert app_name in self.objects, 'Something is very wrong'
|
|
268
269
|
app_obj = self.objects[app_name].object
|
|
269
|
-
|
|
270
|
+
|
|
271
|
+
# Get the path that will be used for the exception
|
|
272
|
+
err_path = self.err_app_path(app_obj)
|
|
270
273
|
|
|
271
274
|
try:
|
|
272
275
|
init_func = app_obj.initialize
|
|
273
276
|
except AttributeError:
|
|
274
|
-
raise ade.NoInitializeMethod(app_obj.__class__,
|
|
277
|
+
raise ade.NoInitializeMethod(app_obj.__class__, err_path)
|
|
275
278
|
|
|
276
279
|
signature = inspect.signature(init_func)
|
|
277
280
|
if len(signature.parameters) != 0:
|
|
278
|
-
raise ade.BadInitializeMethod(app_obj.__class__,
|
|
281
|
+
raise ade.BadInitializeMethod(app_obj.__class__, err_path, signature)
|
|
279
282
|
|
|
280
283
|
# Call its initialize function
|
|
281
284
|
await self.set_state(app_name, state="initializing")
|
|
@@ -435,7 +435,7 @@ class Entity:
|
|
|
435
435
|
self.logger.warning(f"State Wait for {self.entity_id} Timed Out")
|
|
436
436
|
raise TimeOutException("The entity timed out") from e
|
|
437
437
|
finally:
|
|
438
|
-
self._async_events.pop(wait_id)
|
|
438
|
+
self._async_events.pop(wait_id, None) # Ignore if already removed
|
|
439
439
|
|
|
440
440
|
async def entity_state_changed(self, *args, wait_id: str, **kwargs) -> None:
|
|
441
441
|
"""The entity state changed"""
|
|
@@ -126,8 +126,14 @@ class PluginBase(abc.ABC):
|
|
|
126
126
|
pass
|
|
127
127
|
|
|
128
128
|
# @abc.abstractmethod
|
|
129
|
-
async def set_plugin_state(
|
|
130
|
-
|
|
129
|
+
# async def set_plugin_state(
|
|
130
|
+
# self,
|
|
131
|
+
# namespace: str,
|
|
132
|
+
# entity_id: str,
|
|
133
|
+
# state: Any | None = None,
|
|
134
|
+
# attributes: Any | None = None,
|
|
135
|
+
# ) -> dict[str, Any] | None:
|
|
136
|
+
# pass
|
|
131
137
|
|
|
132
138
|
# @abc.abstractmethod
|
|
133
139
|
async def fire_plugin_event(self):
|
|
@@ -411,7 +411,7 @@ class Hass(ADBase, ADAPI):
|
|
|
411
411
|
case str():
|
|
412
412
|
constraints = [value]
|
|
413
413
|
|
|
414
|
-
assert isinstance(
|
|
414
|
+
assert isinstance(constraints, list) and all(isinstance(v, str) for v in constraints)
|
|
415
415
|
|
|
416
416
|
for constraint in constraints:
|
|
417
417
|
# using re.split allows for an arbitrary amount of whitespace after the comma
|
|
@@ -1343,7 +1343,7 @@ class Hass(ADBase, ADAPI):
|
|
|
1343
1343
|
# Functions that use self.render_template
|
|
1344
1344
|
|
|
1345
1345
|
@utils.sync_decorator
|
|
1346
|
-
async def render_template(self, template: str, namespace: str | None = None) -> Any:
|
|
1346
|
+
async def render_template(self, template: str, namespace: str | None = None, **kwargs) -> Any:
|
|
1347
1347
|
"""Renders a Home Assistant Template.
|
|
1348
1348
|
|
|
1349
1349
|
See the documentation for the `Template Integration <https://www.home-assistant.io/integrations/template>`__ and
|
|
@@ -1351,9 +1351,9 @@ class Hass(ADBase, ADAPI):
|
|
|
1351
1351
|
|
|
1352
1352
|
Args:
|
|
1353
1353
|
template (str): The Home Assistant template to be rendered.
|
|
1354
|
-
namespace (str, optional):
|
|
1355
|
-
`
|
|
1356
|
-
|
|
1354
|
+
namespace (str, optional): Optional namespace to use. Defaults to using the app's current namespace. See the
|
|
1355
|
+
`namespace documentation <APPGUIDE.html#namespaces>`__ for more information.
|
|
1356
|
+
**kwargs (optional): Zero or more keyword arguments that get passed to the template rendering.
|
|
1357
1357
|
|
|
1358
1358
|
Returns:
|
|
1359
1359
|
The rendered template in a native Python type.
|
|
@@ -1368,11 +1368,14 @@ class Hass(ADBase, ADAPI):
|
|
|
1368
1368
|
>>> self.render_template("{{ states('sensor.outside_temp') }}")
|
|
1369
1369
|
97.2
|
|
1370
1370
|
|
|
1371
|
+
>>> self.render_template("hello {{ name }}", variables={"name": "bob"})
|
|
1372
|
+
hello bob
|
|
1373
|
+
|
|
1371
1374
|
"""
|
|
1372
1375
|
plugin: "HassPlugin" = self.AD.plugins.get_plugin_object(
|
|
1373
1376
|
namespace or self.namespace
|
|
1374
1377
|
)
|
|
1375
|
-
result = await plugin.render_template(self.namespace, template)
|
|
1378
|
+
result = await plugin.render_template(self.namespace, template, **kwargs)
|
|
1376
1379
|
try:
|
|
1377
1380
|
return literal_eval(result)
|
|
1378
1381
|
except (SyntaxError, ValueError):
|
|
@@ -888,7 +888,7 @@ class HassPlugin(PluginBase):
|
|
|
888
888
|
return result
|
|
889
889
|
|
|
890
890
|
@utils.warning_decorator(error_text='Unexpected error rendering template')
|
|
891
|
-
async def render_template(self, namespace: str, template: str):
|
|
891
|
+
async def render_template(self, namespace: str, template: str, **kwargs):
|
|
892
892
|
self.logger.debug(
|
|
893
893
|
"render_template() namespace=%s data=%s",
|
|
894
894
|
namespace,
|
|
@@ -897,4 +897,4 @@ class HassPlugin(PluginBase):
|
|
|
897
897
|
|
|
898
898
|
# if we get a request for not our namespace something has gone very wrong
|
|
899
899
|
assert namespace == self.namespace
|
|
900
|
-
return await self.http_method("post", "/api/template", template=template)
|
|
900
|
+
return await self.http_method("post", "/api/template", template=template, **kwargs)
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import threading
|
|
1
3
|
import traceback
|
|
2
|
-
import bcrypt
|
|
3
4
|
import uuid
|
|
4
|
-
import threading
|
|
5
|
-
import asyncio
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
import bcrypt
|
|
7
|
+
|
|
8
8
|
import appdaemon.utils as utils
|
|
9
|
+
from appdaemon.appdaemon import AppDaemon
|
|
10
|
+
from appdaemon.exceptions import RequestHandlerException
|
|
9
11
|
from appdaemon.stream.socketio_handler import SocketIOHandler
|
|
10
|
-
from appdaemon.stream.ws_handler import WSHandler
|
|
11
12
|
from appdaemon.stream.sockjs_handler import SockJSHandler
|
|
12
|
-
from appdaemon.
|
|
13
|
+
from appdaemon.stream.ws_handler import WSHandler
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
class ADStream:
|
|
@@ -51,7 +52,7 @@ class ADStream:
|
|
|
51
52
|
rh = RequestHandler(self.AD, self, handle, request)
|
|
52
53
|
with self.handlers_lock:
|
|
53
54
|
self.handlers[handle] = rh
|
|
54
|
-
await rh.stream.run()
|
|
55
|
+
return await rh.stream.run()
|
|
55
56
|
|
|
56
57
|
async def on_disconnect(self, handle):
|
|
57
58
|
with self.handlers_lock:
|
|
@@ -98,9 +99,7 @@ class RequestHandler:
|
|
|
98
99
|
|
|
99
100
|
# Create a stream
|
|
100
101
|
#
|
|
101
|
-
self.stream = self.adstream.stream_handler.makeStream(
|
|
102
|
-
self.AD, request, on_message=self._on_message, on_disconnect=self._on_disconnect
|
|
103
|
-
)
|
|
102
|
+
self.stream = self.adstream.stream_handler.makeStream(self.AD, request, on_message=self._on_message, on_disconnect=self._on_disconnect)
|
|
104
103
|
#
|
|
105
104
|
|
|
106
105
|
async def _on_message(self, data):
|
|
@@ -331,6 +330,9 @@ class RequestHandler:
|
|
|
331
330
|
|
|
332
331
|
service_data = data["data"]
|
|
333
332
|
|
|
333
|
+
if "__name" in service_data:
|
|
334
|
+
del service_data["__name"]
|
|
335
|
+
|
|
334
336
|
return await self.AD.services.call_service(
|
|
335
337
|
namespace=data["namespace"],
|
|
336
338
|
domain=domain,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import asyncio
|
|
2
2
|
import json
|
|
3
|
+
import traceback
|
|
3
4
|
|
|
4
5
|
import aiohttp
|
|
5
6
|
from aiohttp import web
|
|
6
|
-
import asyncio
|
|
7
7
|
|
|
8
8
|
from appdaemon import utils as utils
|
|
9
9
|
|
|
@@ -24,7 +24,7 @@ class WSHandler:
|
|
|
24
24
|
# We have a connection
|
|
25
25
|
#
|
|
26
26
|
# Add handler
|
|
27
|
-
await self.ADStream.on_connect(request)
|
|
27
|
+
return await self.ADStream.on_connect(request)
|
|
28
28
|
|
|
29
29
|
def makeStream(self, ad, request, **kwargs):
|
|
30
30
|
return WSStream(ad, request, **kwargs)
|
|
@@ -76,6 +76,7 @@ class WSStream:
|
|
|
76
76
|
self.logger.debug("Closing websocket ...")
|
|
77
77
|
await self.ws.close()
|
|
78
78
|
self.logger.debug("Done")
|
|
79
|
+
return self.ws
|
|
79
80
|
|
|
80
81
|
async def sendclient(self, data):
|
|
81
82
|
try:
|
|
@@ -78,10 +78,15 @@ class Threading:
|
|
|
78
78
|
self.callback_list = []
|
|
79
79
|
|
|
80
80
|
@property
|
|
81
|
-
def pin_apps(self):
|
|
81
|
+
def pin_apps(self) -> bool:
|
|
82
82
|
"Whether each app should be pinned to a thread"
|
|
83
83
|
return self.AD.config.pin_apps
|
|
84
84
|
|
|
85
|
+
@pin_apps.setter
|
|
86
|
+
def pin_apps(self, new: bool) -> None:
|
|
87
|
+
"""Set whether each app should be pinned to a thread"""
|
|
88
|
+
self.AD.config.pin_apps = new
|
|
89
|
+
|
|
85
90
|
@property
|
|
86
91
|
def total_threads(self) -> int:
|
|
87
92
|
"""Number of threads created for apps.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = "4.5.
|
|
1
|
+
__version__ = "4.5.4"
|
|
2
2
|
__version_comments__ = ""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/fonts/materialdesignicons-webfont.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{appdaemon-4.5.3 → appdaemon-4.5.4}/appdaemon/assets/javascript/reconnecting-websocket.min.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|