Change Log

3.0.1

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 in listen_event()

Breaking Changes

  • iOS Scaling and tap zooming is no longer disabled by default

3.0.0 (2018-03-18)

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

3.0.0b5 (2018-03-05)

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

Breaking Changes

None

3.0.0b4 (2018-03-03)

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(), and ad_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 object
  • get_hass_config() is now correctly named
  • app_args now correctly returns args for all apps
  • get_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

3.0.0b3 (2018-02-11)

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 to listen_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() with attributes=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

3.0.0b2 (2018-01-27)

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 set cert_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.

3.0.0b1 (2018-01-12)

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.

2.1.12 (2017-11-07)

Features

None

Fixes

  • Fixed passwords causing 500 error on HADashboard - contributed by wchan.ranelagh

Breaking Changes

None

2.1.11 (2017-10-25)

Features

None

Fixes

  • Fixed an issue with run_at_sunset() firing multiple times

Breaking Changes

None

2.1.10 (2017-10-11)

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

2.1.9 (2017-09-08)

Features

None

Fixes

  • broken disable_apps temporary workaround

Breaking Changes

None

2.1.8 (2017-09-08)

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

2.1.7 (2017-08-20)

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 the delay parameter

Fixes

None

Breaking Changes

  • Existing API Apps need to register their endpoint with register_endpoint()

2.1.6 (2017-08-11)

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 and api_ssl_key to be set
  • ad_key has been renamed to api_key

2.1.5 (2017-08-10)

Features

None

Fixes

None

Breaking Changes

  • get_alexa_slot_value() now requires a keyword argument for slotname

2.1.4 (2017-08-10)

Features

None

Fixes

  • .cfg file fixes

Breaking Changes

None

2.1.3 (2017-08-11)

Features

  • Restructure docs for readthedocs.io

None

Fixes

None

Breaking Changes

None

2.1.2 (2017-08-11)

Features

  • Add `get_alexa_slot_value()
  • Add log_size and log_generations config parameters
  • Add additional debugging to help Docker users

Fixes

None

Breaking Changes

None

2.1.0 (2017-08-11)

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

Breaking Changes

  • Compiled dashboards may need to be deleted after this upgrade

2.0.8 (2017-07-23)

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

2.0.7 (2017-07-20)

Features

None

Fixes

  • Fixed a bug in label and text_sensor widgets

Breaking Changes

None

2.0.6 (2017-07-20)

Features

None

Fixes

  • Fix a bug causing an apps terminate() to not be called

Breaking Changes

None

2.0.5 (2017-07-16)

Features

None

Fixes

  • Change convert_utc() to use iso8601 library

Breaking Changes

None

2.0.4 (2017-07-16)

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

2.0.3 (2017-07-09)

Features

  • Add error display field to weather widget

Fixes

  • Fix issue with device trackers and use_hass_icon

Breaking Changes

None

2.0.2 (2017-07-08)

Features

  • Move docker image to python 3.6

Fixes

None

Breaking Changes

None

2.0.1 (2017-07-08)

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

2.0.0beta4 (2017-06-18)

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

2.0.0beta3.5 (2017-04-09)

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

2.0.0beta3 (2017-03-27)

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

2.0.0beta2 (2017-03-12)

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 for sensor

2.0.0beta1 (2017-03-04)

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 named appdaemon.cfg

1.5.2 (2017-02-04)

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 call turn_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

1.5.1 (2017-01-30)

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

1.5.0 (2017-01-21)

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

1.4.2 (2017-01-21)

Features

None

Fixes

  • Remove timeout parameter from SSEClient call unless timeout is explicitly specified in the config file

Breaking Changes

None

1.4.1 (2017-01-21)

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

1.4.0 (2017-01-20)

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 keyword title instead of the optional positional parameter

1.3.7 (2017-01-17)

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

1.3.6 (2016-10-01)

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

1.3.4 (2016-09-20)

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

1.3.4 (2016-09-18)

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

1.3.3 (2016-09-16)

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

1.3.2 (2016-09-08)

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

1.3.1 (2016-09-04)

Features

  • Add convenience function to set input_selector called select_value() - contributed by Dave Banks

Fixes

None

Breaking Changes

None

1.3.0 (2016-09-04)

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() and run_at_sunset() no longer take a fixed offset parameter, it is now a keyword, e.g. offset = 60

1.2.2 (2016-31-09)

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

1.2.1 (2016-26-09)

Features

  • Add support for windows

Fixes

None

Breaking Changes

None

1.2.0 (2016-24-09)

Features

  • Add support for recursive directories - suggested by jbardi

Fixes

None

Breaking Changes

None

1.1.1 (2016-23-09)

Fixes

  • Fix init scripts

1.1.0 (2016-21-09)

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

1.0.0 (2016-08-09)

Initial Release