Announcement: AppDaemon 4.2.2

Hello all - it’s been a while, over a year in fact. This has prompted some of you to ask if AppDaemon is dead? The answer is a resounding no, AppDaemon is alive as it has ever been, but development has slowed down for a few reasons:

  • Some life events for the core devs (nothing terrible!)
  • In particular, I have a new and larger home, so I am spending most of my time automating it using AppDaemon instead of working on AD itself
  • AD is stable, and full featured. It does most of what I need at the moment and does it well. That’s not to say we won’t add cool stuff as we think of it, but it has most of what we need for the moment!

I use AD on a daily basis, it is the core of my automation stack, as HomeAssistant is the heart of my device support, so I remain committed to this software stack.

Having said that, we have a few goodies in this release, in particular some updates and fixes for the scheduler, and some nice quality of life improvements for constraints submitted by Matt O and David Greenberg. We also have a fix for entity.state in async callbacks.

For the future, I’ve been experimenting with a SmartScene capability that is designed to solve the problem of multiple overlapping scenes, as well as an AD friendly implementation of a state machine class that can help simplify some particularly complex operations. No promises, but these may well make it into an upcoming release of AppDaemon as I have found them both extremely useful in my latest automation escapades.

The full list of changes is below, and I have given @frenck a heads up that the release is on the way, so a new version of the add-on should be available soon.

Happy automation all!

4.2.2

Features

  • Added the ability to set HA certificate verify from docker arguments - contributed by Antonino Piazza <https://github.com/a-p-z>__
  • Added MQTT VARS to docker arguments - contributed by Xavi Moreno <https://github.com/xaviml>__
  • Added the ability to reset a running timer via api
  • Removed a warning from info_timer() for stale handles
  • Added the ability to supress invalid timer handle warnings in cancel_timer()
  • All scheduler calls and helper functions now support fractional timestamps. including parse_time() and now_is_between()
  • sunrise(), sunset(), parse_time() and parse_datetime() now allow you to select today’s sunrise/sunset, rather than the next occuring,
    and specify a number of offset days
  • now_is_between() now supports specification of a timethat can be used for testing rather than using the current time
  • Added the ability to use lambdas for filtering state callbacks - contributed by David Greenberg <https://github.com/dgrnbrg>__
  • Added the ability to support multiple input constraints - contributed by Matt O <https://github.com/SirIndubitable>__
  • Added the --configfile parameter
  • Docker container optimizations - contributed by Nigel Rook <https://github.com/NigelRook>__

Fixes

  • Fixed issue when when using timeout in listen event api, after the event is ran one gets an error in log
  • Fixed issue when an entity is deleted from HA, and it remains in AD
  • Fixed issue with setup file saying support “python3 3.0”
  • Fixed issue with the inability to know which app’s callback failed constrain_state check
  • Fixed issue with AD giving messed up error messages
  • Fixed an issue with scheduler.now_is_between() where it wasn’t zeroing out microseconds leading to race conditions
  • Fixed another issue with now_is_between() relating to sunrise & sunset periods spanning midnight
  • Fixed an issue in reloads of global modules - apps are now correctly forced to reload rather than just re-init ensuring they dump any old references
  • Fixed the "state attribute of the entity class to work in async callbacks - Inspired by Kostas Chatzikokolakis <https://github.com/chatziko>__
  • Documentation fixes - contributed by Rootie <https://github.com/Rootie>__
  • Documentation fixes - contributed by Jakob Ruhe <https://github.com/jakeru>__
  • Documentation fixes - contributed by illuzn <https://github.com/illuzn>__
  • Fix for flake8 repository move - contributed by dgrnbrg <https://github.com/dgrnbrg>__
  • Bump black to 22.3.0 and run it on all files - contributed by Jakob Ruhe <https://github.com/jakeru>__
  • Bump black to 22.3.0 and run it on all files - contributed by Jakob Ruhe <https://github.com/jakeru>__
  • Bumped websocket-client from 1.2.3 to 1.3.3
  • Bumped azure-mgmt-storage from 19.0.0 to 20.0.0
  • Bumped azure-storage-blob from 12.9.0 to 12.12.0
  • Bumped azure-mgmt-compute from 23.1.0 to 27.1.0
  • Bumped azure-mgmt-resource from 20.0.0 to 21.1.0
  • Bumped azure-keyvault-secrets from 4.3.0 to 4.4.0
  • Bumped pytz from 2021.3 to 2022.1
  • Bumped pygments from 2.10.0 to 2.12.0
  • Bumped feedparser from 6.0.8 to 6.0.10
  • Bumped deepdiff from 5.7.0 to 5.8.1
  • Bumped voluptuous from 0.12.2 to 0.13
  • Bumped bcrypt from 3.2.0 to 3.2.2
  • Bumped requests from 2.26.0 to 2.28.0
  • Bumped jinja2 from 3.0.3 to 3.1.2

Breaking Changes

None

6 Likes

Let me just say that home automation with AppDaemon is an absolute joy - without AppDaemon, I would have given up on home automation long ago. Thanks to you and all the developers and everyone that has made it such a great platform for home automation!!

(and for anyone that hasn’t given it a try - you don’t know what you are missing!)

1 Like

docker: Error response from daemon: manifest for acockburn/appdaemon:4.2.2 not found

The docker build pipeline is broken, I am looking into it.

1 Like

There is a problem with the ARM images, they are exhausting the memory on the build machine for reasons that are not clear. I will release AD 4.2.3 later today with a modified pipeline to build just the intel images, we will re-add ARM if/when we can figure out what the problem is.