* Improve configuration
* Read new properties for basic device information
Improve tests by mocking less improving stability of tests
* Clean up in device tests
* Support new port management api
* Improve initializing data
* Bump dependency to v28
* Requires 0.7.18 of elkm1 library to decode LD messages, and uses those messages to reliably set the arming/disarming user when there are more than one area. See https://github.com/home-assistant/core/issues/35310.
* Fixed typo
* Fixed off by one error -- LD command reports 1-based user-numbers which is the changed_by_id we want, but we need 0-based indices as argument to username.
* Bump required version of elkm1, remove logging message I was using for testing; prepping for PR.
* Black formatted
* Fixed bug whereby I needed to ref elements when running against released build of elkm1-lib
* Update plugwise async, config_flow and multi entity
* Update battery percentage
* Fix yamllint on services
* Fix yamllint on services
* Fix formatting for pyupgrade
* Update homeassistant/components/plugwise/__init__.py
Co-Authored-By: Robert Svensson <Kane610@users.noreply.github.com>
* Add try/except on setup
* Bump module version, battery version and valve position
* Removing sensor, switch, water_heater for later (child) PRs
* Catchup and version bump
* Remove title from strings.json
* Readd already reviewd await try/except
* Readd already reviewed config_flow
* Fix pylint
* Fix per 0.109 translations
* Remove unused import from merge
* Update plugwise async, config_flow and multi entity
* Update battery percentage
* Fix yamllint on services
* Fix yamllint on services
* Bump module version
* Bump module version, battery version and valve position
* Removing sensor, switch, water_heater for later (child) PRs
* Catchup and version bump
* Remove title from strings.json
* Fix pylint
* Fix per 0.109 translations
* Translations and config_flow, module version bump with required changes
* Translations and config_flow, module version bump with required changes
* Fix requirements
* Fix requirements
* Fix pylint
* Fix pylint
* Update homeassistant/components/plugwise/__init__.py
Improvement
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/plugwise/__init__.py
Improvement
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/plugwise/__init__.py
Improvement
Co-authored-by: J. Nick Koston <nick@koston.org>
* Include configentrynotready on import
* Update __init__.py
* DataUpdateCoordinator and comment non-PR-platforms
* Fix reqs
* Rename devices variable in favor of entities
* Rework updates with DataUpdateCoordinator
* Peer review
* Peer review second part
* Cleanup comments and redundant code
* Added required config_flow test
* Peer review third part
* Update service was replaced by DataUpdateCoordinator
* Corrected testing, version bump for InvalidAuth, move uniq_id
* Remove according to review
* Await connect (py38)
* Remove unneccesary code
* Show only when multiple
* Improve config_flow, rename consts
* Update homeassistant/components/plugwise/climate.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Update homeassistant/components/plugwise/climate.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Process review comments
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add support for Elexa Guardian water valve controllers
* Zeroconf + cleanup
* Sensors and services
* API registration
* Service bug fixes
* Fix bug in cleanup
* Tests and coverage
* Fix incorrect service description
* Bump aioguardian
* Bump aioguardian to 0.2.2
* Bump aioguardian to 0.2.3
* Proper entity inheritance
* Give device a proper name
* Code review
* add tests
* better error handling in dependency
* dont suppress errors
* add support for multiple devices
* add test for Unauthorized status
* raise error on service call failure
* Working PoC
* Store
* Handle subscribing to MQTT and stopping stream when first telegram arrives
* Improve naming
* Now with test
* Better strings
* Fix Martins comments
* Improve mock device patching
* Bump dependency to v27
Add MQTT as after dependency
* Update to garminconnect 0.1.13
This will fix body composition sensors being unavailable
* Update requirements_all to garminconnect 0.1.13
* Update requirements_test_all.txt
* PyWeMo version bump to 0.4.43
Changes necessary to safely upgrade to pyWeMo 0.4.43. This includes catching ActionExceptions that may be thrown by pyWeMo when it is unable to interact with a physical device.
* Black formatting fix
* Fix isort issues
* Code review changes
* More code review fixes
* Linting fix
* Undo dict.get change
* Change a couple instances of dict[key] to dict.get
* Migrate to pyinsteon from insteonplm
* Rename devices entities
* Print ALDB even if not loaded
* Add relay to name map
* Change insteonplm to pyinsteon
* Update requirements_all correctly
* Code review updates
* async_set_speed receive std speed value
* default speed to std medium value
* Call async methods for fan on/off
* Comment await required in loop
* Remove emtpy and add codeowner
* Make services async and remove async_add_job call
* Remove extra logging
* New device as async task and aldb load in loop
* Place lock in context bloxk
* Limiting lock to min
* Remove .env file
* First cut of Rollease Acmeda Pulse Hub integration.
* Acmeda integration improvements:
- Moved common code into a base entity
- Battery level sensor added
- Localisation now working
* Added requirement for aiopulse now that it has been uploaded to PyPI.
* Exclude acmeda integration from coverage check as it relies on a hub being present.
* Fix Travis CI build issues.
* Remove unused constants.
* Remove unused group logic from cover.py
* Removed commented code from base.py
* Remove sensors (battery entities) on removal of hub.
* Remove unused groups from sensor.py
* Acmeda device and entity update made fully asynchronous using subscriptions to remove need for config polling.
* Updated aiopulse version dependency.
Removed non-functional battery charging indication.
* Rationalised common code to update entities into helpers.py
* Fix linting issue.
* Correct additional CI pylint errors.
* Index config_entries by entry_id.
Move entity loading and unloading to __init__.py
Add entry_id to dispatcher signal
Removed now unused polling code hub
Added config_flow unit tests
* Tweak to integration config_entry title.
* Bumped aiopulse module to 0.3.2.
Reduced verbosity of aiopulse module.
* Changed to using direct write of device state.
Removed old style async_step_init config_flow step.
* Remove superfluous battery_level and device_state_attributes from battery entity.
* Removal of unused strings.
Removal of unused create_config_flow helper.
Removal of stale comment.
* Remove use of shared container to track existing enities.
Moved removal and deregistration of entities to base class through use of dispatch helper.
* Fixed strings.json
* Fix incorrect use of remove instead of pop on dict.
* Add support for tilting covers, bump aiopulse version number.
* Bump aiopulse version to v0.3.4.
Fixed bug in cover supported_features.
* Bumped aiopulse version to 0.4.0
Update acmeda .coveragerc exclusions
* Removed already configured hub check from __init__.py async_setup_entry
Removed passing in hass reference to base entity class
Renamed entity async_reset to async_will_remove_from_hass
Changed device_info and properties
Migrated to CoveEntity from CoverDevice
Added dispatched_connect cleanup on hub removal
Removed unused entries from manifest
Removed override of battery icon
Renamed translations folder
* Reversed unintended change to .coveragerc
* Fixed config flow for multi-hub discovery.
* Acmeda enhancements as requested by MartinHjelmare
* Force import to connect to hub to retrieve id prior to creating entry
* Remove YAML configuration support.
* Tidied up config_flow and tests:
- removed unnecessary steps
- fixed typos
* Removed storage of hub in config_flow.
* Add config flow to gogogate2 component.
* Using a more stable gogogate api.
* Getting config flows working better by using different downstream library.
* Fixing options not getting default values.
Adding availability to cover entity.
* Simplifying return types of function.
* Address PR feedback.
* Making user config flow not abort.
* Using DataUpdateCoordinator.
* Addressing PR feedback.
* Using standard method for using hass.data
* Split auth fail test into separate tests.
* Provide yeelight unique_id using ssdp discovery
* Fixes
* Comment fix
* Cleanup initialization logic and add unique id to binary sensor
* Update homeassistant/components/yeelight/__init__.py
Co-authored-by: Teemu R. <tpr@iki.fi>
* Update homeassistant/components/yeelight/__init__.py
Co-authored-by: Teemu R. <tpr@iki.fi>
* Update comment
* Update comment
* Fix wrong model docstring
Co-authored-by: Teemu R. <tpr@iki.fi>
- add expose attribute function and default value
- default climate havc_mode to "heat" if modes are not supported
- support `update_entity` service call
* New forked_daapd component
* Bunch of changes
Add config flow and zeroconf
Add zones on callback when added by server
Add password auth
Add async_play_media for TTS
Add media_image_url
Add support for pipe control/input from librespot-java
Improve update callbacks
* Refactor as per code review suggestions
Move config_flow connection testing to pypi library (v0.1.4)
Remove use of ForkedDaapdData class
Decouple Master and Zone data and functions
Add updater class to manage websocket and entity updates
* More changes as per code review
Avoid direct access to entities in tests
Bump pypi version
Mark entities unavailable when websocket disconnected
Move config tests to test_config_flow
Move full url creation from media_image_url to library
Move updater entity from master to hass.data
Remove default unmute volume option
Remove name from config_flow
Remove storage of entities in hass.data
Use async_write_ha_state
Use signal to trigger update_options
Use unittest.mock instead of asynctest.mock
* Yet more changes as per code review
Add more assertions in tests
Avoid patching asyncio
Make off state require player state stopped
Only send update to existing zones
Split up some tests
Use events instead of async_block_till_done
Use sets instead of lists where applicable
Wait for pause callback before continuing TTS
* Remove unnecessary use of Future()
* Add pipes and playlists as sources
* Add support for multiple servers
Change config options to add max_playlists+remove use_pipe_control
Create Machine ID in test_connection and also get from zeroconf
Modify hass.data storage
Update host for known configurations
Use Machine ID in unique_ids, entity names, config title, signals
* Use entry_id as basis for multiple entries
* Use f-strings and str.format, abort for same host
* Clean up check for same host
* Add integration for wiffi devices
wiffi devices are DIY board manufactured by stall.biz.
Several devices are available, e.g. a weather station (weatherman), an
indoor environmental sensor (wiffi-wz) and some more.
This intgration has been developed using a weatherman device, but should
also work for other devices from stall.biz.
* Fix pylint warning
* Use WIFFI / STALL WIFFI instead of wiffi to be consistent with stall.biz
* Don't update disabled entities.
* fix complains
- move wiffi specific code to pypi
- remove yaml configuration code
* incorporate various suggestions from code review
* fix remaining comments from Martin
* fix comments
* add tests for config flow
* fix comments
* add missing requirements for tests
* fix pylint warnings
* fix comments
* fix comments
remove debug log
rename .translations to translations
* rebase and adapt to latest dev branch
* Update homeassistant/components/wiffi/config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/wiffi/config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* fix missing import
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Use helper functions for exception handling
* Create a separate class to handle communication with the device
* Update manifest
* Use coroutine for service setup
* Fix sensor update
* Update tests
* Fix MP1 switch
* Add device.py to .coveragerc
* Remove unnecessary blocking from test_learn_timeout
* Change access method for entries with default values
* Make the changes suggested by MartinHjelmare
* Remove dot from debug message
* Use underscore for unused variable
When the websocket is created `SSLContext.load_default_certs` is called
each time which opens up the system default ssl certs file and reads it in
Normally this goes unnoticed, however since there are frequent connects
and disconnects of the websocket it was noticeable.
* Update requirements_all.txt
Updated to vigilancemeteo version 3.0.1
* Update requirements_test_all.txt
Updated to vigilancemeteo version 3.0.1
* Update manifest.json
Update to correct typo error
* rewrite library
* Update strings.json
* fix updated with empty reply
* dont use entity_id
* atag_id
* use super init instead
* original ids to prevent breaking change
* Universal Powerline Bus - Link Event
* Bump lib version.
* Update homeassistant/components/upb/__init__.py
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Move opengarage code to separate library
* Move opengarage code to separate library
* Move opengarage code to separate library
* remove unique_id
* style
* Initial commit for BSBLan Climate component
The most basic climate functions work.
* Delete manifest 2.json
wrongly added to commit
* fix incorrect name
current_hvac_mode
* update coverage to exclude bsblan
* sorted and add configflow
* removed unused code, etc
* fix hvac, preset mix up
now it sets hvac mode to none and preset to eco
* fix naming
* removed commented code and cleaned code that isn't needed
* Add test for the configflow
* Update requirements
fixing some issues in bsblan Lib
* Update coverage file to include configflow bsblan
* Fix hvac preset is not in hvac mode
rewrote how to handle presets.
* Add passkey option
My device had a passkey so I needed to push this functionality to do testing
* Update constants
include passkey and added some more for device indentification
* add passkey for configflow
* Fix use discovery_info instead of user_input
also added passkey
* Fix name
* Fix for discovery_info[CONF_PORT] is None
* Fix get value CONF_PORT
* Fix move translation to new location
* Fix get the right info
* Fix remove zeroconf and fix the code
* Add init for mockConfigEntry
* Fix removed zeroconfig and fix code
* Fix changed ClimateDevice to ClimatEntity
* Fix log error message
* Removed debug code
* Change name of device.
* Remove check
This is done in the configflow
* Remove period from logging message
* Update homeassistant/components/bsblan/strings.json
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add passkey
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add integration for Flick Electric NZ
* Start adding Config Flow and external API
* Second Wave of Config Flow and API implementation
* Fix test (errors is None instead of blank array?)
* Don't update sensor if price is still valid
* Add input validation
* Fix linting for DOMAIN
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Remove platform schema (config is by entries only)
* Don't catch AbortFlow exception
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* Update test
* Re-arrange try-catch in config flow
* Fix linting in sensor.py
* Staticly define list of components
* Fix test exceptions
* Fix _validate_input not being awaited
* Fix tests
* Fix pylint logger
* Rename test and remove print debug
* Add test for duplicate entry
* Don't format string in log function
* Add tests __init__ file
* Remove duplicate result assignment
* Add test for generic exception handling
* Move translations folder
* Simplify testing
* Fix strings/translation
* Move to "flick_electric" as domain
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Initial version.
* Tests.
* Refactored tests.
* Update requirements_all
* Increase test coverage. Catch exception.
* Update .coveragerc
* Fix lint msg.
* Tweak test (more to force CI build).
* Update based on PR comments.
* Change unique_id to use stable string.
* Add Universal Powerline Bus "link" support.
* Fix missed call.
* Revert botched merge.
* Update homeassistant/components/upb/light.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Three changes.
Update service schema to require one of brightness/brightness_pct.
Fix bug in setting brightness to zero.
Replace async_update_status and replace with async_update.
Co-authored-by: J. Nick Koston <nick@koston.org>
* Remove unnecessary pylint exceptions
* Move up some change to binary_sensors and switch. Fix program d.s.a's.
* ISY994 Basic support for PyISYv2
- Bare minimum changes to be able to support PyISYv2.
- Renaming imports and functions to new names.
- Use necessary constants from module.
- **BREAKING CHANGE** Remove ISY Climate Module support.
- Climate module was retired on 3/30/2020: [UDI Annoucement](https://www.universal-devices.com/byebyeclimatemodule/)
- **BREAKING CHANGE** Device State Attributes use NodeProperty
- Some attributes names and types will have changed as part of the changes to PyISY. If a user relied on a device state attribute for a given entity, they should check that it is still there and formatted the same. In general, *more* state attributes should be getting picked up now that the underlying changes have been made.
- **BREAKING CHANGE** `isy994_control` event changes (using NodeProperty)
- Control events now return an object with additional information. Control events are now parsed to the friendly names and will need to be updated in automations.
Remove cast
* PyISY v2.0.2, add extra UOMs, omit EMPTY_TIME attributes
* Fix typo in function doc string.
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add config flow to songpal
* Add config flow to songpal
* Add songpal to migrated service in discovery
* Improve songpal/set_sound_setting service
* Remove songpal config flow from .coveragerc omit
* Bump python-songpal to 0.12 and fix exception handling
* Revert "Improve songpal/set_sound_setting service"
This reverts commit 9be076ab52e21f268322572c36709a17d41db771.
* Code style fix
* Add connections to device_info
* Fix pylint
* Ignore braava tv
* Fix test warning
* Add @shenxn as codeowner
* Remove model from configuration data
* Get name from device in user step
* Add unload entry support
* Delete translations as it will get generated as part of CI
* Code cleanup
* Fix typo
* Remove _show_setup_form
* Change configuration from media_player to songpal
Co-authored-by: Raman Gupta <7243222+raman325@users.noreply.github.com>
* Start gateway using new zigpy init.
Update config entry data import.
Use new zigpy startup.
Fix config entry import without zha config section.
Auto form Zigbee network.
* Migrate config entry.
* New ZHA config entry flow.
Use lightweight probe() method for ZHA config entry validation when
available. Failback to old behavior of setting up Zigpy app if radio lib
does not provide probing.
* Clean ZHA_GW_RADIO
* Don't import ZHA device settings.
* Update config flow tests.
* Filter out empty manufacturer.
* Replace port path with an by-id device name.
* Rebase cleanup
* Use correct mock.
* Make lint happy again
* Update tests/components/zha/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zha/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/zha/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Use executor pool for IO
* Address comments.
Use AsyncMock from tests.
* Use core interface to test config flow.
* Use core interface to test config_flow.
* Address comments. Use core interface.
* Update ZHA dependencies.
* Schema guard
* Use async_update_entry for migration.
* Don't allow schema extra keys.
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add query and sync
* Update description of call_query
* Remove backup files accidentally committed to repo
* Update after pysqueezebox refactor
* Use entity service helper
* Implement suggested changes
* Fix linter error in services.yaml
* Fix long lines in services.yaml