When lights in the hue component are used with the emulated hue component ATTR_EMULATED_HUE is still being used, which was deprecated by #9382. This updates ATTR_EMULATED_HUE to ATTR_EMULATED_HUE_HIDDEN to improve consistency and stop the deprecation warnings.
* Add sensor platform for luftdaten.info
* Add monitored conditions to platform schema
* Make monitored conditions config obligatory
* Improve inline documentation
* Import first standard libs then 3rd party libs
* Combine resource url using format
* Remove unnecessary try..except block
* Use state “None” instead of STATE_UNKNOWN
* Minor changes incl. removal of unused vars
* Add missing spaces
Value parsing in plant component throws an ValueError if values are given as floats. This commit changes int(value) to int(float(value)) to avoid this error.
* Add EntityFilter helper
* Changes in entityfilter after code review
* Convert recorder to use EntityFilter
* Fix flake/lint errors in recorder
* Update entity filter helper to return function
* Update recorder to use updated entity filter
* Better docstrings in entityfilter
* Update entityfilter.py
* MVP integration with Remember The Milk.
This version offers a service allowing you to create new issues in Remember The Milk.
* fixed pylint issue with import path
* - added files to .coveragerc as the server inerface is hard to test
- added tests for config file handling
* fixed lint error
* added missing docstrings
* removed stray edit
* fixed minor issues reported by @fabaff
* changed naming of the service, so that serveral accounts can be used
* added disclaimer
* moved service description to services.yaml
* fixed blank lines
* fixed structure of configuration
* added comment about httplib2
* renamed internal config file
* improved logging statements
* moved entry in services.yaml into separate folder.
Had to move the component itself as well.
* fixed static analysis findings
* mocked first test case
* fixed bug in config handling, fixed unit tests
* mocked second test case
* fixed line length
* fixed static analysis findings and failing test case
* also renamed file in .coveragerc
* control flow changes as requested by @balloob
* Implement adjustment
* Add color support
* fix lint
* Fix lint & use only RGB
* fix HSB + Test
* Add tests & fix bugs
* add rgb test
* add setColorTemperature
* Add color light support + tests
* Fix color temp
* use kelvin for converting
* use correct calculation
* Added timer component
* Reworked functionality a bit
* Fixed requested change
* Fixed state updates when finished
* Removing expired listeners, added events, changed services
* Added finish service
* Using timedelta parameters in start-service
* Cleanup
* Lint
* Updating state for remaining time
* Removed duration from cancel method
* Renamed service to fix disabled lint
* Some tests (incomplete)
* Relocated service descriptions
* Addressed requested changes
* Adjusted tests, added methods and events
* Added test for finish service, lint
* Code cleanp, using string states
* tzzz... one char...
* Proper usage of restore_state
* Some more cleanup
* Added ability to control when the on command is sent.
* Changed to allow only brightness command
* Code cleanup
* Added test cases for on command mode.
* Added addition test
* Changed brightness options to lower case.
* Fixed case of default value
* Remove default
This commit adds support for the odhcp DHCP server in addition to
dnsmasq. A new configuration option 'dhcp_software' has been added and
allows the user to set the server used (defaults to dnsmasq to not break
existing installations).
* OwnTracks work. Beacon logic and testcases
The existing test cases don't really make clear what is being
tested and the iBeacon / Region / Zone / Tracker thing is all
a bit confused.
I'm distinguishing a fixed-place beacon used to trigger entrance
into an HA zone (as a Region Beacon) from a beacon affixed to a
portable or mobile object (as a Mobile Beacon). The behaviors
and test cases for those usages should be different. A Region Beacon
will be named the same as a Home Assistant Zone and seeing an event
from that beacon should trigger a device tracker update related
to that zone. It would be appropriate, though unnecessary, to
configure the Region Beacon with the GPS coordinates of its static
physical location.
A Mobile Beacon is not named after any HA Zone and seeing the beacon
triggers an update in HA setting the location of the beacon to the
current device_tracker location. In this way, when my_phone sees
the beacon on my_keys, the location of my_keys is set to where
my_phone is. And when my_phone stops seeing my_keys, my_keys location
is the location of my_phone the last time it saw them.
A Mobile Beacon's GPS information should be ignored because it's
almost certain to be incorrect because the beacon moves. In fact,
beacons typcially come configured with lat/lon as 0.0/0.0 so using
the location of the beacon in an update has a nasty habit of
setting you and your keys on the bottom of the Atlantic Ocean.
Leave message handling is changed to treat mobile beacons
differently from region beacons and gps regions.
active beacons should be a set. you shouldn't end up
with multiple "active" entries for the same beacon. Let's
enforce that with the correct data structure.
Added test for real-world bug that is fixed.
A series of mobile beacon and region beacon
enter and leave events could cause a mobile
beacon to stick to the tracking device even
though it had tracked through a "leave" event.
Changed two tests to look at the size
of the 'mobile_beacons_active' structure rather
than at the object which will allow this test
to work with any sort of list, set, etc.
* Removing excess logging and unnecessary try catch.
From review on PR #10183 I've removed some info logging
that was unnecessary and I've made the suggested changes
to an if block and a try/catch.
The play_media parameters are a little bit black magic for the yamaha
platform, this explains what they are in a code comment instead of
having to go look at the yamaha platform itself.
Fixes Bug #10180
* First draft of a remove device service. Fixes https://github.com/home-assistant/home-assistant/issues/9571.
* Add device service introduced. Enables the join permission of the gateway to pair a new sub device within the next 30 seconds.
* Schema validation added and some refactoring.
* A more precise validation of the gw_mac (ffffffffffff vs. ff:ff:ff:ff:ff:ff).
* Persistent notification added to provide some feedback.
* Pylint warning disabled. The methods are used indirectly.
* CODEOWNERS reference updated.
* Add unit test for hddtemp sensor.
* Remove sample fixture and include it in the code.
* Add test to raise coverage.
* Fix bug when host is not reachable.
* Minor code cleanups.
* More code cleanups.
* Added new Clickatell SMS messaging Notify Platform
* Added new Clickatell SMS platform with layout corrections
* Added new Clickatell platform with additional layout corrections
* Added new Clickatell platform with exception handling removed
* Added new Clickatell platform with poor reference removed
* Reversed changes to dev_docker file
* Minor changes
* Add Nederlandse Spoorwegen sensor
* Remove unused 'delay' option.
* Apply requested code reviewed changes
- use constants from const.py
- ensure the configuration is a list
- verify credentials upon platform setup
- verify station input
- add True as second param to add_device
- only call add_device if at least 1 sensor was setup
* Fix: Last Played Media Title in plex would stay even when player was idle/off
Primary Fix is in the "if self._device" portion.
code in "if self._session" is a catch all but i'm not 100% if it is needed.
* Fixed lint issues with previous commit
* 1st Pass at refactoring plex refresh
Moved _media** into clearMedia() which is called in _init_ and
at start of refresh.
Removed redunant _media_* = None entries
Grouped TV Show and Music under single if rather than testing
seperately for now.
* Fixed invalid name for _clearMedia()
Removed another media_* = None entry
* Removed print() statements used for debug
* Removed unneeded "if" statement
* Added Base Support for Linode
* Removed unused Attr
* Corrected some Typos
* updated requirements & coveragerc
* added import to prevent var not declared errors in linter
* Fixed Typo
* Added Switch Component for Linode and corrected some errors if data was blank
* Updated api lib to hopefully remove dependancy on enum34
* Fixed Reference error
* fix pylint errors
* Update linode.py
* Update linode.py
* Update linode.py
* Update linode.py
* Add HTTP cache header to proxied media player images
With the resource actually being cacheable, preemptively extend the cache
buster key to prevent hash collisions.
While at it, change the hash from md5 to sha256 for consistency with the
access_token method.
* Remove lint
* Core POC support for polymer i18n
* Add gulp to build_frontend
* Remove frontend build
* Updated translations format
* Eliminate translation namespace from panel names
* Only register translations path in dev mode
* Support for different device types of MIIO switches: Xiaomi Smart WiFi Socket (called Plug), Xiaomi Smart Power Strip and Xiaomi Chuang Mi Plug V1.
* Line too long fixed.
* Trailing whitespace removed.
* Changes based on review.
* Line too long fixed.
* No blank lines allowed after function docstring fixed.
* The underlying library is called python-miio now. Imports and requirements updated.
* TODO comment removed. Travis complains about.
* Blank line removed.
* Code clean-up.
* Revert "Code clean-up."
This reverts commit 96b191c7a6d30df3b2f8a301491ced61c84a49e2.
* Unused platform constant removed.
* Add support for different display currencies in CoinMarkerCap sensor.
* Add test for CoinMarketCap sensor.
* Add test dependency to gen_requirements_all.
* Fix review comments: use string formatting and less string case chanes.
* Recorder exception catch for long state string
* Revert - Recorder exception catch for long state string
* Validate state length at core level
* Revert - this reverts commit 9d6bd017d96f20c10204d9bcb71573e3bc005ee3.
* Revert - Recorder exception catch for long state string
* Fix state TypeError
* Test for long state exception
* Trend sensor now uses linear regression to calculate trend
* Added numpy to trend sensor test requirements
* Added trendline tests
* Trend sensor now has max_samples attribute
* Trend sensor uses utcnow from HA utils
* Trend sensor now completes setup in async_added_to_hass
* Fixed linter issues
* Fixed broken import
* Trend tests make use of max_samples
* Added @asyncio.coroutine decorator to trend update callback
* Update trend.py
* Initial support for SNMP switch
Supports setting integer values
* Resolves styling issues
* Updates requirements
* Remove commented out import
* Changes default community to private. Fixes linting errors.
* More linter fixes and bugfix in #state()
* Refactors the code to make it simpler.
* Add Google Domains component
* Fixes for hound
* Add Google Domains tests
* Fixes for hound
* Clean up Google Domains
* Add timeout to Google Domains
* Remove whitespace from blank lines
* Update google_domains.py
* Update google_domains.py
* Fix: Last Played Media Title in plex would stay even when player was idle/off
Primary Fix is in the "if self._device" portion.
code in "if self._session" is a catch all but i'm not 100% if it is needed.
* Fixed lint issues with previous commit
* 1st Pass at refactoring plex refresh
Moved _media** into clearMedia() which is called in _init_ and
at start of refresh.
Removed redunant _media_* = None entries
Grouped TV Show and Music under single if rather than testing
seperately for now.
* Fixed invalid name for _clearMedia()
Removed another media_* = None entry
* Removed print() statements used for debug
* Removed unneeded "if" statement
* Changes
* Updated Requests to 2.18.4
* Updated plexapi to 3.0.3
* Removed function to convert_NA_to_None
* Removed function get_thumb_url
Type changes
* _session.player is now a list players
* na_type deprecated and to be removed
* plexapi has change na to None
Known Issues:
* Player controls currently broken
* Last location (library) stays while player idle
* Username is now Usernames and a list
* Fix for broken controls
* Removed errant print statement
* Removed depecrated na_type
* Updated Plex Sensor to use plexapi 3.0.3
Added support for Token to be used in sensor
Known Issues:
Username and Password broken for Plex Sensor use Token instead for now
* removed TODOs
* Fixes for private access violations
* Removed need for _local_client_fix
* Removed unused import and fixed parens
* Async rewrite
* Device and events now working with async core
* More async than before
* Methods have moved
* Remove check if parameter serial number is available since library handles reconnection anyway and we can expect user to set up configuration correctly
* Async rewrite
* Device and events now working with async core
* More async than before
* Methods have moved
* Remove check if parameter serial number is available since library handles reconnection anyway and we can expect user to set up configuration correctly
* Serial number is the only unique identifier, checks are still needed
* No async for setup_device
* Bump axis to 13 in preparation of friday the 13th
* Fix review comments
* Removed async after some discussions with @armills.
It wasn't possible to get past that aiohttp doesnt support digest auth, which makes it impossible to convert the full library at this point in time.
* Xiaomi Air Purifier 2 integration
* Flake8 errors fixed.
Changes based on review.
* Service domain ("fan") updated and services properly prefixed by xiaomi_miio.
* The underlying library is called python-miio now. Imports and requirements updated.
* Version bumped. The underlying library is called python-miio now.
* Fixes#10030. Extented Network Exceptions handling.
* Remove unused import. Replace ex.reason to ex.message to use custom exception instead of HTTPError
* Init commit of new whois sensor
* Updated requirements
* Resolved updated showing expired, added expired attr
* Added missing attribute in init, added whois to coveragerc
* Various PR comment changes
- Now more resiliant to invalid hostnames
- Removed various assumed STATE_UNKOWN setting
- Upfront check for valid hostname preventing the sensor starting with dud
- Resolved unit of measurement Day, Days, None issue
- Datetime formatting now done to iso 8601 standard
- Removed all expired usage, not really that useful
- Unused hass assignment
* More PR comment resolutions
- Resolved the dilemma with hosts / single host per sensor. Now running
single domain per sensor.
- Renamed host(s) to domain
* Moved coveragerc sensor location
* Re-phrased the expiration_date warning
* Resolved assumed updated_date existence
* Resolved missing indent
* Resolved discover_info typo
* Update whois.py
* add eph ember controls
* updates based on review
* remove unused import
* update to new version of pyephember
* added myself to codeowners as requested
* make codeowners alphabetical
* run fixed gen_requirements_all
* Update ephember.py
* Do not include program data in media_title if program data is undefined (None)
* Show thumbnail of currently playing program
* async setup
* Update requirements
* Initial revision of fail2ban sensor
* Verified working, added tests
* Re-factored code so that log reading isn't called for each sensor
* Lint fixes
* Removed errant reset of last ban, added test to verify bans persist through update
* Removed for loop in read_log and replaced with regex per review request
* Refactored update to use current ban array for last ban state
- also was missing return False in timer for default behavior
* Removed CONF_SCAN_INTERVAL from PLATFORM_SCHEMA.extend
- renamed DEFAULT_SCAN_INTERVAL to SCAN_INTERVAL
* SCAN_INTERVAL changed to timedelta
* Force travis rebuild (last build timed out)
* Using compiled regex now
* fixing a typo in the old library.
Should now work with both version 1 and version 2 hub
* version bump
* fix Scene shadowing
* fix requirements. (not sure whether I should commit the other generated files as well ?)
* Test including extra data on a no data trigger
* Match any dicts for default schema for event data
* Fix indentation
* Only check schema if one was configured
The default names for the feeds created by the EmonCMS component are
like 'emoncms1_feedid_10', but
- This is the display name. The ID should be lowercase and underscored,
but the display name should be readable. The ID gets derived from it
and comes out formatted correctly.
- EmonCMS lets you assign names to feeds, so it makes sense to use those
if they exist, rather than feed IDs. The ID is pretty meaningless and
basically means you have to override every name to make it readable.
- Including the ID identifying the EmonCMS instance (i.e. the '1') makes
the name clunkier and would only be useful for people with multiple
EmonCMS instances, which is likely to be an extremely small group since
one hub can run as many feeds as you need it to.
This changes the default behavior but still uses configured 'name' if
it's set, so it won't break the configuration of people who have
customized their feed names in HA config.
* Change persistent notification to avoid long text in entity state
* Tests for changed persistent notification
* Persistent notification state
* Test for component state
* Updated RussoundRNETDevice.update() to call and enhanced function that reduces network traffic
Refer to issue #6 on the Russound project
* Updated RussoundRNETDevice.update() to invoke an enhanced function to reduce network traffic
PLease see issue #6 on the russound project
* Updated REQUIREMENTS to use version 0.1.9 of the Russound component
Please refer to issue #6 on the Russound rnet project
* Corrected some minor style details to satisfy Houndbot
* Update requirements_all.txt
* Add support for multiple disks.
* Fix LINT error.
* Make disk config optional to not break existing installations.
* Change state handling as per request by @fabaff.
* Extended Ring DoorBell to support camera playback and wifi sensors
* Bump python-ringdoorbell to version 0.1.6
* Support to camera playback via ffmpeg
* Extended ringdoorbell sensors to report WiFi attributes
* Extended unittests
* Makes lint happy
* Added support to stickup cameras and fixed logic
* Fixed unittests for stickup cameras
* Makes lint happy
* Refactored attributions and removed extra refresh method.
* Update request requirement
Update request requirement from version v2.14.2 to v2.18.4
* Fix dependency vizio integration
3rd patry packages were removed from requests. Changed dependency from requests to urllib3
* forgot =
forgot = when adding the requirement
* re-run script/gen_requirements_all.py
re-run script/gen_requirements_all.py
* Unvendoring urllib3 from requests
In v2.16.0 and newer of requests they unverdored urllib3.
* undefined name 'InsecureRequestWarning'
* Removed requirement to 'urllib3==1.22
* removed import requests
* removed urllib3.exceptions.InsecureRequestWarning
removed urllib3.exceptions.InsecureRequestWarning travis lint
* Added Toon support again
* Forgot about .coveragerc
* Fixed style issues
* More styling and importing fixes
* Implemented the suggestions made by @pvizeli
* The smallest fix possible
* Removed custom names for Toon states
* Fix last push with 2 outdated lines
* Removed HOME and NOT_HOME, moved to just climate states
* Bumped dependency for better handling of smartplugs that don't report power consumption
* Implemented changes as suggested by @balloob
* Rebase, gen_requirements_all.py finally working
* Add emeter attributes.
* Remove unused attributes.
* Rework supported features so it only queries the bulb once.
* Used cached supported_features, catch errors if energy usage not reported.
I noticed the steam component "game" attribute is capitalized. This should be lowercase if I'm not mistaken.
From:
return {'Game': self._game}
To:
return {'game': self._game}
Not sure if i'm doing this correctly... apologizes if I'm not!
* using defusexml ElementTree for safer parsing of untrusted XML data
* move from core dependency to platform specific dependency
* style difference: put back end of list comma in setup.py
* Fix missing timeout for Netatmo binary sensor
This fix also merges timeout and offset because there were the same thing
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Fix lint errors
* Fix style
* added implementation for monoprice 6-zone amplifier. This implementation is based on and very similar to russoun_rnet implementaion
* updated comments and cleaned up code
* updated comments and cleaned up code
* added unit tests
* removed 'name' attribute from platform schema.
* added monoprice.py to .coveragerc
* fixed lint
* fixed lint errors
* fixed lint errors
* added monoprice to requirements_all.txt
* fixed lint errors again
* implemented change requests
* fixed lint error
* added exception handling to setup_platform()
* replaced catchall with SerialException only
* added myself to CODEOWNERS
* fixed weird merge to CODEOWNERS
* Update aioimaplib from v0.7.12 to v0.7.13
Changelog v0.7.13:
[aiolib] adds a connection lost callback [test] imapserver : added APPENDUID response for APPEND cmd [test][fix] imapserver append should add to the connected user mb [test] imapserver : more accurate building of message headers (using python email module)
* run script/gen_requirements_all.py
* http: Add headers key to json[_message]
* Add google_assistant component
This component provides API endpoints for the Actions on Google Smart
Home API to interact with Google Assistant.
* google_assistant: Re-add fan support
* google_assistant: Fix Scene handling
- The way I originally wrote the MAPPING_COMPONENT and the way it's actual
used changed so the comment was updated to match that.
- Use const's in more places
- Handle the ActivateScene command correctly
* google_assistant: Fix flakey compare test
Was failing on 3.4.2 and 3.5, this is more correct anyway.
* google_assistant: Use volume attr for media_player
* Extra check to incoming connections
The incoming connection could be other than self.db_url, because
some 'custom_component' could be making these, and then, if they're not
sqlite3 connections, an error will raise because those haven't the
`dbapi_connection.isolation_level` attrib.
* lint fix
* simplify check: isinstance test only
* Fix load of components without any config from packages
- Add 'None' to the packages config schema validation, to be able to
load components without any more configuration from yaml package files,
like `wake_on_lan`, `media_extractor` and so on.
* test the ability to load components without configuration from packages
* Cloud: connect to cloud
* Fix tests in py34
* Update warrant to 0.5.0
* Differentiate errors between unknown handler vs exception
* Lint
* Respond to cloud message to logout
* Refresh token exception handling
* Swap out bare exception for RuntimeError
* Add more tests
* Fix tests py34
* Correct capitalization inconsistency in DarkSky
All two-word sensors ("Precip Intensity," "Nearest Storm Bearing," etc) in Darksky uses title case for the friendly name of the sensor, with the exception of "Dew point."
* Implement UV Index in Darksky
* Fixed whitespace for Tox compliance
* Add unit for UV Index.
Per recommendation of reviewer, added 'UV Index' as a CONST in const.py, then used that const in both DarkSky and ISY994. It looks like BloomSky might also support UV Index and it should probably be standardized.
* Added uptime sensor for homeassistant
* Fixed pylint and flake8 errors
* Made requested changes from PR
- Fixed stale docstrings
- Changed default state to None
- Added ability for user to use hours or days
* Fixed typo
* Added unit_of_measurement check to test
* Converted to async
- Changed tests to work with async
* Minor updates
* Added TODO to illustrate my intentions
* Resolved linting issue
* Resolved bool or file validation and updated tests
The tests have been updated to include mocks to assert a temp
ca cert exists as it should for the positive tests with an
additional negative test for a file not existing being tested.
* Resolved flake8 linting issues (test docstrings)
* Communication timeout support in modbus hub.
Timeout parameter are taken from configuration and passed to pymodbus constructor.
* CONF_TYPE and CONF_TIMEOUT imported from const.py
* Expose time module in Python Scripts
* Make dt_util available in Python Scripts
* Limit methods in time module
* Add time.mktime
* Limit access to datetime
* Add warning to time.sleep
* Lint
* fix for LocationParseError in netgear platform
* added unit tests for get_scanner()
* fixed houndci-bot warnings
* fixed lint warnings
* fixed lint warnings
* fixed broken test
* removed guard clause from netgear.py
removed all discovery related code from device_tracker
removed unnecessary unit test
* removed discovery related tests
* removed unused import
* removed unused import
* Xiaomi Smart WiFi Socket and Smart Power Strip integration
* Comment updated.
* Blank line removed.
* Typo fixed.
* Version of python-mirobo bumped.
* Version of python-mirobo bumped: Lightweight API changes.
* Additional API changes.
* Library version properly pinned again.
* Platform not ready behavior fixed.
Expose the device model as sensor attribute.
Device initialized log message added. Provides device model, firmware and hardware version.
* Component renamed: switch.xiaomi_plug -> switch.xiaomi_miio
* Revise based on review: Unused code removed. Filename updated.
* Initializing statistics sensor with data from database
* fixed broken test case
* usage of recorder component is now optional, thx to @andrey-git
* added test case for initialize_from_database
* New Skybell platform with components
* Added skybell components to omit.
* Preemptively fixing lint issues (hopefully).
* Removed unused variable.
* Requested changes.
* Additional CRs
* Hopefully the last of the CR's!
* bump the pyhs100 version and fix api changes
* switch.tplink: avoid I/O during __init__
* initialize _name to None in __init__
* update requirements_all.txt for the new version
* Fix: Last Played Media Title in plex would stay even when player was idle/off
Primary Fix is in the "if self._device" portion.
code in "if self._session" is a catch all but i'm not 100% if it is needed.
* Fixed lint issues with previous commit
* 1st Pass at refactoring plex refresh
Moved _media** into clearMedia() which is called in _init_ and
at start of refresh.
Removed redunant _media_* = None entries
Grouped TV Show and Music under single if rather than testing
seperately for now.
* Fixed invalid name for _clearMedia()
Removed another media_* = None entry
* Removed print() statements used for debug
* Removed unneeded "if" statement
* Introduced support to Travis CI
* Added Last Build Started sensor and simplified code
* Fixed logic error
* Simplified _LOGGER.debug statement
* Introduced support to Travis CI
* Added Last Build Started sensor and simplified code
* Fixed logic error
* Simplified _LOGGER.debug statement
* Renamed parameter since the repository_names expects a list
* Refactoring code to synchronous
* Simplified variables names
* Update to 0.12.1 and sensor implementation.
* Removing unnecessary dict gets.
* Added name property to actually use the _name variable.
* Update docstring
* arlo: Add alarm control panel component
Allows importing arlo base stations as an alarm control panel
component in HA. Lets the users configure a custom home mode since
arlo does not have a built-in home mode.
* fix lint and houndci comments
* Use async_update to update the state
Move the state updating code from state() to update() since it does
I/O.
* Do not set state in __init__
Make sure that update is called by passing the second parameter to
async_add_devices.
* Order imports and fix dos-strings
* Add recorder purge service
* Recorder test to match purge config
* Removed purge timer, move service handler to setup, add service description file
* Tests for recorder purge service
* Recorder purge timer rework, add purge service parameter, tests
* Purge service schema change
* Service description change value range
* First cleanup
* Fix name of config
* Allow configuring DSMR5 protocol.
* Give good example.
* Using dev branch until released upstream.
* Update to dsmr_parser supporting v5 arguments.
* Update to latest dmsr parser, preventing exceptions thrown where warnings would suffice.
* Update even more
* Update requirements.
* Update requirements
* * Rename input_slider to input_number
* Update input_number to optionally display slider, input box, or both
* input_number support either input box or slider mode, but not both
* input_number : change service from select_value to set_value
* input_number : add test for mode setting to tests
* Added hysteresis attribute to threshold binary sensor
* Added threshold binary sensor hysteresis test case
* Changed threshold binary sensor property name to be more self explanatory
* Pulled default hysteresis value into top level declaration
* Fixed linter errors
* Fixed additional linter errors
* Move comment to docs
* New climate platform with MQTT
* Use STATE_OFF
* Basic tests for climate.mqtt
* lint
* actualy collect coverage
* First tests and fixes
* Add possibility to receive temperature via MQTT
* Require only either sensor or mqtt topic
* Add mqtt publishing for away mode, hold mode and aux heat.
* Use configurabe on/off payloads
* Add pessimistic mode
* Initialize aux and away with False instead of None
* Remove Sensor
* Use correct scheduling method
* Move all methods to coroutines
If an event contained a datetime.datetime object it would cause an
exception in the Splunk component. Most of the media_player
components do this in their `media_position_updated_at` attribute.
Use the JSONEncoder from homeassistant.remote instead of just using the
standard json.dumps encoder.
Fixes#9590
* Fixed away_mode for Ecobee thermostat. Now away mode is properly turned on using indefinite away hold.
* fixed lint warnings
* fixed lint warnings
* - now it is possible to use float values for ecobee temperature holds
- fixed a bug that caused an exception when temperature hold was set in away mode
- added unit tests for ecobee thermostat
* fixed lint errors
* fixed lint errors
* - Rewrite synology camera by intruducing Api and SurveillanceStation classes to get cameras, motion settings, enable/disable motion detection, etc ...
- Synology camera now shows correct state based on is_recording and is_streaming flag. Also it now supports enable / disable motion detection and show the correct motion detection status
- Newly added Api and SurveillanceStation classes will be moved to a lib but it's here just for review
* - Updated how payload are merged with kwargs so it works with python <3.5
* - Fixed class name conflict
* - Addressed flake8 error
* - Addressed pylint error
* - Moved synology API related code to py-synology lib
- Added py-synology==0.1.1 requirement
- Removed hass from SynologyCamera constructor
* - Updated requirements_all.txt
* - renamed variable back to original
* - Sync call to retrieve camera image should be done in camera_image() instead
* - Sync call to update camera info should be done in update() instead
* - Removed unused import
* Introducing support to Melnor RainCloud sprinkler systems
* Make monitored_conditions optional for sub-components
* Part 1/2 - Modified attributes, added DATA_ constant and using battery helper
* Part 2/2 - Refactored self-update hub
* Fixed change requested:
- Dispatcher signal connection
- Don't send raincloud object via dispatcher_send()
- Honoring the dynamic scan_interval value on track_time_interval()
* Inherents async_added_to_hass() on all device classes
* Makes lint happy
* * Refactored RainCloud code to incorporate suggestions.
Many thanks to @pvizelli and @martinhjelmare!!
* Removed Entity from RainCloud sensor and fixed docstrings
* Update raincloud.py
* Update raincloud.py
* fix lint
* second try on rflink / cover
* no newline at end of file
* changed entity
* fixed comments from pvizeli
* removed :
* removed return 'unknown'
* Fixed comments from Rytilahti
* removed newline
* Reverted to None
* cleanup
* Cleanup
* Initial proposal for the input_datetime
* Linting
* Further linting, don't define time validation twice
* Make pylint *and* flake8 happy at the same time
* Move todos to the PR to make lint happy
* Actually validate the type of date/time
* First testing
* Linting
* Address code review issues
* Code review: Remove forgotten print()s
* Make set_datetime a coroutine
* Create contains_at_least_one_key_value CV method, use it
* Add timestamp to the attributes
* Test and fix corner case where restore data is bogus
* Add FIXME
* Fix date/time setting
* Fix Validation
* Merge date / time validation, add tests
* Simplify service data validation
* No default for initial state, allow 'unknown' as state
* cleanup
* fix schema
* IMAP Unread sensor updated for async and push
* Implement renames suggested in review
* Use async_timeout
* Keep push capability in a variable
* Reword for Hound
* allow customizable action for webos tv turn on as not all models allow for WOL
* trying to fix the houndci-bot
* last few fixes hopefully
* I guess not
* last time!
* This is a breaking change. I have removed the build-in wake-on-lan functionality and have opted for a script which can be a wake-on-lan switch. I have also removed any reference to wol.
* hoping to fix formatting
* linter errors
* Increase Comed timeout since it sometimes takes a long time for the API to respond
* Rewrite ComEd sensor to use asyncio
* Fix whitespace and build issues
* Added new statistic attributes
Added new attributes:
- Cleaning count
- Total cleaning time
- Total cleaning area
- Time left to change main brush, side brush and filter
* Code corrections
Code corrections
* Remove wronge hanging indentation
* Added new attributes
ATTR_MAIN_BRUSH_LEFT
ATTR_SIDE_BRUSH_LEFT
ATTR_FILTER_LEFT
ATTR_CLEANING_COUNT
ATTR_CLEANED_TOTAL_AREA
ATTR_CLEANING_TOTAL_TIME
* Remove trailing white space
* Corrections of the unit test for new attributes
* Hound corrections
* Init self.clean_history, self.consumable_state
* Hound correction
* - Cleaning time and total cleaning time shown in minutes
- Cleaned area and total cleaned area shown in square meters
- Main brush left, side brush left, filter left time shown in hours
- Display of the unit of measurement
* Remove trailing white spaces
* Fixed wrong continued indentation
* Fixed Hound
* Fixed Hound
* Added new statistic attributes
Added new attributes:
- Cleaning count
- Total cleaning time
- Total cleaning area
- Time left to change main brush, side brush and filter
* Code corrections
Code corrections
* Remove wronge hanging indentation
* Init self.clean_history, self.consumable_state
* Hound correction
* Remove UOM
* Merge
* Init self.clean_history, self.consumable_state
* Hound correction
* Init self.clean_history, self.consumable_state
* Hound correction
* Removed double declarations
* MQTT Cover - Add availability_topic for online/offline status
Added topic, configurable payloads, and tests.
* Merge branch 'dev' into mqtt-cover-availability
* Revert "Merge branch 'dev' into mqtt-cover-availability"
This reverts commit 46d29794ba959e0394ff5c9904ae039a6df1d22e.
* Added newline at end of test_mqtt.py
* Fixed lint issue (newline at EOF)
* Fixed lint issue (newline at EOF)
* Updated call signature for other tests
* Fixed availability message callback
* - Added support for ARM_NIGHT for manual_mqtt alarm
* - port "Add post_pending_state attribute to manual alarm_control_panel #9291" to manuql_mqtt
* - port "Fixed manual alarm not re-arm after 2nd trigger #9249" to manuql_mqtt
* - port "Add manual alarm_control_panel pending time per state #9264" to manuql_mqtt
* - Updated test_trigger_with_specific_pending to simulate real scenario e.g. arm the system then trigger
* new geo rss events sensor
* SCAN_INTERVAL instead of DEFAULT_SCAN_INTERVAL
* removed redefinition CONF_SCAN_INTERVAL
* definition of self._name not required
* removed unnecessary check and unnecessary parameter
* changed log levels
* fixed default name not used
* streamlined sensor name and entity id generation, removed unnecessary parameter
* fixed issue for entries without geometry data
* fixed tests after code changes
* simplified code
* simplified code; removed unnecessary imports
* fixed invalid variable name
* shorter sensor name and in turn entity id
* increasing test coverage for previously untested code
* fixed indentation and variable usage
* simplified test code
* merged two similar tests
* fixed an issue if no data could be fetched from external service; added test case for this case
* Add support for multi-entity recent fetch of history. Add graph component
* Rename graph to history_graph. Support fast fetch without current state.
* Address comments
With this optimization we can send a single UDP packet to the light rather
than one packet per zone (up to 80 packets for LIFX Z). This removes a
potential multi-second latency on the frontend color picker.
* MQTT Binary Sensor - Add availability_topic for online/offline status
Added topic, configurable payloads, and tests.
* Relocated state subscribe function
Moved state subscribe function to follow the state listener function.
* Add reload service
* add reload test
* Use global variable
* remove white space ....
* adjust as suggested
* remove annoying white space....
* fix travis
* fix travis, again
* rename Load_scripts to Discover_scripts
Travis complains that "Load_scripts" is an invalid name (I don't know why)
* Update python_script.py
This gets displayed when clicking on the binary sensors. It is
useful to distinguish different devices with the same name (e.g.
the room name) but different types.
The aiolifx 0.6.0 release fixes an issue where an effect color could
remain set after stopping the effect. This only affected multi-zone
lights (i.e. LIFX Z) and only if the effect was stopped by setting
the light brightness or the color (but not both).
The aiolifx 0.6.0 release also defaults end_index to start_index+7,
so we can remove that argument.
Finally, aiolifx_effects 0.1.2 adds support for aiolifx 0.6.0.
* renamed add_devices to async_add_devices according to hass naming scheme
* replaced some occurencies of async_add_entites to async_add_devices
* fixed unit test
* fixed unit test
* Bump Axis requirement to v10
Fix issues related to non JSON serializable items and recorder component (8297)
Add support to configure HTTP port (8403)
* Changed local port definition to CONF_PORT
* On request config is now sent to the camera platform as well, and in order better explain what is what the old internal config is now device_config and hass own config is the only one referenced as config
* Missed to add device_config to setup in discovered device
* Bump to V12 that has got a dependency fix
* Update requirements_all
* Add port configuration to automatically discovered devices
Allow setup to pass without Axis being configured in configuration.yaml
* Added satel_integra alarm panel and binary sensor platform
* Fixed several issues after review: import cleanup, reduced messaging levels to debug, other.
* Fixes after review: removed dead code, improved loop, sorted imports.
* Changes after review, not yet working
* Changes after review - wrapped async code, killed ensure_future, moved async_load_platform into jobs
* Updated to latest AbodePy version. Added services and events. Added new device types. Added exclude, light, and polling config options.
* Disable the event service if polling is enabled.
* Addressed all CR's
* Removed duplicated super call.
* Name config option now used. Removed deprecated DEFAULT_NAME.
* Modified partial to move event to first param.
* Configuration parameter "host" introduced. Will skip the discovery of the host.
* Provide a proper default port. Log message reformatted.
* PyXiaomiGateway version bumped: The new feature was introduced with v0.4.0.
* requirements_all.txt updated.
* Native default for config parameter used.
* Load WebComponent polyfill on header.
On Chrome 53, `document.registerElement` exists but `window.customElements` does not exist.
Fix for Tencent X5 browser on Android(Chrome 53 based).
* Move the block just before app panel loading.
Remove async for new script block.
The DTE Energy Bridge seems to return the current energy
usage randomly in either W or kW. The only way to tell the difference
is if there is a decimal or not in the result.
Also added some tests.
* Basic MQTT vacuum support
* PR feedback
* Support for fan_speed and send_command services
* Fix configurable topics
* Use configurable bools for cleaning/docked/stopped state
* Fix language in docstring
* PR feedback
* Remove duplicate vacuum/state topic defaults
* Fix incorrect template for docked value
* Move direction like default mqtt platfom/components
* fix None on templates
* fix tests
* fix int
* fix tests
* ready to merge
* rename xiaomi to xiaomi_aqara
* rename xiaomi vacuum and xiaomi phillips light to xiaomi miio
* update discovery and tests
* style
* update discovery and tests
* Still use Philips as name
* - Enhanced manual alarm_control_panel config so that you can specify different pending time for different alarm state
* - Fixed demo alaram control panel
* - Updated configuration structure for state specific pending times
* - Addressed comment
* Address code review comments
* - Fixed failing tests
- Updated demo alarm component to use new per state pending_time setting
* - Removing previously added comment which might have caused build to fail?
* - moved "copy.deepcopy(config)" out of loop so config is only copied once
* add datetime and support for unpacksequence
add datetime to builtin and support for unpacksequence
a,b = (1,2)
for a,b in [(1,2),(3,4)]
* add test for python_script
* fix test
* restore previous test
restore previous tests, removed by mistake sorry...
* fix test
* Update test_python_script.py
* fix travis
* fix test
* Update test_python_script.py
* Add files via upload
* fix travis...
* Added basic Todoist support
Creating a new platform for Todoist - https://todoist.com
* Added more robust support for creating new custom projects.
This means you can now specify things such as 'all tasks due today', 'all tasks due this week', etc.
* Changed logging from warning to info.
* Added label and comment support.
* Added support for overdue tasks.
* Changed logging to info instead of warning; fixed labels.
* Added ability to filter projects by name.
* Rename 'extra_projects' to 'custom_projects'.
* Updated code to follow proper HASS style guidelines.
* Got new_task service running.
* Update .coveragerc.
* Remove old try-catch block.
This is left over from before we validated the inputs using the service schema.
* Updated to use PLATFORM_SCHEMA.
* Updated component to use Todoist API.
* Removed commented-out code.
This also removes functionality regarding finding out how many comments a task has.
This functionality may be added back in the future.
* Clarified TodoistProjectData, removed fetching comments.
* Fixed bug where projects were grabbing all tasks.
* Fixed bug where due dates were being ignored.
* Removed debug logging.
* Fixed linter errors.
* Fixed Todoist docstring to be in line with HASS' style rules.
* Organized imports.
* Fixed voluptuous schema.
* Moved ID lookups into .
* Moved ID lookups into setup_platform.
* Cleaned up setup_platform a bit.
* Cleaned up Todoist service calls.
* Changed debug logging level.
* Fixed issue with configuration not validating.
* Changed from storing the token to storing an API instance.
* Use dict instead of Project object.
* Updated to use list comprehension where possible.
* Fixed linter errors.
* Use constants instead of literals.
* Changed logging to use old-style string formatting.
* Removed unneeded caching.
* Added comments explaining 'magic' strings.
* Fixed bug where labels were always on the whitelist.
* Fixed linter error.
* Stopped checking whitelist length explicitly.
* Update tradfri.py
## 201709013: set_hex_color() seems not to work in pytradfri api - set_rgb_color() does
## -> changed function set_hex_color() to set_rgb_color()
## tested w. IKEA tradfri GW and zigbee rgb PWM module (dresden elektronik FLS-PP lp)
* Update tradfri.py
Setup:
Home Assistant 0.53.0
pytradfri 2.2
IKEA tradfri gateway fw 1.1.0015
zigbee rgb PWM module (dresden elektronik FLS-PP lp)
Issue:
pytradfri's set_hex_color() does not work for arbitrary colors with the current IKEA tradfri gateway. Only setting rgb hex values (param 5706) of some predefined colors has the desired effect. Others will fall back to one predefined value. I assume, the GW doesn't allow for values deviating from the predefined values.
However, pytradfri's set_rgb_color() does also work for arbitrary colors. Latest pytradfri (2.2/PR51?) will convert rgb to xy and send xy thru the GW (param 5709 and 5710).
-> changed the function used from set_hex_color() to set_rgb_color() in HA's component\light\tradfri
Result:
Full RGB support with arbitrary colors with my setup.
Unfortunately I cannot test tradfri GW with other bulbs (no have hue/lightify bulbs).
___
Predefined colors from <https://github.com/ggravlingen/pytradfri/pull/51>:
this.f3891b = new HashMap();
this.f3891b.put("f5faf6", new C1386c(0.3804d, 0.3804d, "f5faf6", 0.54d));
this.f3891b.put("f1e0b5", new C1386c(0.4599d, 0.4106d, "CCT_LIGHT_NEUTRAL", 0.61d));
this.f3891b.put("efd275", new C1386c(0.5056d, 0.4152d, "efd275", 0.66d));
this.f3891b.put("dcf0f8", new C1386c(0.3221d, 0.3317d, "dcf0f8", 0.45d));
this.f3891b.put("eaf6fb", new C1386c(0.3451d, 0.3451d, "eaf6fb", 0.48d));
this.f3891b.put("f5faf6", new C1386c(0.3804d, 0.3804d, "f5faf6", 0.54d));
this.f3891b.put("f2eccf", new C1386c(0.4369d, 0.4041d, "f2eccf", 0.59d));
this.f3891b.put("CCT_LIGHT_NEUTRAL", new C1386c(0.4599d, 0.4106d, "CCT_LIGHT_NEUTRAL", 0.61d));
this.f3891b.put("efd275", new C1386c(0.5056d, 0.4152d, "efd275", 0.66d));
this.f3891b.put("ebb63e", new C1386c(0.5516d, 0.4075d, "ebb63e", 0.68d));
this.f3891b.put("e78834", new C1386c(0.58d, 0.38d, "e78834", 0.69d));
this.f3891b.put("e57345", new C1386c(0.58d, 0.35d, "e57345", 0.67d));
this.f3891b.put("da5d41", new C1386c(0.62d, 0.34d, "da5d41", 0.7d));
this.f3891b.put("dc4b31", new C1386c(0.66d, 0.32d, "dc4b31", 0.73d));
this.f3891b.put("e491af", new C1386c(0.5d, 0.28d, "e491af", 0.57d));
this.f3891b.put("e8bedd", new C1386c(0.45d, 0.28d, "e8bedd", 0.53d));
this.f3891b.put("d9337c", new C1386c(0.5d, 0.24d, "d9337c", 0.55d));
this.f3891b.put("c984bb", new C1386c(0.34d, 0.19d, "c984bb", 0.38d));
this.f3891b.put("8f2686", new C1386c(0.31d, 0.12d, "8f2686", 0.33d));
this.f3891b.put("4a418a", new C1386c(0.17d, 0.05d, "4a418a", 0.18d));
this.f3891b.put("6c83ba", new C1386c(0.2d, 0.1d, "6c83ba", 0.22d));
this.f3891b.put("a9d62b", new C1386c(0.4099999964237213d, 0.5099999904632568d, "a9d62b", 0.654d));
this.f3891b.put("d6e44b", new C1386c(0.44999998807907104d, 0.4699999988079071d, "d6e44b", 0.65d));
* Add LANG to environment variables
Some componentes, e.g. tradfri, will not work properly unless LANG is an UTF-8 environment.
* Set LC_CTYPE to UTF-8
There's a kind of duplication of functionality between NetDisco and
"xiaomi" component, the latter features its own "discovery" in addition
to general HomeAssistant discovery service, based on NetDisco. As such,
this patch is pretty simple: the only purpose of NetDisco discovery
is "plug and play", "zero configuration" discovery that Xiaomi Gateway
device is present on the local network, and triggering of "xiaomi"
component loading, which then "rediscovers" the gateway using its own
method.
* Allow multiple observations of same entity
Why:
* There may be different probabilities for multiple states of the same
entity.
This change addresses the need by:
* Keeping a list of observations for each entity to check on each state
change of the given entity.
* Adding a numeric id to each observation so that they can be
effectively added and removed from `self.current_obs`.
* Adding a test to confirm functionality.
* fix overzealous indenting
* Added support to enable/disable motion detection for foscam cameras. This support was added in 0.48.1 as a generic service for cameras. Motion detection can be enabled/disabled for foscam cameras with this code-set.
* Fixed the violation identified by hound-bot
* Fixed the comment posted by HoundCI-Bot regarding using imperative mood statement for pydocstyle
* Fixed the error that travis-ci bot found.
* As per comment from @balloob, Instead of directly using the URL to talk to foscam, used a 3rd party foscam library to communicate with it. This library already has support to enable/disable motion detection and also APIs to change the motion detection schedule etc. Need to add more support in the pyfoscam 3rd party library for checking if motion was detected or even if sound was detected. Once that is done, we can add that into HASS as well.
* Lint
* Removed the requests library import which is not used anymore
* Updating requirements_all.txt based on the code-base of home assistant that i have. Generated using the gen_requirements_all.py script
* Updating requirements_all.txt and requirements_test_all.txt generated by gen_requirements_all.py after latest pull from origin/dev
* Updated requirements_all.txt with script
* Updated the foscam camera code to fix lint errors
* Fixed houndci violation
* Updating the foscam library dependency/requirements.
* Fixing the requirements_all file. Somehow when i generated, it generated duplicate entry for the same dependency
Follow [Twitter's guidance](https://dev.twitter.com/rest/reference/post/media/upload-finalize) for media uploads: "If and (only if) the response of the FINALIZE command contains a processing_info field, it may also be necessary to use a STATUS command and wait for it to return success before proceeding to Tweet creation."
* Added support to enable/disable motion detection for foscam cameras. This support was added in 0.48.1 as a generic service for cameras. Motion detection can be enabled/disabled for foscam cameras with this code-set.
* Fixed the violation identified by hound-bot
* Fixed the comment posted by HoundCI-Bot regarding using imperative mood statement for pydocstyle
* Fixed the error that travis-ci bot found.
* As per comment from @balloob, Instead of directly using the URL to talk to foscam, used a 3rd party foscam library to communicate with it. This library already has support to enable/disable motion detection and also APIs to change the motion detection schedule etc. Need to add more support in the pyfoscam 3rd party library for checking if motion was detected or even if sound was detected. Once that is done, we can add that into HASS as well.
* Lint
* Removed the requests library import which is not used anymore
* Updating requirements_all.txt based on the code-base of home assistant that i have. Generated using the gen_requirements_all.py script
* Updating requirements_all.txt and requirements_test_all.txt generated by gen_requirements_all.py after latest pull from origin/dev
* Updated requirements_all.txt with script
* Updated the foscam camera code to fix lint errors
* Fixed houndci violation
* Updating the foscam library dependency/requirements.
* Fixing the requirements_all file. Somehow when i generated, it generated duplicate entry for the same dependency
Follow [Twitter's guidance](https://dev.twitter.com/rest/reference/post/media/upload-finalize) for media uploads: "If and (only if) the response of the FINALIZE command contains a processing_info field, it may also be necessary to use a STATUS command and wait for it to return success before proceeding to Tweet creation."
owntracks (tested on ios version 9.6.3/de_DE) publishes single waypoints under the topic owntracks/<user>/<device>/waypoint (singular).
owntrack publishes a waypoint export (publish) under the topic owntracks/<user>/<device>/waypoints (plural).
the owntracks component did not catch my waypoint export to mqtt, only single waypoint updates (i.e. after editing a waypoint or creating a new one). these single waypoints were rejected „because of missing or malformatted data“. when i changed the WAYPOINT_TOPIC to 'owntracks/{}/{}/waypoints', owntracks imported my published waypoint list, after i triggered it under Setting / Publish Waypoints.
* Added mqtt_statestream component
* Added tests for mqtt_statestream component
* mqtt_statestream: add test for valid new_state
* mqtt_statestream: Don't set initialized state
* mqtt_statestream: Switch to using async_track_state_change
* Cleanup
* Add HTTP Basic auth to RESTful Switch
* Remove redundant hass passing
* Initialize to current state
The state used to be None until the first periodic poll.
This commit refactors async_update so it can be used during setup as well,
allowing the state to start out with the correct value.
* Refactor turn_on/turn_off device communication
* Remove lint
* Fix Travis errors
* Adds the AirVisual air quality sensor platform
* Updated .coveragerc
* Removed some un-needed code
* Adding strangely-necessary pylint disable
* Removing a Python3.5-specific dict combiner method
* Restarting stuck coverage test
* Added units to AQI sensor (to get nice graph)
* Making collaborator-requested changes
* Removing unnecessary parameter from data object
* Adds the AirVisual air quality sensor platform
* Updated .coveragerc
* Removed some un-needed code
* Adding strangely-necessary pylint disable
* Removing a Python3.5-specific dict combiner method
* Restarting stuck coverage test
* Added units to AQI sensor (to get nice graph)
* Making collaborator-requested changes
* Removing unnecessary parameter from data object
* First draft of XKNX module for Home-Assistant
* XKNX does now take path of xknx.yaml as parameter
* small fix, telegram_received_callback has different signature
* changed method of registering callbacks of devices
* removed non async command lines from xknx
* telegram_received_cb not needed within HASS module
* updated requirements
* Configuration if XKNX should connect via Routing or Tunneling
* bumping version to 0.6.1
* small fix within xknx plugin
* bumped version
* XKNX-Switches are now BinarySensors and Logic from Sensor was moved to BinarySensor
* renamed Outlet to Switch
* pylint
* configuration of KNX lights via HASS config, yay!
* changed name of attribute
* Added configuration for xknx to switch component
* added support for sensors within hass configuration
* added support for climate within hass configuration
* Thermostat -> Climate
* added configuration support for binary_sensors
* renamed Shutter to Cover
* added configuration support for cover
* restructured file structure according to HASS requirements
* pylint
* pylint
* pylint
* pylint
* pylint
* pylint
* updated version
* pylint
* pylint
* pylint
* added setpoint support for climate devices
* devices are now in a different module
* more asyncio :-)
* pydocstyle
* pydocstyle
* added actions to binary_sensor
* allow more than one automation
* readded requirement
* Modifications suggested by hound
* Modifications suggested by hound
* Modifications suggested by hound
* Modifications suggested by hound
* xknx now imported as local import
* hound *sigh*
* lint
* 'fixed' coverage.
* next try for getting gen_requirements_all.py working
* removed blank line
* XKNX 0.7.1 with logging functionality, replaced some print() calls with _LOGGER
* updated requirements_all.txt
* Fixes issue https://github.com/XKNX/xknx/issues/51
* https://github.com/XKNX/xknx/issues/52 added raw access to KNX bus from HASS component.
* bumped version - 0.7.3 contains some bugfixes
* bumped version - 0.7.3 contains some bugfixes
* setting setpoint within climate device has to be async
* bumped version to 0.7.4
* bumped version
* https://github.com/XKNX/xknx/issues/48 Adding HVAC support.
* pylint suggestions
* Made target temperature and set point required attributes
* renamed value_type to type within sensor configuration
* Issue https://github.com/XKNX/xknx/issues/52 : added filter functionality for not flooding the event bus.
* suggestions by pylint
* Added notify support for knx platform.
* logging error if discovery_info is None.
* review suggestions by @armills
* line too long
* Using discovery_info to notifiy component which devices should be added.
* moved XKNX automation to main level.
* renamed xknx component to knx.
* reverted change within .coveragerc
* changed dependency
* updated docstrings.
* updated version of xknx within requirements_all.txt
* moved requirement to correct position
* renamed configuration attribute
* added @callback-decorator and async_prefix.
* added @callback decorator and async_ prefix to register_callbacks functions
* fixed typo
* pylint suggestions
* added angle position and invert_position and invert_angle to cover.knx
* typo
* bumped version within requirements_all.txt
* bumped version
* Added support for HVAC controller status
* Optionally disable ssl certificate validity check.
* Fix lines too long.
* Fix formatting.
* Force build CI
* Fix "Method could be a function (no-self-use)"
* Tado Fix#8606
Handle case where 'mode' and 'fanSpeed' are missing JSON. Based on
changes in commit
adfb608f86
* Expose hue group 0 to HA #8652
If allow_hue_groups is set expose "All Hue Lights" group for "special
group 0". This does add an additional Hue API call for every refresh
(approx 30 secs) to get the status of the special group 0 because it's
not included in the full API pull that currently occurs.
* Revert "Expose hue group 0 to HA #8652"
This reverts commit db7fe47ec72a4907f8a59ebfb47bc4a6dfa41e89.
* Expose hue group 0 to HA #8652
If allow_hue_groups is set expose "All Hue Lights" group for "special
group 0". This does add an additional Hue API call for every refresh
(approx 30 secs) to get the status of the special group 0 because it's
not included in the full API pull that currently occurs.
* Changes per review by balloob
1) Use all_lights instead of all_lamps
2) Fix line lengths and trailing whitespace
3) Move "All Hue Lights" to GROUP_NAME_ALL_HUE_LIGHTS constant
* Make "All Hue Lights" a constant
* Fix trailing whitespace
This fixes an issue (#8554) whereby the Honeywell thermostats stopped
working after a period of hours or days. We do this by forgetting the
authorisation token that was sent back to us when we first logged in,
which causes the underlying evohomeclient library to perform the full
login procedure again.
* Bumping pythonegardia package requirement up to .18
* Updating requirements_all to reflect updated pythonegardia package .18
* Catching up with reality and updating egardia.py
Requirements_all reflects updated package requirement for python-egardia of 1.0.20
Otherwise, known services are logged, ignored are logged, but unknown -
not. Logging them is quite helpful for someone working on adding new
discovery service to NetDisco/HA, and would help to decouple NetDisco
library further: another project may use a generic NetDisco library,
and contribute new service to it, which won't be automatically supported
by HA. But logging about it would be a good hint to HA users that they
can look into supporting it.
* flux: fix for when stop_time is after midnight
* flux: fix imports
* flux: add missing check when now is after midnight
* flux: one more try; should fix all use cases now
* flux switch: fix lint
* flux switch: add new tests
* flux switch: fix tests lint
* flux switch: fix tests docstrings
* Adding ZWave CentralScene activation handler.
* Migrated CentralScene logic to node_entity.py
Removed extraneous logging
Modified scene_activated event to send the scene_id and scene_data separately
* Adding unit test for ZWave central scene activation
* Removed return to allow node statistics to update after central scene message is received
* Added configurable timeout for receiver HTTP requests | Additional AVR-X detection based on CommApiVers | Treat Marantz SR6007 - SR6010 as AVR-X device
* timeout value not passed correctly
* [light.tradfri] Support for pytradfri version supporting full white spectrum
* [light.tradfri] Checkout pytradfri master
* Developer docker image adjusted
* [light.tradfri] pytradfri 2.2 support for white spectrum bulbs
* Removed fix already included in dev
* Style adjusted
* pylint false positive overriden
* Review remarks applied (#1)
* make pylint happy
* Review remarks
* Add Tank Utility sensor
* Fix, disable Pylint errors
* Move coverage omission to single platform section
* Do not catch unknown exceptions
* Check for invalid credentials in setup
* Update tank_utility.py
* - Fixes Fitbit error when trying to refresh oauth token
The 3rd python-fitbit module requires an extra kwarg on the FitBit
constructor called refresh_cb. The value should be a function that
accepts one argument token.
This value will be a dictionary with the keys:
'access_token', 'refresh_token', 'expires_at'
This implements a lambda refresh_cb as required by the Fitbit module
to work, however the new token will always be save manually on
every update() call.
* Simplified by calling expires_at instead reading again from dict
* fix not providing device for discovered directvs
This fixes a bug introduced at 6884965c80
Discovered directv boxes would not be instantiated with a DEVICE
parameter.
Signed-off-by: Nicholas Sielicki <sielicki@yandex.com>
* directv: add discovery of RVU clients
If discovery is used with directv, also try to further discover and
configure RVU client set-top boxes by requesting information from a REST
service running on the main directv box/RVU-server.
This commit also disables discovery if any directv configuration is
supplied by the user.
Signed-off-by: Nicholas Sielicki <sielicki@yandex.com>
* components/media_player/directv.py: use hass.data
Use hass.data instead of a global to remember state.
Signed-off-by: Nicholas Sielicki <sielicki@yandex.com>
* unconditionally import requests in directv.py
Requests is a core requirement, so we're okay to import at the top of
the file rather than conditionally / in a function.
Signed-off-by: Nicholas Sielicki <sielicki@yandex.com>
* Bayesian Binary Sensor
Why:
* It would be beneficial to leverage various sensor outputs in a
Bayesian manner in order to sense more complex events.
This change addresses the need by:
* `BayesianBinarySensor` class in
`./homeassistant/components/binary_sensor/bayesian.py`
* Tests in `./tests/components/binary_sensor/test_bayesian.py`
Caveats:
This is my first time in this code-base. I did try to follow conventions
that I was able to find, but I'm sure there will be some issues to
straighten out.
* minor cleanup
* Address reviewer's comments
This change addresses the need by:
* Removing `CONF_SENSOR_CLASS` and its usage in `get_deprecated`.
* Make probability update function a static method, and use single `_`
to match project conventions.
* Address linter failures
* fix `device_class` declaration
* Address Comments
Why:
* Not validating config schema enough.
* Not following common practices for async initialization.
* Naive implementation of Bayes' rule.
This change addresses the need by:
* Improving config validation for observations.
* Moving initialization logic into `async_added_to_hass`.
* Re-configuring Bayesian updates to allow true P|Q usage.
* address linting issues
* Improve DRYness by adding `_update_current_obs` method
* update doc strings and ensure functions are set up properly for async
* Make only 1 state change handle
* fix style
* fix style part 2
* fix lint
* Updated abodepy version to 0.7.1
* Refactored to use AbodeDevice. Added Abode Lock device.
* Added push updates to abode devices.
* Upgraded to 0.7.2 after finding issue with callbacks.
* Refactored to use AbodeDevice. Added Abode Lock device.
* Added push updates to abode devices.
* Upgraded to 0.7.2 after finding issue with callbacks.
* Bumped version to 0.8.2. Modified code to work with new constants and properties. Added cover and switch.
* Fixed hound violations.
* Updated to 0.8.3 to fix small bug with standby mode. Fixed comment in cover/abode.py.
* Fix lint issues
* Removed excessive logging. Moved device callback registration to async_added_to_hass. Moved abode controller from global into hass data.
* Removed explicit None from dict.get()
* Move device class into the constructor.
* Changed constant name to platforms.
* Changes as requested.
* Removing stray blank line.
* Added blank line of which I'm not sure how it was removed.
* Updated version to 0.9.0. Fixed motion sensor. Added power_switch_meter device type.
* Update abode.py
* fix lint
* Fix and optimize digitalloggers platform
* Fix line length
* Fix hanging indentation
* Add missing docstring
* Add period to end of docstring
* Add second blank line
* Prevent error when no forecast data was available
Prevent an Error when buienradar data was available, but no forecasted data was retrieved for the requested day.
* Update buienradar.py
* Update buienradar.py
- pyrainbird 0.0.9 allows the override (if ever needed) connection retry/sleep
- Forces state towards the Entity when switching the switches. Gives better UI experience.
* Prevent iCloud exceptions in logfile
With this change ValueError exceptions in the logfile caused by this component will disappear.
These errors are caused by the iCloud API returning an HTTP 450 error and the external lib throwing a ValueError because of it.
A PR has been raised against the external library, but that fix did not yet make it into a new version of the library. This will catch the exception in the mean time.... https://github.com/picklepete/pyicloud/pull/138
* Align log messages
While waiting for a new pyfoscam release, we can fix this for users
just by changing the import. Foscam devices a pretty widely deployed,
so a regression here is definitely no fun.
Fixes Bug #8940
* Prevent iCloud exceptions in logfile
With this change ValueError exceptions in the logfile caused by this component will disappear.
These errors are caused by the iCloud API returning an HTTP 450 error and the external lib throwing a ValueError because of it.
A PR has been raised against the external library, but that fix did not yet make it into a new version of the library. This will catch the exception in the mean time.... https://github.com/picklepete/pyicloud/pull/138
* Align log messages
* Mysensors nodes can be renamed in the config file
* Replace nodes array with dict. Replace whole name of the node.
* Improved iteration on node names
While waiting for a new pyfoscam release, we can fix this for users
just by changing the import. Foscam devices a pretty widely deployed,
so a regression here is definitely no fun.
Fixes Bug #8940
* Refactor mysensors callback and add validation
* Add mysensors entity class. The mysensors entity class inherits from
a more general mysensors device class.
* Extract mysensors name function.
* Add setup_mysensors_platform for mysensors platforms.
* Add mysensors const schemas.
* Update mysensors callback and add child validation.
* Remove gateway wrapper class.
* Add better logging for mysensors callback.
* Add discover_persistent_devices function.
* Remove discovery in mysensors component setup.
* Clean up gateway storage in hass.data.
* Update all mysensors platforms.
* Add repr for MySensorsNotificationDevice.
* Fix bug in mysensors climate target temperatures.
* Clean up platforms. Child validation simplifies assumptions in
platforms.
* Remove not needed try except statements. All messages are validated
already in pymysensors.
* Clean up logging.
* Add timer debug logging if callback is slow.
* Upgrade pymysensors to 0.11.0.
* Make dispatch callback async
* Pass tuple device_args and optional add_devices
* Also return new_devices as list instead of dictionary.
* Adds support for the Xiaomi Philips LED Ball and Ceiling Lamp
* Documentation url updated.
* New component to .coveragerc added.
* Unused import removed.
* translate labeled as static method.
* Mixed parameters in log message fixed.
* Order of requirements_all.txt fixed.
* Plattform updated. It's async now.
* Simplifiable if-statement fixed.
* Some more clean-up of unneeded stuff.
* Platform schema updated.
* Component is called xiaomi_philipslight now.
* Requirements all updated.
* Initialization of some variables updated.
* Raise PlatformNotReady exception if light cannot be discovered.
* Import of math removed.
Missing space added.
* Remove unnecessary updates
* Refactor mysensors callback and add validation
* Add mysensors entity class. The mysensors entity class inherits from
a more general mysensors device class.
* Extract mysensors name function.
* Add setup_mysensors_platform for mysensors platforms.
* Add mysensors const schemas.
* Update mysensors callback and add child validation.
* Remove gateway wrapper class.
* Add better logging for mysensors callback.
* Add discover_persistent_devices function.
* Remove discovery in mysensors component setup.
* Clean up gateway storage in hass.data.
* Update all mysensors platforms.
* Add repr for MySensorsNotificationDevice.
* Fix bug in mysensors climate target temperatures.
* Clean up platforms. Child validation simplifies assumptions in
platforms.
* Remove not needed try except statements. All messages are validated
already in pymysensors.
* Clean up logging.
* Add timer debug logging if callback is slow.
* Upgrade pymysensors to 0.11.0.
* Make dispatch callback async
* Pass tuple device_args and optional add_devices
* Also return new_devices as list instead of dictionary.
* Emulate set_current_position in cover.template
* Add opportunistic mode
* Prevent another move when cover is already moving. Add tests for opotunistic/timed-delay mode
* Remove timed-move capabilities
* Set init state to unknown
* cleanup template
* Update test_template.py
* Simplisafe unknown status fix
Changed simplisafe-python requirement to 1.0.5 and changed state return
case statements to lower case
* Bump requirements_all.txt
* cast strings to integers for hsv_to_rgb conversion, fixes#6473
* remove type_checking, flake8 does not like that.
* use hsv_to_rgb to convert to correct rgb value
* Support changing the bulb color for tplink smartbulbs, related to #8766
* existence of ATTR_RGB_COLOR in kwargs, not just its existence...
* return modified supported features
* rgb-hsv conversion utils from hass return bogus values (at least for this device), so doing conversions directly with colorsys
* add typing & documentation for color model conversions
* make linters happy
* cast hsv to integer before passing it to the backend library
* make sure the bulb is on before adjusting the other settings
* allow floats as inputs for conversions, return always integers
* use typing hint in the parameter list instead of at assignment
* do not assign local color state inside turn_on, but let update handle doing it
* use forward declaration for typing, fixes travis requirements build hopefully
* rename hsv and rgb
* remove type-checking check, forward declarations should work just fine without it
* disable (broken) pylint warnings, these can be removed after astroid is updated from 1.4.9 to 1.5
* Pilight switch: restore last state after restart
This uses the restore_state helper to set the last known state to
pilight switches when the devices are initialized after a HA
restart.
Without this HA forget the state on every restart and needs to be told
the sttae by retoggling the switches. This can cause unwanted effects
as a switch toggling may emit an RF signal.
* Make hound happy
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Remove entity_id generation as requested in review.
* Make hound happy again.
* fix comments
* fix lint
* Add support for offset for the workday sensor
* Update tests for workday sensor
* Changed from 'offset' to 'days_offset'
* Attributes bugfix (dictionary key variable repeated with different values)
* Add support for Prowl notifications.
* Use HA session handler.
* Simplify http request logic.
* flake
* fix double fetch data
* Remove periods from log messages
* Get full multizone state during registration
We used to rely on the periodic update to get the state of each zone, only
establishing the number of zones during registration. This resulted in errors
if the current state was needed for a partial color change before the first
async_update happened.
Now we do a full update before adding the light. Thus async_update can no
longer assume device.color_zones to be defined and must instead use the
response message to decide the total number of zones.
* Insist on getting the initial state
If a response to the initial state query is lost we used to just carry on.
This resulted in type errors when we next tried to access the undefined state.
After this commit the light is not added before we have the full state.
This scenario mostly happens when something is misbehaving and the type errors
were actually useful in figuring out what happend. So an error message is
logged in their place.
* Remove lint
* Update fitbit.py
Add variable icon for battery status, clean up formatting for resource
names and values
* Update fitbit.py and requirements_all.txt
Fix PR comments and update client
* Update fitbit.py
Add dict map for battery levels and use icon util
* Update ios.py
Clean up battery and charging icons (MDI was missing some versions),
fix minor bug when battery level = 95%
* Update ios.py
Migrated function to battery icon util
* Inital USPS Camera expansion
* Cleanup debugging, add camera change interval
* Change to local nomail image
* Explicitly pass in date
* Move camera date info to model property
* Fix copy typo
* Fix hound line-length
* Fix lint whitespace
* Fix requirements
* Bump myusps version, clarify interval, alter update scheme
* Add units
* Code cleanup, address comments
* Use built-in scan interval, remove nomail image
* Remove logging line
* Add HipChat notify service.
* Change HipChat notify service to use python-simple-hipchat-v2.
* Change HipChat notify service to use hipnotify
* Change HipChat notify service to remove redundant validation
* Update to pyenvisalink 2.2, and remove range validation on zonedump interval.
* Keep using default timer dump variable, only remove minimum check.
* Fix lint issue
* Indentation issue
* Add support for Automatic OAuth2 authentication
* Fix async conversion of configurator
* Rename method for async
* Use hass.components to get configurator component
* Fix typo
* Move session data to hidden directory
* Make configurator callback optional
* Fixed cert_expiry sensor to delay firing on HA startup
* Addressed Travis complaints
* Added imports
* Fixed cert_expiry sensor to delay firing on HA startup
* Changed comment
* Added possibilities to use template in the command_line sensor
* Minor style guideline conforms
* Minor style guideline conforms
* Added new test for template rendering
* Minor style guideline conforms
* Minor style guideline conforms
* Fixed failing testcases
* Fix style violations
* fix code pretty
* Add new device tracker for Huawei Routers.
This was tested with the HG8247H model, used by Vodafone
Portugal for the Fiber service.
* add to .coveragerc; remove import and space
* add comments and fix lint
* rename methods
* huawei_router: add constants to scanner class
* huawei_router: remove lock; use format() in string
* huawei_router: use tupple instead of member only class
* huawei_router: reduce min scan time
* huawei_router: lint
* huawei_router: lint
* huawei_router: add missing lines in imports
* huawei_router: correctly decode string after router firmware update
* Remove things that is done on core now
* LIFX: improve performance of multi-light transitions
To avoid hub overload, the light.turn_on call will change each light
sequentially.
As LIFX has no hub we can safely increase performance by starting all
light transitions concurrently.
* Improve state updates after light changes
The light.turn_on call will set a new state and then immediately read it
back. However, reading the state of a LIFX light right after a state
change can still return the old value.
To handle this situation we have previously delayed the update request a
little while to allow a potential state change to settle. Because light
updates are now run in parallel, this delay might be too short when many
lights are set at once.
This commit introduces a per-light Lock to make it explicit when the
state cannot yet be trusted.
We must then do the state update ourselves. This was already done at the
end of a long transition and that code can be reused for also doing the
update at the start of a transition.
* Add RainMachine switch platform
* Updated requirements_all.txt
* Cleaning up CI and coverage results
* Small update to deal with older pylint
* Fixed small indentation-based error
* Added some more defensive try/except logic around calls
* I'm not a fan of importing a library multiple times :)
* Making PR-requested changes
* Fixed ref to positional parameter
* Attempting to fix broken linting
* Ignoring no-value-for-parameter pylint error
* Implement Roomba fanspeed
* Fix: fan_speed_list is always empty
* Log instead of raising an exception when incorrect fan speed has been provided
* Don't attempt to set any preference if fan speed is invalid
* Initial implementation of Asterisk Mailbox
* Rework asterisk_mbox handler to avoid using the hass.data hash. Fix requirements.
* Handle potential asterisk server disconnect. bump asterisk_mbox requirement to 0.4.0
* Use async method for mp3 fetch from server
* Add http as dependency
* Minor log fix. try to force Travis to rebuild
* Updates based on review
* Fix error handling as per review
* Fix error handling as per review
* Refactor voicemail into mailbox component
* Hide mailbox component from front page
* Add demo for mailbox
* Add tests for mailbox
* Remove asterisk_mbox sensor and replace with a generic mailbox sensor
* Fix linting errors
* Remove mailbox sensor. Remove demo.mp3. Split entity from platform object.
* Update mailbox test
* Update mailbox test
* Use events to indicate state change rather than entity last-updated
* Make mailbox platform calls async. Fix other review concerns
* Rewrite mailbox tests to live at root level and be async. Fixmailbox dependency on http
* Only store number of messages not content in mailbox entity
* Add new service `clean_spot` to vacuums
- Add as base component service, with associated support flag to make it optional
- Implement on Demo vacuum
- Implement on Xiaomi vacuum
- Update tests for platforms Demo and Xiaomi
- Change default icon for vacuums to `mdi:roomba`, but keep the one for the Xiaomi
- (In a polymer PR: add new service to command toolbar in the 'more-info' card)
* Add `clean_spot` service description
* fix default properties for vacuum component
* Do not use pychromecast.Chromecast for Cast Groups
pychromecast.Chromecast creates Chromecast instance with friendly_name and cast_type of the device and not of a group.
Which leads to collisions
* Update cast.py
* using hass.data
* Fixed and extended tests
* Line length in tests
* Lint in tests
* Added support for Egardia / Woonveilig alarm control panel
* Added support for Egardia / Woonveilig alarm control panel
* Added support for Egardia / Woonveilig alarms
* Updating egardia support with exception handling and other fixes
* Egardia platform, requirements file updated
* Fixing state checking
* Adding exception handling
* Removing unnecessary logging
* Removing unnecessary logging
* Updating to egardiadevice component 1.0.10
* Improving exception handling
* Adding implementation of egardiaserver for alarm triggered status
* Clean-up
* Fix my previous change
* Fix tests for Demo vacuum platform (and increase coverage)
* increase coverage of xiaomi vacuum tests and include in coverage
Also little fixes
* remove print statement
* Add DEBUG-level log for db row to native object conversion
This is now the bottleneck (by a large margin) for big history queries, so I'm leaving this log feature in to help diagnose users with a slow history page
* Rewrite of the "first synthetic datapoint" query for multiple entities
The old method was written in a manner that prevented an index from being used in the inner-most GROUP BY statement, causing massive performance issues especially when querying for a large time period.
The new query does have one material change that will cause it to return different results than before: instead of using max(state_id) to get the latest entry, we now get the max(last_updated). This is more appropriate (primary key should not be assumed to be in order of event firing) and allows an index to be used on the inner-most query. I added another JOIN layer to account for cases where there are two entries on the exact same `last_created` for a given entity. In this case we do use `state_id` as a tiebreaker.
For performance reasons the domain filters were also moved to the outermost query, as it's way more efficient to do it there than on the innermost query as before (due to indexing with GROUP BY problems)
The result is a query that only needs to do a filesort on the final result set, which will only be as many rows as there are entities.
* Remove the ORDER BY entity_id when fetching states, and add logging
Having this ORDER BY in the query prevents it from using an index due to the range filter, so it has been removed.
We already do a `groupby` in the `states_to_json` method which accomplishes exactly what the ORDER BY in the query was trying to do anyway, so this change causes no functional difference.
Also added DEBUG-level logging to allow diagnosing a user's slow history page.
* Add DEBUG-level logging for the synthetic-first-datapoint query
For diagnosing a user's slow history page
* Missed a couple instances of `created` that should be `last_updated`
* Remove `entity_id` sorting from state_changes; match significant_update
This is the same change as 09b3498f410106881fc5e095c49a8d527fa89644 , but applied to the `state_changes_during_period` method which I missed before. This should give the same performance boost to the history sensor component!
* Bugfix in History query used for History Sensor
The date filter was using a different column for the upper and lower bounds. It would work, but it would be slow!
* Update Recorder purge script to use more appropriate columns
Two reasons: 1. the `created` column's meaning is fairly arbitrary and does not represent when an event or state change actually ocurred. It seems more correct to purge based on the event date than the time the database row was written.
2. The new columns are indexed, which will speed up this purge script by orders of magnitude
* Updating db model to match new query optimizations
A few things here: 1. New schema version with a new index and several removed indexes
2. A new method in the migration script to drop old indexes
3. Added an INFO-level log message when a new index will be added, as this can take quite some time on a Raspberry Pi
* Xiaomi vacuum as component with switch, sensors and services
- Conversion from switch platform to async component.
- Add services proposed in #8416 to the new component, with shorter names.
- Add sensors for the vacuum robot as a selectable list from `battery`, `state`, `error`, `fanspeed`, `clean_time` and `clean_area` (the state attributes of the switch). The sensors don't poll, but listen to a signal to update the state, the switch fires this signal when updating.
- Assign default icons to sensors and the switch (`mdi:google-circles-group` looks like the robot!)
* path change in requirements_all (from switch platform to component)
* copy pasting is a bad habit
* services to the components services.yaml, modify .coveragerc
* review: use with multiple hosts, fix calls to async_add_devices, fix ranges for services
* `icon_for_battery_level` util method
* Xiaomi vacuum as platform of new component vacuum
- Created new component `vacuum` from a ToggleEntity.
- Add services `turn_on`, `turn_off`, `cleaning_play_pause`, `stop`, `return_to_base`, `locate`, `set_fanspeed` and `send_command`.
- Remove the main switch for the xiaomi vacuum (the toggable main entity is the switch).
- Add `support flags` for the common services
- Assign default icons to sensors and the switch (`mdi:google-circles-group` looks like the robot!)
- Move services descriptions to a yaml file for the new component.
- Update requirements_all.
- Update coveragerc.
* fix coveragerc
* fix battery icon helper to use more icons
* remove sensors, create properties and support flags for custom UI
* cleaning
* updated state_attrs for filtering in UI, renamed platform to simply `xiaomi`
* fix platform rename
* change fanspeed and expose `fanspeed_list` to use speed steps
* minor fixes
- Rename service `start_pause`
- Add 'Error' attribute only if `got_error`.
- Minor changes
* rename state attrs
* rename state attrs
* review changes: cut fan__speed, style changes, remove logging, and more
* add ATTR_COMMAND = 'command' to const
* pop entity_id from service data
* remove property accessor for vacuum object
* lint fix
* fix extra attrs names
* module level functions for calling the services
* params as optional keyword for `send_command`
* params as optional keyword for `send_command`, remove debug logs
* explicit parameters for `set_fan_speed` and `send_command`
* Demo platform for the vacuum component
* vacuum tests for the Demo platform
* some fixes
* don't omit vacuum
* vacuum tests for the Xiaomi platform
* fix test
* fix
* fix xiaomi test
* fix coveragerc
* test send command
* fix coveragerc
* fix string formatting
* The coverage is to low. It need 93% or more
* Allow reporting some state attributes as tags to InfluxDB
Some state attributes should really be tags in InfluxDB. E.g.
it is helpful to be able to group by friendly_name, or add a custom
attribute like "location" and group by that. Graphs in Grafana are much
easier to read when friendly names are used, and not node ids.
This commit adds an optional setting to InfluxDB config:
'tags_attributes'. Any attribute on this list will be reported as tag
and not as field to InfluxDB.
* Allow overriding InfluxDB measurement for each reported item separately
Bundling all items with the same "unit of measurement" together does not
always makes sense. For example, both "relatively humidity" and "battery
level" are reported as "%", but I'd rather see them as separate
measurements in InfluxDB. This commit allows for 'influxdb_measurement'
attribute. When set on node, it will take precedence over the global
'override_measurement' and component-specific 'unit_of_measurement'.
* Minor updates to InfluxDB component improvements, as suggested by
@MartinHjelmare.
* Moved per-component config from 'customize' into 'influxdb'
configuration section. The following three sub-sections were added:
'component_config', 'component_config_domain' and
'component_config_glob'. The sole supported per-component attribute
at this point is 'override_measurement'.
* Lint
* Fixed mocked entity_ids in InfluxDB tests to be in domain.entity_id
format, to satisfy EntityValues requirements.
* Added tests for new InfluxDB configuration parameters
* Fixes to some docstrings
* Add mochad light component
This commit adds a new component to control x10 dimmers/lights with
mochad.
* Create comm_type and address constants
The comm_type and address conf constants are shared between all mochad
devices because they are required information used for configuring a
device. This commit moves the definition into const.py so they're
consistent between all component types.
* Add support for LaunchRequest alexa intent
* Support LaunchRequest for multiple skills
* formatting
* adding tests to cover launch request
* formatting
* flux_led: support for property "available"
* Implemented changes from code review
* Implemented changes from code review
* Implemented changes from code review
* Honeywell fixes and improvements
Give the Honeywell device a state ('On', 'Off', etc) that
can be displayed to user and understood by other components.
Previously this was always 'Unknown'. Update also raises a
state_changed event when a new temperature is polled.
These two together fix an issue (#8688) where Honeywell
climate data couldn't be logged in InfluxDB.
* Roll back some changes
These were not necessary to achieve the result I wanted.
* Renamed RoundThermostat's 'device' member for greater clarity
Now called 'client'
* Improve and simplify discovering thermostat mode
Per code review, this is a rather neater way to discover the thermostat mode
* Update tests for compatibility with new component
The tests previously relied upon the update() method being
called in the constructor. This is no longer the case.
* Address formatting review comment
Parens not necessary
* This system mode is not certain to apply to domestic hot water
Moved the mode lookup to only happen on update of radiator devices,
since hot water devices seem to be treated differently and I can't test.
* Allow sonos to select playlists as a source
Most of this was taken from
https://github.com/home-assistant/home-assistant/issues/5598#issuecomment-278229895
however I made a few small improvements so that it works for other
services than Spotify and it should properly switch to playing the queue
if you had another song playing previously.
/cc @PatBoud
* Attempt to fix style issues
* More indent changes
* Fix misplaced period
* Move playlist replacement to function
* Privatize replace_queue_with_playlist and explain
* Remove unneeded decorator
* Fix doc formatting
* Added support to enable/disable motion detection for foscam cameras. This support was added in 0.48.1 as a generic service for cameras. Motion detection can be enabled/disabled for foscam cameras with this code-set.
* Fixed the violation identified by hound-bot
* Fixed the comment posted by HoundCI-Bot regarding using imperative mood statement for pydocstyle
* Fixed the error that travis-ci bot found.
* As per comment from @balloob, Instead of directly using the URL to talk to foscam, used a 3rd party foscam library to communicate with it. This library already has support to enable/disable motion detection and also APIs to change the motion detection schedule etc. Need to add more support in the pyfoscam 3rd party library for checking if motion was detected or even if sound was detected. Once that is done, we can add that into HASS as well.
* Lint
* Removed the requests library import which is not used anymore
* Updating requirements_all.txt based on the code-base of home assistant that i have. Generated using the gen_requirements_all.py script
* Updating requirements_all.txt and requirements_test_all.txt generated by gen_requirements_all.py after latest pull from origin/dev
* Updated requirements_all.txt with script
* Updated the foscam camera code to fix lint errors
* Fixed houndci violation
* Clean up remote component
* Don't have device be required in send_command service and method.
* Don't have entity_id be required in the base service schema.
* Don't always add activity in the data dict for a service call.
* Update harmony remote platform according to new service schema.
* Remove not needed properties and attributes from the Kira remote
platform.
* Add send_command method to demo platform.
* Add tests and remove duplicate tests.
* Break out required argument as positional argument
* added invert_state optional parameter
* removed superfluous parens
* moved state inversion to the is_closed method
* added relay_invert feature
* fixed syntax to comply with houndci-bot rules
* changed state_invert to invert_state and relay_invert to invert_relay
* Add new component for TPLink light bulbs.
* Update with result of gen_requirements_all.
* Add new component light.tplink.
* Move I/O outside of properties as per https://goo.gl/Nvioub.
* Fixed issue with routers in bridge mode
- Router in brdige mode apparently don't report all of the stats
- Re-wrote the data_format function so it's a bit easier to follow and able to log keys that aren't supported by a router in a given mode
- Changed config so that it properly ignores conditions when not explicitly listed
- Added tests to check for the above and also to verify we log that a key doesn't exist rather than throwing an exception
* Mistakenly was calling MONITORED_CONDITIONS in data_format
- Changed to be the actual config values to prevent log error
* New media_player platform for Russound devices using the RIO protocol
Auto discovers zones and sources
Handles media metadata from sources that support it
asyncio implementation
Push updates for any zone or source changes so no polling required.
* Fixed up linting issues
* Addressing PR feedback
Updated russound_rio dependency to 0.1.3
Use enumerate_zones and enumerate_sources methods instead of doing it in
the platform.
Register callbacks in async_added_to_hass coroutine
Corrected behavior of async methods
DirectPy, the third party library used for controlling directv boxes,
has the ability to accept an ID in order to act as a remote for Genie
slaves instead of just the master directv box. This commit adds glue
such that one can configure home assistant to interface with these slave
genie boxes.
Signed-off-by: Nicholas Sielicki <sielicki@yandex.com>
* Add new component for TPLink light bulbs.
* Update with result of gen_requirements_all.
* Add new component light.tplink.
* Move I/O outside of properties as per https://goo.gl/Nvioub.
* Fixed issue with routers in bridge mode
- Router in brdige mode apparently don't report all of the stats
- Re-wrote the data_format function so it's a bit easier to follow and able to log keys that aren't supported by a router in a given mode
- Changed config so that it properly ignores conditions when not explicitly listed
- Added tests to check for the above and also to verify we log that a key doesn't exist rather than throwing an exception
* Mistakenly was calling MONITORED_CONDITIONS in data_format
- Changed to be the actual config values to prevent log error
* Update zwave.py to work with updated OpenZwave library
Update zwave.py to work with updated OpenZwave library
* Update zwave.py
* Update zwave.py
* Update to fix garage door openers
Update to fix garage door support for latest version of openzwavelib
* Update to cover.zwave list of states
Update to cover.zwave to provide list of states based on dev version of
openzwave lib
* Some values not saved
* Formatting fix
* Formatting fix
* Variable typo
* Formatting fix
* Formatting
* Variable Update
Variable Update and properties added
* Formatting fixes
* Formatting Fix
* Update test case for door states
* Formatting / Testing process fix
* Formatting
* Formatting / Test Fixes
* Variable rename
* Added members to CoverDevice
* Removed un-needed else
* Formatting
* Formatting
* Variable name changes and const updates
* Changed variable names to cover_state
* Added constains into const.py
* Updated to change the main state on the cover device
* Fixes
* Formatting fixes
* Formatting/Variables
* Formatting
* Variable fixes
* Import update
* Formatting / Variables
* Update test for new states
* Revert state changes
* Test fix
* Variable Fix
* Formatting
* Variable typo
* Missing constant
* Variable fix
* Requested changes
* Added is_opening
* Added is_closing
* Updated test based on changes
* Formatting
* Changed cover_state back to _state
* Formatting and variable fixes
* Test fixes
* Formatting and variable touchup
* Formatting
* Optimizations
* Add new cover features to demo
* Add tests for demo cover closing/opening
* Remove unused STATE_STOPPED
* Add tests for new zwave cover values
* Bugfix: remove superfluous domain filter
This filter is already applied later in the function by the `filters` object, where it is conditionally applied when appropriate. This fixes the problem where we get a domain filter even when searching for a single entity_id, which needlessly harms the query's performance.
* Performance: build different query when only getting single entity
When querying the history of a single entity, we can use an entirely different method for the "synthetic zero data point" by simply sorting by date and doing a LIMIT 1. This performs thousands of times better than the multi-entity query when the current recorder_run has been going for a while.
* Add entity_id filter to single-entity request
The entity_id filter was handled inside the `filters.apply` logic which is used in most cases, BUT didn't work when no `filters` was passed in to the method. Now it'll work even if no `filters` object is passed in.
* Fix linting errors in history.py
* Undo removal of domain filter
Putting back the domain filter that was removed in 76a6371705dcd57483e55dcc03435ae867c184d2 - there are use-cases where get_states is called without a filter object, so we need the domain filter to work in those cases as well.
* Fix truncated comment
* work on weather panel
* update yahooweather with more forecast details
* Update yweather to allow user input forecast date
* fix for houndci
* fix long line
* fix1
* Revert "work on weather panel"
This reverts commit 28b4972233de42617fb05df574de22743604edfd.
revert unintentional submodule change
* fix2
fix typo, add try catch to another int()
* fix pylint
* fix3
* fix4
* Update yweather.py
* Update yweather.py
* Remove global data construct
* Yahoo API support only 5 days forecast
* remove forecast
* fix lint
* fix lint p2
* Update yweather.py
* Manual alarm with MQTT control
* Duplicate manual control panel code instead of extending it
* Duplicate manual alarm test as well; modify for manual_mqtt
* Add MQTT-specific tests for manual_mqtt alarm
Back in "ubus: Refresh session on Access denied (#8111)" I added the
decorator _refresh_on_acccess_denied. Somehow that stopped multiple ubus
trackers from working in parallel, and only the one first init'ed
worked.
Changing the order of the decorators fixes the issue but, I'm sorry to
say I can't figure out why. There's some magic somewhere which I'm
missing.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Back in "ubus: Refresh session on Access denied (#8111)" I added the
decorator _refresh_on_acccess_denied. Somehow that stopped multiple ubus
trackers from working in parallel, and only the one first init'ed
worked.
Changing the order of the decorators fixes the issue but, I'm sorry to
say I can't figure out why. There's some magic somewhere which I'm
missing.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* Fix TP-Link device tracker regression since 0.49
This regression was introduced by #8322.
Fix is to utf encode the password like the other TP-Link backends do.
* Fix linting issue introduced in previous commit
Commit in question: 677f3fbb7f821ee925364c8260d235dce4f0ddbe
According to the documentation, the `value_template` for the REST
binary_sensor is not required. However, if you don't provide this when
setting up a binary sensor, the component fails. Looks like a variable
was not being set, which I've now included.
This should make the REST binary sensor act the same way as the REST
sensor now.
* make attributes in the fritzdect module easier to process
* remove spaces in attribute names
* move units to separate attributes
* make attributes in the fritzdect module easier to process
* remove spaces in attribute names
* move units to separate attributes
* Use new python formating syntax and attribute constant
* Shorten too long line
* Fix indent
* Add support for multiple ping utilities.
* Added support for differing flavours of ping included with
different distributions (specifically alpine linux for hassio's
homeassistant).
* Updated as per comments in PR
* Add intent component
* Add intent script component
* Add shopping list component
* Convert Snips to use intent component
* Convert Alexa to use intent component
* Lint
* Fix Alexa tests
* Update snips test
* Add intent support to conversation
* Add API to view shopping list contents
* Lint
* Fix demo test
* Lint
* lint
* Remove type from slot schema
* Add dependency to conversation
* Move intent to be a helper
* Fix conversation
* Clean up intent helper
* Fix Alexa
* Snips to use new hass.components
* Allow registering intents with conversation at any point in time
* Shopping list to register sentences
* Add HTTP endpoint to Conversation
* Add async action option to intent_script
* Update API.ai to use intents
* Cleanup Alexa
* Shopping list component to register built-in panel
* Rename shopping list intent to inlude Hass name
* The gateway configuration accepts a MAC address or a SID value in uppercase already.
The ringtone services accepts the same values now. I hope it will avoid confusion.
* Device support for the new wall switches with neutral lead (ctrl_ln1, ctrl_ln2) added.
* Measurement unit from pressure of weather.v1 fixed.
* Device support for sensor_magnet.aq2 added.
* Device support for sensor_motion.aq2 (motion and lux) added.
* Code reformatted.
* The ringtone service (start/stop) uses the parameter gw_mac instead of gw_sid now.
* Version of the required library updated.
* Enhance python_script to support "_getitem_"
In order to use dict / list structures in python scripts we need
_getitem_ allowed in the RestrictedPython environment. There is a
default_guarded_getitem included with RestrictedPython, which is a
pass through used in the Eval code paths.
* Add tests for dict/list support in python_scripts
* Lint
* Added a service to write to KNX group addressed including documentation
* Define parameters as required
* Reformating
* Moved service documentation to service.yaml
* Moved service documentation to services.yaml
* Update knx.py
* Upgrade the alarmdecoder dependency library from 0.12.1 to 0.12.3. Nutech software who owns this library have upgraded this library with some fixes regarding arming it to home/away and then disarming the alarm. Without this upgraded library, HASS is having a problem when we try to disarm an armed alarm after around 8 hours or so.
* Updated the requirements_all.txt by running the script gen_requirements_all.py
* Add support for different stream formats
* Encapsulate logic inside MediaExtractor class
* Add CONFIG_SCHEMA
* Fix for cases when youtube-dl returns content of playlist as list
* Some images are not supported by face_recognition, so this patch treats the error
messages instead throwing a traceback. Fixes#7867
* Makes lint happy
* Initial support for Google Wifi/OnHub
* Moved state logic to update function of API class
- Throttle added to update
- State logic implementation is cleaner
- Modified tests to work with the new throttle on update
* Return a 0 temperature value when none is found
It's well documented that these TRVs will only return the current temperature
for a short time after the actuator has moved. This means that, usually, they will
not return the current temperature. Setting a non-value here causes errors in the logs
and for the TRV to not show on the dashboard at all
* Fix lint issue
The citibykes API returns "null" as value for empty_slots on some
stations (see #8527). This causes the component to not process the data.
This is fixed by accepting None as valid data. The row in the frontend
is left empty if "null" was returned by the service.
fixes#8527
data may be None if twitter data property unconfigured:
File "/opt/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/notify/twitter.py", line 63, in send_message
media = data.get(ATTR_MEDIA)
* Fix TP-Link device tracker regression since 0.49
This regression was introduced by #8322.
Fix is to utf encode the password like the other TP-Link backends do.
* Fix linting issue introduced in previous commit
Commit in question: 677f3fbb7f821ee925364c8260d235dce4f0ddbe
* Make it available during state paused.
* Don't adjust for media_position_updated_at. I.e. do as vlc, sonos etc
so that returned position is the position at the time of
media_position_updated_at, not now.
* Make aiolifx modules easily available
* Use aiolifx features_map for deciding bulb features
Also move the feature detection out of Light so it is available even
during the initial detection.
* Move each LIFX light type to a separate class
* Simplify AwaitAioLIFX
This has become possible with recent aiolifx that calls the callback even
when a message is lost.
Now the wrapper can be used also before a Light is added though the register
callback then has to become a coroutine.
* Refactor send_color
* Add support for multizone
This lets lifx_set_state work on individual zones.
Also update to aiolifx_effects 0.1.1 that restores the state for individual
zones.
* Make it available during state paused.
* Don't adjust for media_position_updated_at. I.e. do as vlc, sonos etc
so that returned position is the position at the time of
media_position_updated_at, not now.
* Make aiolifx modules easily available
* Use aiolifx features_map for deciding bulb features
Also move the feature detection out of Light so it is available even
during the initial detection.
* Move each LIFX light type to a separate class
* Simplify AwaitAioLIFX
This has become possible with recent aiolifx that calls the callback even
when a message is lost.
Now the wrapper can be used also before a Light is added though the register
callback then has to become a coroutine.
* Refactor send_color
* Add support for multizone
This lets lifx_set_state work on individual zones.
Also update to aiolifx_effects 0.1.1 that restores the state for individual
zones.
* Use pip install --user if venv not active
* Set PYTHONUSERBASE to deps directory, when installing with --user
option.
* Reset --prefix option to workaround incompatability when installing
with --user option. This requires pip version 8.0.0 or greater.
* Require pip version 8.0.3.
* Do not delete deps directory on home assistant upgrade.
* Fix local lib mount and check package exist.
* Update and add tests
* Fix upgrade from before version 0.46
* Extract function to get user site
* Add function(s) to package util to get user site.
* Use async subprocess for one of the functions to get user site.
* Add function to package util to check if virtual environment is
active.
* Add and update tests.
* Update version for last removal of deps dir
* Address comments
* Rewrite package util tests with pytest
* Rewrite all existing unittest class based tests for package util as
test functions, and capitalize pytest fixtures.
* Add test for installing with target inside venv.
The default aiolifx timers are tuned for a network with few lost packets.
This means that lights can become "unavailable" from just a two second
dropout. An unavailable light is completely useless for HA until it is
rediscovered so this is an undesirable state to be in.
These tweaks make aiolifx try harder to get its messages through to the
bulbs, at the cost of some latency in detecting lights that actually are
unavailable.
* This change will enable the functionality for Arlo Q cameras. When we added the code to enable/disable motion detection, we assumed that base station will be present for all arlo type of cameras. But found recently that Arlo Q cameras does not have base station. So, removed the base_station dependency in the init code. Also added code in enable/disable motion detection code to first check if base station is detected by library. If base station is detected then it will use it to enable the motion detection. If not detected, even if service was called, it will not do anything. Enabling/disabling the motion detection for Arlo Q cameras have to added by someone who has that camera. I don't have the Arlo Q cameras.
* Fixed a typo in the code.
* Added support for temperature_offset and humidity_offset
Some DHT sensors require some offsets to work.
* Support for temperature and humidity offset
* Changed lines with 79 characters
* Moved const to dht.py from const.py
* Changed temperature_offset range
* Removed the const
const.py is at original state.
* Fixed continuation line under-indented
* Removed first round and added debug info
* Fix -1 value issue
Fixed issue where thermostat will sometimes return a current temperature or set temperature value of -1
* Update radiotherm.py
* Update radiotherm.py
* Update radiotherm.py
Added retry limit
* Update radiotherm.py
* Update radiotherm.py
* Refactored Amcrest to use central hub component
* Set default streaming source to snapshot
* Simplified code by using discovery platforms
* Makes lint happy
* Update authentication method to basic
* Fixed lint issues
* Makes Amcrest hub async
* Make Amcrest hub IO synchronous and disabled ffmpeg dependency on sensor/amcrest.
* Removed async to load component
* Organized import order
* Update amcrest.py
Prometheus (https://prometheus.io/) is an open source metric and alerting
system. This adds support for exporting some metrics to Prometheus, using
its Python client library.
bellows 0.3.0 changes the API to have both, renaming the attribute which used
to be for input clusters in the process.
This is in preparation for remotes.
* Allow notifications to include media, with Twitter as the first implementation. The Twitter notifier uses the Twitter-recommended async chunked media/upload approach and tries to convey the correct mime type of the media. Twitter implementation based on https://github.com/geduldig/TwitterAPI/blob/master/examples/upload_video.py.
* Changes based on balloob's review:
balloob: "Please remove this file. We fixed the issue in our tests that left this artifact."
balloob: "…prefer a guard clause"
balloob: "This is very inefficient. You are now generating up to 99 values."
balloob: "Since media_id is going to be None, why not just return None and you can remove the else."
* balloob: "Other notify platforms are using ATTR_DATA for it. That way if a platform requires extra metadata, we don't need to add extra fields. So please add it to Twitter via ATTR_DATA."
* New service `send_magic_packet` in new component `wake_on_lan`
* fix
* Unit tests for new component wake_on_lan
* Add wakeonlan to tests requirements
* remove wakeonlan from tests requirements and remake the component tests
* remove wakeonlan from tests requirements
* link domain and service names to component
* fix mocking in test_setup_component
* send_magic_packet as coroutine, better use of mock_calls in tests
* fix imports
* review changes
* better async calls
* Update test_wake_on_lan.py
This commit adds support for the set_operation_mode system call to the
generic thermostat component. This enables users to set whether the
thermostat is enabled or not by either setting it to auto or off.
* New component to connect to VELUX KLF 200 Interface
* Issue #8203: modifications as suggested by hound
* Issue #8203: added entries to .coveragerc
* moving velux/__init__p.y to velux.py
* Issue #8203: Using hass.data for storing global object, updated docstrings
* Issue #8203: validation of config, using standard approach for getting config values
* Issue #8203: Exception handling if connection to velux component fails
* Issue #8203: removed unused import
* Issue #8203: Some minor changes within docstrings
* Issue #8203: Some minor changes within docstrings
* Issue #8203: added dependency for pyvlx to requirements_all.txt
* Issue #8203: less broad exception
* Issue #8203: increased version
* Issue #8203: changed position of pyvlx within requirements_all.txt
* Issue #8203: bumped version of pyvlx to 0.1.3 (better handling of retries when token expires)
* reset pointer to home-assistant-polymer
* Issue #8203: modifications as suggested by fabaff
* hound *sigh*
* use upstream RachioPy, fix manual run switches
* Update requirements for PyPi version of rachiopy
* Use upstream RachioPy 0.1.2 (partial revert of 39c6484d89)
* Revert rachiopy downgrade
* First version of a LaMetrci platform with a Notify module
* Cleanup, fix formatting bugs
* More formatting
* Formatting
* Updated requirements
* formatting
* Formatting
* More formatting
* Dummy commit for new Travis CI run
* Refactoring class methods to instance methods
* Cleanup unused classed
* Removed Eddystone_weatherurl that had nothing to do with this component
* Cleanup class methods
* Cleanup requirements
* Removed broad excepts
Removed storage of LaMetric devices
* Removed unused import
* Use user-set device names for Linksys Smart Wi-Fi routers (3)
* Newline at end of linksys_smart.py
* Remove spaces in last line of linksys_smart.py
* Update linksys_smart.py
* 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
* UPnP mapping overlap
Addressing: https://community.home-assistant.io/t/upnp-new-module/20839
* removed whitespaces
Some devices don't seem to return the information properly when asked for
multiple attributes in one read. This separates out the reads if it didn't
work as expected the first time.
Because this data is cached in bellows, I don't expect any extra reads in
the "happy" case.
* Added support for TP-Link EAP 225
* code style changes
* more code style changes
* more understandable variable name
* Added support for TP-Link EAP 225
* code style changes
* more code style changes
* more understandable variable name
* Fix pylint issue (#8325)
* Added support for TP-Link EAP 225
* code style changes
* more code style changes
* more understandable variable name
* Added support for TP-Link EAP 225
* code style changes
* Update snips.py
* Get the list of wireless interfaces from nvram so tri-band routers
work
* ARP checks don't work reliably for ap mode so remove it, associated
list seems pretty solid
* Match on 'mac' instead of 'ip' since we can't use it for ap mode
* The `client_info_tmp` nvram reference, Asus removed it some time ago
* Update AsusWrtResult
* Fixed a bug where changing fan speed was not possible
* Bump pymodbus version to 1.3.1 to fix issue #8285
* Changed all modbus components so that they use CONF_SLAVE from const.py
* Fix checking result from a modbus transaction
* Add missing decorator
* Added modbus write coil service and added descriptions
* Removed a hiding debug print
* Add address-specific KNX listeners that fire events on the HASS bus
* Added docstring
1-byte messages will be converted from a list to the value
* Formating
* Try catch around database updates in recorder. Resolves 6919
* Fixing failed test for line length
* Catch only OperationalError and retry connections before giving up
* Including alchemy exceptions in single function
This applies what was the intended fix in #8336.
moves the fallback for setting client_id to the case when no mqtt config was provided at all. This should reflect the most common use case that fails.
This commit is a workaround and should be reverted when hbmqtt is fixed to allow empty client_id again.
* Initial commit - new CityBikes platform
* Several syntax fixes.
* Added imperial unit support.
* Added station list lenght validation.
* Style fixes.
* Updated requirements.
* Updated .coveragerc.
* Fixed style problems according to pylint output.
* Updated SCAN_INTERVAL value.
* Fixed station names.
Removed unnecessary calls to `slugify`.
Changed the base name to reflect the name of the bike sharing
network, instead of the more generic `citybikes`.
* Small style fix.
* Use async version of python-citybikes
* Made platform setup async.
* Made some more things async.
* Switched to constants.
* WIP: different approach to async.
* Removed python-citybikes depnedency to fix async issues.
* Removed unnecessary hidden property.
* Style fixes.
* Retry network detection.
* Style fixes, and base name usage.
* Fixes according to comments.
* Use cv.latitude instead of coercing to float.
* Updated requirements.
* Several fixes and improvements.
* Started using PlatformNotReady exception.
* Cached the networks list result to avoid unnecessary API requests.
* Switched the asyncio.timeout to use a constant.
* Refactored CityBikes API requests into a separate function
* Fixed linting errors.
* Removed unnecessary requirement.
* Lift Apple TV to pyatv 0.3.2
Update code to use basic new features.
* Support button presses in Apple TV
* Support device authentication
* Convert Apple TV to a component
A media_player platform and a remote platform will be loaded for each
manually configured or discovered device.
* Move device auth to apple_tv component
* Update requirements and coverage config
* Add scan support to apple_tv
* Remove the need to login on the UPC Connect component
* Remove unnecessary imports
* Update the unit tests for the UPC Connect component
* Fix the "302" error with the UPC Connect component
* Fix a flake8 error
* Update the unit tests for the UPC Connect component
The upstream Avion and Decora code has changed to punt retry logic out to
consumers, so update to match. As a bonus, Avion also gains support for
pulling switch configuration off the web rather than requiring manual
configuration.
* Fixed a bug where changing fan speed was not possible
* Bump pymodbus version to 1.3.1 to fix issue #8285
* Changed all modbus components so that they use CONF_SLAVE from const.py
* Add tube_state
Add tube_state sensor
* Final cleanup
* Make corrections
Correct PLATFORM_SCHEMA
* Fix space
* Make test pass
* Correct format of test
Test still failing, don’t understand why
* correct description
* Make test pass
Preferred method below returns None
state = self.hass.states.get('sensor.london_overground')
* Format for hound
* indent
* Make requested changes to test, not working
Test fails with:
AssertionError: assert 0 > 0
where 0 = len([])
Surely I need tube_state.setup_platform ?
* Fixed test
Config was wrong
* Change component name to london_tube
* Update name to london_underground
Make consistent
* cleanup
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)
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.
* 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.
* 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
* 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
* 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
* [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
* 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
* Support away_mode as permanent hold and hold_mode as temporary hold.
* Add comments to explain code better. Remove indefinite hold preference
to be consistent with 'away_mode'.
* Fix arwn platform discover_sensors
The discover_sensors function can return either singletons or a list
of sensors. However the consumer was always expecting a list. This
fixes it to work in both cases.
* Add custom icons to arwn sensors.
This adds some custom icons for different kinds of weather sensors
that the arwn platform returns. Makes it a little easier to see what's
going on.
* Bumped up version to use 0.1.7 of Russound integration module.
Fixed bug arising from not supporting TURN_ON state (fixes issue https://github.com/home-assistant/home-assistant/issues/5012)
Implemented state support in 0.1.7 such that component state is returned from the actual AMP. (Still uses polling model though).
Tested it with home-assitant users @laf (original developer of the module) and @hofsta. Works fine with their Russounds.
* Made styling / compliance changes and updated correct version of russound module on requirements_all.txt.
* Changed handling of properties to be compliant with https://github.com/home-assistant/home-assistant/issues/4210
(Specifcailly added member variables for state, volume and source to cache these values, and introduced Update() method to set their values).
Now returns None if the selected source index that is returned from russound is greater than the length of the specified source list in the yaml config.
Removed unnecesary comment.
* Removed blank line after docstring.
* Removed updated() in class init and added True paramter to add_devices in setup_platform.
* Dropped the no longer needed self.update()
* Move core servcie from core to components
* add new handler for signals/exception
* Static persistent id
* Move unittest
* fix coro/callback
* Add more unittest for new services
* Address comments
* Update __init__.py
* improve warning message when template is none
* improve error message when template is none
* improve error message when template is none
* improve error message when template is none
* Mailgun notify service
* Update dependency to version 1.3
- The provided credentials (including the domain) are now checked during
startup, as requested by @balloob
- The domain name is now optional
- There's a new config item "sandbox" which indicates whether to use the
sandboxed domain in case the domain is not set
* Fix a few lint issues
* Disable lint check no-value-for-parameter
The nest-cam changes have now been merged into the upstream library, so
there is no need to track a specific branch.
Updating to 3.1.0 also fixes a structure parsing bug I was experiencing.
* Add mysensors device_tracker platform
* Add discovery of device_tracker platforms
* Enable discovery of device_tracker platforms that are not
DeviceScanner.
* Update signature of setup_scanner function in all affected platforms.
* Add test.
* Use discovery for mysensors device_tracker platform.
* Remove gps accuracy
* Small change to core like schema
* fix depency
* Add support for writing ID3 tags to the file for improved display in media players
* Lint and async fixes
* Use mutagen instead of taglib
* Fix tests
* Add fallback for album
* Requested changes
* move import
* Fix album name
* Change default options handling
* Move to member function / minor fix
* fix style
* fix lint
* change mutagen handling
* fix lint / add name to bytesio
* Update __init__.py
* Fix test, some cleanups
* Add mutagen exeption handling, fix tests
* fix mutagen taging
* Revert "Fix hue lightgroups not syncing state (#5702)"
* Use light_id in unique_id for Hue groups
* Make sure HueLight unique_id is unique
* Update hue.py
* Update hue.py
* Update hue.py
* Check config before restarting.
* Make check_config on restart async
* don't check if notification service exists
* Use .communicate()
* Reduce the number of notifications. Add tests.
Previous code used the state topic which is obviously wrong:
- The state topic is already used to select optimistic mode.
- A light with only the state topic but no command topic would still announce the capability.
* Added error checking to the MIMEImage encoding for smtp.py
Added fallback to file attachment rather than inline image for images
without a known MIME
* PEP8 reqs to fix previous commit
* Fix validation of serial port on windows
* Use pyserial to check serial ports.
* Check that persistence file ends with either `.json` or `.pickle`.
* Change fix to not rely on pyserial
* Use generator expr instead of list comprehension
* Change CONF_DEFAULT_COLOR CV type
Changed vol.Optional(CONF_DEFAULT_COLOR, default=DEFAULT_COLOR) from cv.string to cv.ensure_list
This allows the optional parameter default_color to be picked up correctly and to function
the option needs to be specifed as follows:
default_color: [0,255,0]
Solution provided by @scossa2020 in issue #5338https://github.com/home-assistant/home-assistant/issues/5338
* Update hyperion.py
* Support for the Orage Livebox Play TV appliance
* Add liveboxplaytv to coveragerc
* Minor refactoring
* Update requirements
* Adjust comments
* Fix alignment
* Fix some coding-style issues highlighted by Travis CI
* The livebox play TV does not support playing media
* Lint: shorten line
* Remove unused callback function
* Remove redundant backslash
* Implement changes requested by balloob
* Don't error out if channel name or media url could not be retrieved
* Support current program (media title property)
* Remove unnecessary check
* Clean up: Remove another unnecessary check, _CONFIGURING variable and _playing attribute
* Update liveboxplaytv dependency to version 1.4.4
* Fix liveboxplaytv requirement
* Improve media state (support for playing and pause state)
* Update liveboxplaytv.py
* Index events time_fired to improve logbook perf.
* Updated implementation to track schema versions
* Added tests for schema migration support logic
* Rename check_schema to migrate_schema
* Remove redundant input validation which is already accomplished through
defined schemata.
* Rely on defined state attributes for hold mode.
* Remove misleading comment. This comment seems to assume that sleep
mode is a hold; it is a schedule instead. The code snippets in the
comment could never work.
* Remove use of constants for hold mode. Will be made irrelevant
by a planned change by nordlead2005.
* Support for Nuki.io smart locks
* Update requirements and add lock.nuki to .coveragerc
* lint: Re-organize imports
* Schedule a state update instead of calling directly update_ha_state
* Remove update requests altogether
* Make sure there is no IO inside properties
* Fix: nuki lock are all initialized as "lock.unnamed_device"
* Update pynuki to 1.2 to avoid an extra REST API call for each lock init
* Added door bell sensors
* Initial support for AC units.
* Added new device service
* Quirky Aros AC unit support
* Use super() everywhere and error checking for token request.
* Ignore camera sensors during setup of alarms.
* Added manufacturer/device attributes to all wink devices.
* Fixed style errors
* Fixed remaining lint errors.
* Prevent events about MQTT messages received to cause infinite loop when two HA instances are crossconfigured for mqtt_eventstream.
* Fix linting
* Publish all MQTT received events except incoming from eventstream. Also make it configurable.
* Fix for missing netatmo tags in 0.37
Also fix issue with SSL certificate for vpn_url
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Netatmo welcome: vpn_url can be empty
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* add config floag to disable SSL verification for vpn_url
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Import CONF_VERIFY_SSL from const
* Prevent events about MQTT messages received to cause infinite loop when two HA instances are crossconfigured for mqtt_eventstream.
* Fix linting
* Publish all MQTT received events except incoming from eventstream. Also make it configurable.
* Fix for missing netatmo tags in 0.37
Also fix issue with SSL certificate for vpn_url
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Netatmo welcome: vpn_url can be empty
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* add config floag to disable SSL verification for vpn_url
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Import CONF_VERIFY_SSL from const
* Refactors script/setup_docker_prereqs
Refactors script/setup_docker_prereqs to allow toggling of packages
to being installed
* Adds support for openalpr to Docker
* Updates Dockerfile
Comments ENV directives in order to preserve cache.
* Fixes incorrect position of echo
* Fixes telldus installer by updating apt before pkg install
* Initial sketches of rflink component.
* Add requirement.
* Properly load configuration.
* Bump rflink for graceful parse errors and protocol callback.
* Cleanup, documentation and linting.
* More documentation, first sensor implementation (temp & hum).
* Add brightness/dim support for newkaku protocol.
* Use separate class for dimmables.
* Make sure non-dimmable newkaku devices are turned on.
* Move some code around, add switches. Support loading from config.
* Fix bug in ignoring devices.
* Fix initial state assumption.
* Improve reliability on invalid conditions.
* Allow configuration of group for new devices.
* Sensor icons.
* Fix parsing negative numbers.
* Correct icon.
* Allow sending commands serial.
* Pluralize.
* Allow adding sensors from config.
* Fix ignoring devices and bugs in previous commit.
* Share know devices so devices from configuration don't get added as lights.
* Lookup unit from value_key.
* Remove debug.
* Start implementing event protocol in place of packet protocol.
- Added first test suite for sensors.
- This currently breaks light and switch.
* Refactor switch component to fit new rflink changes. Add test suite.
* Fix style.
* Refactor and test lights. Bring coverage to 100%.
* Use non-broken and production tested rflink module.
* Update requirements.
* Bump for logging.
* Improve readability.
* Do not use global variable but keep known device state in intended place.
* Improve docs.
* Make icon support generic.
* Disable overriding icons in config, as it belongs in customization. Only keep custom icon for entities that are able to detect a icon based on the thing they represent (sensors in this case).
* Implement configuration schema, overall refactor of magic values.
* Fix bug in config/test wait_for_ack.
* Small refactors.
* Move command logic into separate class.
* Convert command sending logic to class based pattern instead of using the event bus.
* Start not using bus for rflink event propagation to platforms.
* Do not use event bus for all entity types.
* Fire an event on the bus for every switch incoming rflink command.
* Resolve lint errors, remove some old code.
* Known devices no longer need to be registered separately.
* Log bus events.
* Event callback is a..... callback.
* Use full entity id for events.
* Move event sending to entity.
* Log incoming events.
* Make firing events optional inline with rfxtrx.
* Add foundation for signal repetition.
* Add signal repetition config and tests.
* Make plain switchable type explicitly configurable.
* Enable default entity settings for automatically added entities as well.
* Prevent default configuration leaking accross entities.
* Make sure device defaults don't get overwritten by defaults further down.
* Don't let fast state switching and repetitions turn your house into a disco.
* Make repetitions more responsive.
* Disable on/off fallback on dimmables as it currently doesn't play nice with repetitions.
* Use rflink that allows send_command_ack to be safely cancelled.
* Reduce duplication and make repeat work for non-ack.
* Implement reconnection logic.
* Improve reconnection logic.
* Also cancel repetitions when entity state is changed due to external command.
* Update requirements.
* Fix linting.
* Fix spelling.
* Don't lie.
* Fix lint.
* Support for automatically creating protocol translation (fixes spaces in device names).
* Returned support for dimmable and on/off entity.
* Duplicate code to fix linting issues with inheritance.
* Allow overriding unit of measurement from config.
* Voice command API.AI. First import
* Fixes suggested by hound
* Fixing comments
* Fix pylint and pydocstyle errors
* Change how speech is defined
Also clean some unused constants, remove card type (not used), define
a message when action is not defined and improve the message when
action is unknown.
* Change how speech is defined
Clean some constants.
Improve error messages.
Delete card type, not used.
* Tests for new Api.ai component
* Use async_add_job to python compatibility. New test to measure response time
* Add async_action option to choose between waiting or not for the action to execute
* Travis-ci needs more time
* Removed timeout tests
* Removed timeout tests
* Added apiai to .coveragerc as specified by PR doc
* initial yeelight based on python-yeelight
* adapt yeelight's discovery code & suppress exceptions on set_default
* Support flash & code cleanups
Adds simple pulse for flashing, needs to be refined.
This commit also includes changing transition from seconds to milliseconds,
and cleans up the code quite a bit.
* cleanup code, adjust default transition to 350
* bump required version to 0.0.13
* Cleaning up and marking todos, ready to be reviewed
* Renamed back to yeelight.
* Removed effect support for now until we have some sane effects available.
* Add "breath" notification for flash, currently hidden behind a False check due to unknown issue not accepting it.
* TODO/open points are marked as such.
* Fix a typo in rgb calculation
* yeelight_<bulbtype>_<mac> for autodetected bulbs
hostname from mdns seems to vary
* Lint fixes, add music mode, fix flash
* Flash transforms now to red and back
* Fix lint warnings
* Add initial music mode.
* remove unused mode logging, move set_mode to turn_on
* Add save_on_change configuration variable
* yeelight: check if music mode is on before enabling it.
* Fix linting, bump required python-yeelight version
* More linting fixes, use import when needed instead of saving the module handle
* Use OR instead of + for features assignment
* Fix color temperature support, convert non-rgb values to rgb values in rgb()
* Fix typo on duration, thanks @qzapwy for noticing
* yeelight: fix issues from review, behave when not available
* Implement available()
* Fix transition to take seconds instead of milliseconds
* Fix default configuration for detected bulbs
* Cache values fetched in update()
* Add return values for methods
* yeelight: kwarg-given transition overrides config, slight cleanups
* change settings back to optional, request update when calling add_devices
* As future version of python-yeelight will wrap exceptions, we can handle broken connections more nicely.
* bump yeelight library version
* Remove unused import
* set the default only when settings are changed and not, e.g., when turned on by automation
* update comment & fix linting
* UPNP changes to allow a separate advertised IP and Port.
* Fixing lint.
* UPNP changes to allow a separate advertised IP and Port.
* Fixing lint.
* Update __init__.py
* Moved logic for advertised ip and port into config class.
* Commenting change for clarity.
* Spacing changes for PEP8
* Spacing Changes for PEP8
* Style Changes
* Bugfix sonos / refactor of sonos function for TTS
* fix unittest
* update service yaml
* restore group of a coordinator
* use group function to evaluate
* fix state flooting
* fix comments
* Implement echo config option for pilight
Pilight switches can get a receive code configured. If so they act on
received codes. In the current implementation "act on" means not only
to set the internal state, but also to send the code again. If the
receiver is directly parred with the switch, to act even if HA is not
running, this causes it to receive the signal twice because the HA
sends it again.
In my case this causes a dimmer to start dimming until I hit the switch
again.
This implements a "echo" argument for the receive codes that let the
user choose if a received signal should result in any sending or not.
If not, only the status of pilight will be updated.
The echo option defaults to True, as this was the default since now.
Simply set it to halse to disable this behaviour.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add documentation to set_state in switch/pilight.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Added forecast support to DarkSky
modified: homeassistant/components/sensor/darksky.py
modified: tests/components/sensor/test_darksky.py
* Fix async_volume_up / async_volume_down (#5249)
async_volume_up / async_volume_down should be async versions of
volume_up / volume_down, not a async version of the default variants of
volume_up / volume_down.
The previous code always called into the mediaplayers set_volume_level,
and never into volume_up / volume_down.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* adding a default icon "blind" to a PowerView blinds scene. (#5210)
* adding a default icon "blind" to a PowerView blinds scene.
* Adding icon property to define blind icon. Removed it from the state attributes dict.
* fixing lint error
* Added forecast support to DarkSky
modified: homeassistant/components/sensor/darksky.py
modified: tests/components/sensor/test_darksky.py
* Use SHA hash to make token harder to guess (#5258)
* Use SHA hash to make token harder to guess
Use hashlib SHA256 to encode object id instead of using it directly.
* Cache access token
Instead of generating a token on the fly cache it in the constructor.
* Fix lint
* Bugfix async device_tracker see callback (#5259)
* Add support for NAD receivers (#5191)
* Add support for NAD receivers
* remove self.update() in various methods
* remove setting attributes in various methods
* Change import to hass style
* Updated Config Validation, extended daily forecast to all supported types
* Fix style errors from previous commit, fix test since adding daily for all supported types
* Removed temperature from daily as it isn't supported
* Added forecast support to DarkSky
modified: homeassistant/components/sensor/darksky.py
modified: tests/components/sensor/test_darksky.py
* Updated Config Validation, extended daily forecast to all supported types
* Fix style errors from previous commit, fix test since adding daily for all supported types
* Removed temperature from daily as it isn't supported
* Revert "Bugfix camera streams (#5306)"
This reverts commit 4b43537801.
Revert "Version bump for kodi dependency (#5307)"
This reverts commit 6abad6b76e.
Revert "Add HMWIOSwitch to sensor, binary (#5304)"
This reverts commit 2c3f55acc4.
Revert "Remove GTFS default name & string change"
This reverts commit 6000c59bb5.
Revert "Update pyhomematic 1.19 & small cleanups (#5299)"
This reverts commit a30711f1a0.
Revert "[sensor] Add Dublin bus RTPI sensor (#5257)"
This reverts commit 1219ca3c3b.
Revert "Bugfix group reload (#5292)"
This reverts commit baa8e53e66.
Revert "Support for TrackR device trackers (#5010)"
This reverts commit f7a1d63d52.
Revert "Bump pywemo version."
This reverts commit dc937cc8cf.
Revert "Upgrade to voluptuous to 0.9.3 (#5288)"
This reverts commit d12decc471.
Revert "Upgrade distro to 1.0.2 (#5291)"
This reverts commit 64800fd48c.
Revert "Don't build Adafruit_BBIO - doesn't work on all platforms. (#5281)"
This reverts commit 9a3c0c8cd3.
Revert "Convert flic to synchronous platform. (#5276)"
This reverts commit eb9b95c292.
Revert "Upgrade to aiohttp 1.2 (#4964)"
This reverts commit e68e29e03e.
Revert "Fix TCP sensor to correctly use value_template (#5211)"
This reverts commit 1cf9ae5a01.
Revert "Cleanup language support on TTS (#5255)"
This reverts commit 3f3a3bcc8a.
Revert "Add last triggered to script (#5261)"
This reverts commit 467cb18625.
Revert "Bump flux_led version and make use of PyPi package (#5267)"
This reverts commit 34a9fb01ac.
Revert "Add support for NAD receivers (#5191)"
This reverts commit 3b59e169f1bc11b3887bc98b2f8425f6c70a0df2.
Revert "Bugfix async device_tracker see callback (#5259)"
This reverts commit 71fddd26eb9c9ffe6cbd809298f07e17aad152a4.
Revert "Use SHA hash to make token harder to guess (#5258)"
This reverts commit 922308bc1f7a2a0a769a8c29d663c90a97a0583b.
* Revert "Revert "Bugfix camera streams (#5306)""
This reverts commit 2ee8c44021cf9c3a91d20f9ee26752aa8369d2e6.
* Update darksky.py
* Refactor of zwave value_changed
* Rename update_properties to update
* Revert "Rename update_properties to update"
This reverts commit 723578e7d4e2156507c70f649a124a6193edc0db.
* Remove SPEED_MED from fan
* Add an Amazon Polly TTS platform
* Update boto library version for notify.aws_* platforms to match the tts.amazon_polly req
* Improve log line and add docstring to function
* Simplify config logic
* Remove duplicate logic
* Don't know how this got in here...
* initial options work
* Remove stale config option and only allow supported languages
* Make requested changes
* Polly is only supported in some regions
* Allow filename to contain underscores (for amazon_polly platform name), remove unnecessary default_lang, other small things
* Add options dict to service description
* Update keyboard_remote.py
I added a couple of events: keyboard_remote_connected and keyboard_remote_disconnected, useful to trigger some action (for example: play a sound)
I changed the way the component refers to the keyboard: not by "descriptor", but by name.
The fact is that the udev system doesn't always give a name link in /dev/input/by-id folder and the actual /dev/input/eventX file changes automatically.
For example, if I had my keyboard on /dev/input/event13 and then it disconnected, if something else connects to the system it will get the first input file available, that is /dev/input/event13. If the keyboard then reconnects, it will get /dev/input/event14, thus breaking the configuration.
Now it searches every time for the right input file.
The problem might be that, in case of ha upgrade, the pre-existing configuration won't work. I thing there are some guidelines here, but I am not sure.
I think it's inevitable: the initial idea to use a /dev/input/by-id/ symbolic link was good, but unfortunately it doesn't seem to work with bluetooth devices.
I haven't updated the documentation yet: I'm waiting for some ok about the change in configuration key names.
* Update keyboard_remote.py
That should do the trick.
You are right: device names can be duplicated, thus they're not reliable in case of multiple devices. Unfortunately, the only other information available is the physical address, even more complicated.
But in case you have just one keyboard remote of same model, the name works just fine. I'll put it in the documentation which, once the code is approved, I will promptly update.
* Update keyboard_remote.py
* Update keyboard_remote.py
* Update keyboard_remote.py
* Unwrap logger error
* ASUSWRT: Add IPv6 support when parsing neighbors
The regex for IPv6 should cover most cases, but it doesn't validate
whether IP is correct. It also might fail for some edge cases.
Also, ignore 'duid xx:xx:xx:xx:xx:xx:xx:xx:xx:xx' line in leases.
Closes#2814 - ASUSWRT doesn't support ipv6
* Update asuswrt.py
* Added new platform sky_hub
* added env to virtual environment gitingore
* Removed unuseful imports
* BT home hub 5 renamed to sky hub in the comments
* Added sky_hub to .coveragerc
* Added example configuration in sky_hub docstring
* sky_hub made compliant with test style standards
* homehub functions renamed to skyhub
* Update .gitignore
* Update .coveragerc
* Move isdevice validator under helpers.config_validation.
* Check that all persistence files are set and are unique if any is set
by user. This is necessary to avoid file name clashes.
* Check that a set persistence file has an existing and writable
directory.
* Check that a device is either a valid device file, "mqtt", or a valid
domain name or ip address.
* [image_processing/microsoft_face_verify] face recognition for automation
* Add platform for microsoft face identify
* add unittest for demo
* Add unittest for platform
* add a small sleep before reading the sensor
The read of the sensor might be incorrect if it's read too soon after the setup_input call. It might be isolated to my case where I rely on the the PI internal PULL, but once I added this sleep I never get false initial read. If you think this change is appropriate please merge it.
* Update rpi_gpio.py
* Update rpi_gpio.py
* Update rpi_gpio.py
* Add missing dependency in emulated_hue component.
On first startup after upgrade to 0.36, the emulated_hue componented failed to
start because the http component had installed the modules it depends on, in
this particular case 'aiohttp_cors' was missing.
* Include dependencies for the emulated_hue web server
Emulated_hue uses it's own 'web-server' component to handle hue related
discovery and config, so we need to make sure the required http modules are
made available before we are initialized.
We don't have to depend on the home-assistant http/api component because we do
not need to have the frontend to be initialized to handle emulated_hue, so we
can just import in the same set of requirements as the http component.
* Fix linting error
* Add support for Piglow
* Updated coverage and requirements
* Add support for Piglow
* Updated coverage and requirements
* Fix linting errors
* Fix linting errors
* Remove trailing whitespace
* Shorter lines
* Remove trailing whitespace
* Update piglow.py
* Pinned piglow version
* Remove unused method
* Remove unused imports
* Fix lint errors
* Update requirements all
* Updated Piglow to allow the component name to be changed
* Fix imports
* Pass in name
* The piglow platform now fails if it cannot detect the piglow device
* Tidy subprocess import
* cec client object
* cec command structure
* autodetect source
* volume support and native source select
* switch device
* media player device
* detecting of state
* friendly names
* hdmi cec properties
* presence detection
* simplified callbacks
* stable names
* renamed methods
* code cleanup
* name with vendor
* fixed standby call name
* fake standby/poweron
* domain switch
* domain switch
* async updating
* update separated
* cec -> hass event bridge
* fixed name generation
* code cleanup
* code cleanup
* icon constants
* code cleanup
* do not register unavailable devices
* discovery of deevices
* code cleanup
* cec device discovery
* moved method implementation into child
* service descriptions
* service descriptions
* service descriptions
* changed entity init sequence
* logging cleanup
* add remove as job
* closing cec, no service schemas
* correct iterate over dictionary
* Volume by commands
* threading
* logging minimized
* get load out of main thread
* naming cleanup
* get load out of main thread
* optimized discovery
* async where possible
* cleanup logging, constructors first
* pydoc
* formatting
* no async_update from out of loop
no hiding entities
removed redundant device_state_attributes
async updating presence
* no async
* working async cec
* cec in thirdparty lib
* cec initialized oudsice
* working without SIGSEGV
* rollbacked file changed by mistake
* sending of commands
* working with ha
* using hass loop and device driven updates
* version up
* version up
* Command types in pycec, cleanup for HA integration
* Removed media player, state moved to switch
* service descriptions
* requirements: pyCEC
* line width to 79
* doc
* doc
* overindentation solved
* HDMI to uppercase
* minimal dependency on cec
* removed unwanted line
* doc wording
* margin 79
* line continuation indent
* imperative doc
* lint: indentation
* fixed overindented
* fixed overindented
* fixed overindented
* fixed overindented
* order of imports
* PEP8
* keep signature of overriding
* removed redundant blank line
* fixed update call method (#4)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* Dev (#6)
* reordered
* sending nonserialized data through hass.data
* code formatting
* code formatting
* import order
* Dev (#7)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* reordered
* sending nonserialized data through hass.data
* import order
* fixed object handling
* code formatting
* Backwards compatibility of hdmi_cec (#10)
* services:
power_on
standby
active_source
* new version of pyCEC (#12)
* newer version of pyCEC
* devices config (#13)
* getting device name from config
* shutdown fix (#14)
* correct call on shutdown
* remove misplaced annotations (#15)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* reordered
* sending nonserialized data through hass.data
* services:
power_on
standby
active_source
* code formatting
* getting device name from config
* correct call on shutdown
* pyCEC version 0.3.6 (#18)
* newer version of pyCEC
* updated services.yaml
* sending nonserialized data through hass.data
* services:
** power_on
** standby
** active_source
* getting device name from config
* correct call on shutdown
* fork new thread on multicore machines
* support both config schemas: original and new (#16)
* volume press and release support (#17)
* support for media_player (#21)
* accept hexadecimal format of commands
* support for media player
* platform customization
* type constants
* Dev (#23)
* accept hexadecimal format of commands
* support for media player
* platform customization
* TCP CEC support (#24)
* accept hexadecimal format of commands
* support for media player
* platform customization
* preparing tcp support
* volume handling (#25)
* Incorporated CR remarks (#26)
* cleanup imports
* cleanup and enhance services description
* removed unwanted file
* implemented CR remarks (#27)
* pyCEC v0.4.6
* pined dependency version
* tighten service schemas
* requirements (#28)
* incorporate remarks from users (#32)
* home-assistant-31 make mute schema better (#31)
* pycec-30 pyCEC version up (#30)
* pycec-30 pyCEC version up (#30)
* home-assistant-30 OSD display name from configuration (#30) (#33)
* Home assistant 29 (#34)
* home-assistant-29 counting from 0 (#29)
* Home assistant 31 (#35)
* home-assistant-31 add support for mute-on and mute-off (#31)
* home-assistant-31 pyCEC version up (#31)
* Home assistant 31 (#36)
* home-assistant-31 Limit OSD name to 13 chars (#31)
* home-assistant-31 Limit OSD name to 13 chars moved to CEC adapter (#31)
* home-assistant-31 version up (#31)
* home-assistant-31 formatting (#31)
* formatting
* service description
* service description
* single attribute for volume
* fixed mute on -> mute off
* moved config constant from core into component
* check cec message length when asking physical address (#38) (#38)
* cec turn on/turn off commands instead of power
* cec turn on/turn off commands instead of power
* Using new MaxShutterContact class
* Skip unnecessary function calls
* Added casting for VALUE
* Some renaming to clarify what's happening
* Bumped dependency version
* Bumped version in requirements
* cec client object
* cec command structure
* autodetect source
* volume support and native source select
* switch device
* media player device
* detecting of state
* friendly names
* hdmi cec properties
* presence detection
* simplified callbacks
* stable names
* renamed methods
* code cleanup
* name with vendor
* fixed standby call name
* fake standby/poweron
* domain switch
* domain switch
* async updating
* update separated
* cec -> hass event bridge
* fixed name generation
* code cleanup
* code cleanup
* icon constants
* code cleanup
* do not register unavailable devices
* discovery of deevices
* code cleanup
* cec device discovery
* moved method implementation into child
* service descriptions
* service descriptions
* service descriptions
* changed entity init sequence
* logging cleanup
* add remove as job
* closing cec, no service schemas
* correct iterate over dictionary
* Volume by commands
* threading
* logging minimized
* get load out of main thread
* naming cleanup
* get load out of main thread
* optimized discovery
* async where possible
* cleanup logging, constructors first
* pydoc
* formatting
* no async_update from out of loop
no hiding entities
removed redundant device_state_attributes
async updating presence
* no async
* working async cec
* cec in thirdparty lib
* cec initialized oudsice
* working without SIGSEGV
* rollbacked file changed by mistake
* sending of commands
* working with ha
* using hass loop and device driven updates
* version up
* version up
* Command types in pycec, cleanup for HA integration
* Removed media player, state moved to switch
* service descriptions
* requirements: pyCEC
* line width to 79
* doc
* doc
* overindentation solved
* HDMI to uppercase
* minimal dependency on cec
* removed unwanted line
* doc wording
* margin 79
* line continuation indent
* imperative doc
* lint: indentation
* fixed overindented
* fixed overindented
* fixed overindented
* fixed overindented
* order of imports
* PEP8
* keep signature of overriding
* removed redundant blank line
* fixed update call method (#4)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* Dev (#6)
* reordered
* sending nonserialized data through hass.data
* code formatting
* code formatting
* import order
* Dev (#7)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* reordered
* sending nonserialized data through hass.data
* import order
* fixed object handling
* code formatting
* Backwards compatibility of hdmi_cec (#10)
* services:
power_on
standby
active_source
* new version of pyCEC (#12)
* newer version of pyCEC
* devices config (#13)
* getting device name from config
* shutdown fix (#14)
* correct call on shutdown
* remove misplaced annotations (#15)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* reordered
* sending nonserialized data through hass.data
* services:
power_on
standby
active_source
* code formatting
* getting device name from config
* correct call on shutdown
* pyCEC version 0.3.6 (#18)
* newer version of pyCEC
* updated services.yaml
* sending nonserialized data through hass.data
* services:
** power_on
** standby
** active_source
* getting device name from config
* correct call on shutdown
* fork new thread on multicore machines
* support both config schemas: original and new (#16)
* volume press and release support (#17)
* support for media_player (#21)
* accept hexadecimal format of commands
* support for media player
* platform customization
* type constants
* Dev (#23)
* accept hexadecimal format of commands
* support for media player
* platform customization
* TCP CEC support (#24)
* accept hexadecimal format of commands
* support for media player
* platform customization
* preparing tcp support
* volume handling (#25)
* Incorporated CR remarks (#26)
* cleanup imports
* cleanup and enhance services description
* removed unwanted file
* implemented CR remarks (#27)
* pyCEC v0.4.6
* pined dependency version
* tighten service schemas
* requirements (#28)
* incorporate remarks from users (#32)
* home-assistant-31 make mute schema better (#31)
* pycec-30 pyCEC version up (#30)
* pycec-30 pyCEC version up (#30)
* home-assistant-30 OSD display name from configuration (#30) (#33)
* Home assistant 29 (#34)
* home-assistant-29 counting from 0 (#29)
* Home assistant 31 (#35)
* home-assistant-31 add support for mute-on and mute-off (#31)
* home-assistant-31 pyCEC version up (#31)
* Home assistant 31 (#36)
* home-assistant-31 Limit OSD name to 13 chars (#31)
* home-assistant-31 Limit OSD name to 13 chars moved to CEC adapter (#31)
* home-assistant-31 version up (#31)
* home-assistant-31 formatting (#31)
* formatting
* service description
* service description
* single attribute for volume
* fixed mute on -> mute off
* moved config constant from core into component
* Fixed crash when lights objects was inited
* Fixed initial value for tellstick lights
* Fixed problem with lights not working with the turn_on action.
* Remove SPEED_MED from fan
* Correctly use the oscillation on/off payloads for MQTT fan
* Add set_direction service documentation
* Correct function name for Wink fans
* Check for existence of the correct topic
* Enable set fan speed in emulated_hue
* features -> functions
* Final emulated_hue fan fixes
* Fix linting issues
* Revert to supported features instead of supported functions
* Fix logic
* Add a test for emulated_hue fan support
* Allow automatic removal of all Hue entities from emulated_hue
* Allow disabling of Hue groups
* Only add device state attributes if they need to be there
* Configuration parameters defined
* Edge detection added
* Example configuration added and tipo corrected
* Comments updated, lint update
* Added check for input pull_mode
* Too long line
* trailing white space
* Configuration parameters defined
* Edge detection added
* Example configuration added and tipo corrected
* Comments updated, lint update
* Added check for input pull_mode
* Too long line
* trailing white space
* pylint disable import error
* read_input() changed to return boolean value, according changes in binary sensor
* example configuration in docstring changed to mention direct web link, pylint update
* read_input() updated according review
* cec client object
* cec command structure
* autodetect source
* volume support and native source select
* switch device
* media player device
* detecting of state
* friendly names
* hdmi cec properties
* presence detection
* simplified callbacks
* stable names
* renamed methods
* code cleanup
* name with vendor
* fixed standby call name
* fake standby/poweron
* domain switch
* domain switch
* async updating
* update separated
* cec -> hass event bridge
* fixed name generation
* code cleanup
* code cleanup
* icon constants
* code cleanup
* do not register unavailable devices
* discovery of deevices
* code cleanup
* cec device discovery
* moved method implementation into child
* service descriptions
* service descriptions
* service descriptions
* changed entity init sequence
* logging cleanup
* add remove as job
* closing cec, no service schemas
* correct iterate over dictionary
* Volume by commands
* threading
* logging minimized
* get load out of main thread
* naming cleanup
* get load out of main thread
* optimized discovery
* async where possible
* cleanup logging, constructors first
* pydoc
* formatting
* no async_update from out of loop
no hiding entities
removed redundant device_state_attributes
async updating presence
* no async
* working async cec
* cec in thirdparty lib
* cec initialized oudsice
* working without SIGSEGV
* rollbacked file changed by mistake
* sending of commands
* working with ha
* using hass loop and device driven updates
* version up
* version up
* Command types in pycec, cleanup for HA integration
* Removed media player, state moved to switch
* service descriptions
* requirements: pyCEC
* line width to 79
* doc
* doc
* overindentation solved
* HDMI to uppercase
* minimal dependency on cec
* removed unwanted line
* doc wording
* margin 79
* line continuation indent
* imperative doc
* lint: indentation
* fixed overindented
* fixed overindented
* fixed overindented
* fixed overindented
* order of imports
* PEP8
* keep signature of overriding
* removed redundant blank line
* fixed update call method (#4)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* Dev (#6)
* reordered
* sending nonserialized data through hass.data
* code formatting
* code formatting
* import order
* Dev (#7)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* reordered
* sending nonserialized data through hass.data
* import order
* fixed object handling
* code formatting
* Backwards compatibility of hdmi_cec (#10)
* services:
power_on
standby
active_source
* new version of pyCEC (#12)
* newer version of pyCEC
* devices config (#13)
* getting device name from config
* shutdown fix (#14)
* correct call on shutdown
* remove misplaced annotations (#15)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* reordered
* sending nonserialized data through hass.data
* services:
power_on
standby
active_source
* code formatting
* getting device name from config
* correct call on shutdown
* pyCEC version 0.3.6 (#18)
* newer version of pyCEC
* updated services.yaml
* sending nonserialized data through hass.data
* services:
** power_on
** standby
** active_source
* getting device name from config
* correct call on shutdown
* fork new thread on multicore machines
* support both config schemas: original and new (#16)
* volume press and release support (#17)
* support for media_player (#21)
* accept hexadecimal format of commands
* support for media player
* platform customization
* type constants
* Dev (#23)
* accept hexadecimal format of commands
* support for media player
* platform customization
* TCP CEC support (#24)
* accept hexadecimal format of commands
* support for media player
* platform customization
* preparing tcp support
* volume handling (#25)
* Incorporated CR remarks (#26)
* cleanup imports
* cleanup and enhance services description
* removed unwanted file
* implemented CR remarks (#27)
* pyCEC v0.4.6
* pined dependency version
* tighten service schemas
* requirements (#28)
* Updated ISY component to not overwrite state_attributes.
The ISY component included an ISYDevice base class that is used by all
of the isy994 platforms. This still overwrote the state_attributes
property instead of the more appropriate device_state_attributes
property. This was also repeated in the isy994 light platform. Both of
these were addressed. This also fixes issue #5428.
* Removed custom state attributes from ISY lights.
The brightness attribute need not be manually reported by the isy994
light platform.
* Removed ISY Node cleanup.
The ISY entities don’t really need to unsubscribe themselves while hass
is shutting down. Because these updates are not sent in a thread, there
is no negative impact from shutting down without unsubscribing. This
greatly speeds up hass shutdown.
* Removed unused attribute from isy994 light platform.
* Cleaned up ISY994 light entity class.
1) Removed the state property. This property is set in the Entity base
class and shouldn’t be overridden here.
2) Set the brightness property. This is the proper way of setting the
brightness for the Light base class.
3) Removed properties that are now unused because of these changes.
GE sell a range of Bluetooth dimmer switches based on Avi-on technology.
Add a module for controlling them. There's also a set of smart switches that
speak the same protocol, but I don't have any of those to test support with.
* Initial commit of anthemav platform. It loads but has no purpose.
* Now presents a card in the UI but the values aren't real
* Mute and volume polling/setting work now
* Source lists and selection works now.
* Reduce debug logging verbosity
* Support power on/off and skip polling for details if power is off
* Add some static tables to decode numerics from telnet commands
* Add stub for unsupported media_play
* New style anthemav uses native asyncio structure
* Add device callback for asyncio
* This is ugly but it works
* Simplify async setup and abstract class data retrieval
* Implement commands (power on and power off for now)
* Add support for scan_interval and set default to 120 seconds
* Pass-through to package handlers for volume and input selection
* Slight restructuring to satisfy anthemav 0.9
* Load anthemav package from pypi now that it's registered
* Proper app_name from a/v info
* Mispelled word
* media_player/anthemav initial commit of platform requirements
* Philio 3-in-1 Gen 4 zwave sensor needs the no-off-event workaround. (#5120)
* Add print_config_parameter service to Z-Wave (#5121)
* Add print_config_param service to z-wave
* Add print_config_parameter service to z-wave
* Add print_config_parameter service to z-wave
* Fix typos
* Fix typos
* Fix typo
* Conform to Python/project style requirements
* Making pylint happy
* Bring pip requirements in agreement with the code
* Bungled previous update
* Remove unnecessady SCAN_INTERVAL logic
I was unawre that this is performed as part of the normal platform behavior and
it's unnecessary for a platform to independently implement this logic.
* Refactor code based on @armills PR requests
* Re-add media_play stub to avoid traceback
* Align with platform reqirements
* Remove references to SCAN_INTERVAL and clean up _lookup logic
* Add DEFAULT_PORT assignment
* Code style changes and removal of vestigial structures
* CONF_NAME handling changes to allow local override to default from device
* Address PR feedback from @balloob
* Remove media_play function override
It's no longer necesary for the platform to implement a stub media_play
function override now that the Add SUPPORT_PLAY flag #5181 issue has been
resolved and merged into the dev branch.
* Rename callback function to async_ for clarity
* Use async routines for platform methods
* Convert update callback to coroutine for conformity
Underlying anthemav library now properly supports coroutine callbacks instead
of normal functions. Converted the platform callback to a coroutine for
conformance with async operation for the device.
Special thanks to @pvizeli and @armills for their invaluable remedial Python
instruction!
* Further callback refinements
Altered the nature of callback handling based on suggestions from @pvizeli
* True not needed for local push update_ha_state
* Small style fix
After _control_heating() is executed, current_operation() is correctly called but _is_device_active() still reports the old state if the heater switch, at least in my case. The resulting climate state is incorrect until the next refresh, which apparently occurs only when _sensor_changed() gets called (it can be minutes after).
I think the state of the heater switch should be forced to update at the end of _control_heating(), but I don't know how to do that...
A simple sleep() fixes it, but obviously is just a temporary workaround, I'm not really expecting this PR to be actually committed, unless there's no other solution.
* Added tado device tracker
* Added tado device tracker to .converagerc
* Updated docs
* Code formatting and removed unused import
* Code formatting and removed unused import
* Respected the lint line length
* Respect pydocstyle rules
* Respect the lint line limit length
* Fixed reviewer feedback
* Changed the tracker to support async
* Respect the New line end of file rule
* Update .coveragerc
* Improved x10 state monitoring
* Improved x10 state monitoring
* Use update mthod to fetch state change
* Use update mthod to fetch state change
* Use update function to fetch status
* remove temp file
* Add doc string to update method
* denonavr: Expose input as title when in non playing modes
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* denon: Pop from the intended end of the list
Pop from front of list, so we start with NSE0, then NSE1X and so on.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* denonavr: Don't provide broken media_url's
Only return a media_url if we're in a state that might provide one.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* denonavr: Only expose player support when in a player mode
This changes so the denonavr only exposes the media player support, when
in a mode that supports media playing.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* Add listing and selection of available MPD playlists through input source UI.
* MPD support updating playlist list on the fly as well as at turn-on.
* Added no_throttle to force playlist update on mpd power cycle.
* Added kwargs signature to get Throttle working right.
* Initial commit of discord notification component
* Fixed error where script added extra entries to .coveragerc
* Cleaned up code
* Compliance to PEP8
* removed dependencies
* readded dependencies
* changed name of client id to token for configuration
* Changes for Hound
* Incorporated Review Feedback
* Review feedback
* Updated requirements file
* Check compliance
* Introduced Amcrest camera sensors
* Makes script/gen_requirements_all.py happy
* Bump Amcrest version across all components
* - Adjusted scan_interval to 10 seconds
- Filtering HTTPError and ConnectTimeout exceptions
- Removed @Throttle decorator
Traceback (most recent call last):
File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/helpers/entity_component.py", line 151, in _async_setup_platform
entity_platform.add_entities, discovery_info
File "/usr/local/lib/python3.5/asyncio/futures.py", line 361, in __iter__
yield self # This tells Task to wait for completion.
File "/usr/local/lib/python3.5/asyncio/tasks.py", line 296, in _wakeup
future.result()
File "/usr/local/lib/python3.5/asyncio/futures.py", line 274, in result
raise self._exception
File "/usr/local/lib/python3.5/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/components/sensor/usps.py", line 48, in setup_platform
add_devices([USPSSensor(session, config.get(CONF_UPDATE_INTERVAL))])
File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/components/sensor/usps.py", line 58, in __init__
self._profile = myusps.get_profile(session)
File "/home/hass/.homeassistant/deps/myusps/__init__.py", line 100, in wrapped
_login(*args)
File "/home/hass/.homeassistant/deps/myusps/__init__.py", line 90, in _login
_save_cookies(session.cookies, session.auth.cookie_path)
File "/home/hass/.homeassistant/deps/myusps/__init__.py", line 41, in _save_cookies
with open(filename, 'wb') as handle:
PermissionError: [Errno 13] Permission denied: './usps_cookies.pickle'
* Made target temperature sensitive to auto mode
* Used current_operation instead of operation_mode
* When not in auto_mode, the temperature is sent to set_temperature
* Low and high targets are switched in the call to set_temperature.
* Missed on current_operation. Use STATE_AUTO.
* Remove incorrectly checked in directory.
* Updated set_temperature based on Martin's feedback.
* Use ATTR_TEMPERATURE from const.py
Traceback (most recent call last):
File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/helpers/entity_component.py", line 151, in _async_setup_platform
entity_platform.add_entities, discovery_info
File "/usr/local/lib/python3.5/asyncio/futures.py", line 361, in __iter__
yield self # This tells Task to wait for completion.
File "/usr/local/lib/python3.5/asyncio/tasks.py", line 296, in _wakeup
future.result()
File "/usr/local/lib/python3.5/asyncio/futures.py", line 274, in result
raise self._exception
File "/usr/local/lib/python3.5/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/components/sensor/usps.py", line 48, in setup_platform
add_devices([USPSSensor(session, config.get(CONF_UPDATE_INTERVAL))])
File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/components/sensor/usps.py", line 58, in __init__
self._profile = myusps.get_profile(session)
File "/home/hass/.homeassistant/deps/myusps/__init__.py", line 100, in wrapped
_login(*args)
File "/home/hass/.homeassistant/deps/myusps/__init__.py", line 90, in _login
_save_cookies(session.cookies, session.auth.cookie_path)
File "/home/hass/.homeassistant/deps/myusps/__init__.py", line 41, in _save_cookies
with open(filename, 'wb') as handle:
PermissionError: [Errno 13] Permission denied: './usps_cookies.pickle'
Removing redundant throttle decorator on update method. This ensures the existing 'cache-value' config option is respected. Also, UPDATE_INTERVAL is renamed to DEFAULT_UPDATE_INTERVAL for clarity.
* Add support for direct MJPEG streams from Amcrest cameras
The previous implementation relied on using snapshots from the camera. However,
some Amcrest models cannot keep up with the large number of requests and
instead timeout, resulting in no video stream. These cameras do provide MJPEG
streams though, so this commit adds the option to use these instead of creating
one from snapshots.
Unfortunately, some cameras on newer firmwares do not support MJPEG streams at
high resolution - only at low resolution.
By providing users with both a `resolution` and `stream_source` option, we can
allow them to choose whichever combination works for their particular model
and firmware version.
* Close the stream instead of releasing it
* Close stream without creating a task
* Handle client aborts
* fix lint
* Added Yandex SpeechKit TTS
* Added test stub
* Added two test and added property for yandex tts
* Copy all test from voice rss
* Added test vith different speaker and code style changes
* Added new line to end of file
* Url format replaced with url_params
* Fix typo
* Auto-config for `sensor.bom`
Deprecate (but still support) the old two-part station ID, and move to a
single `station` identifier. Any combination of these, including none,
is valid; most results in downloading and caching the station map to
work out any missing info.
* Add `weather.bom` platform
Very similar to `sensor.bom`, but supporting the lovely new `weather`
component interface. Easier to configure, and does not support the
deprecated config options.
* Review improvements to BOM weather
Largely around better input validation.
* Add mysensors notify platform
* Make add_devices optional in platform callback function.
* Use new argument structure for all existing mysensors platforms.
* Add notify platform.
* Update mysensors gateway.
* Refactor notify setup
* Enable discovery of notify platforms.
* Update and add tests for notify component and some platforms.
* Continue setup of notify platforms if a platform fails setup.
* Remove notify tests that check platform config. These tests are not
needed when config validation is used.
* Add config validation to APNS notify platform.
* Use discovery to set up mysensors notify platform.
* Add discovery_info to get_service and update tests
* Add discovery_info as keyword argument to the get_service function
signature and update all notify platforms.
* Update existing notify tests to check config validation using test
helper.
* Add removed tests back in that checked config in apns, command_line
and file platforms, but use config validation test helper to verify
config.
* Add a test for notify file to increase coverage.
* Fix some PEP issues.
* Fix comments and use more constants
* Move apns notify service under notify domain
Added support for additional optional configuration
arguments:
to send to vlc.
It is useful for special configurations of VLC.
For example, I have two sound cards on my server, so I defined two vlc media players:
media_player:
- platform: vlc
name: speaker_1
arguments: '--alsa-audio-device=hw:1,0'
- platform: vlc
name: speaker_2
arguments: '--alsa-audio-device=hw:0,0'
This way, by specifying the corresponding entity_id, I can send the output to the desired speaker.
It is also useful for TTS.
* Revert #4791 and fixes#4696
* Update influxDB based on PR comments
* Add migration script
* Update influxdb_migrator based on PR comments
* Add override_measurement option to influxdb_migrator
* Rename value field to state when data is string type
* Fix influxdb cloning query
* Remove build dirs from docker image to keep the layers small
* Create setup_docker_prereqs script to prepare docker env
* Add documentation for required packages, drop colorlog and cython in first step of Dockerfile since it will be installed later on anyway. Drop libglib2.0-dev and libbluetooth-dev
* Also remove early install of colorlog and cython in Dockerfile.dev
* Re-add libglib2.0-dev and libbluetooth-dev for Bluetooth LE
* Add support for Zengge Bluetooth bulbs
Adds support for the Zengge Bluetooth RGBW bulbs. These are sold under a
number of brands, including Flux. The bulbs do not support full RGBW
control - they turn off the RGB LEDs when white is enabled, and vice versa.
* Update zengge.py
* Initial commit for Wink fan support
* Added fan to discovery list
* Raise NotImplementedError and fixed is_on
* Added speed property
* Update __init__.py
* eq3btsmart: support modes and clean up the code to use climatedevice's features
* eq3btsmart: re-add device state attributes
adds reporting for is_locked, valve, window_open and low_battery,
exposing everything the device reports currently.
* eq3btsmart: bump version req
* eq3btsmart: fix a typo in mode name, report unknown when not initialized
* eq3btsmart: depend on newly forked python-eq3bt lib, pythonify states
* [Device Tracker] Xiaomi Mi Router integration as device tracker
This device tracker allow to track device connected to Xiaomi Router.
Parameter: host, username (default admin) and password.
* [Device Tracker] Addition of Xiaomi device tracker file in coverage
* Use SHA hash to make token harder to guess
Use hashlib SHA256 to encode object id instead of using it directly.
* Cache access token
Instead of generating a token on the fly cache it in the constructor.
* Fix lint
* adding a default icon "blind" to a PowerView blinds scene.
* Adding icon property to define blind icon. Removed it from the state attributes dict.
* fixing lint error
async_volume_up / async_volume_down should be async versions of
volume_up / volume_down, not a async version of the default variants of
volume_up / volume_down.
The previous code always called into the mediaplayers set_volume_level,
and never into volume_up / volume_down.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* Add Lannouncer notify component
* Send message by opening a raw TCP socket instead of using requests. Cleanup of method validation.
* Use 'return' instead of 'return None'
* Fix#5188 by Closing the stream instead of Releasing it
Closing just terminates the connection, release attempts to download all the contents before closing. Since the MJPEG stream is infinite, it loads and loads content until the python script runs out of memory.
Source: 50b1d30f41/aiohttp/client_reqrep.py (L668-L672)
* Update mjpeg.py
* platform set-up begin components
* lights seem to be getting set up properly, not sure why they aren't being added...
* typo
* Dependencies line
* toggle working
* toggle working
* added the switch to insteon_local
First commit hope to test tonight or in the morning
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* Update insteon_local.py
* move dependency declaration before import?
* Move dependencies in Switch
* Update insteon_local.py
* wait for response
* switched the while to an if
switched the while 'cmd2' not in resp: to an if 'cmd2' not in resp: this seems to have the updater working
* Switched the while sleep loop to an if
switched the wile cmd2 not ins resp to be if cmd2 not in resp seems to be working.
* Update insteon_local.py
* import statement
Updated the import statement to import the instance of the insteon_local component not the hub Instance.
* updated import and the device assignment
update the import to import the instance of the insteon_local component not the hub.
* more changes to support the import change
* more changes to support the import change
* change to hass.data and add loop logic
* &&
* Update insteon_local.py
* Update insteon_local.py
* logic fixes and throttle
* reduce polling time
* brightness support
* import util
* hound fixes
* requirements file
* more hound fixes
* newline
* newline weirdness
* lint fixes
* more lint fixes
* switch state
* Update insteon_local.py
* log cmd2 for debugging
* assume success
* remove check for none
* fix comments
* fix comments again
* fix comments, add fixed version of lib, add support for timeout, add support for port, handle invalid login and connection problems
* fix logging exception
* fix hounceci-bot errors
* fix hounceci-bot errors
* requirements fix
* unique-id changes
* make dimmer off use saved ramp rate
* configurator working for lights
* configurator working for switches?
* configurator working for switches?
* include model names and fix lint errors
* lint fix
* fix exception order
* lint fixes
* fix lint errors
* update to use insteon local 0.38
* fix device id
* move status check to library
* move status check to library
* add SKU to setup
* lint fixes
* requirements
* linting
* Refactor of Squeezebox connection code
* Refactor of Squeezebox connection code
* Typos
* Make Python 3.4 friendly
* Addressing comments
* Improving docstring
* Using discovered port
* Style better
* Accept new disco object
* Revert "Accept new disco object"
* Make it obvious that port isn't discovered yet
* Flake8. ;)
* Add teardown method to pilight tests
This is necessary to stop the HomeAssistant instance that was started
in the setUp method. Without this there happen random test failures.
This is necessary to stabilize the tests for PR #5045.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Update test_pilight.py
* Re-enabled Weather Sensors for the ISY component.
As the ISY component had been updated to support newer components and
have better UOM support, the support for ISY’s weather module was
dropped. This adds that support back into Home Assistant.
* Cleanup of the ISY Weather support.
Cleaned up the for loops used to generate nodes representing weather
data from the ISY. Moved the weather_node named tuple to the top of the
file so that it can be more easily identified.
* Update isy994.py
* Update scan_interval and interval_seconds max to 1 day vs. 60 seconds
* Format fixes
* Add docstring on unittest.
* Added and implemented new async_track_time_interval helper.
* Format fixes, removed unused import.
* Undid whoops on unsub_polling.
* Updated unit tests for scan_interval.
* Added unit test for track_time_interval.
* Allow other forms of time interval input for scan_interval and interval_seconds
* Update keyboard_remote.py
I changed os.path.isFile() to os.path.exists: as far as I know isFile doesn't work with device files. At least on my Ubuntu it wasn't working.
Then I added some error control in case the keyboard disconnects: with bluetooth keyboards this happen often due to battery saving. Now it reconnects automatically when the keyboard wakes up.
We could fire an event to hass when the keyboard connects-disconnects, maybe I'll do this later.
We should also manage errors due to permissions problems on the device file, or at least give some info in the docs about how to allow HA to grab control over an system input file.
I'm sorry if my coding isn't up to some standard practice I'm not aware of: I'm new to HA and to python itself, I'm just trying to be of help.
Gianluca
* Update keyboard_remote.py
I changed some other few things.
Not the component gets loaded even if the keyboard is disconnected. When it connects, it starts to fire events when keys are pressed.
I also added a sleep(0.1) that reduces a lot the load on the CPU, but without many consequences on key pressed detection.
* Add a volume to store the tox cache on the host. This gives quite some speed boost when running lint_docker and test_docker.
* Only map .tox directory for cache.
* Spread the traffic to yr.no servers and remove yr.no from the default config
* use unique address for yr.no
* update yr tests
* Wait 10 min extra before requesting new data
* Update config.py
* Update yr.py
* Add support for Tikteck Bluetooth bulbs
Adds support for the Tikteck RGBW BLE bulbs. These don't provide "true" RGBW
support - at a certain point in RGB space, the white LEDs turn on. Each bulb
has a specific key that needs to be extracted from the Android app.
* Update tikteck.py
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Fix lint issues.
* Remove global variable according to hint from balloob.
* Better async/threading behavior for tellstick.
* Fix lint/style checks.
* Use hass.async_add_job
* Add ability to set rpi_rf `tx_repeats` attribute
Uses the current `rpi_rf` default of 10
Closeshome-assistant/home-assistant#5069
* Use `signal_repetitions` instead of `repeats` for consistency
Adding the device_id key to the bevice tracker component allows selecting the bluetooth device to use in case the default device does not have BLE Capabilities
Rather than rely on base_url being unconfigured and therefore be
set as the host ip in the api component, get the local ip directly.
Use server port from the http component instead of the api component
where it will be None if base_url is set.
Change the exception catch meant to check for ipv4 vs ipv6 to wrap the
address encoding only instead of the zeroconf service info declaration.
* Update nx584 requirement to 0.4
There have been a few bug fixes to nx584 since 0.2, so this just updates
our requirement to pull in the newer version.
* Fix nx584 if no partitions are found
If we succeed in our connection to the panel but find no
configured partitions, then we will fall through to the bypass
probe and fail because 'zones' is never initialized. This fixes
both exception paths and adds a test that would poke it.
* Allow bower install of frontend components as root. Needed for frontend development in docker since everything runs as root in the docker image.
* Improve development workflow in docker
* Use LANG=C.UTF-8 in tox. Fixes installation of libraries with UTF-8 in it's readme.
* Install mysqlclient psycopg2 uvloop after requirements_all.txt again, but with a --no-cache-dir this time. Allows bootstrap_frontend to be executed in a different path like the other scripts.
* Add print_config_param service to z-wave
* Add print_config_parameter service to z-wave
* Add print_config_parameter service to z-wave
* Fix typos
* Fix typos
* Fix typo
* ecobee_set_fan_min_on_time: fix issue using 'entity_id' field and add service field help text
* climate.ecobee: add 'resume_program' service
* Add default value for resume_all and correct entity_id field name reference
* Allow to specify TTS language in the service call.
* Allow to specify TTS language in the service call.
* Respect 79 char limit
* Fix "Too many blank lines"
* Fix "Too many blank lines"
* Fix "Too many blank lines"
* Change language to be optional parameter of *get_tts_audio
* Change language to be optional parameter of *get_tts_audio
* Respect 79 char limit
* Don't pass "None
* Use default of "None" for TTS language
* Use default of "None" for TTS language
* Don't pass "None"
* Change TTS cache key to be hash_lang_engine
* Change language from demo to en
* Fix wrong replace
* Add sensor for International Space Station
* Change two sensors to one with attributes.
* Fix due to comments in HA PR. Thanks !
* Update Requirement
* emulated_hue: fix alexa "device not responding"
we need to set the brightness to 100 for devices that only turn on
* emulated_hue: dont override brightness for scenes/scripts
* emulated_hue: python and semi-colons
* emulated_hue: fix output brightness level
* Updated Nest API to have logical names
* Fix NoneType not having replace method in NestSensor constructor
* Move name setting to constructor, in case zone.name causes IO.
* normalize is_online to online
* Updated python-nest API
* push is_* helpers down to python-nest, and use inheritence to implement rather than checking class name
* Update python-nest
* Updated Nest API to have logical names
* Fix NoneType not having replace method in NestSensor constructor
* Move name setting to constructor, in case zone.name causes IO.
* normalize is_online to online
* Updated python-nest API
* push is_* helpers down to python-nest, and use inheritence to implement rather than checking class name
* Update python-nest
* Fix Sonos album art for non-radio streams
* Revert "Fix Sonos album art for non-radio streams"
This reverts commit d71502d18f5778146cf45dcb717aba71f88a3fac.
* Fix Sonos album art for non-radio streams
* Move art existance check into _format_media_image_url
* Add support for the Sonarr URL Base setting
For those of us who have sonarr hidden behind reverse proxy under a path, we need to be able to pass the path
Adds urlbase: XXX to the sonarr yaml... Match it to what you have set in Sonarr (Settings>General>URL Base)
* Fix line lengths
* Fix trailing white space caused by last change
* Removing use of len()
* Updates TP-Link switches dependent module
Refactors code to use the new module API
* Set TP-Link Switch name from the device settings
If no name has been set in the configuration file the name set on the device will be used
* Removes default name for TP-Link switch
Fallback to device alias now works properly
* Removes logging
* Updates comment to denote support for HS200 switch
Updated the schema check to accept any string
Search custom sources in app title and app id
The makes the short list redundant and thus removed
Tested by adding livetv, netflix, youtube, makovod and others
This is also compatible with the list that was supported till now
so current users won't see any difference.
Signed-off-by: Roi Dayan <roi.dayan@gmail.com>
* Removed return False so the Panasonic Viera TV can be added even if it doesn't connect
* Removed return False so the Panasonic Viera TV can be added even if it doesn't connect
* Removed return False so the Panasonic Viera TV can be added even if it doesn't connect
* Remove try/except to connect to the TV
* Update panasonic_viera.py
* Update panasonic_viera.py
* Add basic property details for Nest hvac_state
* Add the hvac_state sensor
* Update requirements and remove trailing whitespace
Clean up the multiline docstring
Adding a space between summary and description
* Removing the hvac_state as a property on the nest climate
* Update nest.py
6-12-09 18:12:30 homeassistant.core: Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/lib/python3.4/asyncio/tasks.py", line 237, in _step
result = next(coro)
File "/srv/hass/hass_venv/lib/python3.4/site-packages/homeassistant/helpers/entity_component.py", line 386, in _update_entity_states
yield from update_coro
File "/srv/hass/hass_venv/lib/python3.4/site-packages/homeassistant/helpers/entity.py", line 240, in async_update_ha_state
self._attr_setter('entity_picture', str, ATTR_ENTITY_PICTURE, attr)
File "/srv/hass/hass_venv/lib/python3.4/site-packages/homeassistant/helpers/entity.py", line 307, in _attr_setter
value = getattr(self, name)
File "/srv/hass/hass_venv/lib/python3.4/site-packages/homeassistant/components/sensor/wunderground.py", line 176, in entity_picture
url = self.rest.data['icon_url']
TypeError: 'NoneType' object is not subscriptable
* Added Volume Set option and autodiscovery functions to Denon AVR receivers
* Corrected issues in SSDP discovery and in case no host could be discovered
* Corrected discovery handling / added denonavr to discovery platform
* No needless discoveries anymore / add_devices() with list instead of loop
* TTS Component / Google speech platform
* Change file backend handling / cache
* Use mimetype / rename Provider function / allow cache on service call
* Add a memcache for faster response
* Add demo platform
* First version of unittest
* Address comments
* improve error handling / address comments
* Add google unittest & check http response code
* Change url param handling
* add test for other language
* Change hash to sha256 for same hash on every os/hardware
* add unittest for receive demo data
* add test for error cases
* Test case load from file to mem over aiohttp server
* Use cache SpeechManager level, address other comments
* Add service for clear cache
* Update service.yaml
* add support for spliting google message
* Display error message instead of exception
Display error message in log instead of stack trace.
(Usually happens when a server is already running at the same port.)
* Update __init__.py
Better error handling when reading SSL certificate
* Update __init__.py
* Update __init__.py
* Bump python-nest to fix issue with Nest Cam without activity zones
* bump to include fix python-nest dependency with hvac_state
* regenerate requirements_all.txt
* Add media position support and trailer type to Emby
* Adjustments to mitigate TypeError
* Simplify media_position property
* Update handling when data isn't available
* Update emby.py
- Implemented support for covers and dimmable lights.
- Removed global object, use hass.data.
- Disabled polling via update.
- Inherit from common TelldusLiveEntity device.
- Configurable polling interval
- Use https API endpoint
- Use tellduslive package
* Add debug level logging of messages in denon
* Added media stop for Denon AVR Media Player
* Sort source list
* Rework input selection for Denon AVR
This reworks the input selection, adding more modes and making it so
that the media controls are only announced in modes where they actually
makes sense.
* Added real media info for Denon AVR Media modes
* Read more configuration from denon devices
This reads network name, and overrides the local name with that.
This also reads the source names and reconfigures the input list to
those names, and also reads the source deleted list and removes the
inputs that are set to deleted in the device.
* Discover and handle max volume in Denon media player
* Rework source discovery in Denon media player
This uses SSFUN as authorative source for which sources that we should
present.
* Add support for Hue LightGroup entity
* Don't filter on LightGroup and add properties for a group
* Reuse code from HueLight in HueLightGroup
* Remove HueLightGroup and add is_group variable to HueLight
* Make linter happy
* Update light or lightgroup state when a new state is available
* Use schedule_update_ha_state() to schedule the state update. Drop new_lightgroups and use new_lights instead.
* code style fix
* Improving Battery info
Improving battery status info (to reflect NetAtmo API documentation and change deprecated DeviceList for WeatherStationData
* Fixes from previous update
Fix the hound issue.
add battery_lvl, WindAngle_value, GustAngle_value, rf_status_lvl, wifi_status_lvl
* Ecobee autoAway Event
* Update ecobee.py
Checking if event['running'] true is pointless because if false event['type'] will equal template and when true type will only be 'hold' or 'autoAway' so I've removed this check from the statement
* Bump python-nest to fix issue with Nest Cam without activity zones
* bump to include fix python-nest dependency with hvac_state
* regenerate requirements_all.txt
* Prevent emulated hue discovery
Test for “HASS Bridge” in discovery info, pass if found, else try and
setup the bridge.
* Solved coding error
Duplicate commands and return false added for component.
* Pilight: dont protocol as list in COMMAND_SCHEMA
As described in bug #4637 the protocol should not be wrapped in a list
in the spec of COMMAND_SCHEMA because this causes the component to
never successfully match any received rf code.
As pointed ot in PR #4639 the easiest way to do this, is to not derive
COMMAND_SCHEMA from RF_CODE_SCHEMA and specify protocol as simple
string there.
This fixes bug #4637.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Pilight: Add "unitcode" to command schema.
This adds "unitcode" to the COMMAND_SCHEMA. It is used for example in
the brennenstuhl protocol of pilight.
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
This adds support for the scene component to handle input_select
devices and set their options.
This fixes bug #4673
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Migrate remote to async
* add coro
* remove sync from init since only used in harmony
* import ATTR from remote
* remove unused sync stuff from tests
* Updated python-nest dependency
This sha fixes two issues:
- min and max temperatures not being set when temperature isn't locked
- fixes error when setting farenheit with a .5
* gen requirements all
* Add fix for https://github.com/home-assistant/home-assistant/issues/4731
* Updated python-nest dependency
This sha fixes two issues:
- min and max temperatures not being set when temperature isn't locked
- fixes error when setting farenheit with a .5
* gen requirements all
* Add fix for https://github.com/home-assistant/home-assistant/issues/4731
* Add support for telldus in the Docker image. Start with -v /tmp/TelldusClient:/tmp/TelldusClient -v /tmp/TelldusEvents:/tmp/TelldusEvents
* Merged telldus install with the others
* Clean up indenting
* Stream apt-key
* ensure_list
* CONF_ID is not required configuration for enocean lights
* Use vol.All(cv.ensure_list, [vol.Coerce(int)]) as suggested in pull request review
* Fix line too long
* change unifi dependency to pyunifi
* Change dependency to fix#4336
* Run gen_requirements_all.py script
* Changed import statement to reflect new package
* Updated test_unifiy.py with different module
* Update requirements_all.txt
* Add support for Netatmo Welcome Tags
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Add size parameter for WelcomeData
* minor fixes
* Add Throttling mechanism for update event
This will prevent to reach the API limit
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Change scan interval for Netatmo Binary sensors
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Minor fixes
Signed-off-by: Hugo D. (jabesq) <jabesq@gmail.com>
* Update netatmo.py
* Added component for flic smart buttons.
* Apply home-assistant coding styles.
* Fixed flic configuration.
* Made logging for scanning for new buttons less verbose.
* Fixed flic event data.
* Follow async conventions.
* Added new requirements to requirements_all.txt.
* Added flic component to .coveragerc
* Updated flic threshold configuration key names.
* Flic devices are now removed when they disconnect.
* Include review feedback.
* Fixed stopping of clients in flic component when home assistant is stopped.
* Updated flic component by integrating input of #4738.
Use library method to determine click type. Merge three click events into single one with click_type parameter.
* Use a single client for both handling click events and scanning for new buttons.
* Renamed flic ‘auto_scan’ configuration variable to ‘discovery’ using HA constants.
* Add sensor for reading ZAMG weather conditions
* Add to coveragerc; Correct some doc style problems
* More doc fixes
* More doc fixes
* Lose license and whatever.
* Don't return UNKNOWN for unknown variables
* Verify that the configured station id is actually one in the data set.
Don't warn about unknown stations, this cannot happen any more as the configuration parser now checks that.
This could still happen if the data set is incomplete though ...
* Clean up imports
* Clarify comment on throttling interval
* Base zamg sensor on Entity, not WeatherEntity, and delete unused code
* Fix formatting nits from flake8
* Use ATTR_FRIENDLY_NAME, clean up imports, remove unnecessary indirection.
* Use {}.format() instead of "" %
* Re-add unit of measurement that got lost somehow
* Use guard clauses instead of if-matroshka.
Wrap requests.get() in try/except for RequestException.
* Huh, how did this happen? White space corrections...
* Add sensor for reading ZAMG weather conditions
* Add to coveragerc; Correct some doc style problems
* More doc fixes
* More doc fixes
* Verify that the configured station id is actually one in the data set.
Don't warn about unknown stations, this cannot happen any more as the configuration parser now checks that.
This could still happen if the data set is incomplete though ...
* Lose license and whatever.
* Don't return UNKNOWN for unknown variables
* Clean up imports
* Clarify comment on throttling interval
* Base zamg sensor on Entity, not WeatherEntity, and delete unused code
* Fix formatting nits from flake8
* Use ATTR_FRIENDLY_NAME, clean up imports, remove unnecessary indirection.
* Use {}.format() instead of "" %
* Re-add unit of measurement that got lost somehow
* Use guard clauses instead of if-matroshka.
Wrap requests.get() in try/except for RequestException.
* Huh, how did this happen? White space corrections...
* Precipitation actually is a float, good it rained today
* Logger needs no module visibility
* Do not name sensors with _ to be in line with the other weather sensor platforms.
* Remove manually set friendly_name
* comment format police
* Less comments
* Update zamg.py
* ensure_list
* CONF_ID is not required configuration for enocean lights
* Use vol.All(cv.ensure_list, [vol.Coerce(int)]) as suggested in pull request review
* Fix line too long
* initial commit
Previous work included with no history. Sorry, I was figuring out how to use git, branches and deal with open source projects. At this point this is a working switch but with the shortcomings of each of the 8 ports causes a network query. This needs to be rewritten so that the SwitchDevice is part of a larger device group that is only queried once, saving traffic and preventing the small device from timing out.
* Device polls independent of switches now
Used anel_pwrctrl.py as a basis to extract the per-switch polling out to per-device so it can be trottled properly. Likewise, no longer touching the device independently for relay status AND relay name. Getting them both from the same statuslist() return.
* Final comments and tweaks
Lowered cycle and update time since the device update is working so well now. Effectively no timeouts anymore.
* Added dlipower to requirements
homeassistant.components.switch.digitalloggers
* Tox fixes
pydocstyle updates
* More tox errors
* Yet more tox
Removed useful future TODO and helpful details on the structure of the statuslocal list.
Good catch on not initializing .update(), though it worked.
* Blank line fix
* Added file to .coveragerc
* Migrate remote to async
* add coro
* remove sync from init since only used in harmony
* import ATTR from remote
* remove unused sync stuff from tests
* Add source_list to universal media player
* Expanded attirubte and command support for UMP
Added support to the universal media player
for the following:
Volume Set
Current Source
Set Source
Current Volume
The goal is to facilitate a single-card media player
that includes source selection and setting the volume
of the receiver.
Example setup:
```
media_player:
- platform: universal
name: Media Center
children:
- media_player.kodi
- media_player.cast
commands:
select_source:
service: media_player.select_source
data:
entity_id: media_player.receiver
volume_set:
service: media_player.volume_set
data:
entity_id: media_player.receiver
volume_mute:
service: media_player.volume_mute
data:
entity_id: media_player.receiver
turn_on:
service: homeassistant.turn_on
data:
entity_id: media_player.receiver
turn_off:
service: homeassistant.turn_off
data:
entity_id: media_player.receiver
attributes:
state: media_player.receiver
is_volume_muted: media_player.receiver|is_volume_muted
volume_level: media_player.receiver|volume_level
source: media_player.receiver|source
source_list: media_player.receiver|source_list
```
* Remove print statements
* Change service call back to use call_from_config
* Modified service calls to use template data
* linting fixes
* Add tests
* linting fices
* More pylinting
* Add option to hide the group card switch
* Disallow control of hidden group switches
* Revert "Disallow control of hidden group switches"
This reverts commit 75e5ddfe3092327647e2873cb03ccf3b4a75b85a.
* Changed hide_switch to control
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Fix lint issues.
* Remove global variable according to hint from balloob.
* Fixed attributes that are lists cuasing invalid influx syntax
* Added bool and fixed mixed data type issue
* Fixed changing nearly all data types to float causing some worse influxdb errors. whoops
* Added line to end of file
* Extending efergy component for get the amount of energy consumed
* Changing units from kW to kWh
* Chaning units for Instant Consumption from kWh to kW
* Adding timeout for get and removing pylint config
* Update efergy.py
* Add MAC vendor lookup for device_tracker.
* Test vendor mac lookup and fix device attribute.
* Generate requirements.
* Style.
* Use hyphen instead of underscore to satisfy 'idna'.
https://github.com/kjd/idna/issues/17
* Resort imports.
* Refactor macvendor to use macvendors.com API instead of netaddr library.
* Test vendor lookup using macvendors.com api.
* Remove debugging.
* Correct description.
* No longer needed.
* Device tracker is now an async component. Fix ddwrt tests.
* Fix linting.
* Add test case for error conditions.
* There is no reason to retry failes vendor loopups as they won't be saved to the file anyways at that point.
* Sorry, bad assumption, this only made things worse.
* Wait for async parts during setup component to complete before asserting results.
* Fix linting.
* Is generated when running 'coverage html'.
* Undo isort.
* Make aioclient_mock exception more generic.
* Only lookup mac vendor string with adding new device to known_devices.yaml.
* Undo isort.
* Revert unneeded change.
* Adjust to use new websession pattern.
* Always make sure to cleanup response.
* Use correct function to release response.
* Fix tests.
* Initial Harmony device support, working current activity sensor and switch for each activity
TODO: add new device per hub to send device specific activity
Changes to be committed:
new file: homeassistant/components/harmony.py
new file: homeassistant/components/sensor/harmony.py
new file: homeassistant/components/switch/harmony.py
* ready for beta, I think
Changes to be committed:
modified: homeassistant/components/harmony.py
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
* Changes to be committed:
modified: homeassistant/components/harmony.py
new file: homeassistant/components/remote/__init__.py
new file: homeassistant/components/remote/harmony.py
new file: homeassistant/components/remote/services.yaml
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
Implemented remote component and harmony platform
* streamlined harmony support
* typo
* Initial Harmony device support, working current activity sensor and switch for each activity
TODO: add new device per hub to send device specific activity
Changes to be committed:
new file: homeassistant/components/harmony.py
new file: homeassistant/components/sensor/harmony.py
new file: homeassistant/components/switch/harmony.py
* ready for beta, I think
Changes to be committed:
modified: homeassistant/components/harmony.py
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
* Changes to be committed:
modified: homeassistant/components/harmony.py
new file: homeassistant/components/remote/__init__.py
new file: homeassistant/components/remote/harmony.py
new file: homeassistant/components/remote/services.yaml
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
Implemented remote component and harmony platform
* streamlined harmony support
* typo
* reworked token generation
* delete
* Initial Harmony device support, working current activity sensor and switch for each activity
TODO: add new device per hub to send device specific activity
Changes to be committed:
new file: homeassistant/components/harmony.py
new file: homeassistant/components/sensor/harmony.py
new file: homeassistant/components/switch/harmony.py
* Initial Harmony device support, working current activity sensor and switch for each activity
TODO: add new device per hub to send device specific activity
Changes to be committed:
new file: homeassistant/components/harmony.py
new file: homeassistant/components/sensor/harmony.py
new file: homeassistant/components/switch/harmony.py
* ready for beta, I think
Changes to be committed:
modified: homeassistant/components/harmony.py
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
* ready for beta, I think
Changes to be committed:
modified: homeassistant/components/harmony.py
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
* Changes to be committed:
modified: homeassistant/components/harmony.py
new file: homeassistant/components/remote/__init__.py
new file: homeassistant/components/remote/harmony.py
new file: homeassistant/components/remote/services.yaml
modified: homeassistant/components/sensor/harmony.py
modified: homeassistant/components/switch/harmony.py
Implemented remote component and harmony platform
* streamlined harmony support
* typo
* reworked token generation
* delete
* readded after rebase
* cleaning up style errors
* modified .coveragerc
* moved import statements
* added more debug logging
* Added URL encoding of token received from Logitech
* Corrected import for python 3
* new pyharmony version
* new pyharmony version
* remote tests
* only write config file if not present or sync service is called
* more tests
* more tests
* bumped pyharmony version to work with new auth
* bumped pyharmony version to work with new auth
* style corrections
* harmony local auth and remote demo platform
* style fix
* PR refinements and permission issues
* forgot a blank line
* removed sync test from test_init
* removed sync test from test_init
* visual indent
* send_command test in demo platform
If the mpd client ran into an socket timeout, the socket will raise an
OSError on every further request. This adds OSError to the list of
excptions, that causes a client reconnect.
This fixes#4650
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
In media_content_id() the "id" of the current song was returned. as
stated in bug #4652 the id is only the Tracklist-Id in the current
tracklist and is omitted if the track is not part of a tracklist (what
caused the bug in the first place).
To match the semantics described in the dockstring, to return a "Content
ID", this chooses the filename of the current song as id and returns
it.
It also uses get() instead of [] to prevent KeyError.
This fixes bug #4652
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add channel switching for philips tvs.
* Disable track buttons when not watching tv.
* Undo isort config.
* Yes it does.
* Just testing some assumption on hound's flake8 behaviour.
* Revert "Just testing some assumption on hound's flake8 behaviour."
This reverts commit ff9940b39e2c68785287c8567bf4862a4a49fe78.
* poke
* Introduced support to Amcrest IP Cameras
* Fixed lint issues
* Fixed requirements test
* * Implemented test to verify crendentials during camera setup
* Added persistent_notification in case of error when during Amcrest setup
* Homematic update with HomematicIP/HomematicWired support and multible connections
* fix bug in virtualkey service
* create new service & cleanups
* fix lint
* Pump pyhomematic 0.1.18
* Default dimmable brightness to 255 from 100
Full brightness for ISY dimmers is 255. The current 100 value turns dimmer switches on to just under half brightness. Probably just an oversight from the Sept implementation.
* Brightness change for turn_on, ramp for turn_off.
Per discussion with Teagan42 and jbcodemonkey, the brightness should rightfully be None and not an explicit value. There is a continuing issue that the ISY modules don't respect HA's brightness customization values. A new issue will be opened for this.
Additionally, turn_off was using ISY's fastoff() which didn't respect the ramping time. The default behavior should just be off().
* Implement WAQI sensor
* Corrections based on CI check.
* Updated requirements_all.txt for pwaqi==1.2
* Require latest version of pwaqi
* Initial implementation of DuneHD media player component based on pdunehd.
* Major: avoid update() in property fetch,
Major: implement source support,
Major: single device per media player instance,
Major: support for volume / mute controls
* Pythonify pdunehd.
Support media_title.
* Fix pylint.
* Further pylint.
* docstring
* Formatting and indentation.
* Change indentation to spaces.
* Update coverage and recorded requirements before PR.
* Further pylint / fake8 / pydocstyle fixes.
* Implement next / prev track,
Properly decode blu-ray playback,
Attempt to decode media title
* Fix play / pause
Linting
* Update requirements.
Fix lint.
* Fix lint and syntax error
* Yet more linting.
* Yet more linting.
* Fix lint: line too long.
* Force update of HA state.
Fixes https://github.com/home-assistant/home-assistant/issues/4389
The USB address of these devices periodically changes, causing
home-assistant to fail to read the temperature data. This PR fixes this
by re-reading the available devices on failure. I've been running this
for several days and for the first time have consistent temperature
data without having to restart home-assistant.
* Add exception handling to request call to prevent
failure in setup_platform if host is down
* update for comments
* update test for state being none
* remove unused import
* Added support for media_position property to media_player + implementation for sonos.
* Pla yback progress now updates without needed state transitions in HA.
* Linting fixes
* media_position_update_at property is now a datetime.
* Minor fix.
* Linting fixes.
* Add support for light effects
* Move PLATFORM_SCHEMA changes in light to mqtt_template
* Add effect validation
* Add unittests
* Add light effect to demo and unittests
* Use cv.string for config validation
* Use cv.ensure_list for config validation
* Fix typo
* Remove unused exception management for effect
* start nestcam support
* start nestcam support
* introduce a access_token_cache_file
* Bare minimum to get nest thermostat loading
* occaisonally the image works
* switch to nest-aware interval for testing
* Add Nest Aware awareness
* remove duplicate error logging line
* Fix nest protect support
* address baloobot
* fix copy pasta
* fix more baloobot
* last baloobot thing for now?
* Use streaming status to determine online or not. online from nest means its on the network
* Fix temperature scale for climate
* Add support for eco mode
* Fix auto mode for nest climate
* update update current_operation and set_operation mode to use constant when possible. try to get setting something working
* remove stale comment
* unused-argument already disabled globally
* Add eco to the end, instead of after off
* Simplify conditional when the hass mode is the same as the nest one
* away_temperature became eco_temperature, and works with eco mode
* Update min/max temp based on locked temperature
* Forgot to set locked stuff during construction
* Cache image instead of throttling (which returns none), respect NestAware subscription
* Fix _time_between_snapshots before the first update
* WIP pin authorization
* Add some more logging
* Working configurator, woo. Fix some hound errors
* Updated pin workflow
* Deprecate more sensors
* Don't update during access of name
* Don't update during access of name
* Add camera brand
* Fix up some syntastic errors
* Fix ups ome hound errors
* Maybe fix some more?
* Move snapshot simulator url checking down into python-nest
* Rename _ready_to_update_camera_image to _ready_for_snapshot
* More fixes
* Set the next time a snapshot can be taken when one is taken to simplify logic
* Add a FIXME about update not getting called
* Call update during constructor, so values get set at least once
* Fix up names
* Remove todo about eco, since that's pretty nest
* thanks hound
* Fix temperature being off for farenheight.
* Fix some lint errors, which includes using a git version of python-nest with updated code
* generate requirements_all.py
* fix pylint
* Update nestcam before adding
* Fix polling of NestCamera
* Lint
* Expose isort preferences for tools.
* Adhere to pylints sorted imports requirement.
* More documentation, set typing in between stdlib and 3rd party.
This lets components declare their precision for temperatures. If
nothing is declared, we assume 0.1 C and whole integer precision in
F. Currently this supports only WHOLE, HALVES, and TENTHS for
precision, but adding other precision levels is pretty straight
forward.
This also uses proliphix as an example of changing the precision for a
platform.
Closes bug #4350
* Remove fixed throttle for binary_sensor.command_line and sensor.command_line since the scan_interval is configured trough YAML since #1059
* Clean up imports
* Add SCAN_INTERVAL=60 to put default scan_inteval back to 60
* Add websocket API
* Add identifiers to interactions
* Allow unsubscribing event listeners
* Add support for fetching data
* Clean up handling code websockets api
* Lint
* Add Home Assistant version to auth messages
* Py.test be less verbose in tox
* Move HTTP to own folder
* Break HTTP into middlewares
* Lint
* Split tests per middleware
* Clean up HTTP tests
* Make HomeAssistantViews more stateless
* Lint
* Make HTTP setup async
* #4421 - Forced icons to be displayed via SSL to avoid Mixed Content warnings
* Fixed houndci-bot whitespace
* Using regex to replace http:// for https://
* Created assert test to verify https translation
* LiteJet: Unit tests and new trigger options held_more_than and held_less_than.
* Unit tests for the LiteJet component and associated platforms. Coverage is almost 100% -- just misses one line.
* The automation LiteJet trigger returns an empty "removal" function to ensure the automation base is happy with it. The pylitejet library doesn't actually support a real removal.
* The automation LiteJet trigger can detect hold time and act appropriately to support things like short tap or long hold.
* LiteJet: Fix indent in unit test source code.
* LiteJet: Fix test_include_switches_* unit tests on Python 3.5
* LiteJet: Remove wait for state existence from unit tests. Recent fixes to discovery make this no longer necessary.
* Removed raise statement to don't polute the user log.
Only the error message should be displayed.
Nov 22 11:28:32 tchellopi hass[20138]: 16-11-22 11:28:32 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Nov 22 11:28:32 tchellopi hass[20138]: Traceback (most recent call last):
Nov 22 11:28:32 tchellopi hass[20138]: File "/usr/local/lib/python3.5/asyncio/tasks.py", line 241, in _step
Nov 22 11:28:32 tchellopi hass[20138]: result = coro.throw(exc)
Nov 22 11:28:32 tchellopi hass[20138]: File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/helpers/entity_component.py", line 386, in _update_entity_states
Nov 22 11:28:32 tchellopi hass[20138]: yield from update_coro
Nov 22 11:28:32 tchellopi hass[20138]: File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 213, in async_update_ha_state
Nov 22 11:28:32 tchellopi hass[20138]: yield from self.hass.loop.run_in_executor(None, self.update)
Nov 22 11:28:32 tchellopi hass[20138]: File "/usr/local/lib/python3.5/asyncio/futures.py", line 361, in __iter__
Nov 22 11:28:32 tchellopi hass[20138]: yield self # This tells Task to wait for completion.
Nov 22 11:28:32 tchellopi hass[20138]: File "/usr/local/lib/python3.5/asyncio/tasks.py", line 296, in _wakeup
Nov 22 11:28:32 tchellopi hass[20138]: future.result()
Nov 22 11:28:32 tchellopi hass[20138]: File "/usr/local/lib/python3.5/asyncio/futures.py", line 274, in result
Nov 22 11:28:32 tchellopi hass[20138]: raise self._exception
Nov 22 11:28:32 tchellopi hass[20138]: File "/usr/local/lib/python3.5/concurrent/futures/thread.py", line 55, in run
Nov 22 11:28:32 tchellopi hass[20138]: result = self.fn(*self.args, **self.kwargs)
Nov 22 11:28:32 tchellopi hass[20138]: File "/home/hass/.homeassistant/custom_components/sensor/wunderground.py", line 187, in update
Nov 22 11:28:32 tchellopi hass[20138]: self.rest.update()
Nov 22 11:28:32 tchellopi hass[20138]: File "/home/hass/.virtualenvs/home_assistant/lib/python3.5/site-packages/homeassistant/util/__init__.py", line 296, in wrapper
Nov 22 11:28:32 tchellopi hass[20138]: result = method(*args, **kwargs)
Nov 22 11:28:32 tchellopi hass[20138]: File "/home/hass/.homeassistant/custom_components/sensor/wunderground.py", line 222, in update
Nov 22 11:28:32 tchellopi hass[20138]: ["description"])
Nov 22 11:28:32 tchellopi hass[20138]: ValueError: you must supply a key
* Updated unittest since we are just printing the error instead raising
* Initial implemenation of DSMR component.
* Fix linting
* Remove protocol V2.2 support until merged upstream.
* Generate requirements using script.
* Use updated dsmr-parser with protocol 2.2 support.
* Add tests.
* Isort and input validation.
* Add entities for gas and actual meter reading. Error handling. Use Throttle.
* Implement non-blocking serial reader.
* Improve logging.
* Merge entities into one, add icons, fix tests for asyncio.
* Add error logging for serial reader.
* Refactoring and documentation.
- refactor asyncio reader task to make sure it stops with HA
- document general principle of this component
- refactor entity reading to be more clear
- remove cruft from split entity implementation
* Use `port` configuration key.
* DSMR V2.2 seems to conflict in explaining which tariff is high and low.
http://www.netbeheernederland.nl/themas/hotspot/hotspot-documenten/?dossierid=11010056&title=Slimme%20meter&onderdeel=Documenten
> DSMR v2.2 Final P1
>> 6.1: table vs table note
Meter Reading electricity delivered to client normal tariff) in 0,01 kWh - 1-0:1.8.1.255
Meter Reading electricity delivered to client (low tariff) in 0,01 kWh - 1-0:1.8.2.255
Note: Tariff code 1 is used for low tariff and tariff code 2 is used for normal tariff.
* Refactor to use asyncio.Protocol instead of loop+queue.
* Fix requirements
* Close transport when HA stops.
* Cleanup.
* Include as dependency for testing (until merged upstream.)
* Fix style.
* Update setup.cfg
* Implement WAQI sensor
* Corrections based on CI check.
* Updated requirements_all.txt for pwaqi==1.2
* Require latest version of pwaqi
* Fix lint: single argument for .exception and no more pass statement.
* Further lint fixes.
* pydocstyle fix
* Implement rate throttle.
Data on WAQI is usually updated once an hour - make it refresh every thirty minutes.
* Implement schema validation with voluptuous.
Change exception handling scope.
Move messages to debug().
* Fix lint (empty indented line).
* Sort lines correctly.
* Fix last lint issue.
* Provide additional sensor data as received from WAQI.
Easier-to-read throttle timing.
* Additional object attributes to be unrolled later.
* Add sonarr sensor and tests for sensor
* Fixed some linting errors and removed unused import
* Add SSL option for those who use SSL from within Sonarr
* Add requirements to all requirements, and sensor to coveragerc
* remove unused variable
* move methods to functions, and other lint fixes
* linting fixes
* linting is clean now
* Remove double requirement
* fix linting for docstrings, this should probably be a part of the script/lint and not just travis
* used MindrustUK's version ( https://github.com/MindrustUK/python-lightify/commits/master/osramlightify.py ) from Oct 2, 2016 and changed the REQUIRMENTS line to use the fixed lightify component with thread safety fixes
* reformatted long lines
* updated osramlightify requirements in requirements_all.txt
* ran script gen_requirements_all.py
* rerun requirements gen script on linux
* fixed some inspection warnings
* zip file points to a specific commit
* no requests to lights in properties, instead instance variables are update in update method
* regenerated requirements_all.txt
* removed call to update from is_on() property
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Refactor tellstick code for increased readability. Especially highlight if "device" is a telldus core device or a HA entity.
* Refactor Tellstick object model for increased clarity.
* Update comments. Unify better with sensors. Fix typo bug. Add debug logging.
* Fix lint issues.
* Climate: more consistent units
* Prevent unnecessary conversion in entity component
* int -> round
* Disable Google tests because they connect to the internet
* Remove default conversion rounding F->C
* Add rounding of temp to weather comp
* Fix equality
* Maintain precision when converting temp in entity
* Revert "Disable Google tests because they connect to the internet"
This reverts commit b60485dc19bb97f4a502854d5ff2297330df0b40.
* new config parameter to specify number of digits for rounding average value
* fixed two `line too long` errors
* added three new tests for the mean sensor including test for precision of mean value
* Added source selection for Denon AVR Media Player
* Update denon.py
* Update denon.py
* Update denon.py
* Update denon.py
* Update denon.py
slight format update (space issue and new line)
* Further update regarding formatting
* Updated the source name with lowercase
* Update denon.py
pyvera 0.2.21 fixes the fact that use of requests.get was not using a
timeout. Some times (after a few days of use) the pyvera poll loop
would hang indefinitely on a requests.get of the event interface. This
would cause the pyvera thread to hang completely. It would also
prevent graceful shutdown, as pyvera does a thread join.
The new version uses a timeout, so that we won't lock up any more.
* create light.hue_activate_scene service
This creates a light.hue_activate_scene service that takes group_name
and scene_name, and calls phue's bridge.run_scene with those
parameters. This allows calling hue bridge stored scene names by name
during automation.
This only currently works reliably in 1 hue hub configurations (which
is most of them). Phue will be further enhanced to display warnings
when it can't figure out what to do with the parameters passed in to HA.
* Update hue.py
* Add keypress & output control services to Envisalink component
Add services to allow sending custom keypresses and activating
programmable outputs on an alarm control panel.
Implemented for the Envisalink alarm, and moving to new version of
pyenvisalink to support this.
Replicated the service handler mapping code from Cover component into
Alarm Control Panel to allow handling alternative schemas if required
by new services.
* Update requirements_all.txt
* Updated services.yaml
* Removed requirement to enter code in HA UI
Incorporated changes suggested by @sriram
https://github.com/srirams/home-assistant/commit/2f8deb70cb5f3621a69b6b9
acb72f8e29123650c
Including pending state for exit/entry delay
Clarified services to use the code passed to them as a first priority,
otherwise use the code from configuration
Swapped back to using NotImplementedError for the service definitions
* - Add support for alarm_keypress to manual alarm (functions like a standard alarm keypad where entering the code disarms or arms the alarm)
- Add tests for alarm_keypress to manual alarm
- Style corrections (too many returns, comment & whitespace issues)
* Removed alarm_output_control service as unable to incorporate in the demo/test in a meaningful way
* Add keypress & output control services to Envisalink component
Add services to allow sending custom keypresses and activating
programmable outputs on an alarm control panel.
Implemented for the Envisalink alarm, and moving to new version of
pyenvisalink to support this.
Replicated the service handler mapping code from Cover component into
Alarm Control Panel to allow handling alternative schemas if required
by new services.
* Update requirements_all.txt
* Updated services.yaml
* Removed requirement to enter code in HA UI
Incorporated changes suggested by @sriram
https://github.com/srirams/home-assistant/commit/2f8deb70cb5f3621a69b6b9
acb72f8e29123650c
Including pending state for exit/entry delay
Clarified services to use the code passed to them as a first priority,
otherwise use the code from configuration
Swapped back to using NotImplementedError for the service definitions
* - Add support for alarm_keypress to manual alarm (functions like a standard alarm keypad where entering the code disarms or arms the alarm)
- Add tests for alarm_keypress to manual alarm
- Style corrections (too many returns, comment & whitespace issues)
* Removed alarm_output_control service as unable to incorporate in the demo/test in a meaningful way
* Moved the Alarm_Keypress service into Envisalink component out of the generic
* Update envisalink.py
* Update services.yaml
* Migrate callbacks to use schedule_update_ha_state
* Migrate MQTT sensor callback to async
* Migrate wemo to not update inside schedule_update_ha_state
* Make MQTT switch async
* Fix nx584 test
* Migrate tellstick callback
* Migrate vera callback
* Alarm control panel - manual: use async callbacks
* Run the switch rest tests that work
This makes it so that media playback support for inputs is dynamically
fetched from the receiver, instead of assuming that all playback
commands work for all inputs.
Tests are added for this, using a FakeYamaha class, which has some
sample data stubbed in for key methods that need to be called. We also
include an example of the desc.xml needed to dynamically parse these
features for these tests (as this is done in platform init).
* Convert switch to AsnycIO
* Move update entity to service
* use time better for faster handling
* Change to suggestion from paulus
* Use new shedule_update_ha_state
* fix lint
* minimize executor calls
This feature needs to be enabled through the `http.use_x_forwarded_for` option,
satisfying security concerns of spoofed remote addresses in untrusted network
environments.
The testsuite was enhanced to explicitly test the functionality of the
header.
Fixes#4265.
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
The linters really need to specify an exact version, because when
either flake8 or pylint release a new version, a whole lot of new
issues are caught, causing failures on the code unrelated to the
patches being pushed.
Pinning is a best practice for linters. This allows patches which move
forward the linter version to happen with any code fixes required for
it to pass.
Occassionally the values of `keys` and `p256h` are bytes objects instead of
strings. As JSON by default does not serialize bytes objects let's decode
bytes objects to unicode strings.
Resolves the registration issue mentioned in #4012.
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
The linters really need to specify an exact version, because when
either flake8 or pylint release a new version, a whole lot of new
issues are caught, causing failures on the code unrelated to the
patches being pushed.
Pinning is a best practice for linters. This allows patches which move
forward the linter version to happen with any code fixes required for
it to pass.
Occassionally the values of `keys` and `p256h` are bytes objects instead of
strings. As JSON by default does not serialize bytes objects let's decode
bytes objects to unicode strings.
Resolves the registration issue mentioned in #4012.
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
* Use entity_id for backend, friendly name for frontend
Closes https://github.com/home-assistant/home-assistant/issues/3434
Command line switches had the option to set a `friendly_name` reportedly
for use in the front end. However, if set, it was also being used as the
`entity_id`.
This did not seem like obvious behavior to me. This PR changes the
behavior so the entity_id is the object_id, which must already be
unique, and is an obvious place to have a very predictable slug (even if
long or unsightly), and the friendly name (if set) is used for the
display.
Example:
```yaml
switch:
platform: command_line
switches:
rf_kitchen_light_one:
command_on: switch_command on kitchen
command_off: switch_command off kitchen
command_state: query_command kitchen
value_template: '{{ value == "online" }}'
friendly_name: "Beautiful bright kitchen light!"
```
If you were using in an automation or from dev tools, would use:
`switch.rf_kitchen_light_one`, but your front end would still show `Beautiful
bright kitchen light!`
* Add new arg to test_assumed_state_should_be_true_if_command_state_is_false
* Import ENTITY_ID _FORMAT from existing, rename device_name to object_id
* Rename `device_name` to `object_id`
* Test that `entity_id` and `name` are set as expected
This feature needs to be enabled through the `http.use_x_forwarded_for` option,
satisfying security concerns of spoofed remote addresses in untrusted network
environments.
The testsuite was enhanced to explicitly test the functionality of the
header.
Fixes#4265.
Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de>
* Added some extra options to Weather Underground component
* Added Location and Elevation options
* Fixed if statement
* Fixed lint
* Updated tests including elevation and location
* Update wunderground.py
* Synology SSL fix & Error handling
* change handling for cookies/ssl
* fix use not deprecated functions
* fix lint
* change verify
* fix connector close to coro
* fix force close
* not needed since websession close connector too
* fix params
* fix lint
* Fix "argument of type 'NoneType' is not iterable" during discovery
When yamaha receivers are dynamically discovered, there config is
empty, which means that we need to set zone_ignore to [] otherwise the
iteration over receivers fails.
* Bump rxv library version to fix play_status bug
rxv version 0.3 will issue the play_status command even for sources
that don't support it, causing stack traces during updates when
receivers are on HDMI inputs.
This was fixed in rxv 0.3.1. Bump to fix bug #4226.
* Don't discovery receivers that we've already configured
The discovery component doesn't know anything about already configured
receivers. This means that specifying a receiver manually will make it
show up twice if you have the discovery component enabled.
This puts a platform specific work around here that ensures that if
the media_player is found, we ignore the discovery system.
* Change pilight systemcode validation to integer
According to the pilight code the systemcode should be an integer and
not a string (it is an int in the pilight code). Passing this as a
string caused errors from pilight:
"ERROR: elro_800_switch: insufficient number of arguments"
This fixes#4282
* Change pilight unit-id to positive integer
According to the pilight code the unit of an entity is also evrywhere
handled as an integer. So converting and passing this as string causes
pilight not to work.
This fixes#4282
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Synology SSL fix & Error handling
* change handling for cookies/ssl
* fix use not deprecated functions
* fix lint
* change verify
* fix connector close to coro
* fix force close
* not needed since websession close connector too
* fix params
* fix lint
* Fix "argument of type 'NoneType' is not iterable" during discovery
When yamaha receivers are dynamically discovered, there config is
empty, which means that we need to set zone_ignore to [] otherwise the
iteration over receivers fails.
* Bump rxv library version to fix play_status bug
rxv version 0.3 will issue the play_status command even for sources
that don't support it, causing stack traces during updates when
receivers are on HDMI inputs.
This was fixed in rxv 0.3.1. Bump to fix bug #4226.
* Don't discovery receivers that we've already configured
The discovery component doesn't know anything about already configured
receivers. This means that specifying a receiver manually will make it
show up twice if you have the discovery component enabled.
This puts a platform specific work around here that ensures that if
the media_player is found, we ignore the discovery system.
* Change pilight systemcode validation to integer
According to the pilight code the systemcode should be an integer and
not a string (it is an int in the pilight code). Passing this as a
string caused errors from pilight:
"ERROR: elro_800_switch: insufficient number of arguments"
This fixes#4282
* Change pilight unit-id to positive integer
According to the pilight code the unit of an entity is also evrywhere
handled as an integer. So converting and passing this as string causes
pilight not to work.
This fixes#4282
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Add timeout to platform/component
* Revert "Add timeout to platform/component"
This reverts commit 280a311e485a54f731de5cf5368e0ff8ac83417f.
* Add logging data
* Change log message with paulus comments
* Set executor to 15 and help to reduce flooting async core with udpates
* fix typing
* if it a executor, wait
* address comments from paulus
* add space for style :)
* fix spell
* Update entity_component.py
* Update entity_component.py
GATEWAYS was a dict, so would overwrite item if key was the same. This
would happen when using multiple MQTT gateways, since the device id is
the same (`mqtt`).
* Fix by changing GATEWAYS from dict into list.
* Use hass data to store mysensors gateways instead of having GATEWAYS
be a global.
* Updated Emulated_Hue to send request info as variables to scripts
* Updated tests to not use the old mqtt
* Updated test to actualy use and validate the script variables
* Fixed the removal of time in a recent merge
* fixed test to not use a timer
* Add Map support for Locative component
The Locative App on the mobile is sending an HTTP request to the
server where also the GPS location is sent.
But the GPS location was not passed to the event device_tracker.see.
Use the passed GPS location from Locative and pass it to the
device_tracker.see event.
With this the device is then also shown on the HA Map component.
* Use existing constants for latitude and longitude
Use the existing constants from homeassistant.consts:
ATTR_LATITUDE for 'latitude'
ATTR_LONGITUDE for 'longitude'
* Reuse the "yield from self.hass.loop.run_in_executor" again
* Use variable gps_location
* Add Swisscom Internet-Box device tracker
* Add Swisscom device tracker to .coveragerc
* Add timeout to requests
Fix formatting and add missing comments to pass the lint test
* Remove authentication which was not required
I realised that there was no need to be authenticated to get the
connected devices. Thanks Swisscom :/
* Moving config to a PLATFORM_SCHEMA and using voluptuous
* Bugfix windows have a other default loop now
* fix handling with 3.4.2 that not support ensure_future
* make the same as ensure_future does
* fix spell
* fix lazy test
* Added Synology DSM Sensor
* Fixed balloobbot's comments
* Fixed mistake (should have run lint and flake8 before committing
* Fixed update mechanisme according to balloobs feedback
* Requesting retest as test failure isn't related to changes made
* Update the icloud device_tracker
* addressed @kellerza 's comments
* GMTT config needs an entity_id
* renamed services
* fix cookiedir and clean up keep_alive function
* fix travis errors
* forgot a self.
* update devices after initializing the API
* changed wording
* addressed changes from @kellerza
* Syntax error solved
* Update icloud.py
* Only use account of username instead of whole username as default for account name
* use slugify instead of slug for schema
* remove Google Maps Travel Time
* Add comment from original tracker back
* Added support for Philips Tvs with JointSpace API
* Flake + Lint fixes
* Lint be like "lol fu"
* Changes as requested by reviewers, except lib-requirement
* Switched to library-usage
* lint... newline-bingo...
* Fixes in TP-Link Switch logging 0 values on init
On init of component the emeter would log to influxdb and possibly other inputs a 0 value, instead of not logging anything.
Initial polling should circumvent that behavior and avoid logging inconsistencies.
* Refactors update call in __init__
* Add a method to throttle calls to services
This adds CallRateDelayThrottle. This is a class that provides an
decorator to throttle calls to services. Instead of the Throttle in
homeassistant.util it does this by delaying all subsequent calls
instead of just dropping them. Dropping of calls would be bad if we
call services to actual change the state of a connected hardware (like
rf controlled power plugs).
Ihe delay is done by rescheduling the call using
track_point_in_utc_time from homeassistant.helpers.event so it should
not block the mainloop at all.
* Add unittests for CallRateDelayThrottle
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
* Introduce a send_delay for pilight component
If pilight is used with a "pilight USB Nano" between the daemon and the
hardware, we must use a delay between sending multiple signals.
Otherwise the hardware will just skip random codes. We hit this
condition for example, if we switch a group of pilight switches on or
off. Without the delay, random switch signals will not be transmitted by
the RF transmitter.
As this seems not necessary, if the transmitter is directly connected
via GPIO, we introduce a optional configuration to set the delay.
* Add unittests for pilight send_delay handling
This adds an unittest to test the delayed calls to the send_code
service.
* Initial attempt at implementation
* Adding Garadget cover component
* Updating Device to be Required
* Updating .coveragerc to exclude from testing
* Updating code review items
* Updating per 2nd code review
* Updating configuration to be more like command-line
* Initial submission of LiteJet integration.
* Add LiteJet switch pressed automation trigger. (State changes are too slow to catch a press-release.)
Add LiteJet scene, replacing commented out code that treated these as lights.
Include LiteJet numbers in the device state so that it is easy to lookup entity -> number.
* Fix missing global.
* Allow light's brightness to be set explicitly.
* Support optional 'ignore' key to ignore prefixes of loads, switches, and scenes that weren't configured for use in the LiteJet system.
* Fix lint errors and warnings.
* Cleanup header comments.
Default to not creating LiteJet switches as these are generally not useful.
* Lint fixes.
* Fixes from pull request feedback.
* Use hass.data instead of globals for data storage.
* Fix lint warnings.
* Sonos responsiveness improvements (async_ coroutines, event based updating, album art caching) + Better radio station information
* Docstring fixes.
* Docstring fixes.
* Updated SoCo dependency + fixed file permissions.
* Only fetch speaker info if needed.
* PEP8 fixes
* Fixed SoCoMock.get_speaker_info to get test to pass.
* Regenerated requirements_all.txt + async fetching of album art with caching + added http_session to HomeAssistant object.
* Unit test fixed.
* Add blank line as per flake8
* Fixed media image proxy unit test.
* Removed async stuff.
* Removed last remnants of async stuff.
* Lazy initialise the worker pool
* Minimize pool initialization in core tests
* Fix tests on Python 3.4
* Remove passing in thread count to mock HASS
* Tests: Allow pool by default for threaded, disable for async
* Remove JobPriority for thread pool
* Fix wrong block_till_done
* EmulatedHue: Remove unused test code
* Zigbee: do not touch hass.pool
* Init loop in add_job
* Fix core test
* Fix random sensor test
* Add Emby Server media_player component
* Code cleanup, move to request sessions, generate UUID per session
* Make media image fetch more robust
* Allow for http or https
* Cleanup some Keyerror conditions found through more testing
* Move EmbyRemote to pip, update requirements
* Code cleanup, add SSL config option
* catch all errors when doing mqtt message unicode-decode.
* added AttributeError and UnicodeDecodeError to exception when decoding an mqtt message payload
* Add link to docs
* Fix link
* Update line breaks
* Update ordering
* Align vera platofrm to only use add_devices
(instead od add_devices_callback)
* Remove line break
* Use consts
* Update ordering
* Update ordering
* Use const, create default name, use string formatting
* Update ordering
* Use const
* Update import style
* Update ordering and line breaks
* update line breaks
* Set default port
* Set defaults and update ordering
* Update ordering
* Minor style updates
* Update ordering, defaults, line breaks, and readability
* Use constants
* Add line breaks
* use string formatting
* Update line breaks
* Update logger
* Fix initialization of zwave color bulbs
Zwave values can be added to the node in any order. This change allows
proper initialization when the multilevel value is added before the
color value.
* Fix incorrect rename of color command class
* Add new const (base)
* Use constant
* Remove second error message, use const, add attribution, add link
to docs, remove unused vars, and a little simplification
* Add quote
* Use const
* Add attribution, simplify the code, and use consts
* Add zone_ignore option for yamaha.
We attempt to discover all zones for yamaha receivers. There are times
when users may want to suppress some zones from showing up. When a
Zone isn't actually connected to speakers, or on some newer receivers
where Zone_4 is an HDMI only zone, that doesn't support even basic
media_player UI.
This provide a mechanism for users to do that.
Fixes#4088
* Update yamaha.py
* successfully tested the "remote temperature mode" switch for the radio thermostat
* removed logging and interpreted None as Off.
* turn_off value is also templated now -- can depend on state
Also, undid accidental removal of error logging.
* ensured backward compatibility of config file
if value_template is not provided, the update function behaves as before
* ran autopep8 --in-place
* fixed another complaint of tox
* addressed the comments of balloob
* undid acccidental log.error to log.info
* timeout : 50 -> 10
* added a timeout parameter
* removed the stray '-', better names for the failure case
* string comparisons after .lower(), as suggested by balloob
* addressed balloob's latest requests
* making flake happy
* value_template --> is_on_template in config file
* moved CONF_IS_ON_TEMPLATE to local file
* null checks
* addressed flake error
* properly comparing template text when is_on is not a template.
* Added a ThingSpeak component
* Forgot a colon. Fixed it
* Some config variables are better required
* New requirements created by the script
* Updated the .coveragerc
* Fixed small linting errors
* Removed unneccessary validation
* Even more linting error fixes
* Changed the way the component listens to state changes
* Removed unneccessary declaration of 'state' variable, referring to new_state instead
This uses the discovery code from netdisco/ha to discover yamaha
receivers. The old discovery code remains if discovery is turned of in
HA, at least for now. Though it probably is worth turning that off in
the future.
* Use unix newlines on test_emulated_hue
This commit switches the test_emulated_hue module to use unix newlines
instead of the DOS style that were there before. (using dos2unix on
the file) This makes it consistent with the other files in the repo.
* Cleanup emulated_hue tests
Previously these tests relied on the mqtt light platform as test devices
to control with the emulated hue. However, this was pretty heavyweight
and required running an MQTT broker in the tests. Instead this commit
switches it to use the demo light platform which is strictly in memory.
Fixes#3549
* Fixes issue #4067 - Wunderground sensor with alerts exceeds API limits
To avoid hitting the max limit of 500 calls per day, this patch keeps weather conditions being updated each 5 minutes
and weather advisories each 15 minutes.
This formula will result the following:
conditions -> 300 seconds -> 5 minutes -> 12 req/h -> 288 req/day
alerts -> 900 seconds -> 15 minutes -> 4 req/h -> 96 req/day
* Using timedelta in minutes instead seconds
* If no weather advisories were issued, state should return 0 instead Unknown
* Updated to keep on the same if statement
* Revert "Updated to keep on the same if statement"
This reverts commit 0e6a94aa0fa9b80dc60c7b222423fe71e1dda81b.
* Sonos improvements: media_* properties delegate to coordinator if speaker is a slave, media_image_url and media_title now works for radio streams, source selection/list takes speaker model into account, commands on slaves delegate to coordinator.
* Fixed failing unit tests.
* BUG Message data cannot be changed thus use voluptuous to ensure format
* Pilight daemon expects JSON serializable data
Thus dict is needed and not a mapping proxy.
* Add explanation why dict as message data is needed
* Use more obvious voluptuous validation scheme
* Pylint: Trailing whitespace
* Pilight sensor component
* Python 3.4 compatibility
* D202
* Use pytest-caplog and no unittest.TestCase
* Fix setup/teardown of unittests
* Activate coverage testing
* Bugfix whitelist filter and use bugfixed pilight library
* Use newest pilight library that has a bugfix
* Add unittest for pilight hub component
* PEP257 for docstrings
* Bugfix setting device name from host name and small cleanup
- Init with connection error handling is more clear
- Comments clean-up
* PEP257
* New unittest with full coverage
* Upload missing testfixtures
* D209
* Handle double quotes in reply
* Formatting
* Added support for Notifications for Android TV / FireTV
* Silly me forgot to commit coverage
* Fixed pylint
* Fixed flake8
* Fixed another flake8 -.-
* Changed option 'ip' to 'host' like most other platforms do
This commit adds a new component for communicating with mochad[1] a
socket interface for the CM15A and CM19A USB X10 controllers. This
commit leverages the pymochad library to interface with a mochad socket
either on a local or remote machine. Mochad is added as as a generic
platform because it supports multiple different classes of device,
however in this patch only the switch device implemented as a starting
point. Future patches will include other devices types. (although
that's dependent on someone gaining access to those)
[1] https://sourceforge.net/projects/mochad/
* iOS component hot fixes around component/platform loading, logging, and more
* Load device_tracker and zeroconf in deps instead of bootstraping
* Change conditional check on status code
* iOS component hot fixes around component/platform loading, logging, and more
* Load device_tracker and zeroconf in deps instead of bootstraping
* Change conditional check on status code
**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.
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the Apache 2.0 license; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the Apache 2.0 license; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it) is maintained indefinitely
and may be redistributed consistent with this project or the open
source license(s) involved.
```
## Attribution
The text of this license is available under the [Creative Commons Attribution-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/). It is based on the Linux [Developer Certificate Of Origin](http://elinux.org/Developer_Certificate_Of_Origin), but is modified to explicitly use the Apache 2.0 license
and not mention sign-off.
## Signing
To sign this CLA you must first submit a pull request to a repository under the Home Assistant organization.
## Adoption
This Contributor License Agreement (CLA) was first announced on January 21st, 2017 in [this][cla-blog] blog post and adopted January 28th, 2017.
Everybody is invited and welcome to contribute to Home Assistant. There is a lot to do...if you are not a developer perhaps you would like to help with the documentation on [home-assistant.io](https://home-assistant.io/)? If you are a developer and have devices in your home which aren't working with Home Assistant yet, why not spent a couple of hours and help to integrate them?
Everybody is invited and welcome to contribute to Home Assistant. There is a lot to do...if you are not a developer perhaps you would like to help with the documentation on [home-assistant.io](https://home-assistant.io/)? If you are a developer and have devices in your home which aren't working with Home Assistant yet, why not spent a couple of hours and help to integrate them?
The process is straight-forward.
- Read [How to get faster PR reviews](https://github.com/kubernetes/community/blob/master/contributors/devel/pull-requests.md#best-practices-for-faster-reviews) by Kubernetes (but skip step 0)
- Fork the Home Assistant [git repository](https://github.com/home-assistant/home-assistant).
- Write the code for your device, notification service, sensor, or IoT thing.
- Ensure tests work.
- Create a Pull Request against the [**dev**](https://github.com/home-assistant/home-assistant/tree/dev) branch of Home Assistant.
Still interested? Then you should take a peak at the [developer documentation](https://home-assistant.io/developers/) to get more details.
Still interested? Then you should take a peek at the [developer documentation](https://home-assistant.io/developers/) to get more details.
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,89 +10,30 @@ 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
@@ -61,11 +72,12 @@ class EnvisalinkBinarySensor(EnvisalinkDevice, BinarySensorDevice):
returnself._info['status']['open']
@property
defsensor_class(self):
"""Return the class of this sensor, from SENSOR_CLASSES."""
defdevice_class(self):
"""Return the class of this sensor, from DEVICE_CLASSES."""
returnself._zone_type
@callback
def_update_callback(self,zone):
"""Update the zone's state, if needed."""
ifzoneisNoneorint(zone)==self._zone_number:
self.hass.async_add_job(self.update_ha_state)
self.async_schedule_update_ha_state()
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.