Features
- added
set_textvalue()
api call.
Fixes
- Fixed incorrect service call in
set_value()
- Enforce domain name in rss feed target to avoid issues with other functions
- Previously deleted modules will now be correctly reloaded to reflect changes
Breaking Changes
- RSS target names must now consist of a domain as well as the target name, e.g.
rss.cnn_news
Features
- Added Production Mode to disable checking of App config or code changes
- RSS Feed can now optionally show a description for each story
- Disabling of zooming and double tap zooming on iOs devices is now optional via the
scaling
dashboard argument - Exiting from the commandline with ctrl-c will now cleanly terminate apps
- Sending SIGTERM to an appdaemon process will cause a clean shutdown, including orderly termination of all apps in dependency order
- Added extra checking for HASS Initialization to prevent a race condition in which metadata could not be read
- Weather widget facelift allowing ability to change sensors, more dynamic usnits, forecast option, icon options, option to show Rain/Snow depending on precip_type sensor (and change icons), wind icon rotates acording to wind bearing - contributed by Marcin Domański
Fixes
- Fixed a problem in the Docker initialization script
- Fixed an parameter collision for events with a parameter
name
inlisten_event()
Breaking Changes
- iOS Scaling and tap zooming is no longer disabled by default
Features
- API 200 responses are now logged to the access file
- Add meta tags to prevent double tap zoom on iOS
Fixes
- Re-added set_app_state() to the API
Breaking Changes
None
Features
- Added additional error checking for badly formed RSS feeds
Fixes
- Fixed a bug that broke binary_sensor widget.
- Fixed a bug that broke retries when connecting to Home Assistant
- Fixed a bug that could cause lockups during app initialization
- Fixed a bug for Docker that prevented the initial config from working correctly - contributed by mradziwo
- Grammar corrections to docs, and a fix to the stop code - contributed by Matthias Urlichs
Breaking Changes
None
Features
- Single App dependencies can now be specified on the dependency line itself and don't have to be a list of size 1
- Added
get_ad_version()
, andad_version
to the config dictionary - Added filters for Apps
- Added global module dependency tracking
- Added plugin reload app control
- Added icon widget
Fixes
- Apps now correctly reload when HASS comes back up after a restart
get_error()
now properly returns the error log logger objectget_hass_config()
is now correctly namedapp_args
now correctly returns args for all appsget_state()
now returns fields from the attributes dictionary in preference to the top level dictionary if there is a clash. In particular, this now means it is easier to iterate through group members- Fixed a bug preventing an objects
terminate()
from being called when deleted from apps.yaml - Fixed a bug in which object info was not being cleaned out at object termination
- Fixed an issue preventing dashboard updates on python 3.6
Breaking Changes
None
Features
- Added
javascript
widget - Upgraded MDI Icons to 2.1.19
- Add separate log for diagnostic info
- Per-widget type global parameters
- App level dependencies
listen_state()
now returns the handle to the callback- added
oneshot
option tolisten_state()
- Add step parameter to climate widget - contributed by Adrian Popa
- Add internationalization options to clock widget - contributed by Adrian Popa
- Doc improvements - contributed by Marco
Fixes
- Fixed image path for android devices
- Fix a bug with the time parameter for images
- Fixed
disable_apps
- Fixed a bug in
get_state()
withattributes=all
returning just the attributes dictionary instead of the entire entity.
Breaking Changes
- In apps.yaml, dependencies should now be a proper yaml list rather than a comma separated string
- Dependencies now refer to individual apps rather than modules
Features
- Make int args in appdaemon.yaml a little more robust
- Improve handling for missing app files
- Module loading enhancements
- Moved from requests to aiohttp client for better async behavior
- Added thread monitoring for worker threads
- Give more informative error message if AppDaemon can't locate a valid config dir
Fixes
- Fixed a bug that could cause multiple apps.yaml changes or additions to be ignored
- Fixed a bug causing listen_state() callbacks with
duration
set to fire immediately - Pinned yarl library to fix an issue with Docker build
- Fixed a couple of potential event loop hold ups
- Fixed a bug in password security for HADashboard service and state calls
- Changes to apps.yaml now also force a reload of dependent modules
exclude_dirs
now applies to yaml files as well as python files- Fixed broken icon on HADashboard logon screen
- Fixed a bug preventing the media title from showing in the media player
Breaking Changes
- App modules not listed in an apps.yaml file will no longer be loaded. Python modules may still be imported directly if they are in a directory in which other apps reside.
cert_path
is deprecated. With the replacement of requests with aiohttp, it is now sufficient to setcert_verify
to False to use a self signed certificate.- Initial dashboard loads may be slower on less powerful hardware when using password authentication. Updating after the initial load is unaffected.
Features
- Refactored pluggable architecture
- Support for multiple HASS instances
- Custom constraints
- Namespaces
- Path of Secret file can now be specified
- apps.yaml can now be split across multiple files and directories
- Apps can now establish loading priorities to influence their loading order
- IFRAME Refreshes should now be more reliable
- Added calls to access the underlying logger objects for the main and error logs
- Add the ability to ignore specific subdirectories under appdir
- Added error handling for apps that can't be read or have broken links
- Added london Underground Widget - contributed by mmmmmmtasty
- Added ability to display sensor attributes - contributed by mmmmmmtasty
- Added Weather Summary Widget - contributed by mmmmmmtasty
- Added Sticky navigation - contributed by Lars Englund
- Added Input Select widget - contributed by Rene Tode
- Redesigned Input Number widget (old is still available as
input_slider
) - contributed by Rene Tode - Added Radial widget - contributed by Rene Tode
- Added Temperature widget - contributed by Rene Tode
- Added container style to sensor widget - contributed by Rene Tode
Fixes
- Fixed an issue with the compiled directory not being created early enough
Breaking Changes
- Apps need to change the import and super class
info_listen_state()
now returns the namespace in addition to the previous parameters- AppDaemon no longer supports python 3.4
- --commtype command line argument has been moved to the appdaemon.cfg file
- The "ha_started" event has been renamed to "plugin_started"
- RSS Feed parameters have been moved to the hadashboard section
- Log directives now have their own section
- AppDaemon section renamed to appdaemon, HADashboard section renamed to hadashboard
- Accessing other Apps arguments is now via the
app_config
attribute,config
retains just the AppDaemon configuration parameters - Plugins (such as the HASS plugin now have their own parameters under the plugin section of the config file
- The !secret directive has been moved to the top level of appdaemon.yaml
- the self.ha_config attribute has been replaced by the
self.get_hass_config()
api call and now supports namespaces. - apps.yaml in the config directory has now been deprecated
- select_value() has been renamed to set_value() to harmonize with HASS
- It is no longer possible to automatically migrate from the legacy cfg style of config, and support for cfg files has been dropped.
Features
None
Fixes
- Fixed passwords causing 500 error on HADashboard - contributed by wchan.ranelagh
Breaking Changes
None
Features
None
Fixes
- Fixed an issue with
run_at_sunset()
firing multiple times
Breaking Changes
None
Features
- Renamed the HADashboard input_slider to input_number to support HASS' change
- Fixed
select_value()
to work with input_number entities
Fixes
None
Breaking Changes
The input_select
widget has been renamed to input_number
to support the change in HASS
Features
None
Fixes
- broken disable_apps temporary workaround
Breaking Changes
None
Features
- Refactor of dashboard code in preparation for HASS integration
- Addition of check to highlight excessive time in scheduler loop
- Split app configuration out into a separate file in preparation for HASS integration
- Enhance widget API to handle all event types instead of just click
- Add example HADashboard focussed Apps for Oslo City Bikes, Caching of local AppDaemon events, Monitoring events and logging, Google Calendar Feed, Oslo Public Transport, YR Weather - contributed by Torkild Retvedt
Fixes
- Fixed a bug that gave a spurious "text widget not found" error
Breaking Changes
- App configuration is now separate from AppDaemon, HASS and HADashboard configuration
- The Widget API has changed to accommodate different event types and now needs an
action
parameter to specify what the event type to be listened for is
Features
- Converted docs to rst for better readthedocs support
- Added custom widget development
- Enhanced API support to handle multiple endpoints per App
- Added helper functions for Google Home's APP.AI - contributed by engrbm87
- Added
immediate
parameter to listen state to trigger immediate evaluation of thedelay
parameter
Fixes
None
Breaking Changes
- Existing API Apps need to register their endpoint with register_endpoint()
Features
- API now runs on a separate port to the dashboard
Fixes
None
Breaking Changes
- API requires the
api_port
configuration value to be set and now runs on a different port from the dashboard - SSL Setup for API now requires
api_ssl_certificate
andapi_ssl_key to be set
ad_key
has been renamed toapi_key
Features
None
Fixes
None
Breaking Changes
get_alexa_slot_value()
now requires a keyword argument for slotname
Features
None
Fixes
- .cfg file fixes
Breaking Changes
None
Features
- Restructure docs for readthedocs.io
None
Fixes
None
Breaking Changes
None
Features
- Add `get_alexa_slot_value()
- Add
log_size
andlog_generations
config parameters - Add additional debugging to help Docker users
Fixes
None
Breaking Changes
None
Features
- Add a reference to official
vkorn
repository for hass.io - Add the ability to access hass state as App attributes
- Add RESTFul API Support for Apps
- Add
disable_dash
directive to enable API access without Dashboards - Add Alexa Helper functions
- Update Material Design Icons to 1.9.32 - contributed by minchick
- Use relative URLs for better remote behavior - contributed by Daniel Trnka
- Add SSL Support
- Add Password security for screens and HASS proxying functions
- Add support for secrets in the AppDaemon configuration file
- Add support for secrets in HADashboard configuration files
dash_navigate()
now takes an optional screen to return to
Fixes
- Toggle area fixes submitted by azeroth12 and minchick
- Typo fixes submitted by Aaron Linville, vrs01, Gabor SZOLLOSI, Ken Davidson, Christian Lasaczyk, Klaus, Johan Haals
- Fixed missing skin variables for media player and sensor widgets
Breaking Changes
- Compiled dashboards may need to be deleted after this upgrade
Features
- Add step parameter to media player
- Add
row
parameter to dashboard - Add ability to set timeout and return on dash navigation
- Add ability to force dashboard page changes from Apps, Alexa and HASS Automations
Fixes
- Add quotes to times in examples.yaml - contributed by Cecron
- Fix python 3.6 issue with datetime.datetime.fromtimestamp() - contributed by motir
Breaking Changes
None
Features
None
Fixes
- Fixed a bug in label and text_sensor widgets
Breaking Changes
None
Features
None
Fixes
- Fix a bug causing an apps
terminate()
to not be called
Breaking Changes
None
Features
None
Fixes
- Change
convert_utc()
to use iso8601 library
Breaking Changes
None
Features
- AppDaemon is now on PyPi - no more need to use git for installs
- Allow time_zone directive in appdaemon.cfg to override hass supplied time zone
- Add API calls to return info on schedule table and callbacks (get_scheduler_entries(), get_callback_entries())
- Add
get_tracker_details()
- Add sub entity to sensor
- Add
hass_disconnected
event and allow Apps to run while HASS is disconnected
Fixes
- Fix startup examples to match new
-c
semantics and add in docs - Fix Time Travel
- Fix for crashes on HASS restart if apps weren't in use - contributed by shprota
- Attempted a fix for
NaN
showing for Nest & Ecobee thermostats when in auto mode
Breaking Changes
None
Features
- Add error display field to weather widget
Fixes
- Fix issue with device trackers and
use_hass_icon
Breaking Changes
None
Features
- Move docker image to python 3.6
Fixes
None
Breaking Changes
None
Features
- Much Improved Docker support including tutorial - many thanks to quadportnick
Fixes
- Version Change
- Respect cert_path setting when connecting to WebSocket over SSL - contributed by yawor
Breaking Changes
None
Features
- Migrate timer thread to async
- Add option to turn off verification for self signed certs (contributed by janwh)
- AppDaemon configuration now uses YAML, among other things this allows arbitarily complex nested data structures in App parameters
- Added ability to convert from old cfg file to YAML
- AppDaemon Apps can now publish arbitary state to other Apps and the dashboard
- Added Gauge Widget
- Added RSS Widget
- Add next and previous track to media player
Fixes
- Slider now works correctly after changes outside of HADashboard
- Climate now works correctly after changes outside of HADashboard
- Media player now works correctly after changes outside of HADashboard
- ha.log now correctly dumps data structures
- on_attributes for lights now correctly supports RGB and XY_COLOR
- Fixed a bug in the scheduler to reduce clock skew messages
Breaking Changes
- The cfg file style of configuration is now deprecated although it still works for now for most features
- Argument names passed to Apps are now case sensitive
Features
- Label now accepts HTML for the value
- IFRAME widget now allows vimeo and youtube videos to go fullscreen when clicked
- IFRAME and Camera widgets now have optional title overlay
- Widgets that display icons can now pick up icons defined in HASS
- aiohttp version 2 support
Fixes
Breaking Changes
Features
- Added alarm widget
- Added camera widget
- Dimmers and groups now allow you to specify a list of on parameters to control brightness, color etc.
- Edited code for PEP8 Compliance
- Widgets can now have a default size other than
(1x1)
- Added
empty
to layouts for multiple blank lines - Numeric values can now have a comma as the decimal separator
- Add Global Parameters
- Rewrote media widget
Fixes
- IFrames now follow widget borders better
- IFrame now allows user input
- Fixed a race condition on dashboard reload
Breaking Changes
- Media Widget now needs to be 2 cells high
Features
- Widget level styles now correctly override just the styles they are replacing in the skin, not the whole style
- Device tracker toggling of state is optional and defaults to off
- Add climate widget
- Add script widget
- Add lock widget
- Add cover widget
- Added optional
monitored_state
argument to group to pick a representative entity to track dimming instead of guessing - Introduce new widget definition model in preparation for custom widgets
- Rewrite several widgets using the new model
- Add state map and state text functions to sensor, scene, binary_sensor, switch, device_tracker, script, lock, cover, input_boolean
- Allow dashboard accesses to be logged in a separate file
- Flag to force recompilation after startup
- Additional error checks in many places
- Dashboard determines the stream URL dynamically rather than by having it hard coded
- Add IFRAME widget
- Sensor widget now automatically detects units
- Sensor widget has separate styles for text and numeric
- Style fixes
- Active Map for device trackers
Fixes
- Various minor skin fixes
Breaking Changes
- Widget level styles that relied on overriding the whole skin style may no longer work as expected
- Device trackers must now be explicitly configured to allow the user
to toggle state, by setting the
enable
parameter - Groups of lights must have the
monitored_entity
argument to work properly if they contain any dimmable lights text_sensor
is deprecated and will be removed at some stage. It is now an alias forsensor
Features
- Initial release of HADashboard v2
Fixes
None
Breaking Changes
- appdaemon's
-c
option now identifies a directory not a file. The previously identified file must exist in that directory and be namedappdaemon.cfg
Features
- Code formatted to PEP8, various code optimizations - contributed by yawor
- Version check for WebSockets now understands dev versions - contributed by yawor
turn_off()
will now callturn_on()
for scenes since turning a scene off makes no sense, to allow extra flexibility- Restored the ability to use line, module and function in log messages. Recoded to prevent errors in non-compatible Python versions if the templates are not used.
Fixes
None
Breaking Changes
None
Features
None
Fixes
- Functionality to substitute line numbers and module names in log statements temporarily removed
Breaking Changes
- Functionality to substitute line numbers and module names in log statements temporarily removed
Features
- Swap from EventStream to Websockets (Requires Home Assistant 0.34 or later). For earlier versions of HA, AppDaemon will fallback to EventStream.
- Restored less verbose messages on HA restart, but verbose messages
can be enabled by setting
-D DEBUG
when starting AppDaemon - From the command line ctrl-c now results in a clean shutdown.
- Home Assistant config e.g. Latitude, Longitude are now available in
Apps in the
self.ha_config
dictionary. - Logging can now take placeholder strings for line number, function and module which will be appropriately expanded in the actual message
- Add example apps: battery, grandfather, sensor_notification, sound
- Updates to various example apps
Fixes
- get_app() will now return
None
if the app is not found rather than throwing an exception.
Breaking Changes
- get_app() will now return
None
if the app is not found rather than throwing an exception.
None
Features
None
Fixes
- Remove timeout parameter from SSEClient call unless timeout is explicitly specified in the config file
Breaking Changes
None
Features
- turn_off() now allows passing of parameters to the underlying service call
- Better handling of scheduler and worker thread errors. More diagnostics, plus scheduler errors now delete the entry where possible to avoid spamming log entries
- More verbose error handling with HA communication errors
Fixes
None
Breaking Changes
None
Features
- notify() now supports names
- It is now possible to set a timeout value for underlying calls to the HA EventStream
- It is no longer neccesary to specify latitude, longitude and timezone in the config file, the info is pulled from HA
- When being reloaded, Apps are now able to clean up if desired by
creating an optional
terminate()
function. - Added support for module dependencies
Fixes
Breaking Changes
- To include a title when using the
notify()
call, you must now use the keywordtitle
instead of the optional positional parameter
Features
- Add
entity_exists()
call - List Apps holding up initialization
Fixes
- Add documentation for the days constraint
- Various other contributed documentation fixes
Breaking Changes
None
Features
- Add device trackers to switch_reset example
Fixes
- Fixed a bug in which AppDaemon exited on startup if HA was not listening causing AppDaemon failure to start on reboots
- Fixed some scheduler behavior for appd and ha restart events
- Fix presence example to only notify when state changes (e.g. not just for position updates)
- Change door notify example to explicitly say "open" or "closed" instead of passing through state
- Fix a bug in device_trackers example
Breaking Changes
None
Features
- Add Minimote Example
- Add device trackers to switch_reset example
Fixes
- Fixed a minor scheduler bug that didn't honor the delay for callbacks fired from appd and ha restart events
Breaking Changes
None
Features
- Add Momentary Switch example
- Add Switch Reset Example
Fixes
- Fix a race condition in App Initialization
- Fix a bug that overwrote state attributes
- Fix to smart heat example app
- Fix day constraints while using time travel
Breaking Changes
None
Features
- Add ability to specify a cert dirctory for self-signed certs
- Add ability for
listen_event()
to listen to any event - Add filter options to listen_event()
Fixes
- Fix several potential race conditions in the scheduler
Breaking Changes
None
Features
- Document "Time Travel" functionality
- Add convenience function to set input_select called
select_option()
- contributed by jbardi - Add global access to configuration and global configuration variables - suggested by ReneTode
Fixes
- Tidy up examples for listen state - suggested by ReneTode
- Warning when setting state for a non-existent entity is now only given the first time
- Allow operation with no
ha_key
specified - AppDaemon will now use the supplied timezone for all operations rather than just for calculating sunrise and sunset
- Reduce the chance of a spurious Clock Skew error at startup
Breaking Changes
None
Features
- Add convenience function to set input_selector called
select_value()
- contributed by Dave Banks
Fixes
None
Breaking Changes
None
Features
- Add ability to randomize times in scheduler
- Add
duration
to listen_state() to fire event when a state condition has been met for a period of time - Rewrite scheduler to allow time travel (for testing purposes only, no effect on regular usage!)
- Allow input_boolean constraints to have reversed logic
- Add info_listen_state(), info_listen_event() and info_schedule() calls
Fixes
- Thorough proofreading correcting typos and formatting of API.md - contributed by Robin Lauren
- Fixed a bug that was causing scheduled events to fire a second late
- Fixed a bug in
get_app()
that caused it to return a dict instead of an object - Fixed an error when missing state right after HA restart
Breaking Changes
run_at_sunrise(
) andrun_at_sunset()
no longer take a fixed offset parameter, it is now a keyword, e.g.offset = 60
Features
None
Fixes
- Fixed a bug preventing get_state() calls for device types
- Fixed a bug that would cause an error in the last minute of an hour or last hour of a day in run_minutely() and run)hourly() respectively
Breaking Changes
None
Features
- Add support for windows
Fixes
None
Breaking Changes
None
Features
- Add support for recursive directories - suggested by jbardi
Fixes
None
Breaking Changes
None
Fixes
- Fix init scripts
Features
- Installation via pip3 - contributed by Martin Hjelmare
- Docker support (non Raspbian only) - contributed by Jesse Newland
- Allow use of STDERR and SDTOUT as logfile paths to redirect to stdout and stderr respectively - contributed by Jason Hite
- Deprecated "timezone" directive on cfg file in favor of "time_zone" for consistency with Home Assistant config
- Added default paths for config file and apps directory
- Log and error files default to STDOUT and STDERR respectively if not specified
- Added systemd service file - contributed by Jason Hite
Fixes
- Fix to give more information if initial connect to HA fails (but still avoid spamming logs too badly if it restarts)
- Rename 'init' directory to 'scripts'
- Tidy up docs
Breaking Changes
- As a result of the repackaging for PIP3 installation, all apps must
be edited to change the import statement of the api to
import appdaemon.appapi as appapi
- Config must now be explicitly specfied with the -c option if you don't want it to pick a default file location
- Logfile will no longer implicitly redirect to STDOUT if running without the -d flag, instead specify STDOUT in the config file or remove the logfile directive entirely
- timezone is deprecated in favor of time_zone but still works for now
Initial Release