* Add MVP
* Remove unused code
* Fix
* Add force back
* Fix tests
* Storage keyed
* Error out when storage doesnt find config
* Use old load_yaml
* Set config for panel correct
* Use instance cache var
* Make config option
* Unique ID support
New unique ID support, based on hub's serial number and device's permanent ID
* Fixes, showing attributes
Minor fixes
Showing room, hub, fibaro_id for easier mapping and finding of devices
* Update fibaro.py
* Add support for multiple RainMachine controllers
* Member comments
* Member comments
* Member comments
* Cleanup
* More config flow cleanup
* Member comments
This bumps to the new version of the waterfurnace API. In the new
version the unit id is no longer manually set by the user, instead it
is retrieved from the service after login. This is less error prone as
it turns out discovering the correct unit id is hard from an end user
perspective.
Breaking change on the config, as the unit parameter is removed from
config. However I believe the number of users is very low (possibly
only 2), so adaptation should be easy.
This bumps to the new version of the waterfurnace API. In the new
version the unit id is no longer manually set by the user, instead it
is retrieved from the service after login. This is less error prone as
it turns out discovering the correct unit id is hard from an end user
perspective.
Breaking change on the config, as the unit parameter is removed from
config. However I believe the number of users is very low (possibly
only 2), so adaptation should be easy.
After six months the chevy website finally has been reimplemented to
something that seems to work and is stable. The backend library has
been updated thanks to upstream help, and now is working again.
* move component to a package
* move TelldusLiveEntry to separate file
* refactor
* move entities from a shared container
* using the dispatch helper instead for communication between component and platforms
* updated covereagerc and codeowners
* suggestions from MartinHjelmare
* don't make update async
* "Strip is good!"
* remove the need to have query feature support
Some InfluxDB servers don't have /query support feature but are still valid servers for storing data.
Usually those servers are proxies to others timeseries databases.
The change proposes to still validate the configuration but with less requirements on the server side.
* `.query` call is replaced by `.write_points`
* no more query call in the influxdb component. remove test
* reset mock after the setup and before the test
* remove unused import
* reset mock stats after component setup
* Updated Yale Smart Alarm platform to use Yale's new API which replaces the deprecated version. Bumped yalesmartalarmclient to v0.1.5.
* Update requirements
* Add new events for automation trigger and script run, fix context for image processing, add tests to ensure same context
* remove custom logbook entry for automation and add new automation event to logbook
* code review updates
* Initial scene support
Added initial support for fibaro scenes
* removed comments
* cleanup based on code review
* Removed unused functions
* grrr, my mistake.
My local pylint and flake8 are playing tricks with me
* Update homeassistant/components/scene/fibaro.py
* fixes based on code review
ABC ordered the list of platforms
changed setup platform to async
removed overloaded name property as the FibaroDevice parent class already provides this
Changed to new style string formatting
* Update homeassistant/components/scene/fibaro.py
Co-Authored-By: pbalogh77 <peter.balogh2@gmail.com>
The `Config` object specific to the `google_assistant` component
had a default value for `allow_unlock`. We were not overriding this
default when constructing the Config object during `google_assistant`
component setup, whereas we do when setting up the `cloud` component.
To fix, we thread the `allow_unlock` parameter down through http setup,
and ensure that it's set correctly. Moreover, we also change the
ordering of the `Config` parameters, and remove the default. Future
refactoring should not miss it, as it is now a required parameter.
* Initial hlk-sw16 relay switch support
* remove entity_id and validate relay id's
* Bump hlk-sw16 library version and cleanup component
* refactor hlk-sw16 switch platform loading
* Use voluptuous to coerce relay id to string
* remove force_update for SW16Switch
* Move to callback based hlk-sw16 relay state changes
* fix hlk-sw16 default port and cleanup some unused variables
* Refactor to allow registration of multiple HLK-SW16 device
* Store protocol in instance variable instead of class variable
* remove is_connected
* flake8 style fix
* Move reconnect logic into HLK-SW16 client library
* Cleanup and improve logging
* Load hlk-sw16 platform entities at same time per device
* scope SIGNAL_AVAILABILITY to device_id
* Fixes for connection resume
* move device_client out of switches loop
* Add timeout for commands and keep alive
* remove unused variables
* Allow verisure locks to be configured with a default code
* linting fix
* PR feedback
* PR feedback - try harder to prevent future typos
A python mock is a magical thing, and will respond to basicaly
any method you call on it. It's somewhat better to assert against
an explicit variable named 'mock', rather than to assert on the
method name you wanted to mock... could prevent a typo from messing up
tests.
* PR feedback: convert tests to integration-style tests
Set up a fake verisure hub, stub out a _lot_ of calls, then test
after platform discovery and service calls.
It should be noted that we're overriding the `update()` calls in
these tests. This was done to prevent even further mocking of
the verisure hub's responses.
Hopefully, this'll be a foundation for people to write more tests.
* more pr feedback
* Added lightwave components for switches and lights.
* Address warnings raised by Hound
* Correcting lint messages and major typo. This time tested before commit.
* Trying to fix author
* Minor lint changes
* Attempt to correct other lint error.
* Another lint attempt.
* More lint issues.
* Last two lint errors! Hurrah.
* Changes after review from fabaff.
* Moved device dependent code to PyPi.
* Replaced DEPENDENCIES with REQUIREMENTS
* Updated following code review from Martin Hjelmare.
* Added lightwave to requirements_all.txt
* Omit lightwave from tests.
* Updated requirements_all.txt
* Refactored how lightwave lights and switches load.
* Removed imports that were no longer required.
* Add guard for no discovery_info.
* Make it a guard clause and save indentation. Rename LRFxxx to LWRFxxx.
* Sorted imports to match style guidelines.
* Correct return value.
* Update requirements_all.txt
* Catch case where we have no lights or switches configured.
* Improve configuration validation.
The `Config` object specific to the `google_assistant` component
had a default value for `allow_unlock`. We were not overriding this
default when constructing the Config object during `google_assistant`
component setup, whereas we do when setting up the `cloud` component.
To fix, we thread the `allow_unlock` parameter down through http setup,
and ensure that it's set correctly. Moreover, we also change the
ordering of the `Config` parameters, and remove the default. Future
refactoring should not miss it, as it is now a required parameter.
* Fibaro HC connection, initial commit
Very first steps working, connects, fetches devices, represents sensors, binary_sensors and lights towards HA.
* Cover, switch, bugfixes
Initial support for covers
Initial support for switches
Bugfixes
* Some cleanup and improved lights
pylint based cleanup
light switches handled properly
light features reported correctly
* Added status updates and actions
Lights, Blinds, Switches are mostly working now
* Code cleanup, fiblary3 req
Fiblary3 is now in pypi, set it as req
Cleanup based on pylint
* Included in .coveragerc and added how to use guide
Included the fibaro component in coveragerc
Added usage instructions to file header
* PyLint inspired fixes
Fixed pylint warnings
* PyLint inspired fixes
PyLint inspired fixes
* updated to fiblary3 0.1.5
* Minor fixes to finally pass pull req
Fixed fiblary3 to work with python 3.5
Updated fiblary3 to 0.1.6
(added energy and batteryLevel dummies)
* module import and flake8 fixes
Finally (hopefully) figured out what lint is complaining about
* Fixed color support for lights, simplified callback
Fixed color support for lights
Simplified callback for updates
Uses updated fiblary3 for color light handling
* Lean and mean refactor
While waiting for a brave reviewer, I've been making the code smaller and easier to understand.
* Minor fixes to please HoundCI
* Removed unused component
Scenes are not implemented yet
* Nicer comments.
* DEVICE_CLASS, ignore plugins, improved mapping
Added support for device class and icons in sensors and binary_sensors
Improved mapping of sensors and added heuristic matching
Added support for hidden devices
Fixed conversion to float in sensors
* Fixed dimming
Fibaro apparently does not need, nor like the extra turnOn commands for dimmers
* flake8
* Cleanup, Light fixes, switch power
Cleanup of the component to separate init from connect, handle connection error better
Improved light handling, especially for RGBW strips and working around Fibaro quirks
Added energy and power reporting to switches
* Missing comment added
Missing comment added to please flake8
* Removed everything but bin.sensors
Stripdown, hoping for a review
* better aligned comments
OMG
* Fixes based on code review
Fixes based on code review
* Implemented stopping
Implemented stopping of StateHandler thread
Cleanup for clarity
* Minor fix
Removed unnecessary list copying
* Nicer wording on shutdown
* Minor changes based on code review
* minor fixes based on code review
* removed extra line break
* Added Fibaro omcponents
Added cover, light, sensor and switch components
* Improved support for Fibaro UBS
Improved support for Fibaro Universal Binary Sensor, when configured to flood sensor or motion sensor.
* netatmo: make module type identification more consistent
For the interpretation of voltage values the different types of netatmo
modules need to be distinguished. This is currently done by selecting
the second character of the modules '_id'. The _id-field actually
contains a mac address. This is an undocumented way of identifying the
module_type.
The netatmo API also delivers a field called 'type' which provides a
more consistent way to differentiate the fields. This commit introduces
a differentiation which uses this provided type. This should improve
readability.
Also the field module_id is renamed to module_type which should better
resemble what it actually represents.
* netatmo: reintroduce unique_id using actual module mac address
Each netatmo module features a unique MAC-Address. The base station uses
an actual assigned MAC Address it also uses on the Wifi it connects to.
All other modules have unique MAC Addresses which are only assigned and
used by Netatmo on the internal Wireless-Network. All theses Addresses
are exposed via the API. So we could use the combination
MAC-Address-Sensor_type as unique_id.
In a previous commit this had already been tried but there was a
misunderstanding in what the 'module_id' represented. It was actually
only a module_type representation so it clashed when two modules of the
same type where used.
* Netatmo: fixed line length
* added additional filters
Added base64_encode, base64_decode and ordinal filters.
* added test cases
added test cases for base64_encode, base64_decode and ordinal filters.
* forgot to add filters :)
* Create test for platform
Created test for platform.
Added media_stop to common.py test
* Multiple improvements
Fixed lint issue in common.py
Fixed lint issues in test_directv.py
Improved patching import using modile_patcher.start() and stop()
Added asserts for service calls.
* Updates based on Martin's review
Updates based on Martin's review.
* Updated test based on PR#18474
Updated test to use service play_media instead of select_source based on change from PR18474
* Lint issues
Lint issues
* Further updates based on feedback
Updates based on feedback provided.
* Using async_load_platform for discovery test
Using async_load_platform for discovery tests.
Added asserts to ensure entities are created with correct names.
* Used HASS event_loop to setup component
Use HASS event_loop to setup the component async.
* Updated to use state machine for # entities
Updated to use state machine to count # entities instead of entities.
* Use hass.loop instead of getting current loop
Small update to use hass.loop instead, thanks Martin!
* Forgot to remove asyncio
Removed asyncio import.
* Added fixtures
Added fixtures.
* Remove not needed updates and assertions
* Return mocked dtv instance from side_effect
* Fix return correct fixture instance
* Clean up assertions
* Fix remaining patches
* Mock time when setting up component in fixture
* Patch time correctly
* Attribute _last_update should return utcnow
* Added Entur departure information sensor.
* Fixed houndci-bot comments.
* Removed tailing whitespace.
* Fixed some comments from tox lint.
* Improved docstring, i think.
* Fix for C1801
* Unit test for entur platform setup
* Rewritten entur component to have pypi dependecy.
* Propper client id for api usage.
* Minor cleanup of usage of constants.
* Made location output configurable.
* Cleaned up usage of constants.
* Moved logic to be contained within setup or update methods.
* Moved icon consts to root in module.
* Using config directly in test
* Minor changes
* Store state last seen time separately
This ensures that infrequently updated entities aren't accidentally
dropped from the restore states store
* Fix mock restore cache
* Quickfix for crash with virtual devices
Added try/except to critical loops of processing
Reinforced read_devices, map_device_to_type and update processing
* oops
* Quickfix for crash with virtual devices
Added try/except to critical loops of processing
Reinforced read_devices, map_device_to_type and update processing
* oops
* BUGFIX: add support for extra fan speeds.
* Drop extra fan speeds.
Remove catch all, drop missing fan speeds.
* fix self.speed_synonyms call. Remove un-needed keys() call
* BUGFIX: add support for extra fan speeds.
* Drop extra fan speeds.
Remove catch all, drop missing fan speeds.
* fix self.speed_synonyms call. Remove un-needed keys() call
* Add support for Mode trait in Google Assistant.
* Simplify supported logic.
* Fix SUPPORTED_MODE_SETTINGS to correct rip failures.
* more stray commas
* update tests.
Add the following sensors that provide interesting data when using a variable speed geothermal system:
* Compressor Power
* Fan Power
* Aux Power
* Loop Pump Power
* Compressor Speed
* Fan Speed
* Fix statistics for binary sensor
-) Binary sensors have 'on' and 'off' for state resulting in issue as numbers were expected. Fixed so that it works with non-numeric states as well.
-) Added check to skip unknown states.
-) Updates test so that binary sensor test will use non-numeric values for states.
* Using guard clause and changed debug to error
Changed to use a guard clause for state unknown.
Writing error on value error instead of debug.
* Add docstring
* Restore states through a JSON store
* Accept entity_id directly in restore state helper
* Keep states stored between runs for a limited time
* Remove warning
* Moved stop method and registering outside of init
Moved the cleanup to a seperate method and perform registering for the event in setup.
* Removed use of global variable
Removed use of global variable.
* Removed API_SESSIONS
Removed unused declaration API_SESSIONS.
* Add permission checks to Rest API
* Clean up unnecessary method
* Remove all the tuple stuff from entity check
* Simplify perms
* Correct param name for owner permission
* Hass.io make/update user to be admin
* Types
* Enable Google Assistant OnOffTrait for climate devices that support them
This commit enables the OnOffTrait for climate devices that have the SUPPORT_ON_OFF feature. I have tested this locally with a Sensibo device which supports ON_OFF and a nest device that does not.
* Update trait.py
* Add tests for onoff_climate
* Add OnOff trait to climate.heatpump
* Add on status to heatpump in google_assistant tests
* code cleanup to make use of new externalised feed manager
* fixed lint
* revert change, keep asynctest
* using asynctest
* changed unit test from mocking to inspecting dispatcher signals
* code clean-up
* Added Zones, and removed available() logic
flesh out Zones
tidy up init
some more tidying up
Nearly there - full functionality
passed txo - ready to send PR
Ready to PR, except to remove logging
Add Zones and associated functionality to evohome component
Add Zones to evohome (some more tidying up)
Add Zones to evohome (Nearly there - full functionality)
Add Zones to evohome (passed tox)
Add Zones to evohome (except to remove logging)
Add Zones and associated functionality to evohome component
Revert _LOGGER.warn to .debug, as it should be
Cleanup stupid REBASE
* removed a duplicate/unwanted code block
* tidy up comment
* use async_added_to_hass instead of bus.listen
* Pass evo_data instead of hass when instntiating
* switch to async version of setup_platform/add_entities
* Remove workaround for bug in client library
- using github version for now, as awaiting new PyPi package
* Avoid invalid-name lint - use 'zone_idx' instead of 'z'
* Fix line too long error
* remove commented-out line of code
* fix a logic error, improve REDACTION of potentially-sensitive infomation
* restore use of EVENT_HOMEASSISTANT_START to improve HA startup time
* added a docstring to _flatten_json
* Switch instantiation from component to platform
* Use v0.2.8 of client api (resolves logging bug)
* import rather than duplicate, and de-lint
* We use evohomeclient v0.2.8 now
* remove all the api logging
* Changed scan_interal to Throttle
* added a configurable scan_interval
* small code tidy-up, removed sub-function
* tidy up update() code
* minimize use of self.hass.data[]
* remove lint
* remove unwanted logging
* remove debug code
* correct a small coding error
* small tidyup of code
* remove flatten_json
* add @callback to _first_update()
* switch back to load_platform
* adhere to standards fro logging
* use new format string formatting
* minor change to comments
* convert scan_interval to timedelta from int
* restore rounding up of scan_interval
* code tidy up
* sync when in sync context
* fix typo
* remove raises not needed
* tidy up typos, etc.
* remove invalid-name lint
* tidy up exception handling
* de-lint/pretty-fy
* move 'status' to a JSON node, so theirs room for 'config', 'schedule' in the future
* Use asyncio Lock for fibaro light
* line length and empty line at end
* async turn_off
Turned the turn_off into async as well
* bless you, blank lines...
My local flake8 lies to me. Not cool.
* Add cloud webhook support
* Simplify payload
* Add cloud http api tests
* Fix tests
* Lint
* Handle cloud webhooks
* Fix things
* Fix name
* Rename it to cloudhook
* Final rename
* Final final rename?
* Fix docstring
* More tests
* Lint
* Add types
* Fix things
* Use asyncio Lock for fibaro light
* line length and empty line at end
* async turn_off
Turned the turn_off into async as well
* bless you, blank lines...
My local flake8 lies to me. Not cool.
* Add permission checks to Rest API
* Clean up unnecessary method
* Remove all the tuple stuff from entity check
* Simplify perms
* Correct param name for owner permission
* Hass.io make/update user to be admin
* Types
* Fix false log message on CAPsMAN only devices
False debug log message appeared on CAPsMAN only devices without physichal wireless interfaces. This fix eliminates them.
* Fixed indentation to pass flake8 test
* Awair Sensor Platform
This commit adds a sensor platform for Awair devices, by accessing
their beta API. Awair heavily rate-limits this API, so we throttle
updates based on the number of devices found. We also allow for the
user to bypass API device listing entirely, because the device list
endpoint is limited to only 6 calls per day. A crashing or restarting
server would quickly hit that limit.
This sensor platform uses the python_awair library (also written
as part of this PR), which is available for async usage.
* Disable pylint warning for broad try/catch
It's true that this is generally not a great idea, but we really don't
want to crash here. If we can't set up the platform, logging it and
continuing is the right answer.
* Add space to satisfy the linter
* Awair platform PR feedback
- Bump python_awair to 0.0.2, which has support for more granular exceptions
- Ensure we have python_awair available in test
- Raise PlatformNotReady if we can't set up Awair
- Make the 'Awair score' its own sensor, rather than exposing it other ways
- Set the platform up as polling, and set a sensible default
- Pass in throttling parameters to the underlying data class, rather
than use hacky global variable access to dynamically set the interval
- Switch to dict access for required variables
- Use pytest coroutines, set up components via async_setup_component,
and test/modify/assert in generally better ways
- Commit test data as fixtures
* Awair PR feedback, volume 2
- Don't force updates in test, instead modify time itself and let
homeassistant update things "normally".
- Remove unneeded polling attribute
- Rename timestamp attribute to 'last_api_update', to better reflect
that it is the timestamp of the last time the Awair API servers
received data from this device.
- Use that attribute to flag the component as unavailable when data
is stale. My own Awair device periodically goes offline and it really
hardly indicates that at all.
- Dynamically set fixture timestamps to the test run utcnow() value,
so that we don't have to worry about ancient timestamps in tests
blowing up down the line.
- Don't assert on entities directly, for the most part. Find desired
attributes in ... the attributes dict.
* Patch an instance of utcnow I overlooked
* Switch to using a context manager for timestream modification
Honestly, it's just a lot easier to keep track of patches. Moreover,
the ones I seem to have missed are now caught, and tests seem to
consistently pass.
Also, switch test_throttle_async_update to manipulating time more
explicitly.
* Missing blank line, thank you hound
* Fix pydocstyle error
I very much need to set up a script to do this quickly w/o tox, because
running flake8 is not enough!
* PR feedback
* PR feedback
Remove the return value from setup_platform
Convert LutronLight.__init__ to use super() when referencing the parent class.
Change device_state_attributes() to use lowercase snakecase (Rename 'Lutron Integration ID' to 'lutron_integration_id')
* Added support for cropping pictures in proxy camera
This includes extending the configuration to introduce a mode
(either 'resize', default, or 'crop') and further coordinates
for the crop operation.
* Also fixed async job type, following code review
* Added Fibaro omcponents
Added cover, light, sensor and switch components
* Improvements based on code review
Improvements based on code review
* Fixes based on code review
Fixes based on code review
* Changes to light behavior based on code review
Changes to light behavior based on code review
* Internal changes
Changed how brightness is represented internally.
It should have no impact on functionality.
* Use service play_media instead of select_source
Use service play_media instead of select_source to change the channel as play_media is the right service for that.
* Log error on invalid media type
Log an error instead of raising a NotImplementedError if an invalid media type is provided.
* Changed so that success is not in else statement
Updated so that if media_type is channel that it is not in the else of an if.
* Update directv.py
Removed SELECT_SOURCE as supported feature.
* Rebased
Re-based with dev
* Add websocket calls to shopping-list
Plan to deprecate API calls once shopping-list panel is removed from UI and replaced fully by Lovelace card
* Address ci-bot issues
* Fix violations
* Address travis complaints
* Address review comments
* Update test_shopping_list.py
* Update mikrotik.py
* Update mikrotik.py
* Added basic api_ssl support
Added preliminary support to use api_ssl instead of api. It don't check the validity of the certificate need it.
At Home Assistant side add ssl = true to your sensor configuration, and don't forget to change the port too (to 8729 by default):
device_tracker:
- platform: mikrotik
host: 192.168.88.1
port: 8729
ssl: true
username: homeassistant
password: TopSecret
At MikroTik side you have to add or generate a certificate, and configure api_ssl to use it. Here is an example:
/certificate add common-name="Self signed demo certificate for API" days-valid=3650 name="Self signed demo certificate for API" key-usage=digital-signature,key-encipherment,tls-server,key-cert-sign,crl-sign
/certificate sign "Self signed demo certificate for API"
/ip service set api-ssl certificate="Self signed demo certificate for API"
/ip service enable api-ssl
/ip service disable api
/user group add name=homeassistant policy=read,api,!local,!telnet,!ssh,!ftp,!reboot,!write,!policy,!test,!winbox,!password,!web,!sniff,!sensitive,!romon,!dude,!tikapp
/user add group=homeassistant name=homeassistant
/user set password="TopSecret" homeassistant
* Fixed import missind ssl lib
* SSL support code cleanup, use ssl-api port by default if ssl enabled
* Restored accidentalli deleted method parameter
* Fixed Python 3.5.3 compilation errors
Fixed Python 3.5.3 compilation errors reported by Travis CI
* Removed duplicated MTK_DEFAULT_API_PORT
* Recreate component if discovery info is changed
* Update component instead of remove+add
* Set name and unique_id in __init__
* Update unit test
* Cleanup
* More cleanup
* Refactor according to review comments
* Change discovery_hash
* Review comments, add tests
* Fix handling of value_template
Dark Sky Sensor didn't expose conditions for day 0 (today forecast) that
had the same name as current conditions. With this change all conditions
form day 0 (today) forecast are exposed the same way as conditions for
the rest of the days (1..7): as `dark_sky_<condition>_<day>`. As a
consequence, conditions for day 0 that were already exposed now have
`_0` suffix. This actually improves the code by removing most of
special handling, based on condition name.
To get day 0 conditions the user now has to add `- 0` to `forecast`
configuration parameter.
Conditions, for which suffix `_0` appeared: `precip_accumulation`,
`temperature_high`, `temperature_low`, `apparent_temperature_high`,
`apparent_temperature_low`, `precip_intensity_max`, `moon_phase`.
This is a breaking change!
Closes#18205
* Enhancements for DirecTV media player
Following enhancements have been made:
1. Added debug logging
2. Added ability to change channel using select_source service of the remote platform.
3. State will now show paused if a recorded program is paused, for live TV playing will always be returned.
4. Added the following attributes:
a. media_position: current position of the media (in seconds)
b. media_position_updated_at: timestamp when media_position was updated.
c. source: current source (channel).
d. media_isbeingrecorded: if current media is being recorded or not.
e. media_rating: TV/Movie rating of the media
f. media_recorded: if current media is recorded or live TV
g. media_starttime: Timestamp media was aired
Reordered properties to follow same order as how they are in __init__.py of remote platform.
* Fixed error and cleaned up few items
Fixed an issue when determining if a program is recorded or not.
Cleaned up some coding.
* Added available property
Added available property
* Disable feature TURN_ON and TURN_OFF for DVR clients
Disable the feature turn_on and turn_off for DVR clients.
* self._is_client and raise NotImplementedError
Updated setting self._is_client
Raise NotImplementedError if turn_on or turn_off is called for clients.
* Log delay and wait_template steps in scripts
Help improve script debugging by logging delay and wait_template steps in scripts.
* Update tests
* Fix lint issue
This avoids a race between multiple concurrent calls to
entity_platform.async_add_entities() which may cause
entities to be created with non-unique entity_id
* Enable native support + ADB authentication for Fire TV
* Remove unnecessary underscore assignments
* Bump firetv to 1.0.5.3
* Change requirements to 'firetv>=1.0.6'
* Change requirement from 'firetv>=1.0.6' to 'firetv==1.0.6'
* Address pylint errors
* Ran 'python script/gen_requirements_all.py'
* Address some minor reviewer comments
* Run 'python script/gen_requirements_all.py'
* Just use the 'requirements_all.txt' and 'requirements_test_all.txt' from the 'dev' branch...
* Edit the 'requirements_all.txt' file manually
* Pass flake8 tests
* Pass pylint tests, add extended description for 'select_source'
* More precise exception catching
* More Pythonic returns
* Import exceptions inside '__init__'
* Remove 'time.sleep' command
* Sort the imports
* Use 'config[key]' instead of 'config.get(key)'
* Remove accessing of hidden attributes; bump firetv version to 1.0.7
* Bump firetv to 1.0.7 in 'requirements_all.txt'
* Don't access 'self.firetv._adb', use 'self.available' instead
* Remove '_host' and '_adbkey' attributes
* Create the 'FireTV' object in 'setup_platform' and check the connection before instantiating the entity
* Fixed config validation for 'adbkey'
* add_devices -> add_entities
* Remove 'pylint: disable=no-name-in-module'
* Don't assume the device is available after attempting to connect
* Update the state after reconnecting
* Modifications to 'adb_decorator'
* Modifications to 'setup_platform'
* Don't update the state if the ADB reconnect attempt was unsuccessful
* 'return None' -> 'return'
* Use 'threading.Lock()' instead of a boolean for 'adb_lock'
* Use a non-blocking 'threading.Lock'
Show excited, happy, neutral, sad, dead emoticon, or biohazard icon,
based on air pollution level.
Also, fix a small typo and change air quality index icon to
`mdi:chart-line`. Seems a bit more logical.
* Remove notify schema from hangouts platform
* Notify platforms shouldn't overwrite the notify component service
schema. That has no effect.
* Fix hangouts service data key value
* Initial stuff
* More work in place
* Starting with tests
* Device registry in place
* Hound
* Linting
* Member comments (including extracting device registry)
* Member comments (plus I forgot cleanup!)
* Hound
* More Hound
* Removed old import
* Adding config entry test to coverage
* Updated strings
* Fibaro HC connection, initial commit
Very first steps working, connects, fetches devices, represents sensors, binary_sensors and lights towards HA.
* Cover, switch, bugfixes
Initial support for covers
Initial support for switches
Bugfixes
* Some cleanup and improved lights
pylint based cleanup
light switches handled properly
light features reported correctly
* Added status updates and actions
Lights, Blinds, Switches are mostly working now
* Code cleanup, fiblary3 req
Fiblary3 is now in pypi, set it as req
Cleanup based on pylint
* Included in .coveragerc and added how to use guide
Included the fibaro component in coveragerc
Added usage instructions to file header
* PyLint inspired fixes
Fixed pylint warnings
* PyLint inspired fixes
PyLint inspired fixes
* updated to fiblary3 0.1.5
* Minor fixes to finally pass pull req
Fixed fiblary3 to work with python 3.5
Updated fiblary3 to 0.1.6
(added energy and batteryLevel dummies)
* module import and flake8 fixes
Finally (hopefully) figured out what lint is complaining about
* Fixed color support for lights, simplified callback
Fixed color support for lights
Simplified callback for updates
Uses updated fiblary3 for color light handling
* Lean and mean refactor
While waiting for a brave reviewer, I've been making the code smaller and easier to understand.
* Minor fixes to please HoundCI
* Removed unused component
Scenes are not implemented yet
* Nicer comments.
* DEVICE_CLASS, ignore plugins, improved mapping
Added support for device class and icons in sensors and binary_sensors
Improved mapping of sensors and added heuristic matching
Added support for hidden devices
Fixed conversion to float in sensors
* Fixed dimming
Fibaro apparently does not need, nor like the extra turnOn commands for dimmers
* flake8
* Cleanup, Light fixes, switch power
Cleanup of the component to separate init from connect, handle connection error better
Improved light handling, especially for RGBW strips and working around Fibaro quirks
Added energy and power reporting to switches
* Missing comment added
Missing comment added to please flake8
* Removed everything but bin.sensors
Stripdown, hoping for a review
* better aligned comments
OMG
* Fixes based on code review
Fixes based on code review
* Implemented stopping
Implemented stopping of StateHandler thread
Cleanup for clarity
* Minor fix
Removed unnecessary list copying
* Nicer wording on shutdown
* Minor changes based on code review
* minor fixes based on code review
* removed extra line break
* Update query to include maxAge
Updated the query from recorded to include MaxAge if set; reducing the amount of records retrieved that would otherwise be purged anyway for the sensor.
* Initialization upon HASS start
Register the state listener and read previous information from recorder once HASS is started.
* Updated test_statistics.py for HASS start
Updated test_statistics.py to start HASS and wait it is completed before running test.
* Added newline in docstring
Added newline in docstring.
* Added start of HASS to test_initialize_from_database_with_maxage
Added start of HASS to new test test_initialize_from_database_with_maxage.
* Updates based on review
Following updates based on review:
-) Removed self._hass and passing hass
-) Changed async_add_job to async_create_task
-) For state update, calling async_schedule_update_ha_state
Only add sensor entities for accounts with the specified currencies.
This is a none breaking change.
If it's not specified then all account wallets will be loaded.
* Fix and improvment of Swiss Hydrological Data component
* changed component to get data from a REST API rather than from crawling the website
* fixed several issues and lint errors
* Fix and improvment of Swiss Hydrological Data component
* Minor changes
- Simplify the sensor configuration (expose value as attributes rather than sensor)
- Make the setup fail if station is not available
- Add unique ID
- Prepare for config flow
* Remove notify schema from hangouts platform
* Notify platforms shouldn't overwrite the notify component service
schema. That has no effect.
* Fix hangouts service data key value
* Update query to include maxAge
Updated the query from recorded to include MaxAge if set; reducing the amount of records retrieved that would otherwise be purged anyway for the sensor.
* Added newline in docstring
Added newline in docstring.
* Add test + small fix
Added test to ensure query works correctly
Query should be greater then or equal instead of greater then. Fixed.
* Fixed lint issue
Fixed lint issue.
* Add srp_energy
* Update message on TypeError. Add check for None state.
* Add check for none in history
* Add srpenergy to Test requirements.
* Add srpenergy to requirments.
* Change = to ==.
* Change import for srpenergy
* Fix Flak8 errors
* Add srp to gen requirements script
* Change config name.
* Add daily usage test
* Add test for daily usage.
* Fix Flake8 message.
* Remove blank after docstring.
* Add srpenergy to coverage
* Bump requires version to srpenergy
* Fix type in coverage. Import from Sensor. Use dict.
* Update to 1.0.5. Check credentials on setup. Standalone test.
* Fix formating.
* Remove period. Rename _ variables.
* Fix rebase merge
* Add rebase requirement
* Improve Mock Patching.
* Initial commit of w800rf32 component and binary_sensor.
The W800 family is an X10 RF receiver used with keypads and motion sensors etc.
* Initial commit of w800rf32 switch platform.
The W800 family is an X10 RF receiver used with keypads and motion sensors etc.
* Remove unused code.
* Additions for w800rf32 component and platform code
* Fix w800rf32 minor lint issues and make sure gen_requirements.py correctlly adds w800rf32
* Added dispatch_connect/send and refactor somewhat
* Fix missed indentation lint
* Removed shared entity dict and use async_dispatch code
* Fix long line not caught by lint
* One more line too long, missed it
* Remove unused code and changes for async
* Remove @callback that shouldn't be there.
* Remove switch platform, can't have read only switch.
* Remove unused CONF_DEBUG
* Remove used vars and make CONF_DEVICES required
* Move CONF_OFF_DELAY to platform, only used there
* Add new launch sensor to keep track of space launches.
* Added attribution to Launch Library.
* Adds data class and throtle, reuse aiohttp session.
* Add one extra blank line before the new class..
* Change throttle to simpler SCAN_INTERVAL.
* Remove the usage of the LaunchData class.
* Bump pylaunches, remove . from log, fix line breaker for agency_country_code, remove CONF_ from ATTRIBUTION.
This is easier to handle than raising an exception: a circular
dependency causes multiple error entries in the log, which is what we
want.
This is harder to achieve with an exception. Since there is only one
user of this code, I choose to fix the documentation -- instead of
adding a lot of mostly-useless exception handling.
Closes: #13147
* Add read only and admin policies
* Migrate to 2 system groups
* Add system groups
* Add system groups admin & read only
* Dont' mutate parameters
* Fix types
* Adds upload and download sensors for asuswrt and makes it a component.
* Rebase
* removes warnings
* Fixing review issues
* More robust connection phase
* Generate dependencies
* Not needed try catch
* Rename sensors
* Revorked tests so they can be turned on again
* Using component setup
* Test through correct setup
* Forgot we dont need to worry about older py
In 0.7.x the API to HDate was cleaned up so as to move logic from homeassistant to
the HDate external library.
This commit removes all the superfluous code, updates the required tests and changes the
requirement from version 0.6.5 to 0.7.5
* Validate value against valid list
* Show correct name
Constants in alphabetical order.
Added default name when not showing the local/current version.
* Add icon
Icon was already defined but not set
* Unnecessary "elif" after "return" (no-else-return)
* Adds support for Lupusec alarm control panel
* fixed various mostly cosmetic issues
* fixed generic type of binary sensors
* fixed some formatting; removed scan interval completely -> defaults now to 2 secs
* removed unused data caches; added check if binary sensor class exists
* cosmetics
* generic type fix
* small fix
* small fixes
* guard clause added
* small fixes
* Split out geofency with a component and platform
* Make geofency component/device_tracker more async
* Move geofency tests to new package
* Remove coroutine in geofency callback
* Lint
* Fix coroutine in geofency callback
* Fix incorrect patch
* Add Norwegian Public Transportation sensor (Ruter).
* Corrected typo.
* change stopid to stop_id, actually use attributes, changed logging, corrected link, removed unused variable.
* Change to RuterSensor for the class, and move logic to me more readable.
* Use correct sensor class.
* Add return if blank list, remove else
Along with hopefully helping resolve these actual problems, a nudge for people to look at their own code might help catch other quick fixes before anyone else has to review a PR.
* Add attributes of ARP table
This adds the device attributes available in the ARP table and a few more. Implementation is inspired by the nmap scanner.
* lint spaces
* Added eco mode option to Ziggo Mediabox XL
* Changed eco_mode_on to eco_mode
* Removed eco_mode option, the player is unavailable when offline
* Timeout on connection, on/off states are handled via update
* Improved state detection and added available property
* Melissa attributes
* overide device_state_attributes rather than state_attributes
* Selected attributes
* Adding current humidity rather than a state_attribute
* Add support for Google Home device tracking.
* Use dict[key] for options.
* Delete googlehome.py.save
* Change stylling of name, and attr mac_address to btle_mac_address, removed unesssesarry attributes copying.
* Add additional property to HomeKitSwitch to show whether the Homekit outlet is in use or not
* Fix issues from review - Remove unused property, simplify and rename the device_state_attributes method
* Add keepalive support
- adds keepalive support
- adds debug messages
- corrects CONF_PHONEBOOK and CONF_PREFIXES constants
* Add keepalive config constant
* Fix default value
* More visual indentation
* move to platform
* Move to platform
* Make keepalive default and remove option
* Forgot a few lines
* Add workaround to use notification state for zwave lock state
There are several zwave lock models out there which do not seem to
update the lock state on non-rf events (see #11934#14632#14534 for
examples) including kwikset smartkey zwave plus locks (which I own).
In these cases it seems that the notifications for non-rf events the
access_control value is updated but not the primary value for the
lock state, which is what is used to set the is_locked property. To
properly have the lock state accurate for all types of notifications
on these models we need to use the access_control field. This commit
adds a workaround for the 4 models reported to exhibit this behavior
so that home-assistant will reliably set the lock state for all
device notifications.
* Add YRD220 as per adrum to workaround list
* Inline constants
* Add support for locks in google assistant component
This is supported by the smarthome API, but there is no documentation
for it. This work is based on an article I found with screenshots of
documentation that was erroneously uploaded:
https://www.androidpolice.com/2018/01/17/google-assistant-home-can-now-natively-control-smart-locks-august-vivint-first-supported/
Google Assistant now supports unlocking certain locks - Nest and August
come to mind - via this API, and this commit allows Home Assistant to
do so as well.
Notably, I've added a config option `allow_unlock` that controls
whether we actually honor requests to unlock a lock via the google
assistant. It defaults to false.
Additionally, we add the functionNotSupported error, which makes a
little more sense when we're unable to execute the desired state
transition.
https://developers.google.com/actions/reference/smarthome/errors-exceptions#exception_list
* Fix linter warnings
* Ensure that certain groups are never exposed to cloud entities
For example, the group.all_locks entity - we should probably never
expose this to third party cloud integrations. It's risky.
This is not configurable, but can be extended by adding to the
cloud.const.NEVER_EXPOSED_ENTITIES array.
It's implemented in a modestly hacky fashion, because we determine
whether or not a entity should be excluded/included in several ways.
Notably, we define this array in the top level const.py, to avoid
circular import problems between the cloud/alexa components.
* Add config flow step for manual input
Remove support for loading discovery config from json file
* Small cleanup
Fix all translations to step user instead of step init
* Revert to using step_init
* Small cleanup
Add test_gateway that was forgotten in a previous PR
* Fix hound comment
* Fix empty pydocstring
Added debug log information for when records are purged and added entity_id to existing debug information to identify the entity the debug information is for.
* Enhancements for DirecTV media player
Following enhancements have been made:
1. Added debug logging
2. Added ability to change channel using select_source service of the remote platform.
3. State will now show paused if a recorded program is paused, for live TV playing will always be returned.
4. Added the following attributes:
a. media_position: current position of the media (in seconds)
b. media_position_updated_at: timestamp when media_position was updated.
c. source: current source (channel).
d. media_isbeingrecorded: if current media is being recorded or not.
e. media_rating: TV/Movie rating of the media
f. media_recorded: if current media is recorded or live TV
g. media_starttime: Timestamp media was aired
Reordered properties to follow same order as how they are in __init__.py of remote platform.
* Fixed error and cleaned up few items
Fixed an issue when determining if a program is recorded or not.
Cleaned up some coding.
* Fix issue in checking if DTV device is already configured
If a DTV device was configured before, then discovery would add this device again seperately if the name specified in the configuration is different from the name on the DTV.
This issue is fixed now. Part of the fix also ensure to allow multiple "primary" devices on the network to be discovered.
Further also added debug logging to the setup_platform.
* Further improvements
Some additional improvements related to handling the DATA_DIRECTV in hass.data.
* Fixed flake8 issue
Fixed flake8 issue
* Added available property
Added available property
* Updated to use get_locations()
Replaced doing the request for getLocations with the get_locations() API from DirectPy instead.
* Fix for checking if device is available
Fix for checking if device is available and small update to debug log message.
* Fixed lint issue
Fixed lint issue with unused variable by adding ingore for it as this is for a enumerate
* Updated try/except and removed available
Updated tr/except having the except by the statement we're doing except on.
Removed available, will be a different PR.
* Updated known_devices to be tupples in a set
Updated known_devices to be a tupple in a set, removing loop to determine if client was already added.
* Enhancements for DirecTV media player
Following enhancements have been made:
1. Added debug logging
2. Added ability to change channel using select_source service of the remote platform.
3. State will now show paused if a recorded program is paused, for live TV playing will always be returned.
4. Added the following attributes:
a. media_position: current position of the media (in seconds)
b. media_position_updated_at: timestamp when media_position was updated.
c. source: current source (channel).
d. media_isbeingrecorded: if current media is being recorded or not.
e. media_rating: TV/Movie rating of the media
f. media_recorded: if current media is recorded or live TV
g. media_starttime: Timestamp media was aired
Reordered properties to follow same order as how they are in __init__.py of remote platform.
* Fixed error and cleaned up few items
Fixed an issue when determining if a program is recorded or not.
Cleaned up some coding.
* Fix issue in checking if DTV device is already configured
If a DTV device was configured before, then discovery would add this device again seperately if the name specified in the configuration is different from the name on the DTV.
This issue is fixed now. Part of the fix also ensure to allow multiple "primary" devices on the network to be discovered.
Further also added debug logging to the setup_platform.
* Further improvements
Some additional improvements related to handling the DATA_DIRECTV in hass.data.
* Fixed flake8 issue
Fixed flake8 issue
* Added available property
Added available property
* Updated to use get_locations()
Replaced doing the request for getLocations with the get_locations() API from DirectPy instead.
* Fix for checking if device is available
Fix for checking if device is available and small update to debug log message.
* Fixed lint issue
Fixed lint issue with unused variable by adding ingore for it as this is for a enumerate
* Updated try/except and removed available
Updated tr/except having the except by the statement we're doing except on.
Removed available, will be a different PR.
* Add available property
Add the available property to the entiry.
* Implemented tplink_lte components and notify service
* Device discovery for the notify component
* Improved the config schema. Small fixes
* Improved login retry mechanism
* Log successful connection only on retries
* Removed CancelledError handlers and small fixes
* Test typing for helpers.__init__ and temperature
* Add type hints to helpers.sun
* Add type hints to helpers.signal
* Add type hints to helpers.entity_values
* Add type hints to helpers.dispatcher
* Refactor mysensors message handling
* Add handler module and register handlers per message type or message
sub-type. This will allow easier extension of message handling in the
future.
* Move some common functions to a helpers module.
* Add node handler and signal
* Fix inconsistent return
* Upgrade pymysensors to 0.18.0
* Fix bug in message modification.
* notify.xmpp: first working http upload
* extension guessing for upload
* docstrings, flake8, pylint
* hass.async_add_executor_job(...)
* catch more errors, allow unverified SSL request
allow user to specify unverified SSL request to URL
cleaner code
catch more exceptions
* pylint
* catching XMPP exceptions, timeout for requests call
removed calls for roster and presence
added timeout for upload request call
cleared up debug, info, warning messages
cleared up requests call for secure and insecure retrieval of image
catching IqError, IqTimeout, XMPPError from slixmpp
docstring updated
* added timout for http upload of local files
* timeout, mimetypes, random filenames
guessing filetypes and mimetypes with stdlib mimetypes
setting a random filename for privacy
working around slixmpp timeout issues with asyncio.wait_for
* code cleanup
* added file upload for rooms/groupchats
* version bump for slixmpp to 1.4.1
added NotConnectedError, removed double catches of IqErrors
removed asyncio import
* slixmpp 1.4.1 in requirements_all
* added url and path templating
* Minor changes
* fixed review requests
fixed possible path issue for foo/../bar/ paths
fixed possible access for non-whitelisted files
fixed None or X
fixed try-else block, moved else block into try
fixed raising error in upload_file if url is None
fixed using data.get after it's already been checked
fixed added docstring for tiny get_url function
* Adds Tautulli as a sensor platform.
* Remove blank last line.
* Rewrite the platform to comply with review.
* Linting issues.
* Remove tailing newline.
* Corrected typo
* Correcte check_connection, removed wierd defaults, added line in imports, removed unused var, use the correct user list.
* Use dict[key] for required config options.
* Minor changes
* Remove FFmpeg input tests
* Not needed here
* Removing tests for removed functionality
* Minor lint
* Fix tests to reflect removed config option
* Remove async service registration by request
* More lint
* Unused imports
* Make it a non-breaking change
* Update ffmpeg.py
* initial tensorflow image_processing component
* linting fixes
* make displayed attribute a summary of objects
* fix missed merge conflict and add warning supression back in for CPU type
* restructure tensorflow component to install on the fly, remove from Docker
* add both matches and summary as attributes
* address review comments
* do not use deps folder as default, as it should only be managed by HA. Update to have tensorflow in root config directory
* Added service select_video_output and video_out attribute
* Fixed white lines and long lines
* Made line shorter
* Added period to comment according to flake8 rules
* Imported domain const
* Prefixed service with platform name
* changed "video output" to "hdmi output" to better reflect eiscp cammand
* video_output to hdmi_output rename
* Allow Microsoft face detection to handle updating entities when no face is detected
* Remove microsoft_face_detect_no_face_detected.json and hard code in simple empty list into the tests
* Added error handling for sense API timeouts
* Moved imports in function
* Moved imports to more appropriate function
* Change exception to custom package version
* Updated sense_energy library to 0.4.2
* Added binary sensors for individual devices
* Whitespace updates
* Split into component, sensors, binary sensors
* Fixed whitespace
* Fixed whitespace
* Moved time constant into sensor file
* Regenerated requirements
* Fixed whitespace
* Updated component dependency
* Fixed whitespace
* Code cleanup
* High and low target temps are also supported if target is supported
* Revert "High and low target temps are also supported if target is supported"
This reverts commit 66b33dc2b8.
* Added all sense components to .coveragerc
* Added check authentication exception
* binary/sensor platforms loaded in setup
* Changed to add all detected devices
* Changed to add all sensors on setup
* Code cleanup
* Whitespace
* Whitespace
* Added sense as requirement for platform
* pylint fixes
* Whitespace
* Switched requirement to dependency
* Made non-class function
* Whitespace
* Removed unneeded checks
* Increased API delay to 60 seconds
* Added guard clause for discovery_info
* Tidy code
* Whitespace
* Add surround programs to zone 2+
Add surround programs and surround program to any zone that supports it.
* Update yamaha.py
removed double fetching.
* Ignore min_cycle_duration when manually controlling the thermostat.
* style
* Generic thermostat: add minimum cycle duration to keep-alive tests.
There was a bug in previous versions of the code, that would not execute
the keep-alive action if the minimum cycle duration hasn't passed.
This test verifies that the keep-alive action is executed correctly.
* Generic thermostat: added tests to verify that changing the
thermostat mode manually triggers the switch, regardless of
minimum cycle duration.
* Updated tests to use `common` module instead of the deprecated `climate`
* Change of behaviour. Allow user to configure either a position topic or a state topic but not
both.
* optimistic mode in set_cover and tests added
* optimistic mode in set_cover_position using percentage_position
* fixes accroding to Martin review.
* added validation schema for set_position_topic and get_position_topic
* check only set_position_topic in supported_features.
* Multidoc string fix.
* Add a component for GreenEye Monitor
[GreenEye Monitor](http://www.brultech.com/greeneye/) is an energy
monitor that can monitor emergy usage of individual circuits, count pulses
from things like water or gas meters, and monitor temperatures. This component
exposes these various sensors in Home Assistant, for both data tracking and
automation triggering purposes.
* Consolidate sensors
* lint
* .coveragerc
* - cv.ensure_list
- DOMAIN, where appropriate
- defaults to schema
- single invocation of async_load_platform
- async_create_task instead of async_add_job
- fail if no sensors
- monitors required
- async_add_entities
- call add_devices once
- remove unused schema
- use properties rather than set fields
- move _number and unique_id to GEMSensor
- remove unnecessary get(xxx, None)
- keep params on one line when possible
- new-style string format
* Fix `ensure_list` usage, log message
* Pass config through
* Add problem text to message if available
* Revert "Add problem text to message if available"
This reverts commit 7be519bf7f.
* Cleanup setup
* Add message template support
* Fix for failing test
* Added tests
* Refactor changes
* Fix lint violation
* Fix failing tests
* Unify handling for message and done_message parameter and sending function
* Update tests
* Fix lint warnings
* Added functionality to the version sensor.
* Corrected typo.
* Change default name to not cause a breaking change.
* Use vol.lower in the schema.
* Add missing blank line.
* Change order of cv.string and vol.Lower.
We were erroneously reporting the _previous_ mode. So if the thermostat was off
and the user asks, "Alexa, set the thermostat to heat", the thermostat would be
set to heat but Alexa would respond, "The thermostat is off."
Bug caught by @Thunderbird2086 at
https://github.com/home-assistant/home-assistant/pull/17969#issuecomment-434654345
* Move components/opentherm_gw.py to components/opentherm_gw/__init__.py
* Update requirements-all.txt
* Await set_clock coroutine rather than scheduling it.
* Create task for async_load_platform
* Upgrade to asuswrt 1.1.1 to better handle mac addresses with letters in them
Signed-off-by: Gavin Mogan <git@gavinmogan.com>
* Update requirements_all as well
Signed-off-by: Gavin Mogan <git@gavinmogan.com>
* Fix Vera climate component to use correct states
Changed the Vera climate component so it uses the STATE_* states from the base climate component. This will allow it to work with Google Assistant.
* Wemo Humidifier - Initial Commit
* WeMo Humidifier - First draft of component
* WeMo Humidifier - Removed direct IO from property
* WeMo Humidifier - Trivial comment change
* Added myself as codeowner for WeMo
* WeMo Humidifier - Fixed various syntax & lint issue
* WeMo Humidifier - Small comment addition
* WeMo Humidifier - Fix TypeError: 'WemoHumidifier' object is not iterable
* WeMo Humidifier - Rename set humidity service
* WeMo Humidifier - Add to .coveragerc
* WeMo Humidifier - Fixed lint/pylint issues
* WeMo Humidifier - First round of requested changes
* WeMo Humidifier - Round two of requested changes
* WeMo Humidifier - Third round of requested changes
* WeMo Humidifier - Fixed whitespace issue on dict comprehension
* WeMo Humidifier - Fourth round of requested changes
* WeMo Humidifier - Corrected typo in async_add_executor_job call
* WeMo Humidifier - Fixed spacing before inline comments
* Change date at sunset
* Fix tests to actually run and add fix to component
* Make tests pass
* Use get_astral_event_next instead of get_astral_event_date
* Revert to using get_astral_event_date
* Make tox happy: reset state on tearDown
* Switch mailgun webhooks to the webhook api
* Change mailgun strings to indicate application/json is in use
* Lint
* Revert Changes to .translations.
* Don't fail if the API key isn't set
* Reverse out change #14234 BOM Weather throttle fix
Reverted back to original throttle code to ensure sensors are updated on time.
* Fixed lint issues
* Review as a commit
* Use last_updated for attributes
* lint
* lint
* Refactor Alexa API to use objects for requests
This introduces _AlexaDirective to stand in for the previous model of passing
basic dict and list data structures to and from handlers. This gives a more
expressive platform for functionality common to most or all handlers.
I had two use cases in mind:
1) Most responses should include current properties. In the case of locks and
thermostats, the response must include the properties or Alexa will give the
user a vague error like "Hmm, $device is not responding." Locks currently work,
but thermostats do not. I wanted a way to automatically include properties in
all responses. This is implemented in a subsequent commit.
2) The previous model had a 1:1 mapping between Alexa endpoints and Home
Assistant entities. This works most of the time, but sometimes it's not so
great. For example, my Z-wave thermostat shows as three devices in Alexa: one
for the temperature sensor, one for the heat, and one for the AC. I'd like to
merge these into one device from Alexa's perspective. I believe this will be
facilitated with the `endpoint` attribute on `_AlexaDirective`.
* Include properties in all Alexa responses
The added _AlexaResponse class provides a richer vocabulary for handlers.
Among that vocabulary is .merge_context_properties(), which is invoked
automatically for any request directed at an endpoint. This adds all supported
properties to the response as recommended by the Alexa API docs, and in some
cases (locks, thermostats at least) the user will get an error "Hmm, $device is
not responding" if properties are not provided in the response.
* Fix setting temperature with Alexa thermostats
Fixes https://github.com/home-assistant/home-assistant/issues/16577
* Update Avi-On to work with the API.
* Use voluptuous defaults instead of .get()
* Bump library version.
* Remove unnecessary voluptuous defaults. Fix manually-configured devices.
API-discovered devices are already Avion objects, but manually-configured devices need to be instantiated as Avion objects first.
* Use .get() where appropriate.
* Remove default
* 🌧 Meteo France rain forecast
* do not fail on wrong config
* Update name of sensor class
* do not show sensor if not working
* Update .coveragerc
* ability to submit insee location code without final 0 needed by meteo-france
* Lynting
* more lynting
* update comment
* block comment linting
* reducing length of long lines
* linting
* Update météo-france platform
Now work with pypi package and monitored conditions
* remove error log
* Update requirements_all.txt
* Increase scan interval to 5 minutes
* Update meteo_france according to review
* better error handling of location missing some monitored conditions
* fix lint error
* moving error log
Errors are now catched at sensor initialization and state is set when updating the data
* Update updating of sensor
* Enhancements for DirecTV media player
Following enhancements have been made:
1. Added debug logging
2. Added ability to change channel using select_source service of the remote platform.
3. State will now show paused if a recorded program is paused, for live TV playing will always be returned.
4. Added the following attributes:
a. media_position: current position of the media (in seconds)
b. media_position_updated_at: timestamp when media_position was updated.
c. source: current source (channel).
d. media_isbeingrecorded: if current media is being recorded or not.
e. media_rating: TV/Movie rating of the media
f. media_recorded: if current media is recorded or live TV
g. media_starttime: Timestamp media was aired
Reordered properties to follow same order as how they are in __init__.py of remote platform.
* Fixed error and cleaned up few items
Fixed an issue when determining if a program is recorded or not.
Cleaned up some coding.
* Attribute last position update only updated when position changed.
The attribute media_position_updated_at will only be updated if the position changed (thus media is playing for recorded or live TV).
Added assumed_state; will be set to False if in standby or when a recorded show is watched. For live TV it will be set to True.
* Added some empty lines for easier reading
Added some empty lines before returns to improve readability.
* Seperated words in constants
Seperated the words in constants.
* Fix _lastupdate to _last_update
Split words in _lastupdate to _last_update as I missed it.
* Add type hints to helpers.intent and location
* Test typing for helpers.icon, json, and typing
* Add type hints to helpers.state
* Add type hints to helpers.translation
* Migrate dialogflow over to the new webhook component
* Updating dialogflow unit tests
* Lint
* Revert changes to HomeAssistantView
* Use json_response from aiohttp
* Raise PlatformNotReady if API not available
* Delete whitespaces
* Revert unwanted breaking changes
* Revert deleted line
* Update homeassistant/components/sensor/rmvtransport.py
* Use await asyncio.wait
* Add test that tests unloading on remove
* Add more test things
* Untangle entity remove code from entity platform
* Don't add default implementation of async_will_remove
* Keep entity weakref alive
* Restore manual alarm-control-panel state using async_get_last_state
This is to address issue #10793
* Added tests for restoring manual alarm state on startup
* Cleaned up test formatting
* Fixed more linting errors
* Changed async methods to use asynch/await syntax
* Removed unused asyncio import
Zigbee Alliance has changed their stylized writing (and logo) of the Zigbee name from “ZigBee” to “Zigbee”, as in they are no longer writing Zigbee with a capital “B” in the middle of the name.
* Fix discovery-dependency for upnp
* Only delete port mappings on EVENT_HOMEASSISTANT_STOP + refactoring MockDevice
* Call and store local_ip from async_setup
* Don't depend on http-component
* Remove discovery dependency
Will set the available property to False if unable to communicate with August lock or doorbell.
HTTP request errors (i.e. timeout, connection error, HTTP error) will not result in traceback. Instead an error will be logged.
This prevents the following traceback that will otherwise occur.
Traceback (most recent call last):
File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/bluetooth_le_tracker.py", line 107, in update_ble
see_device(address, devs[address], new_device=True)
File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/bluetooth_le_tracker.py", line 47, in see_device
see(mac=BLE_PREFIX + address, host_name=name.strip("\x00"),
AttributeError: 'NoneType' object has no attribute 'strip'
* Switch mailgun to use webhook api
* Generalize webhook_config_entry_flow
* Add tests for webhook_config_entry_flow
* Add tests for mailgun
* Remove old mailgun file from .coveragerc
* Refactor WebhookFlowHandler into config_entry_flow
* Remove test of helper func from IFTTT
* Lint
* Bug fix
Current version causes 500 error since it is sending an array of from numbers to ClickSend. Changing the from number to 'hass' identifies all messages as coming from Home Assistant making them more recognisable and removes the bug.
* Amendment
Changed it to use 'hass' as the default instead of defaulting to the recipient which is the array. Would have worked if users set their own name but users who were using the default were experiencing the issue.
* Added DEFAULT_SENDER variable
* Resolves /home-assistant/home-assistant#17433
Away mode temperature issue fix for generic_thermostat
* Debug messages removed from generic_thermostat.py
* Test for repeat away_mode set
Test for fix of generic thermostat issue when away_mode was set several times in a row.
* Code style fix in generic_thermostat
* Remove blank line in the end of generic_thermostat
* Fix style
* zone trigger supports entity id pattern
* fixed lint error
* fixed test code
* initial version of new geo_location trigger
* revert to original
* simplified code and added tests
* refactored geo_location trigger to be based on a source defined by the entity
* amended test cases
* small refactorings
* Add ws get, set card
* lint+fix test
* Add test for set
* Added more tests, catch unsupported yaml constructors
Like !include will now give an error in the frontend.
* lint
"description":"Jednor\u00e1zov\u00e9 heslo bylo odesl\u00e1no prost\u0159ednictv\u00edm **notify.{notify_service}**. Zadejte jej n\u00ed\u017ee:",
"title":"Ov\u011b\u0159en\u00ed nastaven\u00ed"
}
}
},
"totp":{
"error":{
"invalid_code":"Neplatn\u00fd k\u00f3d, zkuste to znovu. Pokud se tato chyba opakuje, ujist\u011bte se, \u017ee hodiny syst\u00e9mu Home Assistant jsou spr\u00e1vn\u011b nastaveny."
},
"step":{
"init":{
"description":"Chcete-li aktivovat dvoufaktorovou autentizaci pomoc\u00ed jednor\u00e1zov\u00fdch hesel zalo\u017een\u00fdch na \u010dase, na\u010dt\u011bte k\u00f3d QR pomoc\u00ed va\u0161\u00ed autentiza\u010dn\u00ed aplikace. Pokud ji nem\u00e1te, doporu\u010dujeme bu\u010f [Google Authenticator](https://support.google.com/accounts/answer/1066447) nebo [Authy](https://authy.com/). \n\n {qr_code} \n \n Po skenov\u00e1n\u00ed k\u00f3du zadejte \u0161estcifern\u00fd k\u00f3d z aplikace a ov\u011b\u0159te nastaven\u00ed. Pokud m\u00e1te probl\u00e9my se skenov\u00e1n\u00edm k\u00f3du QR, prove\u010fte ru\u010dn\u00ed nastaven\u00ed s k\u00f3dem **`{code}`**.",
"no_available_service":"No hay servicios de notificaci\u00f3n disponibles."
},
"error":{
"invalid_code":"C\u00f3digo inv\u00e1lido, por favor int\u00e9ntelo de nuevo."
},
"step":{
"init":{
"description":"Seleccione uno de los servicios de notificaci\u00f3n:",
"title":"Configure una contrase\u00f1a de un solo uso entregada por el componente de notificaci\u00f3n"
},
"setup":{
"description":"Se ha enviado una contrase\u00f1a de un solo uso a trav\u00e9s de ** notificar. {notify_service} **. Por favor introd\u00facela a continuaci\u00f3n:",
"title":"Verificar la configuraci\u00f3n"
}
},
"title":"Notificar la contrase\u00f1a de un solo uso"
},
"totp":{
"error":{
"invalid_code":"C\u00f3digo inv\u00e1lido, por favor int\u00e9ntalo de nuevo. Si recibes este error de forma consistente, por favor aseg\u00farate de que el reloj de tu Home Assistant es correcto."
},
"step":{
"init":{
"description":"Para activar la autenticaci\u00f3n de dos factores utilizando contrase\u00f1as de un solo uso basadas en el tiempo, escanea el c\u00f3digo QR con tu aplicaci\u00f3n de autenticaci\u00f3n. Si no tienes una, te recomendamos [Autenticador de Google] (https://support.google.com/accounts/answer/1066447) o [Authy] (https://authy.com/). \n\n {qr_code} \n \nDespu\u00e9s de escanear el c\u00f3digo, introduce el c\u00f3digo de seis d\u00edgitos de tu aplicaci\u00f3n para verificar la configuraci\u00f3n. Si tienes problemas para escanear el c\u00f3digo QR, realiza una configuraci\u00f3n manual con el c\u00f3digo ** ` {code} ` **.",
"title":"Configure la autenticaci\u00f3n de dos factores utilizando TOTP"
"no_available_service":"Nessun servizio di notifica disponibile."
},
"error":{
"invalid_code":"Codice non valido, per favore riprovare."
},
"step":{
"init":{
"description":"Selezionare uno dei servizi di notifica:"
},
"setup":{
"description":"\u00c8 stata inviata una password monouso tramite **notify.{notify_service}**. Per favore, inseriscila qui sotto:",
"title":"Verifica l'installazione"
}
},
"title":"Notifica la Password monouso"
},
"totp":{
"error":{
"invalid_code":"Codice non valido, per favore riprovare. Se riscontri spesso questo errore, assicurati che l'orologio del sistema Home Assistant sia accurato."
},
"step":{
"init":{
"description":"Per attivare l'autenticazione a due fattori utilizzando password monouso basate sul tempo, eseguire la scansione del codice QR con l'app di autenticazione. Se non ne hai uno, ti consigliamo [Google Authenticator] (https://support.google.com/accounts/answer/1066447) o [Authy] (https://authy.com/). \n\n {qr_code} \n \n Dopo aver scansionato il codice, inserisci il codice a sei cifre dalla tua app per verificare la configurazione. Se riscontri problemi con la scansione del codice QR, esegui una configurazione manuale con codice ** ` {code} ` **.",
"invalid_code":"C\u00f3digo inv\u00e1lido, por favor tente novamente. Se voc\u00ea obtiver este erro de forma consistente, certifique-se de que o rel\u00f3gio do sistema Home Assistant esteja correto."
"description":"Por favor, selecione um dos servi\u00e7os de notifica\u00e7\u00e3o:",
"title":"Configurar uma palavrapasse entregue pela componente de notifica\u00e7\u00e3o"
"title":"Configurar uma palavra-passe entregue pela componente de notifica\u00e7\u00e3o"
},
"setup":{
"description":"Foi enviada uma palavrapasse atrav\u00e9s de **notify.{notify_service}**. Por favor, insira-a:",
"description":"Foi enviada uma palavra-passe atrav\u00e9s de **notify.{notify_service}**. Por favor, insira-a:",
"title":"Verificar a configura\u00e7\u00e3o"
}
},
"title":"Notificar palavrapasse de uso \u00fanico"
"title":"Notificar palavra-passe de uso \u00fanico"
},
"totp":{
"error":{
"invalid_code":"C\u00f3digo inv\u00e1lido, por favor, tente novamente. Se receber este erro constantemente, por favor, certifique-se de que o rel\u00f3gio do sistema que hospeda o Home Assistent \u00e9 preciso."
"invalid_code":"C\u00f3digo inv\u00e1lido, por favor, tente novamente. Se receber este erro constantemente, por favor, certifique-se de que o rel\u00f3gio do sistema que hospeda o Home Assistant \u00e9 preciso."
},
"step":{
"init":{
"description":"Para ativar a autentica\u00e7\u00e3o com dois fatores utilizando passwords unicas temporais (OTP), ler o c\u00f3digo QR com a sua aplica\u00e7\u00e3o de autentica\u00e7\u00e3o. Se voc\u00ea n\u00e3o tiver uma, recomendamos [Google Authenticator](https://support.google.com/accounts/answer/1066447) ou [Authy](https://authy.com/).\n\n{qr_code}\n\nDepois de ler o c\u00f3digo, introduza o c\u00f3digo de seis d\u00edgitos fornecido pela sua aplica\u00e7\u00e3o para verificar a configura\u00e7\u00e3o. Se tiver problemas a ler o c\u00f3digo QR, fa\u00e7a uma configura\u00e7\u00e3o manual com o c\u00f3digo **`{c\u00f3digo}`**.",
"description":"Para ativar a autentica\u00e7\u00e3o com dois fatores utilizando palavras-passe de uso \u00fanico (OTP), ler o c\u00f3digo QR com a sua aplica\u00e7\u00e3o de autentica\u00e7\u00e3o. Se n\u00e3o tiver uma, recomendamos [Google Authenticator](https://support.google.com/accounts/answer/1066447) ou [Authy](https://authy.com/).\n\n{qr_code}\n\nDepois de ler o c\u00f3digo, introduza o c\u00f3digo de seis d\u00edgitos fornecido pela sua aplica\u00e7\u00e3o para verificar a configura\u00e7\u00e3o. Se tiver problemas a ler o c\u00f3digo QR, fa\u00e7a uma configura\u00e7\u00e3o manual com o c\u00f3digo **`{code}`**.",
"title":"Configurar autentica\u00e7\u00e3o com dois fatores usando TOTP"
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.