Appdaemon

Latest version: v4.4.2

Safety actively analyzes 682457 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 12

4.0.5

**Features**

None

**Fixes**

- Fixed a duo of bugs that left entities lying around in the AUI and
AD\'s internals tat eventually led to slowdown and crash

**Breaking Changes**

None

4.0.4

**Features**

- All module dependencies pinned to exact versions for better
environmental predictability
- Bump pyyaml to 5.3
- Bump yarl to 1.4.2
- Bump bcrypt to 3.1.7
- Bump jinja2 to 2.10.3
- Bump aiohttp-jinja2 to 1.2.0
- Bump deepdiff from 4.0.9 to 4.2.0
- Bump jinja2 from 2.11.0 to 2.11.1
- Bump deepdiff from 4.2.0 to 4.3.1
- Bump pygments from 2.5.2 to 2.6.1
- Add Azure pipelines for Black and Flake - contributed by [Bas
Nijholt](https://github.com/basnijholt)
- Added service call for `remove_entity`
- Added ability to use `now` in `run_every`. Also seconds can be added
by simply using `now+10` for example
- Presence convenience functions now support a `person` flag to use
person entities rather than device trackers for presence detection
- `constrain_person` constraints added to support person entities
- Add stream support for SockJS
- Dashboard component now only sends event updates for relevant
dashboard entities rather than broadcasting all state_change events
- Admin UI now breaks out App instance and lifetime callback stats
separately
- Convert admin and dashboard to get_state from stream
- Increase default work factor for password hashes to 12
- Added [add_entity]{.title-ref} api call, alongeside
[state/add_entity]{.title-ref} service call
- Added the ability to remove plugin entities like [HA]{.title-ref}
when using the [remove_entity]{.title-ref} api
- Cleanup sequences when modified. This ensures removed sequences are
also removed from the Admin UI and AD
- Added support to use environment variables using the
[!env_var]{.title-ref} tag, if not wanting to use the
[!secrets]{.title-ref} tag
- Additional format for time travel start and end times accepted
- Added the ability to specify a callback to hass get_history. This
way, large amount of data can be retrieved from the database,
without AD cancelling the task
- Added retry_secs parameter to the hass plugin

**Fixes**

- Re-added support for SSL in the http module (should also fix
dialogflow)
- Add openssl-dev package to docker image (required for RPI)
- Fixed up socketio support to work with the new stream semantics
- Fixed a bug that allowed multiple copies of an App to run if there
was an error in the signature of terminate()
- AppDaemon\'s REST API no longer needs to be active to use the
dashboard or Admin interfaces
- Fix tzdata error in docker build for RPI - contributed by [Guy
Khmelnitsky](https://github.com/GuyKh)
- Fix for [get_tz_offset()]{.title-ref} not working in some
circumstances - contributed by
[sillyfrog](https://github.com/sillyfrog)
- Added some locking to prevent array size change errors
- Fix for registering services created in HA, after it had started
- Added additional logic to wait for full HASS startup

**Breaking Changes**

- Changed `websocket_connected` and `websocket_disconnected` events to
`stream_connected` and `stream_disconnected` respectively
- Changed the [get_history]{.title-ref} api, as
[entity_id]{.title-ref} has been removed from the api

4.0.3

**Features**

- Pinned astral to v1.10.1

**Fixes**

- Pinned astral to prevent a bug in the latest v2 astral

**Breaking Changes**

None

4.0.2

**Features**

None

**Fixes**

- Fixed a critical bug that cause multiple scheduler errors during a
leap year - contributed by [Chad
McCune](https://github.com/chadmccune)

**Breaking Changes**

None

4.0.1

**Features**

None

**Fixes**

- Fixed an issue, where when `http` is disabled in `appdaemon.yaml`,
AD is unable to start
- Fixed an issue that prevented dashboards from working on older iPads

**Breaking Changes**

None

4.0.0

**Features**

- Apps can now use a simplified version of the import statement e.g.
`import hassapi as hass` or `import mqttapi as mqtt`. The existing
import method will continue to work.
- Apps can now use multiple plugin APIs with the `get_plugin_api()`
function
- Added `ADBase` superclass for apps that want to use the
`get_plugin_api()` style of coding
- Scheduler rewritten to be more efficiant and allow for microsecond
resolution
- `listen_log()` now sends AppDaemon system messages and has the
option to set a log level.
- Bumped aiohttp to v3.4.4
- Added callback locking decorators
- Rearchitected the work Q to allow App pinning and avoid re-entrant
and concurrent code if desired
- Implemented multiple worker Ques to avoid Head of Line blocking
- API Calls to control app pinning
- Added the `run_in_thread()` api call - with assistance from
[Odianosen Ejale](https://github.com/Odianosen25)
- reworked log listening functions to be more robust and added the
ability to have multiple callbacks per app
- Refactored plugin APIs to remove duplication
- Moved `constrain_days` from being Hass only to all app, regardless
of plugin used
- Added checking for overdue threads
- Added error checking for callback signatures
- Added app attributes that allows to access AD\'s `config` and `apps`
directories within apps
- Added `parse_datetime()`
- `run_once()`, `run_at()` and `run_daily()` now optionally take
`parse_time()` or `parse_datetime()` style arguments for specifying
time
- Refactored appdaemon.py for greater readability and easier
maintenance
- Expanded on the ability to trigger `listen_state` callbacks
immediately using the `immediate` flag, without need of specifying
the `new` nor `duration` parameter.
- Allowed to make use of `attribute` when using the `immediate` flag
in `listen_state`
- Added initial version of the Admin Interface
- Added User Defined Namespaces
- Rewrote logging to include user defined logs and formats
- Added a unified http component to handle API, ADMIN and DASHBOARD
access on a single port
- Added startup conditions to the HASS plugin
- Added duplicate filtering for logs
- Added standalone pidfile functionality
- Added the ability to delete an AD app generated entity from any
namespace
- Added the ability to get the history of entities from HASS database
- Added the ability to force a start of the MQTT plugin, even if not
connected to broker at startup
- Added the ability to set AD\'s `production_mode` from within apps
- Added the ability to start, stop, restart and reload apps from
either other apps or REST API
- Added the ability to register app services
- Added sensors for different internal state of AD, that can be read
by apps
- Added Person widget
- Much reworking of docs
- Added `register_dependency()` for dynamic dependencies in apps
- Added MQTT support for setting TLS version - contributed by
[Miguel](https://github.com/mdps)
- Added support for socketio for older tablet devices - inspired by
[algirdasc](https://github.com/algirdasc) and
[zarya](https://github.com/zarya)
- Added support for `default` and `copy` parameters in `get_state()`
api call - contributed by [Robert
Schindler](https://github.com/efficiosoft)
- added a switch to disable the encoding of every log message to
ascii - contributed by [Ben Lebherz](https://github.com/benleb)
- Various YAML fixes and refactoring - contributed by [Rolf
Schäuble](https://github.com/rschaeuble)
- Allow more natural addition of commandline arguments to Docker and
allow spaces - contributed by [Christoph
Roeder](https://github.com/brightdroid)
- Allowed for subscribing to MQTT events using wildcards. e.g.
`homeassistant/` - contributed by [Odianosen
Ejale](https://github.com/Odianosen25)
- Allow to specify a MQTT message to be sent when AD shutdowns cleanly
e.g. `offline`
- MQTT Retain setting for birth and will messages - contributed by
[Clifford W. Hansen](https://github.com/cliffordwhansen)
- Added Note on long lived tokens for Docker users - contributed by
[Bob Anderson](https://github.com/rwa)
- Documentation fixes - contributed by [Johann
Schmitz](https://github.com/ercpe)
- Documentation fixes - contributed by [Brendon
Baumgartner](https://github.com/bbrendon)
- Documentation fixes - contributed by [Quentin
Favrie](https://github.com/tseho)
- Documentation fixes, updating and cleaning - contributed by
[Humberto Rodríguez A.](https://github.com/rhumbertgz)
- Added the ability to set title 2 as friendly name in widgets -
contributed by [Radim](https://github.com/rds76)
- Added the ability to listen to `state_change` events, without using
listen_state() - contributed by [Thomas
Delaet](https://github.com/thomasdelaet)
- APIAI updated to dialog flow - contributed by
[engrbm87](https://github.com/engrbm87)

**Fixes**

- Fixes to listen_state() oneshot function
- Fixes to listen_state() oneshot function when duration is used
- Fixes to listen_state() function when it fires even when new and old
states are same
- Fixed an issue causing incorrect busy thread counts when app
callbacks had exceptions
- Fixed an issue of when MQTT Plugin not connected to broker, and it
holds up AD startup
- Fix to Forecast min/max in weather widget - contributed by
[adipose](https://github.com/adipose)
- Fix climate widget docs - contributed by [Rene
Tode](https://github.com/ReneTode)
- Fix to harmonize `units` vs `unit` - contributed by [Rene
Tode](https://github.com/ReneTode)
- Added missing import in sound.py example - contributed by
[cclaus](https://github.com/cclauss)
- Fix for run_once() - contributed by
[engrbm87](https://github.com/engrbm87)
- Fix for onclick not working on IE11 - contributed by
[jgrieger1](https://github.com/jgrieger1)
- Fixed issue of AppDaemon loading all `.yaml` files, even those
starting with a `.` which are hidden or binary files. Contributed by
[fhirschmann](https://github.com/fhirschmann)
- Fix for error generated when a none existent schedule timer is
passed to `info_timer`
- Fix for `log_type` flag in `listen_log` callback
- Relative paths for appdaemon\'s config directory now work correctly
- Fix to Dialogflow after format changes
- MQTT fix to subscribing using wildcards - contributed by [Daniel
Lashua](https://github.com/dlashua)

**Breaking Changes**

- appapi.py has been renamed to adbase.py, and the contained
superclass ha been renamed from AppDaemon to ADBase. This should
only be a breaking change if you were using unpublished interfaces!
- Time travel semantics have changed to support faster scheduling.
- `plugin_started` and `plugin_stopped` now go to the appropriate
namespace for the plugin and are no longer global
- Apps are no longer concurrent or re-entrant by default. This is most
likely a good thing.
- Changed the signature of `listen_log()` callbacks
- `cancel_listen_log()` now requires a handle supplied by the initial
`listen_log()`
- Removed Daemonize support - please use sysctl instead
- `set_app_state()` is deprecated - use `set_state()` instead and it
should do the right thing
- `dash_compile_on_start` now defaults to true
- The `log` section of appdaemon.yaml has been deprecated and must be
replaced by the new `logs` section which has a different format to
allow for user defined logs and greater flexibility in formatting
etc.
- API no longer has a separate port, all access is configured via the
new unified http component
- API has its own top level configuration section
- Some dashboard parameters moved to the `HTTP` section and renamed
- `dash_compile_on_start` renamed to `compile_on_start`
- `dash_force_compile` renamed to `force_compile`
- Due to the new `log` parameter to allow apps to use user defined
logs, any previous parameters named `log` should be renamed
- Due to a fix for `info_timer`, this function can now return `None`
if the timer handle is invalid
- As a result of a change in the way AD auto generates MQTT client
status topic, if not defined previously the new topic needs to be
used
- In the appdaemon configuration section, `latitude`, `longitude`,
`elevation` and `timezone` are now mandatory
- MQTT client status api change from `clientConnected` to
`is_client_connected`

Page 3 of 12

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.