1. The has_attributes was comparing names to addresses
2. Some errors outside of an except block were using
_LOGGER.except. This will cause an exception itself because there is no
trance context available to the logger
3. Added alias names for the address and state addresses so that they
can be accessed with the same
4. Added return values for the set_int_value and set_percentage methods
to allow error checking similar to the set_value method
5. Added the name of the configured object to the log messages to make
them more meaningful (otherwise multiple similar log messages are
received without any hint as to the target device)
* Added camera service calls to arm/disarm the cameras. Entity id is optional so that with a single call we can arm all the cameras or specify a particular entity id to arm if applicable and possible in that camera type.
* Added camera service calls to arm/disarm the cameras. Entity id is optional so that with a single call we can arm all the cameras or specify a particular entity id to arm if applicable and possible in that camera type.
* Added camera service calls to arm/disarm the cameras. Entity id is optional so that with a single call we can arm all the cameras or specify a particular entity id to arm if applicable and possible in that camera type.
* Fixed the spaces and indentation related issues that houndci found
* Fixed the spaces and indentation related issues that houndci found
* Missed the const file which has the macros defined.
* Fixed the CI build error
* Fixed the CI build error because of unused variable in exception case
* Updating the arlo code based on comment from @balloob. Changed the arm and disarm to enable_motion_detection and disable_motion_detection respectively. Similarly fixed the AttributeError handling. Added dummy code to the demo camera also. Moved out the definitions in const.py into the camera __init__ file
* Fixed the comments posted by houndci-bot
* Fixed the comments posted by houndci-bot
* Fixed the comments posted by houndci-bot
* Fixed the comments posted by travis-ci integration bot
* Fixed the comments posted by travis-ci integration bot
* Fixed the comments posted by travis-ci integration bot for demo.py: expected 2 lines, found 1
* Updated code in camera __init__.py to use the get function instead of directly calling the member in the structure.
* Updated code in camera __init__.py
* Posting the updated code for PR based on @balloob's suggestions/recommendations
* Removed the arlo reference from demo code. Copy-paste error
* Removed the unused import found by hound bot
* Expected 2 lines before function, but found only 1.
* Based on @balloob's comments, moved these constants to the camera/arlo.py
* Added test_demo.py to test the motion enabled and motion disabled in camera component
* Fixing issues found by houndci-bot
* Fixing issues found by houndci-bot
* Fixing the code as per @balloob's suggestions
* Fixing the code as per @balloob's suggestions
* Fixing the test_demo failure. Tried to rewrite a base function to enable the motion in __init__.py and missed to add it to as a job.
* Fixing the hound bot comment
* Update arlo.py
* Update arlo.py
* Adding done_message to alert
Adding an optional entry to the config that will send a notification when an
alarm goes from on to off.
* Update test_alert.py
* Update test_alert.py
* Revert "Version bump to 0.49.0.dev0 (#8266)"
This reverts commit 8e4394f173.
* Revert "Adding done_message to alert (#8116)"
This reverts commit 5e56bc7464.
* Revert "Camera services arm disarm including Netgear Arlo (#7961)"
This reverts commit ed20f7e359.
* Revert "Make Android app shortcut use 'Home Assistant' as name instead of just 'Assistant'. (#8261)"
This reverts commit 0bcb7839fb.
* Implement templates for covers
* Fix a few remaining pylint warnings
* Fix hound line-length warnings
* Fix one more hound line-length warning
* Fix quadruple-quotes an line length code-quality issues
* Irrelevant change to retrigger travis due to timeout
* Use volutuous Exclusive to check for mutex condition
* Fix incorrect state check
* Comfoconnect fan component.
* Fix linter. Don't store hass object when not needed.
* More code style.
* Rebase to dev and add to coverage ignore list.
* Use published package from pypi.
* Added invert flag for position for actuators that uses 100% for fully closed position
* Implementation of tilt functionality
* Bugfix check tilt
* Formatting
* Formatting fixes
* Formatting
* Bugfix set_tilt
* Minor modifications in configuration section
* Formatting
* Update knx.py
* add percentage (DPT_Scaling) KNX sensors
1. moved basic functionality to KNXSensorBaseClass instead of
KNXSensorFloatClass
2. added "if" clause in setup for a "percentage" sensor type and added KNXSensorDPTScalingClass
* support-knx-percentage-sensor: lint correction
Updated convert method base sensor class to avoid lint warning
(R201 - Method could be a function)
* added PLATFORM_SCHEMA for configuration
1. added SCHEMA extension for defined keywords
2. moved fixed data for internal settings out of sensor logic
3. moved everything into standard KNXSensor object
4. added parsing of extra config parameters in __init__
* correct lint errors on support-knx-percentage-sensor
* Fixed mqtt subscription filter on sys $ topics
* fixed linting issue
* added unit tests for $ topics and changed fix to use re.escape
* merge upstream/dev mqtt unit tests
* Update test_init.py
* LIFX: Move light effects to external library
This moves the LIFX light effects to the external library aiolifx_effects.
To get the light state synchronized between that library and HA, the LIFX
platform no longer maintains the light state itself. Instead, it uses the
cached state that aiolifx maintains.
The reorganization also includes the addition of a cleanup handler.
* Fix style
* Fix Plex component to use port number in discovery.
* Break line
* Correctly save port to config
* Handle port with fewer code changes
* This is stuck configuring and I'm not sure why
* Changes suggested by @dale3h
* Open Hardware Monitor sensor
Platform which is able to connect to the JSON API of Open Hardware Monitor and adds sensors for the devices.
* Remove copyright in header, not needed.
* - Removed old code
- Fixed typo’s in comments
- Removed log spamming
- Removed code that was unnecessary
- Use requests instead of urllib
- Moved sensor update functionality to data handler, to remove unwanted constructor parameters
* Fixed typo in comment
Added tests
* Added default fixture, to stabilize tests
* - Fix for values deeper than 4 levels, no longer relies on fixed level
- Fixed tests
* Removed timer in preference of helper methods
* Moved update functionality back to Entity….
Updated SCAN INTERVAL
* Added timeout to request
Removed retry when Open Hardware Monitor API is not reachable
Fixed naming of sensors
Flow optimalisations
Fixed tests to use states
* Remove unused import
* Initial commit for an Axis service to do Vapix calls to device
* Added check to see if metadatastream initiated properly
* Make sure to configure the correct IP address when setting up registered devices on system start
* Manage reconnection when device is discovered with a different IP
* Cleaned up setting new IP
* Better naming of event for new IP
* New version of dependency axis
* Fix flake8 failing
* Break out service default strings to constants
* Use the dispatcher and not the core event bus for internal communication
In trying to come up for some reason behind issue #6365 (which only
happens on some platforms) the best guess is that some components are
managing to get a string value all the way up to the Polymer UI for
temperature, which then an increment of +0.5 is treating as a string
concat operation instead of addition. So 20 + 0.5 becomes 200.5 hits
the max thermostat value.
This will throw an exception if the climate temp value isn't a
number. That's going to turn a soft fail into a hard fail on
potentially a number of platforms. Mysensors is one of the platforms
that was reported as having the issue. So put some explicit float
casts where that might be coming from as well.
Model CT50 has an "Auto" mode. When mode is set to auto we need to ask
what the current state is: cool or heat. Then we can query the
appropriate target temperature.
Without this fix, the target temperature shows up blank in the UI and
setting the mode fails.
* Uninstall enum34 in python3.6 docker image
This is a short term fix for #7733
What's happening is the following dependencies are pulling enum34:
- pygatt
- libsoundtouch
- yeelight
However, enum34 is not meant to be installed in Python versions 3.4+
and causing the `AttributeError: module 'enum' has no attribute 'IntFlag'``
I've submitted patches to these projects so we don't have to do this
manual uninstall in the future.
* Update Dockerfile
* Add ClickSend notify service.
* PR #8135 changes.
- Some code spacing fixes.
- Add timeout to requests.
- Change doc url.
- Use const.py as much as possible.
- Check credentials to determine if setup fails or not.
- Add docstrings.
- Use string formatting.
* PR #8135 changes.
- Remove unused variables.
- Continuation line under-indented for visual indent.
* PR #8135 changes.
- Format code based on PEP8.
* PR #8135 changes.
- Remove unused base64 dependency.
* PR #8135 changes.
- Fix: D205: 1 blank line required between summary line and description (found 0)
- Fix: standard import "import json" comes before "import requests"
* PR #8135 changes.
- Add files to .coveragerc
* Remove obvious comments and set constant
* added default parameter
* zone overlay can be set with or without a temperature and with or without a duration. Duration is not supported by hass
* Fixes issue #7059 with missing sensorDataPoints
* Fixes issue #6943 added ac_mode
* ac_mode cases
* added fan modes
* changed handling of device state OFF
* fixed an error initializing a dictionary (#6943)
* changed pytado version
* activated pytado debugging
* Changed pyTado version
* mytado.com changed authentication challenge
* Fixed linelength and whitespace issues
* requirements to pytado changed
When a openwrt router reboots, all the session ids gets invalidated.
In that case we need to log in again and get a new session id.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* Added rfxtrx binary sensors to a new branch
* binary_sensor/rfxtrx: added support for automatic_add
* Fixed pylint warnings
* off_delay is set wit clearer time specifiers (cv.time_period)
* fire_event config attribute is now supported by rfxtrx binary sensors.
* Cosmetic ordering
* Fix lint errors for PR requirements.
* Fixed indents, line length and comment problems.
* Yet another line too long fix...
* Using existing attributes and config constants.
* Cosmetic fix (ATTR_DATABITS -> ATTR_DATA_BITS)
* Removed unused attribute
* FIX masked device id logging message
* FIX line too long
* FIX trailing white space
* FIX: rfxtrx binary_sensor manages its own devices only.
* Added a basic config helper for pt2262 devices
* Make pylint happy
* Fixed most houndci-bot-detected issues
* Fix TOX complaint about blank line after function docstring
* Fix data bit value calculation
* Fixed line too long
* Removed unnecessary code.
* remove trailing whitespace
* Added hass property to device object.
* Use netdisco to automatically discover harmony hubs.
* Allow some settings in configuration.yml to override even on discovered hubs.
* Global is not required as no assignment on variable
* Use `set` instead of list for perf
* Store cache of discovered devices against `hass.data` rather than in global
* Handle case if the device cache is empty
* Fix indentation issue
* Configurable fade-out behavior
Adds a per-group "fade" option with values of "out" (default) or "none".
By default, the lights are faded out when turned off, but this can cause usability issues when manually switching wall switches, since the bulbs turn back on at minimum brightness.
* Changed fade value from enum to boolean
* No need to fall back to default since voluptuous takes care of that.
* Update InfluxDB to handle datetime objects
Updates the InfluxDB regex to ignore datetime objects being coverted
into float values.
Adds tests to the component to ensure datetime objects are corectly
handled.
* Fix Hound errors
Fixes errors from Hound bot
* Update InfluxDB to handle multiple decimal points
Changes the way InfluxDB handles values such as 1.2.3.4 to be 1.234 so
it stores in InfluxDB as a valid float value
* Fix lint issues
Reduce the size of a line for the linter
* Update InfluxDB to pass on unknown variable
If we get an error trying to convert a variable to a float, let's ignore
it completely
* Make InfluxDB Regex constants
Makes the Regex's used by InfluxDB constants so they don't need to be
compiled each time
* cleanup
* fix lint
* Update regex
* fix tests
* Fix JSON body missing new line character
* fix exceptions
* Fix lights issue #8098
* Don't check self._color to decide whether to calll get_color()
self._color is None on init, so get_color() will never be called.
We only want to know which of the DHCP clients are indeed active.
For example: I've a table of static DHCP leases with most of the IPs of my network, so this module is always detecting them as present. With my patch only the active ones will be detected as present.
I already mentioned here: https://github.com/home-assistant/home-assistant/pull/7366#issuecomment-302950139
* Update InfluxDB to handle datetime objects
Updates the InfluxDB regex to ignore datetime objects being coverted
into float values.
Adds tests to the component to ensure datetime objects are corectly
handled.
* Fix Hound errors
Fixes errors from Hound bot
* Update InfluxDB to handle multiple decimal points
Changes the way InfluxDB handles values such as 1.2.3.4 to be 1.234 so
it stores in InfluxDB as a valid float value
* Fix lint issues
Reduce the size of a line for the linter
* Update InfluxDB to pass on unknown variable
If we get an error trying to convert a variable to a float, let's ignore
it completely
* Make InfluxDB Regex constants
Makes the Regex's used by InfluxDB constants so they don't need to be
compiled each time
* cleanup
* fix lint
* Update regex
* fix tests
* Fix JSON body missing new line character
* fix exceptions
* Fix lights issue #8098
* Don't check self._color to decide whether to calll get_color()
self._color is None on init, so get_color() will never be called.
* add knx cover
also corrected bugs in device config
1. overwriting of addresses in KNXMultiAddressDevice
2. setting and getting int values
3. added percentage scaling
* Update __init__.py
* Add support for Insteon FanLinc fan
* Upgrade insteonlocal dependency to 0.49
* Lint/flake fixes
* Remove configurator
* Make Hound fixes
* Revert "Make Hound fixes" and "Remove configurator"
This reverts commit 04d1f7fdb162f59f8e740fd1fc17e87d0ca81fd3.
This reverts commit 7b8278d7cf8cb6b1e3606ee17bd4a9ebb6ca1e06.
* make port mapping optional
* dependencies + improvements
* Added bytes and packets sensors from IGD
* flake8 check
* new sensor with upnp counters
* checks
* whitespaces in blank line
* requirements update
* added sensor.upnp to .coveragerc
* downgrade miniupnpc
Latest version of miniupnpc is 2.0, but pypi only has 1.9
Fortunately it is enough
* revert to non async
miniupnpc will do network calls, so this component can’t be moved to
coroutine
* hof hof
forgot to remove import ot asyncio
* handle TransportError exceptions when calling JSONRPC API
* use double quotes for log messages; show TransportErrors as in async_ws_connect
* fix spaces around keyword / parameter
* fix logging message
* review changes
This will allow for dynamically updating weather states, for instance if
you wanted to use the latitude and longitude of a phone or other device
to get the weather for your current location.
Vera devices are reporting battery levels as a sting by appending a
percentage sign (%) on the end.
To make the Vera component act like other Home Assistant components,
let's remove the percentage sign from the battery report levels so that
we only display the battery level.
This may be a "breaking change" if people are relying on the Vera
battery levels to be a string instead of an int. However, this will make
the battery level reports compatible with everything else.
* Use standard entity_ids for zwave entities
* Include temporary opt-in for new entity ids
* Update link to blog post
* Update tests
* Add old entity_id as state attribute
* Expose ZWave value details
* Update tests
* Also show new_entity_id
* Just can't win with this one
* Use standard entity_ids for zwave entities
* Include temporary opt-in for new entity ids
* Update link to blog post
* Update tests
* Add old entity_id as state attribute
* Expose ZWave value details
* Update tests
* Also show new_entity_id
* Just can't win with this one
* Setup to send component data is option is enabled
* testcases, as well as moved to a single boolean, passed to the function
* fixed pep8 failures
* Clarify config option.
* Adding support for https.
This change allows to access a firetv-server instance that runs over https (via a reverse proxy for exemple).
Default stays http, but if `ssl: true` is set in the configuration the connection goes over https.
Successfully tested.
* respecting the 79 characters line limit
* Fixed the Wind sensor following new release of netatmo-api-python
The NetAtmo PR was at:
https://github.com/jabesq/netatmo-api-python/pull/5
Essentially, this commit adds a protection when adding an incorrect
monitored conditions to avoid to fail the entire NetAtmo component,
plus for consistency reasons all conditions are now in lower case.
* Fixes following the CI tests
* blink: the existing 50/50 flashing between base color and effect color
* breathe: a lifx_effect_breathe replacement
* ping: mostly base color with a short flash at the end of the cycle
* strobe: dark base color and short cycles by default
* solid: temporary color change, base color never visible
Adding a service call for each mode is a bit extravagant so instead
lifx_effect_breathe has been folded in as an option and that service
call is deprecated.
* Allow device tracker platforms to specify picture
* Allow device tracker to specify icon during discovery
* Clean up and add tests
* Fix lint
* Fix test
* Make percentage string values as floats in InfluxDB
Currently Z-wave and other compontents report an attributes battery
level as an integer, for example
```yaml
{
"is_awake": false,
"battery_level": 61,
}
```
However, some other components like Vera add the battery level as a
string
```yaml
{
"Vera Device Id": 25,
"device_armed": "False",
"battery_level": "63%",
"device_tripped": "False",
}
```
By removing any % signs in the field, this will send the value to
InfluxDB as an int, which can then be used to plot the data in graphs
correctly, like other percentage fields.
* Add tests and remove all trailing non digits
Adds tests and now removes all trailing non-numeric characters for
better use
* Update variable name for InfluxDB digit checks
Updates the variable used for the regex to remove trailing non digits
* Fix linting errors for InfluxDB component
Fixes a small linting error on the InfluxDB component
* dismiss service for persistent notifications
Unnecessary notifications can now be removed automatically. Added a
dismiss service to remove persistent notifications via script and/or
automation.
* removed unnecessary loop
loop removed
* Add color_util.color_hsv_to_RGB
* Use helper functions for LIFX conversions
The LIFX API uses 16 bits for saturation/brightness while HA uses 8 bits.
Using helper functions makes the conversion a bit nicer and less prone
to off-by-one issues.
The colorsys library uses 0.0-1.0 but we can avoid that by using the HA
color_util converters instead.
* initial commit
* class name and requirements_all.txt
* removed mentions of D7050
* changed default name
* catch oserror in update, travis errors.
* use nad_receiver pip version
* update coveragerc
* Add initial version
* Fix requirements
* Prefer logging over printing
* Set executor thread name on >Py36 only
* Add tests
* Lint
* Add restrictedpython to test dependencies
* Create python_script.py
From doc:
```
However, an empty dict ({}) is treated as is. If you want to specify a list that can contain anything, specify it as dict:
>>> schema = Schema({}, extra=ALLOW_EXTRA) # don't do this
>>> try:
... schema({'extra': 1})
... raise AssertionError('MultipleInvalid not raised')
... except MultipleInvalid as e:
... exc = e
>>> str(exc) == "not a valid value"
True
>>> schema({})
{}
>>> schema = Schema(dict) # do this instead
>>> schema({})
{}
>>> schema({'extra': 1})
{'extra': 1}
```
* Revert "Update to dsmr_parser supporting v5 arguments."
This reverts commit 3567de4b90361c262c4d3261325c2b7dbfa5441f.
* Revert "Using dev branch until released upstream."
This reverts commit 53e8de112cb0c47ac5031aacd74a5b18b4a418e2.
* Revert "Give good example."
This reverts commit 4f90fc4be677634fc7e951b4b79aa57c8213b8f8.
* Revert "Allow configuring DSMR5 protocol."
This reverts commit 9fa0e14187e32521e2f51cf2183a9070ee093bd0.
* Update pysesame requirement to 0.1.0 to support caching
* Set `available` property based on API enabled status
* Add state attributes for device ID and battery level
* osram lightify removed duplicated set in case of brightness changes
* lightify component: anticipate brightness evaluation to handle unconsidered scenario described in the PR request comments (light turned on with color/temperature)
* Correction for travis ci error:
undefined name 'transition'
SHOW DIAGNOSTICS always needs admin privileges on influxdb. For
the purposes of home-assistant this is too much.
Use 'SHOW SERIES' to have a relatively lightweight query which
only needs READ privileges.
* add option to display all sources / pushed to version 0.4.3 of library
* Add show_all_sources option for auto discovery too
* change code style for hass
* fix lint
* Add support for Vanderbilt SPC alarm panels.
* Arm/disarm + read state
* Autodiscover and add motion sensors
* Fix code formatting.
* Use asyncio.async for Python < 3.4.4.
* Fix for moved aiohttp exceptions.
* Add docstrings.
* Fix tests and add docstrings.
* Added buienradar sensor and weather
* used external library for parsing
* used external library for parsing
* updated buienradar lib to 0.4
* Make sure you import 3rd party libraries inside methods.
* Make sure you import 3rd party libraries inside methods.
* clean up code; optimized
* imports, sensor name and attributes
* updated requirements to match imports
* use asyncio for http get
* Add service to set nest away/home modes
* New service `nest.set_mode`
* Update the NestDevice object to export the local structures
* Validation and structure cleanup
* Revert "Update to dsmr_parser supporting v5 arguments."
This reverts commit 3567de4b90361c262c4d3261325c2b7dbfa5441f.
* Revert "Using dev branch until released upstream."
This reverts commit 53e8de112cb0c47ac5031aacd74a5b18b4a418e2.
* Revert "Give good example."
This reverts commit 4f90fc4be677634fc7e951b4b79aa57c8213b8f8.
* Revert "Allow configuring DSMR5 protocol."
This reverts commit 9fa0e14187e32521e2f51cf2183a9070ee093bd0.
* Added effects to Yeelight bulbs
* Fix Typo and Use randint instead of randrange
* Added Effects
* updated requirements_all.txt
* fix empty line
* minor fixes
* fix passing effects as parameter
* Fix#7758 subscription expiration/removal
Removes a subscription after receiving an HTTP 410 response when trying to send a new message.
* Fix tests failing due to additional call
* Fix code style
* Lint
* Check if media commands are actually applicable
- Explicitly allow ‘stop’ and ‘play’ on radio streams
- Disallow media commands when the playlist is empty
- Check if command is supported when calling `turn_on` and `turn_off`
* Suppress UPnP error 701 on media commands
* Clean up soco_filter_upnperror
Clean up soco_filter_upnperror and fix small bug in support_previous_track determination
* Start of migration framework, to allow moving of files in the config directory to be hidden, ios.conf used as the first one to undergo this change.
* Update const.py
* Update test_config.py
* improvement to syntax
* log time delay of domain setup in info level
* when setup problems appear, it's difficult to debug which are the components that took a lot to set up. This minimal change goes further than the 'slow setup warning' and measures the setup time interval for each domain.
* use timer as in helpers/entity
* Introduced support to Netgear Arlo Cameras
* Using async_setup_platform() and applied other changes
* Removed unecessary variables
* Using asyncio for sensor/arlo
* Update arlo.py
* Removed entity_namespace
Downgrades the Dockerfiles used by Home Assistant to Python 3.5, after
Python 3.6 base image was causing segmentation faults.
See home-assistant/home-assistant#7752
* Show persistent error if cover.myq fails
* Fixed typo on getLogger()
* Added ValueError on except condition
* Make pylint happy
* Removed DEFAULT_ENTITY_NAMESPACE since it is not being used
* Add `name` var to BytesIO content to get recognized
Sometimes the python-telegram-bot doesn't recognize the mimetype of the file and looks after a name variable to deduce it. Fixes#7413
* bytesio stream recycle less explicit
* Rachio platform started
* Rachio tests
* detect bad api token
* Documentation, Code cleanup
* Docstrings end with a period, log uses %
* Fix arguments, default run time is now 10 minutes
* Fix typo, remove todo (GH issue exists)
* Revert polymer submodule commit
* Use a RachioPy version with SSL cert validation
* Update requirements
* first commit
* first commit
* first commit
* first commit
* changing requirements
* updated requirements_all.txt
* various changes as suggested in the comments.
* using global values for dict keys.
* Remove setting up an hbmqtt broker
* Don't pass loop to web.Application in tests
* Use .query instead of deprecated .GET for aiohttp requests
* Fix closing file resource
* Do not use asyncio mark
* Notify.html5 - PyJWT: Use options to disable verify
* Yamaha: Test was still using deprecated ip
* Remove pytest-asyncio
* fix double template rendering when messages come from notify.telegram
* fix 'chat' information not present in callback queries
* better inline keyboards with yaml
To make a row of InlineKeyboardButtons you pass:
- a list of tuples like: `[(text_b1, data_callback_b1), (text_b2, data_callback_b2), ...]
- a string like: `/cmd1, /cmd2, /cmd3`
- or a string like: `text_b1:/cmd1, text_b2:/cmd2`
Example:
```yaml
data:
message: 'TV is off'
disable_notification: true
inline_keyboard:
- TV ON:/service_call switch.turn_on switch.tv, Other:/othercmd
- /help, /init
```
* fix send file to multiple targets
* fix message templating, multiple file targets, HA cameras
- Allow templating for caption, url, file, longitude and latitude fields
- Fix send a file to multiple targets
- Load data with some retrying for HA cameras, which return 500 one or two times sometimes (generic cams, always!).
- Doc in services for new inline keyboards yaml syntax: `Text button:/command`
* HttpDigest authentication as proposed in #7396
* review changes
- Don't use `file` as variable name.
- For loop
- Simplify filter allowed `chat_id`s.
* Don't use `file` as variable name!
* make params outside the while loop
* fix chat_id validation when editing sent messages
Using `python setup.py develop` did not manage to install the required dependencies.
This updates `script/setup` to use `pip install -e .` instead in order to resolve the required dependencies.
* starting light template component
* linting/flaking
* starting unit tests from copypasta
* working on unit testing
* forgot to commit the test
* wrapped up unit testing
* adding remote back
* updates post running tox
* Revert "adding remote back"
This reverts commit 852c87ff9694dfc48e92b74fd9dbafbc164a2393.
* adding submodule back from origin
* updating submodule
* removing a line to commit
* re-adding line
* trying to update line endings
* trying to fix line endings
* trying a different approach
* making requested changes, need to fix tests
* flaking
* union rather than intersect; makes a big difference
* more tests passing, not sure why this one's failing
* got it working
* most of the requested changes
* hopefully done now
* sets; the more you know
* Added new commands and functionality to the harmony remote component.
-This includes the ability to optionally specify a number of times to repeat a specific command, such as pressing the volume button multiple times.
-Also added a new command that allows you to send multiple commands to the harmony at once, such as sending a set of channel numbers.
-Updated the unit tests for these changes.
* Fix flake8 coding violations
* Remove send_commands command and make send_command handle a single or list of commands
* Remove send_commands tests
* Update itach and kira remotes for new send_command structure. Fix pyharmony version in requirements_all.txt
* Fix incorrect variable name
* Fix a couple minor issues with remote tests
* Redesign monitored variables
Allow generating specific sensors without the need for template sensors
* Import 3rd party library inside update method
* Remove jsonpath_rw dependency
* Do not interfere with value_template or ilo_data output
Do not interfere with value_template or ilo_data output, this is now the responsibility of the user and should be handled in `configuration.yaml`
Fix UnusedImportStatement
Fix newline after function docstring
* Always output results to state
The product type is already established in order to decide the Kelvin range
so just reuse that information to disable color features for white-only lights.
Also change the breathe/pulse effects to be more useful for white-only
bulbs. For consistency, color bulbs set to a desaturated (i.e. white-ish)
color get the same default treatment as white-only bulbs.
* Make ssh and telnet connections continuous in asuswrt
* Refactored SSH and Telnet connections into respective classes.
* Fixed several copy-paste typos and errors.
* More typos fixed.
* Small changes to arguments, to pass automated tests.
* Removed unsupported named arguments.
* Fixed a couple of mistakes in Telnet, and other lint errors.
* Added Telnet tests, and added lint exceptions.
* Removed comments from tests, as they irritated the hound.
If OpenWRT isn't running the DHCP server then some OpenWRT hardware,
such as TP-Link TL-WDR3600 v1, can't determine the host
corresponding to an associated wifi client. This change handles that
by returning None when the request has no data in the result.
* bugfix for Telegram chat_ids
- Negative `chat_id`s for groups.
- Include `chat_id` in event data.
- Handle KeyError when receiving other types of messages, as `new_chat_member` ones, and send them as text.
* unused import
* fix double quote style, fix boolean expr, change warning msg
* mistake
* some more fixes
- fix if condition for msg bad fields.
- return True for a correct but not allowed or not recognized message: if not, the message arrives continuously.
- Allow to receive messages from unauthorized users if they come from authorized groups.
* support for `edited_message`s
- They come as normal messages, except for the 'edited_message' field instead of 'message'.
If OpenWRT isn't running the DHCP server then some OpenWRT hardware,
such as TP-Link TL-WDR3600 v1, can't determine the host
corresponding to an associated wifi client. This change handles that
by returning None when the request has no data in the result.
* bugfix for Telegram chat_ids
- Negative `chat_id`s for groups.
- Include `chat_id` in event data.
- Handle KeyError when receiving other types of messages, as `new_chat_member` ones, and send them as text.
* unused import
* fix double quote style, fix boolean expr, change warning msg
* mistake
* some more fixes
- fix if condition for msg bad fields.
- return True for a correct but not allowed or not recognized message: if not, the message arrives continuously.
- Allow to receive messages from unauthorized users if they come from authorized groups.
* support for `edited_message`s
- They come as normal messages, except for the 'edited_message' field instead of 'message'.
Prior to this change the zoneminder component was attempting to
use logging.exception outside of exception handling code. This
would lead to the traceback module throwing an exception when
trying to work out the traceback for the exception.
This fixes the issue by changing the exception call into a
plain error logging call.
* Implemented ffmpeg option on Amcrest camera and upgraded to version 1.2.0
* Added ffmpeg arguments and binary options to Amcrest camera
* Added ffmpeg as dependencies
* Makes lint happy and fixed requirements_all.txt
* Inherent the ffmpeg.binary configuration from ffmpeg component
* Update amcrest.py
* Ignore attribute changes in automation trigger from/to
* Quote names in deprecation warnings
This makes it somewhat easier to read if the suggestion happens to be
named "to".
* Add test with same state, new attribute value
* Remove global hass
* Http.auth test no longer spin up server
* Remove server usage from http.ban test
* Remove setupModule from test device_sun_light_trigger
* Update common.py
* # This is a combination of 3 commits.
# The first commit's message is:
Add seperate zwave panel
# The 2nd commit message will be skipped:
# unused import
# The 3rd commit message will be skipped:
# Use get for config
* Add seperate zwave panel
* Modify set_config_parameter to accept setting string values
* descriptions
* Tweaks
* Tweaks
* Tweaks
* Tweaks
* lint
* Fallback if no config parameteres are available
* Update services.yaml
* review changes
* # This is a combination of 3 commits.
# The first commit's message is:
Add seperate zwave panel
# The 2nd commit message will be skipped:
# unused import
# The 3rd commit message will be skipped:
# Use get for config
* Add seperate zwave panel
* Modify set_config_parameter to accept setting string values
* descriptions
* Tweaks
* Tweaks
* Tweaks
* Tweaks
* lint
* Fallback if no config parameteres are available
* Update services.yaml
* review changes
* Implemented ffmpeg option on Amcrest camera and upgraded to version 1.2.0
* Added ffmpeg arguments and binary options to Amcrest camera
* Added ffmpeg as dependencies
* Makes lint happy and fixed requirements_all.txt
* Inherent the ffmpeg.binary configuration from ffmpeg component
* Update amcrest.py
* Kodi specific services to call Kodi API methods
- new service: `kodi_execute_addon` to run a Kodi Addon with optional parameters. Results of the Kodi API call, if any, are redirected in a Home Assistant event: `kodi_execute_addon_result`.
- new service: `kodi_run_method` to run a Kodi JSONRPC API method with optional parameters. Results of the Kodi API call are redirected in a Home Assistant event: `kodi_run_method_result`.
- Add descriptions in services.yaml.
- Add `timeout` parameter to yaml config (needed to make slow queries to the JSONRPC API, default timeout is set to 5s).
- Trigger events with the results of the Kodi API calls, with:
```
event_data = {
'result': api_call_results,
'result_ok': boolean,
'input': api_call_parameters,
'entity_id': 'media_player.kodi'}
```
* no need to clean OrderedDicts; no need for the `kodi_execute_addon` service
* no need for the `kodi_execute_addon` service
* unused import
* naming changes
* Refactor color profiles to a class
* Refactor into preprocess_turn_on_alternatives
* LIFX: use light.preprocess_turn_on_alternatives
This avoids the color_name duplication and gains support for profile.
* Add kelvin parameter to light.turn_on
* Add brightness_pct parameter to light.turn_on
* LIFX: accept brightness_pct in effects
* Add test of kelvin/brightness_pct conversions
* Add sonos alarm clock update service
* Add tests and break lines
* Fix style errors
* Make test work with python<3.6
* Fix last two pylint errors
* fix new line to long errors
* SMTP notify enhancements: HTML emails and customization options
- Send full HTML emails, with or without inline attached images.
- Custom `timeout`.
- Custom `product_name` identifier for the `FROM` and `X-MAILER` email headers.
- New HTML email test
* `sender_name` instead of product_name
- Change `sender_name` instead of `product_name`.
- No changes in `X-Mailer` header.
- `From` header as always unless you define the new `sender_name` parameter.
* No longer require pyunify during tests
* No longer require cast during tests
* No longer required dependency for tests
* No longer require pymochad for tests
* Astral is a core dependency
* Avoid having to install datadog dependency during tests
* CMUS test doesn't test anything
* Frontier Silicon doesn't test anything
* No longer require mutagen
* Update requirements_test_all.txt
* Remove stale comment
* Fix Kodi specific services, add descriptions, add more handled exceptions
- Fixes issue #7528
- Add descriptions for Kodi specific services in services.yaml.
- Error handling in Kodi API errors.
- Make compatible the existent specific service `media_player.kodi_set_shuffle` with the general `media_player.shuffle_set` service (both use the same method but with different named parameter, I think the Kodi specific service should be eliminated, since it is not)
* fix line too long
* removed new services (for another PR); removed `kodi_set_shuffle` service
* requested changes
- Removed `kodi_set_shuffle` service.
- Optional `media_name` and `artist_name` parameters. `media_name` defaults to 'ALL'.
- Guard clause to check if the services are already registered.
Bumped blink version to support automatic reauthorization when tokens expire. Changed the battery sensor call to a string version so that the battery reports back "Low" or "OK" rather than a cryptic integer
* Initialize sun with unknown values.
Initial values should be `unknown` instead of `0`. Otherwise on HA restart the value of `0` is pushed to metrics databases (graphite/influx/recorder).
* Update sun position before emitting initial update
* Simplify based on armills comment.
* Use provided time for calculation.
* Added raspihats binary_sensor platform
* Updated .coveragerc to ommit raspihats platforms.
* Using vol.Coerce(int) for validation and casting of I2CHat config address
* Move service helpers to LifxManager
* Add lifx_set_color
This is a synonym for light.turn_on except it does not actually turn on the
light unless asked to.
Thus, turn_on can be implemented just by asking.
* Rename set_color to set_state
* Support power=False with lifx_set_state
* Added Axis hub, binary sensors and camera
* Added Axis logo to static images
* Added Axis logo to configurator
Added Axis mdns discovery
* Fixed flake8 and pylint comments
* Missed a change from list to function call
V5 of axis py
* Added dependencies to requirements_all.txt
* Clean up
* Added files to coveragerc
* Guide lines says to import function when needed, this makes Tox pass
* Removed storing hass in config until at the end where I send it to axisdevice
* Don't call update in the constructor
* Don't keep hass private
* Unnecessary lint ignore, following Baloobs suggestion of using NotImplementedError
* Axis package not in pypi yet
* Do not catch bare excepts. Device schema validations raise vol.Invalid.
* setup_device still adds hass object to the config, so the need to remove it prior to writing config file still remains
* Don't expect axis.conf contains correct values
* Improved configuration validation
* Trigger time better explains functionality than scan interval
* Forgot to remove this earlier
* Guideline says double qoutes for sentences
* Return false from discovery if config file contains bad data
* Keys in AXIS_DEVICES are serialnumber
* Ordered imports in alphabetical order
* Moved requirement to pypi
* Moved update callback that handles trigger time to axis binary sensor
* Renamed configurator instance to request_id since that is what it really is
* Removed unnecessary configurator steps
* Changed link in configurator to platform documentation
* Add not-context-manager (#7523)
* Add not-context-manager
* Add missing comma
* Threadsafe configurator (#7536)
* Make Configurator thread safe, get_instance timing issues breaking configurator working on multiple devices
* No blank lines allowed after function docstring
* Fix comment Tox
* Added Axis hub, binary sensors and camera
* Added Axis logo to static images
* Added Axis logo to configurator
Added Axis mdns discovery
* Fixed flake8 and pylint comments
* Missed a change from list to function call
V5 of axis py
* Added dependencies to requirements_all.txt
* Clean up
* Added files to coveragerc
* Guide lines says to import function when needed, this makes Tox pass
* Removed storing hass in config until at the end where I send it to axisdevice
* Don't call update in the constructor
* Don't keep hass private
* Unnecessary lint ignore, following Baloobs suggestion of using NotImplementedError
* Axis package not in pypi yet
* Do not catch bare excepts. Device schema validations raise vol.Invalid.
* setup_device still adds hass object to the config, so the need to remove it prior to writing config file still remains
* Don't expect axis.conf contains correct values
* Improved configuration validation
* Trigger time better explains functionality than scan interval
* Forgot to remove this earlier
* Guideline says double qoutes for sentences
* Return false from discovery if config file contains bad data
* Keys in AXIS_DEVICES are serialnumber
* Ordered imports in alphabetical order
* Moved requirement to pypi
* Moved update callback that handles trigger time to axis binary sensor
* Renamed configurator instance to request_id since that is what it really is
* Removed unnecessary configurator steps
* Changed link in configurator to platform documentation
* No blank lines allowed after function docstring
* No blank lines allowed after function docstring
* Changed discovery to use axis instead of axis_mdns
* Travis CI requested rerun of script/gen_requirements_all.py
* Support adding different server locations
* Rename variables and move CONF_ const into component as requested in review
* Fix unittests
* Forgot to add tests for microsoft_face_identify
* ps - do not install all dependencies
* Comment out blinkt because it depends on GPIO
* Add pip upgrade check back
* Disable import error blinkt
* Update comment
* Fix comment
* Generate a new updateDate with every call
This should fix#7459
Tests need to be updated in another commit.
* Replace STATIC_TIME with datetime object check
Removing the "DATE" argument from the Alexa component's configuration (because it is now dynamically generated) requires this commit's changes to the test cases to check that the updateDate data is a datetime type rather than a specific hardcoded value ('2016-10-10T19:51:42.0Z').
* Fix brackets
* Make Configurator thread safe, get_instance timing issues breaking configurator working on multiple devices
* No blank lines allowed after function docstring
* Fix comment Tox
* telegram_bot and notify.telegram enhancements:
- Receive callback queries and produce `telegram_callback` events.
- Custom reply_markup (keyboard or inline_keyboard) for every type of message (message, photo, location & document).
- `disable_notification`, `disable_web_page_preview`, `reply_to_message_id` and `parse_mode` optional keyword args.
- Line break between title and message fields: `'{}\n{}'.format(title, message)`
- Move Telegram notification services to `telegram_bot` component and forward service calls from the telegram notify service to the telegram component, so now the `notify.telegram` platform depends of `telegram_bot`, and there is no need for `api_key` in the notifier configuration. The notifier calls the new notification services of the bot component:
- telegram_bot/send_message
- telegram_bot/send_photo
- telegram_bot/send_document
- telegram_bot/send_location
- telegram_bot/edit_message
- telegram_bot/edit_caption
- telegram_bot/edit_replymarkup
- telegram_bot/answer_callback_query
- Added descriptions of the new notification services with a services.yaml file.
- CONFIG_SCHEMA instead of PLATFORM_SCHEMA for the `telegram_bot` component, so only one platform is allowed.
- Async component setup.
* telegram_bot and notify.telegram enhancements: change in requirements_all.txt.
* # This is a combination of 3 commits.
# The first commit's message is:
Add seperate zwave panel
# The 2nd commit message will be skipped:
# unused import
# The 3rd commit message will be skipped:
# Use get for config
* Add seperate zwave panel
* more info
* Add usercodeview
* Improve api
* Improve api
* Separate api into own file.
* disable missing import
* review changes
* Tests 1
* Verify that we fetch data from groups
* Tests groups
* config 1
* usercode 1
* Api mods
* Tweak API
* docstrings
* 100% api testing
* Refactor sun component for correctness
* Convert datetimes to dates for astral
* Fix tests for updated code
* Fix times now that calcs are fixed
* Move sun functions to helpers
* Fix flake on new file
* Additional tweaks from review
* Update requirements
The hue is now a float but the hsbk conversion still believed it to be
an integer that could not be larger than 359. The float can in fact be,
for example, 359.9 and this would cause an out-of-bounds error in the
set_color call.
For completeness, the initial hue is also changed to a float.
* Fix plant MIN_TEMPERATURE, MAX_TEMPERATURE validation
small_float only allows values from 0 to 1 so we should use float instead
* Do not use vol.All for a single validation
* Fix plant MIN_TEMPERATURE, MAX_TEMPERATURE validation
small_float only allows values from 0 to 1 so we should use float instead
* Do not use vol.All for a single validation
#7429 describes a TypeError that is raised if the port is omitted in the config for the KNX component (integer is required (got type str)). This commit changes the default port from a string to an integer. I expect this will resolve that issue...
#7429 describes a TypeError that is raised if the port is omitted in the config for the KNX component (integer is required (got type str)). This commit changes the default port from a string to an integer. I expect this will resolve that issue...
* Remove default zwave config path
PYOZW now has much more comprehensive default handling for the config
path (in src-lib/libopenzwave/libopenzwave.pyx:getConfig()). It looks in
the same place we were looking, plus _many_ more. It will certainly do a
much better job of finding the config files than we will (and will be
updated as the library is changed, so we don't end up chasing it). The
getConfig() method has been there for a while, but was subsntially
improved recently.
This change simply leaves the config_path as None if it is not
specified, which will trigger the default handling in PYOZW.
* Install python-openzwave from PyPI
As of version 0.4, python-openzwave supports installation from PyPI,
which means we can use our 'normal' dependency management tooling to
install it. Yay.
This uses the default 'embed' build (which goes and downloads
statically sources to avoid having to compile anything locally). Check
out the python-openzwave readme for more details.
* Add python-openzwave deps to .travis.yml
Python OpenZwave require the libudev headers to build. This adds the
libudev-dev package to Travis runs via the 'apt' addon for Travis.
Thanks to @MartinHjelmare for this fix.
* Update docker build for PyPI openzwave
Now that PYOZW can be install from PyPI, the docker image build process
can be simplified to remove the explicit compilation of PYOZW.
* Add new raspihats component
* added raspihats to COMMENT_REQUIREMENTS in gen_requirements_all.py
* disabled pylint import errors
* using hass.data for storing i2c-hats manager
Recent aiolifx allow sending messages to unregistered devices (as a
no-op). This is handy because bulbs can disappear anytime we yield and
constantly testing for availability is both error-prone and annoying.
So keep the aiolifx device around until a new one registers on the same
mac_addr.
State restoration takes up to a second because bulbs can be slow to react.
During this time an effect could keep running, overwriting the state that we
were trying to restore.
Now the effect forgets the light immediately and it thus avoids further
changes while the restored state settles.
Forcing a refresh will log a warning if the periodic async_update happens
to be running already.
So let's do the refresh locally and remove the force_refresh.
This clears the internal cache in case polling picked up the state as set by
an effect.
For example, aborting an effect by selecting a new brightness could keep a
color set by the effect.
Recent aiolifx allow sending messages to unregistered devices (as a
no-op). This is handy because bulbs can disappear anytime we yield and
constantly testing for availability is both error-prone and annoying.
So keep the aiolifx device around until a new one registers on the same
mac_addr.
* Added osramlighrify groups.
Allows you to make use of the build in osram lightify groups. Group states get
handeled similar as in the case of phillips hue. A lightify group shows up as
light in the homeassistant webinterface. If one light of the
group is on, the complete group is considered to be on.
To use this feature, first define some groups within your lighrify bridge, then
set add `allow_lightify_groups=true` to you osramlightify config.
It might look like:
````yaml
- platform: osramlightify
host: IP-ADDRES
allow_lightify_groups: true
```
* Fixed Pylint errors.
* Included requests.
* Included more requests.
* Fixed setup bridge and removed _light attribute.
* Update osramlightify.py
Forcing a refresh will log a warning if the periodic async_update happens
to be running already.
So let's do the refresh locally and remove the force_refresh.
State restoration takes up to a second because bulbs can be slow to react.
During this time an effect could keep running, overwriting the state that we
were trying to restore.
Now the effect forgets the light immediately and it thus avoids further
changes while the restored state settles.
This clears the internal cache in case polling picked up the state as set by
an effect.
For example, aborting an effect by selecting a new brightness could keep a
color set by the effect.
* Convert automatic device tracker to push updates
* Update test
* Add to coveragerc
* Fire hass events when automatic update received
* Change brace indentation
* Add Sensibo climate platform
* Force update after running a service
* Add sensibo to .coveragerc
* Use 10s timeout
* Fix schema. Remove print.
* Better handle unit conversions.
This allows for more of a disco mode where lights change so fast that you
actually notice it.
Also change the valid period to the maximum 20 msgs/sec that LIFX bulbs
can handle.
First, move the default away from turn_on so we do not have to test for
the current service.
Next, change the default color away from random. The new default is that
saturated colors will flash white and desatured colors will flash to their
fully satured color. Always with full brightness.
After many experiments, this was the method that best produced results that
are both visually pleasing and always noticeable as a flash.
* correct MQTT subscription filter
* wildcard handling (#) fixed
* wildcard handling (#) fixed
* added tests for topic subscription like +/something/#
* function names changed (line too long)
* using raw strings for regular expression
import order changed
* OpenGarage.io support
Cleaned up component and ran lint checking
* Fixing lint errors
* Added supported_features and device_class
* Added timeout to HTTP Requests and other changes based on feedback.
* Removed watcher. It provided little value and could cause issues if status was stuck in a state.
* Changes based on feedback. Added error checking for invalid device_key.
* Lint
* add support for shuffle toggling on Spotify component.
this also required adding support for shuffle on the
media_player component.
* lint
* Use ATTR_MEDIA_SHUFFLING for service handler param
* Line too long fix
* fix tests
* add shuffle set to demo mediaplayer
* rename shuffle attribute
* new implementation without mqtt
* fixed lint findings
* fixed more lint findings
* fixed final flak8 error
* added unit tests for platform "plant"
* - changed status to "OK" / "problem"
- added attribute "problem" with details on the problems
- removed unused constant
- setting icon to "?" until we have meaningful data
* reformatted code to meet line length requirements
* binary_sensor.workday: fix handling of states vs provinces
* Add test cases for workday sensor with states
* remove redundant assignment
* Repair unit test to improve coverage
Patch from Wolf-Bastian Pöttner
* Fix handling of invalid states/provinces
* fix indentation to satisfy pylint
* - changed updater to only do updated if they succed and handle calls when tv is off better by only doing 1 remote call
- show all sources instead of only connected, to fix source selection when unit is powered off
- fixed sources so they can launch apps and select sources
* fixed lint errors
* show all sources and apps if no custom options are defined in the conf
* fixed indentation for lint
* set _current_source when state is off and fixed timeout exception
* Flux switch: avoid updates when off
Calling turn_on when the switch is already on would orphan the existing
time tracker, losing our ability to cancel it when turn_off is called.
* Cleanups
The self.is_on property can now be found from self.unsub_tracker, so
get rid of the self._state attribute.
Add an entry guard to turn_on, making further conditionals unnecessary.
* light.sensehat: adding plugin to control the 8x8 LED matrix on a Sense Hat
* add new .coveragerc entry
* light.sensehat: formatting and removing unused import
* light.sensehat: add to requirements list
* light.sensehat: update docstrings to the linter's specs
* light.sensehat: add a bit more docstring
* Remove global limit on white light temperature
Here are the supported temperatures of some popular bulbs:
Philips Hue: 2000K-6500K (the current 500-154 mired range)
LIFX Color 1000: 2500K-9000K
IKEA TRÅDFRI: 2200K, 2700K, 4000K
Obviously, Home Assistant cannot enforce a global limit and work properly
with all of these bulbs. So just remove the limit and leave it up to each
platform to work it out.
This commit updates the existing users and adds a clamp to Hue (where the
limit appears to have originated). It does not attempt to update other
platforms that might need extra handling of the larger range that is now
possible.
* Add min_mireds/max_mireds state attributes to lights
* Support min_mireds/max_mireds with LIFX lights
This makes more sense because the input and output brightness is the same.
We currently convert through RGB which does contain a brightness so we supply
an arbitrary value as input and discard the output.
* Allow InfluxDB to blacklist domains
This adds an option to InfluxDB to blacklist whole domains. This is
useful for domains like automation or script, where no statistic data
is needed.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add unittest for InfluxDB domain blacklist
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Use common include/exclude config for InfluxDB.
Its now the same syntax as it is for recorder.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add unittests for InfluxDB include whitelist.
There where no tests for that feature before.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Default to white when setting LIFX temperature
Changing the temperature of a saturated color is possible but not very
interesting. So assume that a change of the temperature implies setting
the color to white, unless a different color is actually specified.
This makes the frontend temperature picker much more useful because it can
now be used to get away from a colored light.
* Default to a neutral white temperature when setting LIFX colors
This means that setting a particular color will always give the same output,
no matter what the temperature was previously at.
* Find brightness after colors
Now the color_temp logic will not see a changed color when setting
temperature+brightness and thus we will actually get a white light in
this situation.
The XY conversion can then not use brightness as input. This is not
an issue because XY only affects hue and saturation, not brightness. So
we can just use an arbitrary value as brightness input.
* Add a simple comment to a complex conditional
* Add support for Zigbee Home Automation
* Fewer magic numbers
* Make optional device config work
* Remove non-zha device_tracker stuff
* Always return boolean from is_on
* Only pass through JSON serializable discovery_info
* Update to bellows 0.2.4
* Fewer magic numbers in binary sensor
* Populate const structures from a function
* Update bellows to 0.2.6
* Fewer magic numbers in light
* Take all possible clusters when overriding
* Update bellows to 0.2.7
* rss_feed_template initial checking
* lint
* Remove use of deprecated cgi-escape()
* Switching back to chardet==2.3 (resolve failing tests with 3.0)
* Code and test improvments
* Option 'requires_api_password', default is True
* Added initial support for tradfri group control
* Tried to keep original variable structure
* pylint and pep8 fixes
* Fixed lint error about docstring
* Removed unneeded stuff, renamed _light. Needs to be released pytradfri version.
* Better naming of variables inside add_devices call.
* Always register the view if a webhook exists.
* Return True if platform is set up succesfully, False otherwise.
* Remove the webhook when home assistant stops. Webhooks and long
polling are mutually excklusive. If a webhook is left after home
assistant is stopped, a polling telegram bot is unable to be set up,
on next start of home assistant.
* wierd pylint complaint
* Workaround for Graber csz1 shades
* logging
* Try direct
* Try direct
* Use workaround
* Review changes and tests
* test
* reset test
* Use Bright and Dim also as open and close is
* Fixes utf-8 encoding no longer required by libopenzwave0.3.3
Removes byte encoding for values operation mode, fan mode and swing
mode.
* Fix zwave climate tests for utf-8 change
* Add script to import state events to InfluxDB
This adds a script to import recorded events from a recorder database
to a InfluxDB instance. This can be useful for initial importing after
setup of a InfluxDB.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Fix step argument handling in Influx import
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Correct typo in InfluxDB Importer
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Update influxdb_import.py
* Refactor matrix notify service.
This refactor aims to close#6118 by making the save / restore of the
authentication tokens much more resilient to failure.
It also refactors the module so that all the functionality is part of the class
and that a login failure causes the service to fail on setup rather than at
message send time.
* Make the linter overlords happy
* Improve logger levels and messages
* small style change
* Fix indentation issue
* Always register the view if a webhook exists.
* Return True if platform is set up succesfully, False otherwise.
* Remove the webhook when home assistant stops. Webhooks and long
polling are mutually excklusive. If a webhook is left after home
assistant is stopped, a polling telegram bot is unable to be set up,
on next start of home assistant.
* avion light: Bump python-avion dependency version
The dependencies in python-avion weren't sufficiently strict. This is now
fixed, but means we need to depend on a new version.
* decora light: Bump python-decora dependency
There's a new version of python-decora with a reliability fix, so depend on
that.
* wierd pylint complaint
* Workaround for Graber csz1 shades
* logging
* Try direct
* Try direct
* Use workaround
* Review changes and tests
* test
* reset test
* Use Bright and Dim also as open and close is
* Added the pushbullet sensor component
* Updated requirements_all.txt and .coveragerc with the new sensor
* Updated acording to houndci-bots comments
* Some more changes
* Final change by the hound (?)
* Fixes from balloobs review and from houndci-bot
This changes the sensors information to only contain one attribute
as information, and the rest as device_state_attributes.
* Added leading space to comments
* Added docstrings, removed API_KEY from log, changed imports
* The hound is at it again
* Fix remaining issues
* Fix pylint issue
* updated pylgtv module to fix problems with timeouts
* - update pylgtv to 0.1.6
- handle new TimeoutError exception from pylgtv
* used full name for exception handling of concurrent.futures._base.TimeoutError
* the exception handling should now follow the rules
* float typecasting should not be necessary
* use asyncio for TimeoutError it’s an alias for concurrent.futures.TimeoutError
* updated pylgtv module to fix problems with timeouts
* - update pylgtv to 0.1.6
- handle new TimeoutError exception from pylgtv
* used full name for exception handling of concurrent.futures._base.TimeoutError
* the exception handling should now follow the rules
* float typecasting should not be necessary
* use asyncio for TimeoutError it’s an alias for concurrent.futures.TimeoutError
The arwn platform was refactored to be asyncio friendly, however in
doing so one thing was missed which was explicitly telling hass when
something interesting has happened. This led to the very interesting
to debug issue that the state cards were all out of date, even though
the graphs were not.
The arwn platform was refactored to be asyncio friendly, however in
doing so one thing was missed which was explicitly telling hass when
something interesting has happened. This led to the very interesting
to debug issue that the state cards were all out of date, even though
the graphs were not.
* Update ios.py
as discussed. the part:
if battery_state == ios.ATTR_BATTERY_STATE_FULL:
returning_icon_level = DEFAULT_ICON_LEVEL
kinda screws up the charging icon.
i might just miss a logical solution for that though.
let me know what you think. it might not be beautiful but i think its an overall improve over the current "double battery" solution
* Update ios.py
chound fix and full_battery_charge fix
* Update ios.py
removed new line
* Update ios.py
* Update ios.py
* Update ios.py
* Update ios.py
* Update ios.py
* Update ios.py
* merged request from robbie
* Update ios.py
* Update ios.py
* Update ios.py
* Update ios.py
as discussed. the part:
if battery_state == ios.ATTR_BATTERY_STATE_FULL:
returning_icon_level = DEFAULT_ICON_LEVEL
kinda screws up the charging icon.
i might just miss a logical solution for that though.
let me know what you think. it might not be beautiful but i think its an overall improve over the current "double battery" solution
* Update ios.py
chound fix and full_battery_charge fix
* Update ios.py
removed new line
* Update ios.py
* Update ios.py
* Update ios.py
* Update ios.py
* Update ios.py
* Update ios.py
* merged request from robbie
* Update ios.py
* Update ios.py
* Update ios.py
* Refactor into find_hsbk
This will be useful for new methods that also have to find passed in colors.
* Add AwaitAioLIFX
This encapsulates the callback and Event that aiolifx needs and thus avoids an
explosion of those when new calls are added.
The refresh_state is now generally useful, so move it into its own method.
* Initial effects support for LIFX
These effects are useful as notifications. They mimic the breathe and pulse
effects from the LIFX HTTP API:
https://api.developer.lifx.com/docs/breathe-effecthttps://api.developer.lifx.com/docs/pulse-effect
However, this implementation runs locally with the LIFX LAN protocol.
* Saturate LIFX no color value
Now the color is "full saturation, no brightness". This avoids a lot of
temporary white when fading from the "no color" value and into a real color.
* Organize LIFX effects in classes
This is to move the setup/restore away from the actual effect, making it quite
simple to add additional effects.
* Stop running LIFX effects on conflicting service calls
Turning the light on/off or starting a new effect will now stop the running
effect.
* Present default LIFX effects as light.turn_on effects
This makes the effects (with default parameters) easily accessible from
the UI.
* Add LIFX colorloop effect
This cycles the HSV colors, so that is added as an internal way to set a
color.
* Move lifx to its own package and split effects into a separate file
* Always show LIFX light name in logs
The name is actually the easiest way to identify a bulb so just using it
as a fallback was a bit odd.
* Compact effect getter
* Always use full brightness for random flash color
This is a stopgap. When a bit more infrastructure is in place, the intention
is to turn the current hue some degrees. This will guarantee a flash color
that is both unlike the current color and unlike white.
* Clear effects concurrently
We have to wait for the bulbs, so let us wait for all of them at once.
* Add lifx_effect_stop
The colorloop effect is most impressive if run on many lights. Testing
this has revealed the need for an easy way to stop effects on all lights
and return to the initial state of each bulb. This new call does just that.
Calling turn_on/turn_off could also stop the effect but that would not
restore the initial state.
* Always calculate the initial effect color
To fade nicely from power off, the breathe effect needs to keep an
unchanging hue. So give up on using a static start color and just find the
correct hue from the target color.
The colorloop effect can start from anything but we use a random color
just to keep things a little interesting during power on.
* Fix lint
* Update .coveragerc
* Refactor into find_hsbk
This will be useful for new methods that also have to find passed in colors.
* Add AwaitAioLIFX
This encapsulates the callback and Event that aiolifx needs and thus avoids an
explosion of those when new calls are added.
The refresh_state is now generally useful, so move it into its own method.
* Initial effects support for LIFX
These effects are useful as notifications. They mimic the breathe and pulse
effects from the LIFX HTTP API:
https://api.developer.lifx.com/docs/breathe-effecthttps://api.developer.lifx.com/docs/pulse-effect
However, this implementation runs locally with the LIFX LAN protocol.
* Saturate LIFX no color value
Now the color is "full saturation, no brightness". This avoids a lot of
temporary white when fading from the "no color" value and into a real color.
* Organize LIFX effects in classes
This is to move the setup/restore away from the actual effect, making it quite
simple to add additional effects.
* Stop running LIFX effects on conflicting service calls
Turning the light on/off or starting a new effect will now stop the running
effect.
* Present default LIFX effects as light.turn_on effects
This makes the effects (with default parameters) easily accessible from
the UI.
* Add LIFX colorloop effect
This cycles the HSV colors, so that is added as an internal way to set a
color.
* Move lifx to its own package and split effects into a separate file
* Always show LIFX light name in logs
The name is actually the easiest way to identify a bulb so just using it
as a fallback was a bit odd.
* Compact effect getter
* Always use full brightness for random flash color
This is a stopgap. When a bit more infrastructure is in place, the intention
is to turn the current hue some degrees. This will guarantee a flash color
that is both unlike the current color and unlike white.
* Clear effects concurrently
We have to wait for the bulbs, so let us wait for all of them at once.
* Add lifx_effect_stop
The colorloop effect is most impressive if run on many lights. Testing
this has revealed the need for an easy way to stop effects on all lights
and return to the initial state of each bulb. This new call does just that.
Calling turn_on/turn_off could also stop the effect but that would not
restore the initial state.
* Always calculate the initial effect color
To fade nicely from power off, the breathe effect needs to keep an
unchanging hue. So give up on using a static start color and just find the
correct hue from the target color.
The colorloop effect can start from anything but we use a random color
just to keep things a little interesting during power on.
* Fix lint
* Update .coveragerc
* Refactored mvglive.py
This pull requests builds on the first work with the mvglive sensor:
- Refactoring the code so that multiple sensors for departures can be added
- Rewrites the transport mode restrictions ("products") to be more modular
- Fixes bugs, such as missing implementation of line restriction
- Other improvements, such as including data attribution
* Further improvements to mvglive sensor
- The API returns the property 'direction', which can be used to filter U-Bahn trains by direction without having to enter all final destinations
- The sensor icon now corresponds to the mode of transport of the next departure
* UBahnDirection refactored
U-Bahn SEV (bus replacement services) have unexpected direction values, fixed resulting bug and hound issues
* ready for PR
* minor fix
* another minor fix
* new platform mqtt_json
* using ATTR constants
* voluptuous check on JSON payload
* voluptuous check on JSON payload
* Add condition for API failure
If you are not running the latest ve3rsion of ZM this will cause exceptions to fire. This fix handles a response from ZM but a non successful attempt.
This resolves the issue https://github.com/home-assistant/home-assistant/issues/7178
* Fixed houndci-bot issues
* added new service
* fixed basic test in kodi platform
* Added new method async_get_albums
* Added new methods in module kodi
* added method find_song in kodi module
* method add_song_to_playlist made
async
* Added media type to method async_play_media
* added methods async_clear_playlist
and play_song
* methods play_song and find_song
made async
* added new service play_song
* Improved kodi._find
now it find for whole words only
* added possibility to specify artist in
kodi.async_find_artist
* added kodi.async_find_album
* added new optional input to play_song service
* In async_play_song added handling of no song found
* default artist value changed to ''
* async_add_song_to_playlist now can also
search for musinc
* added service add_song_to_playlist
* Added new service add_album_to_playlist
* added services to switch shuffle mode
* added service add_all_albums_to_playlist
* handled error in async_unset_shuffle
and async_set_shuffle
* Added abstract methods to media_player
* _server substituted with server property
* style made consistent with requirements
* Fixed issue with pylint
* Services moved to kodi platform
* service play_song removed
* removed service unset_shuffle
* all add services merged into one
* removed service get_artists
* added kodi_ to service names
* Fixed some style issues
* Removed changes in media_player __init__
* Implemented requested changes
* Fixed pylint problem
* Value of 0 should not be considered `unknown`.
* Reflect disconnect state in entity states.
* Due to adding unknown state on disconnect, the amount of reconnects can sometimes be more. Test for at least 2 reconnect attempts.
* Fixes issue with id mismatch when multiple devices are connected to the lutron bridge
* Updates labels
* removes no longer needed config values.
* removes no longer needed imports
* Add support for tradfri color temp
* Only return rgb_color if supported features indicate support.
* Return color_temp if supported features indicate support and dict
with allowed color temperatures exist for manufacturer.
* Add manufacturer specific supported features, with default.
* Color temperature is set from a dict of allowed pairs per
manufacturer, where kelvin is mapped to hex_color. When a user sets a
color temperature, the closest matching temperature is selected and
set.
* Clean up
* exposed content_type in rest_command, which allows for manually specifying the content_type for more-strict api endpoints
* fixed up column length
Length was 86 chars, and it needed to be 79
* double import of HTTP_HEADER_CONTENT_TYPE
Removed the accidental double-import of HTTP_HEADER_CONTENT_TYPE
* moved rest_command-specific config value into component
* if no content_type, default to None
* unit test
* newline
* unused CONTENT_TYPE_TEXT_PLAIN
* removed the http-agnostic abstraction hass provided in favor of aiohttps hdrs constant
* Cache the name of LIFX lights
After #7031 the LIFX device will change during an unregister/register
transition. This has the user-visible effect of the new device missing
a friendly name until the next poll.
We now cache the name internally and it will then transfer to the new
device when it registers.
* Allow LIFX logging even without an available device
This will allow us to set the device to None when it unregisters.
* Calculate LIFX availability from the existence of a device
This has become possible because the device is no longer needed
to provide the name of the light when it is unavailable.
We just have to forget the device when it unregisters.
* Always return True/False from is_state and is_state_attr
These functions are documented to always return True/False but the
short-circuit evaluation would return None if the entity_id did not exist.
* Reword into a single statement
* Fix mysensors callback
* All messages was not triggering proper updates. Fix by checking all
child value types each update.
* Upgrade mysensors dep
* Fix pickle persistence when upgrading.
* Make Tradfri discoverable
* Fix lint errors
* Fix bugs and clean up calls to light_control
* Add more color util tests
* Add coap client to dockerfile
* After rebase and all fixes
* Added color_rgb_to_hex to util.color
* Added test_color_rgb_to_hex
* Changed reference to color_rgb_to_hex
* Bumped to pytradfri 0.5, having support for retry
* Bumped to pytradfri 0.5, having support for retry
* Bumped to pytradfri 0.5, having support for retry
* Bumped to pytradfri 0.5, having support for retry
* Rolled back to 0.4
* Rolled back to 0.4
When pinging an inaccessible device, OS errors like
ping: sendto: No route to host
can occur. For a ping tracker this is not an error but rather a normal
situation. Thus, it makes sense to hide the error.
* Added initial support for IKEA Tradfri Gateway
* Pinned requirement
* Fixed lint-errors
* Added file to .coveragerc
* Trying to fix commit
* Fixed requirements_all again
* Minor reorder of code
* Minor reorder of code
* Made the changes suggested by @balloob
* Made the changes suggested by @balloob and removed debug
* Update tradfri.py
* Responsiveness
* Delay was not needed as commands does not return until done.
* Add support for cleaning maps and cleaning data
* Hound
* Docstring
* Update requirements
* Review changes
* External lib now returns the raw data.
* debug
* Sensor did not refresh
* Error handling
* Issue warning on connection error
* Update requirements
* Review changes
* Managing binary payloads
Hello,
background: I wrote a HA camera component that gets the image from a binary payload. I'm testing it with Zanzito (https://play.google.com/store/apps/details?id=it.barbaro.zanzito) and it works apparently well: it gets the image and correctly displays it in the front-end.
But I had to make the changes I'm proposing here: the message was being blocked because the utf-8 decoding failed.
As far as I know, the utf-8 encoding is required for the topic, not for the payload. What I did here was try the utf-8 decoding, but even if unsuccessful, it dispatches the message anyway.
Is there anything else I'm missing?
thanks
Gianluca
* Update __init__.py
* Update __init__.py
* Update __init__.py
* git test - ignore
* Should work
* minor fixes
* updated mqtt/services.yaml
* added two tests, modified threaded subscribe
* removing polymer
* requested changes
* requested changes - minor fix
* security wrap around payload_file_path
* services.yaml updated
* removed file publishing
* minor fix
* Added AlarmDecoder platform
* remove try/catch for generic execption
* Changes for @pvizeli, thanks for the review!
Removed _ prefix from normal function variables
Removed _hass as it will be set via .hass for us
Broke out the three config (socket, serial, usb) and use vol.Any
Added support for USB I think, don't have device, but should work
Removed components dictionary, was form old group all code that didn't work
* Fix hass string handling
* Fix mysensors callback
* All messages was not triggering proper updates. Fix by checking all
child value types each update.
* Upgrade mysensors dep
* Fix pickle persistence when upgrading.
* Plug file leak on LIFX unregister
The aiolifx 0.4.4 release closes its socket when the unregister callback is
called. This plugs a file descriptor leak but also means that we must be
careful to not use the device after it goes unavailable.
Also, when a light reappears, it has a new device that must be used.
* Do not test self.available in service calls
The core will learn to handle that.
* Plug file leak on LIFX unregister
The aiolifx 0.4.4 release closes its socket when the unregister callback is
called. This plugs a file descriptor leak but also means that we must be
careful to not use the device after it goes unavailable.
Also, when a light reappears, it has a new device that must be used.
* Do not test self.available in service calls
The core will learn to handle that.
* Fix#6783, remove a test that makes no sense anymore
* Fix#6784
* Fix typo in docstring
* Fix handling of known->unknown state, extended test, fix lint errors
* Better handling of mismatch in unit of measurement.
Set state to "unkown" and unit of measurement to "ERR" if unit of measurement differs between aggregatet states.
Add entity_id to logged warning.
* Make icon configurable
* Fix typo
* Fix lint
* Fix lint
* Fix lint
* Add option to set entity_id on min_max sensor
* Fix lint logging-not-lazy
* Revert "Add option to set entity_id on min_max sensor"
This reverts commit 4685f266477dfaba92cf8a256ecfe62c929c877b.
* Revert "Make icon configurable"
This reverts commit fe45aec82d9a07e730bebb4d47dc9618fb695fe6.
* Fixes
* Adding exception handling when fetching the camera image to avoid python errors when host is not reachable or any url errors to camera
* Added exception as ConnectionError instead of plain except
* Added exception as ConnectionError instead of plain except. Removed the unused error handle
* Initial import for HassIO
* Cleanup api code for views
* First unittest for view
* Add test for edit view
* Finish unittest
* fix addons test
* cleanup service.yaml
* Address first round with ping command
* handle timeout dynamic
* fix lint
* Adding exception handling when fetching the camera image to avoid python errors when host is not reachable or any url errors to camera
* Added exception as ConnectionError instead of plain except
* Added exception as ConnectionError instead of plain except. Removed the unused error handle
* Initial import for HassIO
* Cleanup api code for views
* First unittest for view
* Add test for edit view
* Finish unittest
* fix addons test
* cleanup service.yaml
* Address first round with ping command
* handle timeout dynamic
* fix lint
* Added average temperature for the day before and the current period
* Fixed "line too long" warnings
* Fixed "indentation contains tabs" and "indentation contains mixed spaces and tabs" warnings
* Fixed "trailing whitespace" warnings
* upgrade pyhydroquebec requirements to version 1.1.0
* Fire EVENT_HOMEASSISTANT_START automations off right away while starting
* Actually have core state be set to 'starting' during boot
* Fix correct start implementation
* Test and deprecate event automation platform on start
* Fix doc strings
* Remove shutting down exception
* More strict when to mark an instance as finished
* Add automation platform to listen for start/shutdown
* When we stop we should wait till it's all done
* Fix testing
* Fix async bugs in tests
* Only set UVLOOP when hass starts from CLI
* This hangs normal asyncio event loop
* Clean up Z-Wave node entity test
* Added eddystone_temperature platform.
* Fixed style issues.
* Fixed style issues #2.
* Fixed style issues #3.
* Added new platform to .coveragerc
* Refactored platform to use the beacontools package.
* Fixed style issues and added beacontools to excluded requirements.
* Removed obsolete constants and added pylint exception.
* Added blank line
* Updated beacontools to version 1.0.0
* Updated beacontools to version 1.0.1
* Forgot to regenerate requirements_all
* Minor changes
* Input Boolean: initial state > restore state
* Input select: initial state overrules restored state
* Input slider: initial state overrule restore state
* Lint
* Lint
* total connect alarm support
* linting fixes
* linting fixes
* docstring
* docstring
* use sync and update coveragerc
* remove unused import
* changes as per notes
* Update HA code style
The Hook switch component currently uses username/password to get a token
from the Hook web app to use for subsequent requests. This adds an option
to specify the token directly in config.
Makes the 'password' and 'token' options mutually exclusive since
otherwise one would have to take precedence, and it seems worth
preventing people from filling their config with passwords that don't
even need to be there.
* Automation: initial state > restore state
* Clean up code
* Ensure MQTT defaults are used.
* Ensure failed platforms always return None
* Automation: write state to state machine after start
* Added Met Office weather and sensor components
* Removed unnecessary dependancy
* Generated requirements
* Fix time interval
* Updated coverage
* Some review changes
* Allow user to specify lat and lon in component
* Added missing import
* Fixed unit
* Fixed import indent
* Updated condition to use CONDITION_CLASSES
* - Introduced Ring binary_sensor.
- Added unittest for Ring binary_sensor.
- Bumped ring_doorbell 3rd party module.
* Updated requirements
* Added correct file for unittest
* - Introduced Ring binary_sensor.
- Added unittest for Ring binary_sensor.
- Bumped ring_doorbell 3rd party module.
* Updated requirements
* Added correct file for unittest
* Added extra sensors last_ding and last_motion
* Modified Ring binary_sensor and sensor to inherit DOMAIN configuration
* Moved static to top ring.py
* Fixed requirements
* Bump version ring_doorbell to 0.1.2
* testing unittests
* Use hass.data dict instead GLOBALS
* Fixed unittests
* Bump ring_doorbell to 0.1.3
* Updated unittest and coverted to use decorator @requests_mock.Mocker()
* Updated ring_session with lower case
When the user exceeds the request limit for google APIs, the response status stays at 200 but the response body is different:
```
{
"error_message" : "You have exceeded your daily request quota for this API. We recommend registering for a key at the Google Developers Console: https://console.developers.google.com/apis/credentials?project=_",
"results" : [],
"status" : "OVER_QUERY_LIMIT"
}
```
This prevents HA from creating the initial configuration
* Add legacy LIFX platform for Windows support
The async platform introduced in 9ef084d903 has
turned out to use Python functionality that is not available in Windows.
This commit restores the previous implementation, now named lifx_legacy.
* Add a comment about the platform being a legacy implementation
* Warn when using unsupported lifx platform on Windows
* Update .coveragerc
* Add support for group commands (allon/alloff).
Add 'group_aliasses' config attribute that only respond to group commands.
Add nogroup_aliases that only respond to 'on' 'off' commands.
Allow settings device id group behaviour.
* Fix linting.
* Fix lint.
* yeelight: adjust supported features on update()
Earlier we checked for the type only during the initialization,
but this won't work when the bulb is disconnected during the init,
causing failures to adjust rgb&color temperature even if those should be supported.
fixes#6692
* Use reassign instead of OR for updating the supported features
* fix WOL in docker/jail
add ip_address parameter to send_magic_packet if host specific.
in docker/jail, WOL doesn't works due to subnet broadcast issues.
* Update wake_on_lan.py
lint
* Add link to docs and remove comments which are obvious
* Update docstrings
* Repleace conf details with link to docs
* Add link to docs
* Update docstrings
* Update import
* Update ordering
* Update ordering
* Update docstring
* Update ordering
* Update ordering
Addressing #6382 . Feedback from github & forums is the bridge_led feature never worked and defining the bridge LED as another group+bulb type is the right way to do this in the limitlessled component.
* New indexes for states table
* Added recorder_runs indexes
* Created a new function for compound indexes.
A new function was created because it makes it a little cleaner when creating
a single-field index since one doesn't have to create a list. This is mostly
when creating the name of the index so with a bit more logic it's possible
to combine it into one function. Given how often migration changes are run,
I thought that code bloat was probably a worthy trade-off for now.
* Adjusted indexes, POC for ref indexes by name.
* Corrected lint errors
* Fixed pydocstyle error
* Moved create_index function outside apply_update
* Moved to single line (just barely)
* Adding expire_after to mqtt sensor to expire outdated values
* Extending test case
* mqtt: refactoring expire_after to use timed events instead of polling; lint
* refactor to reset unused trigger
* Fix: handler must be set to None after execution or removal to avoid warning
* Commenting out non-working test
* Fix lint
* Commit to trigger new build
* Commit to trigger new build
* Make testcase work
* Undo unnecessary change
* Remove default value, add extra check
* Add sensor for Lyft time and price (based on Uber sensor)
* Minor fixes to lyft sensor
- use add_devices(...,True) instead of explicitly calling update
- move sensor name check into constructor
* lyft sensor: disable sandbox mode
* Adds support for the Lutron Caseta family of devices
* Added external requirement
* Removes unuse import
* Adds requirement to requirements_all.txt
* Removes unuse import
* fixes requirement_all.txt. by regenerating
* Cleans up syantax
* Cleans up syantax
* Cleans up syantax
* Cleans up syantax
* Shortens long line
* adds lutron_caseta component to .coveragerc
* Merges into light, removes component
* Fixes long lines
* Fixes requirement.txt
* Removes 'ERROR' log statements. Adds missing dependency
* savig work to pick up on other machine
* Enables Lutron Caseta component with Light and Switch platforms
* Add missing file to .coveragerc
* Changes based on PR review
* fixes requirements file
* Fixes install of paramiko dependency.
* Moves callback registration to
* comment changes
* Platform have no return value
* Change style for guard
* fix logic
* fix lint
* Added tado climate component
named the component v1 because of the unsupported state of the api I
used (mytado.com)
* sensor component
* climate component which uses sensors
* main component initiating sensor and climate devices
* order of imports
* consts for username and password
* removed redundant code
* changed wrong calls and properties
* remove pylint overrides
* merged update() and push_update()
* changed wrong calls
* removed pylint overrides
* moved try..except
* renamed MyTado hass-data object
* added TadoDataStore
* moved update methods from sensor to TadoDataStore
* reorganised climate component
* use new TadoDataStore
* small change to overlay handling
* code refactoring
* removed unnessesary comments
* changed throttle to attribute
* changed suggestions from PR
* Added constant variable for string literal
* remove wrong fget() call
* changed dependencies
* Changed operation mode list
* added human readable list of operations
* removed unnecessary const
* activated update on add_devices
* droped unit
* removed unnused property
* changed temperature conversion
* removed defaults from config
changed naming of tado data const
* switched operation_list key/values
* changed the value returned as state
* added one extra line
* dropped state to use base impl.
* renamed component
* had to inplement temperature_unit
* because it is not implemented in base class
* create a copy of the sensors list
* because it can be changed by other components
* had to check for empty data object
* hass is too fast now
* Fix LIFX unregister races
If the initial state request never got a response, we tried to unregister
a device that was not yet registered.
Also, aiolifx 0.4.2 has an "unregister" race fix.
* Update requirements
* automatically use bundled certificate if certificate-parameter is set to 'auto' and seperate this from which port is specified
* Fix travis error and long lines
* Update __init__.py
* added support for lights with toggle type
* fixed style errors
* introduced tests for the toggle type
it's not passing yet because of an assertionerror at line 407
* updated to reflect tristate of "state"
* Format code according to pep8
Added line break for import that was too long.
* fixed lint, replaced if statement with 'var = bool(test)'
* changed implementation of state check according to bug on 6bceb04ca1 (r106758784)
* Fix hass script execution on Windows (#4977).
hass.exe returned ERRNO2 on a windows machine and must be started using
package loading. This fix adapts the command line options for
`setup_and_run_hass()` to start
either a script with `python homeassistant/__main__.py` or with
`Scripts/hass.exe`
* Fix code style
* Update fritzconnection dependency in fritz and fritzbox_netmonitor components
* Add phone book name lookup support to FritzBox call monitor
* Updated requirements_all.txt
* Requested changes to FritzBox call monitor
* Listen to HOME_ASSISTANT_STOP and close thread
* Safe CPU time
* Add new media_player platform: Volumio Media Player
Volumio media player is a rpi music player, this platfor adds http based control of the player.
* Modify mute command to accept boolean
* Adjust mute call to reset volume after unmute
Remove references to volimi"a"
* Use yield from calls in mute and volume calls
Trying to speed up the indication of mute and volume level changes in UI, but doesn't seem to do much.
* Adjust async_add_devices call
* Added support for multiple efergy sensors in the same household.
Also added inital tests for the efergy platform.
* Fixed current_values units.
Changed name to include efergy_ prefix.
* Optional latitude and longitude to darksky sensor
allow configuration of latitude and longitude in the darksky sensor.
falls back to home assistant coordinates if latitude/longitude not
specified.
* lat/long as inclusive on schema. removed None check for lat/long in setup_platorm
altered schema to require latitude and longitude configured as a pair.
removed None check on latitude and longitude since values will fall back
to hass config if not present
* adhere to line limit of 79 characters
adhere to line limit of 79 characters
* Support for non-clients, NVidia shield, dynamic grouping, extra metadata, and more
* Fixed import orderdering, line lengths, and comment violations
* Local player check and season fixes
* Honor entity_namespace when using custom entity ids
* Semi compatibility with channels, force controls option added
* media_position_updated_at fix - only update when media is playing
* Fix: controls now work as expected on 1) casted sessions and 2) client sessions when client and PMS reside on the same sever
* Made PEP8 compliant
* Made PEP8 compliant
* Made PEP8 compliant, hopefully
* Better Tivo compatibility
* Added frozen detection and remediation
* PlayMedia EPISODE now supports season number and episode number (instead of episode index)
* Fix: Dynamic groups now exclude hidden devices
* Fix: Dynamic groups now exclude hidden devices
* Implemented arsaboo suggested formatting
* Implemented pylint command line suggested fixes
* Implemented Travis CI build suggested fixes
* Sorted Imports using Importanize
* Grouped request imports
* Removed dynamic groups, network calls from properties, and other cleanup
* Balloob recommendations and Plex Protocol Capabilities checks
* Remove deprecated disable-msg in favor of disable
* Removed position related items (seek, frozen detection, etc)
* Removed unused datetime
* Update configuration validation
With the new update, wake_on_lan requires a host key in the configuration
* cast self._host to str as requested
* Changed host key back to optional
* Move LIFX to aiolifx for driving the bulbs
* Fix whitespace
* Fix more whitespace
* Fix lint
* Define _available in init
* Add @callback decorators
* Use hass.async_add_job
* Rename class
* media_player.kodi extra attributes for tvshow and music media
* removed extra whitespaces/CR
* Kodi - add extra attributes #6250 (removed music attributes)
* Restored music attributes, this is ready for merge
* linting amended
* Fix Kodi artist support
* Copy-paste error
* Fix for non-music artist lookup
Kodi returns an emtpy list on videos, so we need to be able to
handle that as well.
* Refactor zwave discovery to entity schema
* Address PR concerns
* Split DISCOVERY_SCHEMAS into separate file
* Only check cover reverse workaround once
* Be able to select tls_version
* This test should always assert this value, not only in 3.6
* Disable linting on future property (py36)
* Only allow TLS 1.0, 1.1 and 1.2
* Fix line length issue
* Fix check config tests
* Allow auto as a TLS version
* Update configuration validation
With the new update, wake_on_lan requires a host key in the configuration
* cast self._host to str as requested
* Changed host key back to optional
* Fix colortemp conversion for osramlightify
Copied from the LIFX fix in 75df4be733.
* Fix style
* Updates from review
@armills:
While we're doing cleanup here, can you just change self._brightness,
self._rgb, self._name, self._temperature, and self._state assignments in
__init__ to None? These will get overwritten when self.update() is called, so
it's safer/cleaner to initialize them to None since it shouldn't matter if
everything is working.
* Fix colortemp conversion for osramlightify
Copied from the LIFX fix in 75df4be733.
* Fix style
* Updates from review
@armills:
While we're doing cleanup here, can you just change self._brightness,
self._rgb, self._name, self._temperature, and self._state assignments in
__init__ to None? These will get overwritten when self.update() is called, so
it's safer/cleaner to initialize them to None since it shouldn't matter if
everything is working.
This increases the global limit to 6535 seconds (1h48m55s) because that is
supported by all light platforms.
Some platforms support even longer transition times so the limit should
actually be platform specific.
* Allow configurable conditions for Pi-Hole sensor
* Include all three conditions by default
* Share Pi-Hole API data across all sensors; eliminate redundant API calls
* Add effect support to MQTT Light
* Use effect state topic for supported_features
* Dont use rainbow as default color
* Add color_temp support to MQTT JSON Light
* Add effect to MQTT JSON light
* Support lights in MQTT discovery
* Allow discovered devices to set their platform
* Add white value support to MQTT Light
* Add white value support to MQTT JSON Light
* Remove blank line
* Add color_temp support to MQTT Template light
* Add white value support to MQTT Template Light
* Remove unused SUPPORT_MQTT_TEMPLATE and stale unused flash and transition code from MQTT Template
* Add XY Color to MQTT Light Platform
* Fix syntax
* Fix more syntax errors
* Revert "Remove unused SUPPORT_MQTT_TEMPLATE and stale unused flash and transition code from MQTT Template"
This reverts commit c03798cb636e6b3258fce6f676fc6ca34c9b7d37.
* MQTT Template supports flash and transition but doesnt allow templating of the values
* Add XY color support to MQTT JSON
* Proper variable names
* Only allow whitelisted MQTT platforms to be loaded via MQTT Discovery
* Minor tweaks.
* Add support for remove services / Reload script support
* Reload support for scripts
* Add more unittest for services
* Add unittest for script reload
* Address paulus comments
* Passing pep8, no tests yet
* Fixed some issues with the request throttling
* Removed ability to set throttle time because it was causing more issues than it was worth
* Added blink to .coveragerc
* Changed blinkpy version
* Removed global var, fixed per PR requests
* Added services for camera, migrated switch to binary_sensor
* Added schema for service, fixed naming, removed unused function
Current implementation of connection status doesn't follow convention and is not properly configurable. Might be added again in the future as a full fledged entity or some other way.
For now users can rely on error logging to determine connection status.
* Update to pylgtv 0.1.4
* Send icon with webostv notifications
Default to the homeassistant logo, but allow customizing it on the
component and for individual notifications
* Wait up to 9 seconds
* Set number of recorder retries to 8
* Do not sleep when reporting last connection error if no retries left
* Make sure we clean up old engine if connection is retrying
* Update __init__.py
* Use bundled certificates if port matches mqtts
* Move import requests.certs to top, since it's used in more places
* Add happy and non-happy path tests for default certificate bundle on mqtts port
* Add Zwave refresh services
* services file
* Use dispatcher
* Add zwave prefix to signal
* Delay zwave updates for 100ms to group them.
* Fixes
* lint
* Access _scheduled_update from loop thread only.
* More async
* Some optimizations
* Fix
Message deletion in IMAP is a two step process: first delete, then expunge.
Deleting a message just sets a flag that usually makes the mail client hide
the message. It is the expunge that actually removes the message.
Thus, exclude the deleted messages so that the unread count matches up with
that of most mail clients.
A LIFX bulb maintains its previous color even when the light is off.
For example, if the previous color is blue and the bulb is turned on
and then set to a red color, it will transition through purple colors.
After this commit, the target color is set while the bulb is still
turned off. This overrides the previous color and brightness that the
bulb remembered. The light is then turned on with the requested
transition duration.
For the example, this gives the expected result of only going through
red colors.
* Add ComEd RRTP price sensor
* Update wording to reflect ComEd's naming change from 'RRTP' to 'Hourly Pricing'
* Changed name of sensor source file
* Cleanup based on requested changes
* More cleanup
* small cleanups
* Don't initialize components which have already been discovered (fixes#5588)
* Don't log that we've found a service unless we know it's not a duplicate
* Encode discovery data hash with JSON
This also solves the issue of trying to hash non-hashable objects like dicts
* Add test for duplicate device discovery
* Don't initialize components which have already been discovered (fixes#5588)
* Don't log that we've found a service unless we know it's not a duplicate
* Encode discovery data hash with JSON
This also solves the issue of trying to hash non-hashable objects like dicts
* Add test for duplicate device discovery
* Added support for multiple codes executed in a row
now codes can be specified either by simply providing a single code, which will then be sent like usual, or multiple codes can be executed in a row, specified in a comma delimited format in the configuration.yaml. For example: 111111,222222,333333,444444 would mean 111111 would be sent first, followed by 222222 and 333333 and 444444.
* rpi_rf: added line breaks to not exceed 79 characters per line
* include validation for correct formatting of codes
added regex which only allows either a single number (like 1252456245) or a sequence of commas followed by another number.
* added line breaks to not exceed 79 characters per line
* fix for 'continuation line under-indented for visual indent'
* another try at 'continuation line under-indented for visual indent'
* changed from regex to list for easier maintainability
* removed unnecessary splitting of strings
* Update to Current RGB D65 Conversion
As per Philips Hue https://developers.meethue.com/documentation/color-conversions-rgb-xy
* Update the source of the XYZ to RGB formulas
* Fix Whitespace
* Update Whitespace
* Update Tests for new Formulas
* Update Tests
* Update XY_Brightness_to_hsv tests
* Update test_color.py
* Integrate suggestion in #5590 by nordlead2005. This change has been
sitting in limbo for over a month, but it is a good idea. I don't
mean to step on nordlead2005's toes, but we need to make progress.
* Use defined constant for TEMPERATURE_HOLD
* Integrate handling of vacation into hold mode. Canceling vacation
hold requires an update to the external pyecobee library. Creation
of vacation is not supported (it would be straightforward in the code,
but a complex user interface would be required, similar to what is
now done in the ecobee thermostat).
* Add capability to retrieve list of defined climates from ecobee.
* The mode() method used to return the system mode in internal
representation. However, the user sees a different notation in
the ecobee thermostat. Seeing some internal name is particularly
weired with user-defined climates, where these are named "smart1",
"smart2", etc., instead of the name the user has defined. Return
the user-defined name instead. This change might break some user
interfaces but is easily remedied (e.g., use "Away" instead of
"away").
* Simplify is_away_mode_on().
* Correction of erroneously indented else statement.
* Change comment as flake8 gets confused.
- Bugfix: with f63a79ee we removed `script/home-assistant@.service`
systemd unit file, which is used by Vagrant box to start/stop hass
- simplify interaction with Vagrant, provision.sh now is the only
entry point and doesn't need the user to touch/remove files in
order to change provisioner behavior
* Make zwave devices listen on less network changes.
* Convert more platforms
* Remove printouts.
* Fix copy-paste
* Change default dependent list to empty list
* Fix possible race at startup in mysensors callback
* Update devices via persistence before starting gateway to avoid
two threads calling the same callback at the same time.
* Call add_devices max once per callback
There is no reason for the H to be capitalized. Changing it to lowercase increases consistency with other components and allows for use of the min/max sensor, which throws an error if the units of measurement are not the same.
* added frontier_silicon constant
* added the frontier_silicon component
* cleaning up according to travis
* trying to satisfy pylint
* trying to satisfy pylint
* fsapi version 0.0.6
* with fsapi version 0.0.7
* added fsapi dependency
* yielding the FSAPI
* Removing white space from docstring
* Removing white space from an empty line
* Switching to sync
* clean up white spaces and rename device to FSAPIDevice
* added frontier_silicon constant
* added the frontier_silicon component
* cleaning up according to travis
* trying to satisfy pylint
* trying to satisfy pylint
* fsapi version 0.0.6
* with fsapi version 0.0.7
* added fsapi dependency
* yielding the FSAPI
* Removing white space from docstring
* Removing white space from an empty line
* Switching to sync
* clean up white spaces and rename device to FSAPIDevice
* changed info to debug
* added frontier_silicon constant
* added the frontier_silicon component
* cleaning up according to travis
* trying to satisfy pylint
* trying to satisfy pylint
* fsapi version 0.0.6
* with fsapi version 0.0.7
* added fsapi dependency
* yielding the FSAPI
* Removing white space from docstring
* Removing white space from an empty line
* Switching to sync
* clean up white spaces and rename device to FSAPIDevice
* added the frontier_silicon component
* trying to satisfy pylint
* fsapi version 0.0.6
* remove white space
* generated requirements
* added the frontier_silicon component
* cleaning up according to travis
* trying to satisfy pylint
* trying to satisfy pylint
* fsapi version 0.0.6
* with fsapi version 0.0.7
* added fsapi dependency
* yielding the FSAPI
* Removing white space from docstring
* Removing white space from an empty line
* Switching to sync
* clean up white spaces and rename device to FSAPIDevice
* trying to satisfy pylint
* changed info to debug
* added the frontier_silicon component
* fsapi version 0.0.6
* generated requirements
* pylint
* moved import requests to the method where it is being used
* add a basic unit test
* cleaned up source code
* added frontier_silicon constant
* added the frontier_silicon component
* added basic test
* added fsapi to requirements_all.txt
* added coverage omit, though a basic test was included
* added MEDIA_TYPE_MUSIC for artist and album
* removed duplicate cons
* switched fsapi call to a property, removed unecessary comment
* detailed docstring for fs_device
* added a space for the info_name - info_text separator
* reduced proeprty (fsapi) access for volume down/up
* Fix: replace influxdb query by another query that is more lightweight and won't timeout
* Fix: replace influxdb query by another query that is more lightweight and won't timeout
* Fix for OSRAM lights connected to hue bridge
Do not send command "effect = none" to OSRAM lights
Osram lights connected to a hue bridge do not seem to handle "effect =
none" very well. Most of the times they jump to the selected color and
then change to red within a second.
Osram lights connected to a hue bridge do not handle xy values outside
of their gamut. Since they just stay at their old color value, handling
the UI is very unpredictable. Sending HSV values to the lights fixes this.
* Add tests for new util methods
* Fast & efficient updates for ZAMG weather data
ZAMG updates on the hour, so instead of checking every half-hour we can
check each minute - only after the observations are taken until
receiving them.
* sensor.zamg: test instead of whitelist for station_id
* Autodetect closest ZAMG station if not given
* ZAMG weather component, based on the sensor
* Review improvements
* Update to new ZAMG schema, add logging
Turns out it wasn't a typo, but rather an upstream schema change. Added
better error handling to ease diagnosis in case it happens again.
* No hardcoded name
- Separate attribs from coffeemaker condition
- Set power units for threshold to mW to be consistent with others
- Adjust on-time labels to be more clear
* Create zwave devices on OZW thread and only add them during discovery.
* Read and write devices dict from loop thread.
* More async
* replace callback with coroutine
* import common function instead of callin git
* Bump qnapstats library to 0.2.3
* Expose the new timeout setting
* Show persistent notification if QNAP fails to set up
This sitaution will usually occur if the server configuration is wrong or the
timeout is set too low. In both cases `api.update()` will fail, which is a
problem because we cannot initialize many of the sensors without having this
data.
* Add new system_temp condition to QNAP sensor
Avoid unhandled exception and stack trace when server closes connection by changing from handle ClientDisconnectedError to DisconnectedError. Also added HttpProcessingError, which was missing.
* Connect to PLM and process simple protocol callbacks
* Baseline commit
* Connect to PLM and process simple protocol callbacks
* Baseline commit
* Connection working again
* Async add devices is working via callback now
* Beginning to interface with PLM library for control and state
* Deal with brightness in 255 levels with library
* Change sub names to match API changes
* Remove PLM-level update callback
* Support dimmable based on underlying PLM device attributes
* Expand to non-light platforms
* Stubs for turn on and off
* Current version of Python library
* Amend to use switch device attributes
* Use asyncio endpoints for control
* Add logging line
* Bump module version to 0.7.1
* Auto-load platforms, display device info/attributes
* Unify method name for getting a device attribute
* Require Current version of insteonplm module
* Import the component function in each platform in the balloob-recommend manner
* For consistency, handle switch state as onlevel just like lights
* Use level 0xff for on state, even with binary switches
Observing the behavior of a 2477S switch, it looks like even the non-dimmable
devices use 0x00 and 0xff for off/on respectively. I was using 0x01 for on
previously, but that yields unnecessary state change callbacks when message
traffic ends up flipping the onlevel from 0xff to 0x01 or 0x01 to 0xff.
* Use sensorstate attribute for sensor onoff
* Move new device callback to devices attribute
* Add support for platform override on a device
* Bump version of insteonplm module
* Default overrides is an empty list
* Avoid calling private methods when doing common attributes
* Remove unused CONF_DEBUG for now
* flake8 and pylint code cleanup
* Move get_component to local function where it is needed
* Update to include insteonplm module.
* New files for insteon_plm component
* Legitimate class doctring instead of stub
* Docstring changes.
* Style changes as requested by @SEJeff
* Changes requested by @pvizeli
* Add @callback decorator to callback functions
* Opportunistic platform loading triggered by qualifying device detection
Instead of loading all the constituent platforms that comprise the insteon_plm
component, instead we defer and wait until we receive a callback for a device
that requires the platform.
* Restore states
* feedback
* Remove component move into recorder
* space
* helper
* Address my own comments
* Improve test coverage
* Add test for light restore state
* Set configurable refresh value delay to 5 seconds
* Revert "Remove configurable refresh value delay, and fix it to 5 seconds"
This reverts commit edc2dc35d165e5e13b0f3cf4df40493a7ce764f1.
* Use default value of 5 sec for refresh, and still configurable
* Make default delay 5secs, but needs to be activated
* Added support for alternate SSH ports in AsusWRT (#4832)
* Always set the SSH port in SSH arguments
* Removed whitespace
* Adding port=22 to the mock calls
* Changed config.get(CONF_PORT) to config[CONF_PORT] per feedback from @pvizeli
* Added forecast functionality to the weather platform, updated OWM to get forecast data
* style fixes
* Changed returned forecast data to a more managable dict
* Fixed line length
* forecast will always be collected, data returned from owm is based on metric setting
* use list comprehension to create the forecast data
* Added forecast data to the weather demo
* Create dict directly in list comprehension
* Minor variable change in weather demo platform
* Convert forecast temperatures in weather component
* set forecast attributes as constants
* Style fixes and tests
* Copied forecast_entry instead of mutating data
* Support aliased owfs sensors
Current implementation does not support OneWire OWFS sensors that are aliased by OWFS alias.txt file:
http://owfs.org/index.php?page=aliases
Assumption is that folder name == sensor address
This change reads the supported families from owfs "family" file and adds both aliased and unaliased sensors.
(this approach also skips the "management" folders.. eg simultaenous, bus, alarm, statistics etc. For example when adding "simultaneous" as sensor (it also has "temperature" file) then owfs crashes)
* Update onewire.py
lint suggested style fixes
* Update onewire.py
Empty line removed
* Update onewire.py
comments removed
* Migrate mqtt to async
* address paulus comment / convert it complet async
* adress paulus comment / remove future
* Automation triggers should be async
* Fix MQTT async calls
* Show that event helpers are callbacks
* Fix tests
* Lint
* First round of not using values directly
* Round two
* lint
* Round four
* Conflict
* Round five
* Update zwave.py
* round six
* Docstring
* flakywakie
* Fetch values in constructor
* Blank line removal
* Set attributes in callback
* Docstring
* Round seven
* Ughgit add homeassistant/components/lock/zwave.py!
* Sloppy code
* Add aurora sensor
* allow custom forecast threshold for aurora binary sensor
* move AuroraGateway functionality to Aurora data object to conform with HA standards
* Add fake support for turn on/off for Apple TV
When the device is "turned off", no requests are sent to the device.
When the setting "start_off" is set to true, the device starts in off
state.
* Fix async comments
* Clean up supported features
* Reconnect robustness, expose connection state.
- Expose connection status as rflink.connection_status state.
- Handle alternative timeout scenario.
- Explicitly set a timeout for connections.
- Error when trying to send commands if disconnected.
- Do not block component setup on gateway connection.
* Don't use coroutine where none is needed.
* Test disconnected behaviour.
* Use proper conventions for task creation.
* Possibly fix test race condition?
* Update hass import style
* Add support for the Open Energy Monitor Thermostat
* Fix linting errors
* Define an update method and local state
* fix linter
* Small tweaks.
Update oemthermostat version, default name and docstrings
* Fail to setup oem platform if connection fails.
* update requirements
* More tweaks to auth and exceptions
* Remove target temp
* Bump pwaqi to 1.4 to fix a typo in the underlying library.
* Update WAQI sensor to use pwaqi 2.0 which relies on AQICN public API.
This is a breaking change as the component now requires 'token' parameter.
* Fix lint
* Core cleanup: two stage shutdown
* fix spell
* fix
* add async logger to close
* change aiohttp to use CLOSE
* address paulus comments
* Fix tests
* Add unittest
* Stop using entity_picture that is known to be bad.
* Only abandon image on 400 or 404 response
* Return is_permanent_failure as a third part of response
* Add debug printout
* Fix lint
* Fix lint
* Add support for multiple devices to Tado device tracker
* Hound did not agree with my usage of spaces
* Two blank lines were expected
* Keep CONF_HOME_ID in the Tado file
* Make home_id optional
* Work with different API URLs depending on home_id being present
* Remove CONF_HOME_ID from HA's const.py file
* Missed removing CONF_HOME_ID from the import
* Add new sensor/history_stats component
* Add real unit tests
* Code style changes requested for pull request
* Remove time aliases & allow datetime values
* Reformat unit tests
* Remove all async behavior in history_stats
* Change duration format
* [recorder] Add tests for full schema migration
* Remove leftover code
* Fix duplicate creation of sqlalchemy Index object
* It's that kind of day...
* Improve models_original docstring
* new component telegram_webhooks
* keyboard support in telegram notify
* telegram_webhooks has no tests
* requirement like notify/telegram
* ops, requirements_all.txt needed for travis
* ops, requirements_all.txt is generated by script/gen_requirements_all.py
* check telegram trusted networks in web handler
* raise an event now
* use of hass.config.api.base_url
* more readable
* small cleanups
* Small style change for HA guideline
* fix lint
* revert return to origin
**Related issue (if applicable):** fixes #<home-assistant issue number goes here>
**Pull request in [home-assistant.github.io](https://github.com/home-assistant/home-assistant.github.io) with documentation (if applicable):** home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
**Example entry for `configuration.yaml` (if applicable):**
## Example entry for `configuration.yaml` (if applicable):
```yaml
```
**Checklist:**
## Checklist:
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [home-assistant.github.io](https://github.com/home-assistant/home-assistant.github.io)
@@ -26,5 +26,5 @@ If the code does not interact with devices:
- [ ] Local tests with `tox` run successfully. **Your PR cannot be merged unless tests pass**
- [ ] Tests have been added to verify that the new code works.
Home Assistant |Build Status| |Coverage Status| |Join the chat at https://gitter.im/home-assistant/home-assistant| |Join the dev chat at https://gitter.im/home-assistant/home-assistant/devs|
Home Assistant is a home automation platform running on Python 3. The
goal of Home Assistant is to be able to track and control all devices at
home and offer a platform for automating control.
Home Assistant is a home automation platform running on Python 3. It is able to track and control all devices at home and offer a platform for automating control.
To get started:
@@ -12,82 +10,22 @@ To get started:
python3 -m pip install homeassistant
hass --open-ui
Check out `the website<https://home-assistant.io>`__ for `a
The system is built using a modular approach so support for other devices or actions can be implemented easily. See also the `section on architecture <https://home-assistant.io/developers/architecture/>`__ and the `section on creating your own
# these type of sensors are probably mainly used for automations
returnTrue
@property
defshould_poll(self):
"""No polling needed."""
returnFalse
@property
defdevice_class(self):
"""The device class."""
returnself._device_class
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.