This is a fair chunk of the way towards adding a WSGI compatible stack
for Home Assistant. The majot missing piece is auth/sessions. I was
undecided on implementing the current auth mechanism, or adding a new
mechanism (likely based on Werkzeug's signed cookies).
Plenty of TODOs...
* Add support for Logentries
Supports sending has events to Logentries web hook endpoint
see logentries.com for more
Inspired by the Splunk component
* bugfix
* fix summary
* fix test
* fix logentries url and tests
* update tests
* mock token
* Bug fixes
* typo
* typo
* fix string splitting
* remove redundant backslash
* use sane defaults for openzwave config
Use sane default if libopenzwave is installed. In most cases this will
mean that the zwave config path will not need to e manually specified.
* Resuming work on onkyo component
* Source control added to UI for onkyo receiver
Source will now display in the UI. Source mappings can be defined in the
config, and a rudimentary mapping is defined by default as a fallback.
When the onkyo source is updated, it will resolve to a defined name if
possible. This may break existing automations.
* fix lint errors
* Updated Onkyo receiver
Now takes an optional ip/name in additional to atempting to discover
deivces.
Source select will now take a sources mapping in the config. It will
provide default values if no source mapping is provided.
example:
- platform: onkyo
host: 10.0.0.2
name: receiver
sources:
HTPC: 'pc'
Chromecast: 'aux1'
Bluray: 'bd'
Wii U: 'game'
* fix pylint error
* Use HA's error log instead of stack trace
* Flipped source mappings, code cleanup
* Adds MoldIndicator sensor platform
This sensor may be used to get an indication for possible mold growth in rooms.
It calculates the humidity at a pre-calibrated indoor point (wall, window).
* Automatic conversion to Fahrenheit for mold_indicator
* Minor change to critical temp label
* Fixed docstrings and styles
* Minor changes to MoldIndicator implementation
* Added first (non-working) implementation for mold_indicator test
* Small style changes
* Minor improvements to mold_indicator
* Completed unit test for mold indicator
* Fix to moldindicator initialization
* Adds missing period. Now that really matters..
* Adds test for sensor_changed function
* Ignore permission errors on setpgid.
When launched in a docker container we got a permission denied error
from setpgid.
* Don't fail if we find our own pidfile.
When we restart using exec we are running a new instance of home-assistant with
the same process id so we shouldn't be surprised to find an existing pidfile in
that case.
* Allow restart to work when started as python -m homeassistant.
When we are started with `python -m homeassistant`, the restart command line
becomes `python /path/to/hass/homeassistant/__main__.py`. But in that case the
python path includes `/path/to/hass/homeassistant` instead of `/path/to/hass`
and we fail on the first import.
Fix this by recognizing `/__main__.py` as part of the first argument and
injecting the proper path as PYTHONPATH environment before we start the new
home-assistant instance.
Sonos platform supports a `party mode` feature that groups all
available players into a single group, of which the calling player
will be the coordinator.
Sonos (SoCo) supports add_uri_to_queue capability, making it possible
to stream media available via HTTP for example. This patch extends
media_player component and sonos platform to support this feature
* Added the `lgtv` platform to control a LG Smart TV running NetCast 3.0
(LG Smart TV models released in 2012) and NetCast 4.0 (LG Smart TV models released in 2013).
* Fixed multi-line docstring closing quotes
* Rename lgtv to lg_netcast
* Rename lgtv to lg_netcast
* Extracted class to control the LG TV into a separate Python package 'pylgnetcast' and changed requirements accordingly.
* regenerated requirements_all.txt with script
* now uses pylgnetcast v0.2.0 which uses the requests package for the communication with the TV
* fixed lint error: Catching too general exception Exception
* Allow for restart without using parent/child processes.
Assuming that we normally correctly shut down running threads and
release resources, we just do some minimal scrubbing of open file
descriptors and child processes which would stay around across an
exec() boundary.
* Use sys.executable instead of multiprocessing.spawn.get_executable()
* Limit how many file descriptors we try to close.
Don't even try to close on OSX/Darwin until we figure out how to
recognize guarded fds because the kernel will yell at us, and kill
the process.
* Use the close on exec flag on MacOS to clean up.
* Introduce a small process runner to handle restart on windows.
* Handle missing signal.SIGHUP on Windows.