* Modern Forms integration initial pass
* cleanup of typing and nits
* Stripped PR down to Fan only
* Review cleanup
* Set sleep_time to be required for service
* Adjust minimum sleep time to one minute.
* Code review changes
* cleanup icon init a little
Since 2021-06-01, the three PVPC price tariffs become one and only: '2.0 TD',
and the JSON schema from the official API (data source of this integration)
is slightly different.
This patch allows a no-pain jump between the old tariffs and the new one.
Previous version of pymelcloud performs requests that are not permitted
for guest users. Bypassing these requests results only in less detailed
device info.
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
As of version 0.14, the venstar_colortouch lib always initializes hum_setpoint to None. When a thermostat actually reports a humidifier state, this value is replaced with the integer value of the setpoint. This changeset corrects the humidifier detection as well as adds basic test cases for the Venstar component.
* Wallbox component added
* resolved mergeconflicts from upstream
* fixed an incorrect removal in CODEOWNERS file
* fixes for pullrequest automatic test
* clean up code after PR tests
* fixed strings.json
* fix config_flow error > wallbox
* fixed some formatting issues
* fix pylint warnings
* fixed error in number.py > set value
* pylint warnings fixed
* some more pylint fixes
* isort fixes
* fix unused_import pylint
* remove tests
* remove test requirements
* config flow test
* test errors resolved
* test file formatting
* isort on test file
* sensor test
* isort on test
* isort test const
* remove not working sensor test
* remove test const
* add switch, number and lock test
* docstrings for test classes
* sort test_number, create test_sensor
* additional tests
* fix test error
* reduced PR to 1 component
* newline in const
* ignore test coverage -> dependency on external device (wallbox)
* do not ignore config_flow
* add test for validate_input
* remove obsolete import
* additional test config flow
* change test sensor
* docstring
* add additional test for exceptions
* fix test_config
* more tests
* fix test_config_flow
* fixed http error test
* catch connectionerror and introduce testing for this error
* remove .coveragefile
* change comment
* Update homeassistant/components/wallbox/__init__.py
review suggestion by janiversen
Co-authored-by: jan iversen <jancasacondor@gmail.com>
* Update homeassistant/components/wallbox/__init__.py
review suggestion by janiversen (format only)
Co-authored-by: jan iversen <jancasacondor@gmail.com>
* Processed review comments, include more testing for sensor component
* Isolated the async_add_executor_job to make the solution more async
* add a config flow test
* Revert "add a config flow test"
This reverts commit 9c1af82fff.
* Revert "Isolated the async_add_executor_job to make the solution more async"
This reverts commit 0bf034c331.
* Make component more async and add config flow tests
* Changes based on review comments
* made _ methods in WallboxHub for the 'non-async' call to the API and try-catch. Stored the wallbox in the class.
* moved the coordinator to __init__ and pass it as part of the WallboxHub class
* removed obsolete function in __init__
* removed CONNECTION_CLASS = config_entries.CONN_CLASS_CLOUD_POLL
* fixed spelling and imports on test files
* did isort on component files
Co-authored-by: jan iversen <jancasacondor@gmail.com>
* initial commit of SIA integration
* translations
* moved reactions to file, typed everything
* fixed no-else-return 3 times
* refactored config and fix coverage of test
* fix requirements_test
* elimated another platform
* forgot some mentions of sensor
* updated config flow steps, fixed restore and small edits
* fixed pylint
* updated config_flow with better schema, small fixes from review
* final comment and small legibility enhancements
* small fix for pylint
* fixed init
* fixes for botched rebase
* fixed port string
* updated common strings
* rebuild component with eventbus
* fixed pylint and tests
* updates based on review by @bdraco
* updates based on new version of package and reviews
* small updates with latest package
* added raise from
* deleted async_setup from test
* fixed tests
* removed unused code from addititional account step
* fixed typo in strings
* clarification and update to update_data func
* added iot_class to manifest
* fixed entity and unique id setup
* small fix in tests
* improved unique_id semantics and load/unload functions
* added typing in order to fix mypy
* further fixes for typing
* final fixes for mypy
* adding None return types
* fix hub DR identifier
* rebased, added DeviceInfo
* rewrite to clean up and make it easier to read
* replaced functions with format for id and name
* renamed tracker remover small fix in state.setter
* improved readibility of state.setter
* no more state.setter and small updates
* mypy fix
* fixed and improved config flow
* added fixtures to test and other cleaner test code
* removed timeband from config, will reintro in a options flow
* removed timeband from tests
* added options flow for zones and timestamps
* removed type ignore
* replaced mapping with collections.abc
* Remove pytz dependency and handle timezones with zoneinfo, and adapt to use input timezone as a time zone object or a string identifier
* Fix prices being badly assigned in Canary Islands timezone
* Fix sensor attributes in month changes
If we have the mac address from discovery, we can use it to wake
the TV. Currently the TV goes unavailable when you turn it off
as the only way to turn it back on is wake on lan or via the remote.
Users who are not using host networking can use a script instead.
* Split initialization from data retrival
* Await class initialization
* Async camera
* More async
* Remove stale code
* Clean up
* Update tests
* Fix test
* Improve error handling
* Bump pyatmo version to 5.0.0
* Add tests
* Add cloudhook test
* Increase coverage
* Add test with no camera devices
* Add test for ApiError
* Add test for timeout
* Clean up
* Catch pyatmo ApiError
* Fix PublicData
* Fix media source bug
* Increase coverage for light
* Test webhook with delayed start
* Increase coverage
* Clean up leftover data classes
* Make nonprivate
* Review comments
* Clean up stale code
* Increase cov
* Clean up code
* Code clean up
* Revert delay
* Update homeassistant/components/netatmo/climate.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/netatmo/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Address comment
* Raise cov
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Growatt Server Config flow
* Use reference strings
Co-authored-by: SNoof85 <snoof85@gmail.com>
* Remove configuration.yaml import logic
* Removed import test
* Re-added PLATFORM_SCHEMA validation
* Import yaml from old yaml configuration
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Feedback
* Use Executor for IO only
* Fix imports
* update requirements
* Fix flake8
* Run every section of fetching devices in single executor
* Config flow feedback
* Clean up
* Fix plan step
* Fix config flow test
* Remove duplicate test
* Test import step
* Test already configured entry
* Clean up tests
* Add asserts
* Mock out entry setup
* Add warning if set up via yaml
Co-authored-by: SNoof85 <snoof85@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Scaffold the integration
* Add config flow data schema
* Handle configuration errors
* Get folder states
* Support https
* Fix translations
* Listen to syncthing events in a separate thread
* Bump syncthing
* Automatically reconnect to the syncthing server
* Renames
* Improve loading and unloading
* Update folder states from events
* Refactoring, handle FolderPaused event
* Dynamic folder icons
* Refactoring
* Mark folders as unavailable when senrver is unavailable
* Update folder satus when server is available
* Raise PlatformNotReady
* Implement additional polling
* Stop polling when the server is not available
* Minor fixes
* Remove logging
* Check name uniqueness
* Refactoring
* Minor refactorings
* Bump python-syncthing
* Migrate to aiosyncthing
* Minor fixes
* Update .coveragerc
* Set quality scale
* Bump aiosyncthing, properly handle invalid token
* Fix logging
* Fix logging
* Use CONF_VERIFY_SSL from homeassistant.const
* Bump aiosyncthing. Add Syncthing device
* Fix device name
* Bump aiosyncthing
* Bump aiosyncthing
* Extract SyncthingClient
* Add folder to device_state_attributes
* Do not pass the loop
* Cover config_flow.py
* Move self.async_create_entry outside of the try block
* Raise ConfigEntryNotReady if syncthing server is not reachable
* Fix already configured error message
* Change default name to Syncthing
* Bump aiosyncthing
* Fix formatting
* Fix formatting
* Fix tests
* Fix typo, use lis comprehension
* Fix typo, remove unused CONFIG_SCHEMA
* Bump aiosyncthing
* Remove periods from log messages W0001
* Fix tests
* Black, isort
* Remove empty items from manifest.json
* Fix variable naming
* Remove async_setup
* Use SensorEntity
* Use asyncio.create_task instead of self._hass.loop.create_task
* Do not pass hass to FolderSensor initializer
* Rename device_state_attributes to extra_state_attributes
* Use callbacks
* Simplify tests
* Refactor _listen()
* Use url for the title
* Use the url instead of the name to identify the config entry
* Explicitly set sensor attributes, extract _filter_state
* Use server url instead of name in device_info
* Use server url instead of name in logs
* User server id as a device identifier
* Use URL instead of name to identify config entry
* Use shortened server id instead of name to build entity name and unique id
* Do not use CONF_NAME
* Cleanup unused strings
* Cleanup unused strings
* Add IOT class
* Scaffold the integration
* Add config flow data schema
* Handle configuration errors
* Get folder states
* Support https
* Fix translations
* Listen to syncthing events in a separate thread
* Bump syncthing
* Automatically reconnect to the syncthing server
* Renames
* Improve loading and unloading
* Update folder states from events
* Refactoring, handle FolderPaused event
* Dynamic folder icons
* Refactoring
* Mark folders as unavailable when senrver is unavailable
* Update folder satus when server is available
* Raise PlatformNotReady
* Implement additional polling
* Stop polling when the server is not available
* Minor fixes
* Remove logging
* Check name uniqueness
* Refactoring
* Minor refactorings
* Bump python-syncthing
* Migrate to aiosyncthing
* Minor fixes
* Update .coveragerc
* Set quality scale
* Bump aiosyncthing, properly handle invalid token
* Fix logging
* Fix logging
* Use CONF_VERIFY_SSL from homeassistant.const
* Bump aiosyncthing. Add Syncthing device
* Fix device name
* Bump aiosyncthing
* Bump aiosyncthing
* Extract SyncthingClient
* Add folder to device_state_attributes
* Do not pass the loop
* Cover config_flow.py
* Move self.async_create_entry outside of the try block
* Raise ConfigEntryNotReady if syncthing server is not reachable
* Fix already configured error message
* Change default name to Syncthing
* Bump aiosyncthing
* Fix formatting
* Fix formatting
* Fix tests
* Fix typo, use lis comprehension
* Fix typo, remove unused CONFIG_SCHEMA
* Bump aiosyncthing
* Remove periods from log messages W0001
* Fix tests
* Black, isort
* Remove empty items from manifest.json
* Fix variable naming
* Remove async_setup
* Use SensorEntity
* Use asyncio.create_task instead of self._hass.loop.create_task
* Do not pass hass to FolderSensor initializer
* Rename device_state_attributes to extra_state_attributes
* Use callbacks
* Simplify tests
* Refactor _listen()
* Use url for the title
* Use the url instead of the name to identify the config entry
* Explicitly set sensor attributes, extract _filter_state
* Use server url instead of name in device_info
* Use server url instead of name in logs
* User server id as a device identifier
* Use URL instead of name to identify config entry
* Use shortened server id instead of name to build entity name and unique id
* Do not use CONF_NAME
* Cleanup unused strings
* Cleanup unused strings
* Add IOT class
* Apply suggestions from code review
* Clean up
* Fix dict comprehension
* Clean sensor
* Use the server ID as a config entry unique ID
* Remove the AlreadyConfigured exception
* Clean up old error string
* Format json
* Convert sensor attributes to snake case
* Force CI
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Infrastructure in place
* Base implementation
* Add alarm event
* Add custom services to alarm control panel
* Add service descriptions
* Increase test coverage
* Simplified to one entity service with an options selector
* Remove everything but the essentials
* Add library with proper support
* Fix stale comments
The previous iAlarm integration has been removed because it used
webscraping #43010.
Since then, the pyialarm library has been updated to use the iAlarm API
instead.
With this commit I reintroduce the iAlarm integration, leveraging the
new HA config flow.
Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
* Update Ezviz Component
* Update Ezviz for pylint test
* Update Ezviz component pylint tests
* Update Ezviz component tests
* Update Ezviz Component tests
* Update Ezviz component pylint error
* Fix ezviz component config flow tests
* Update ezviz component
* Update Ezviz component
* Add sensor platforms
* issue with requirements file
* Update binary_sensor to include switches
* Updates to Ezviz sensors
* Removed enum private method.
* Fix switch args
* Update homeassistant/components/ezviz/switch.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* config flow checks login info
* Config_flow now imports ezviz from camera platform
* Update test
* Updated config_flow with unique_id and remove period from logging
* Added two camera services and clarified service descryptions in services.yaml
* Fixed variable name mistake with new service
* Added french integration translation
* Config_flow add camera rtsp credentials as seperate entities, with user step and import step
* rerun hassfest after rebase
* Removed region from legacy config schema, removed logging in camera platform setup that could contain credentials, removed unused constant.
* Regenerate requirements
* Fix tests and add config_flow import config test
* Added addition test to config_flow to test successfull camera entity create.
* Add to tests method to end in create entry, config_flow cleanup, use entry instead of entry.data
* Removed all services, sorted platforms in init file.
* Changed RTSP logging to debug from warning. (Forgot to change this before commit)
* Cleanup typing, change platform order, bump pyezviz version
* Added types to entries, allow creation of main entry if deleted by validating existance of type
* Config_flow doesn't store serial under entry data, camera rtsp read from entry and not stored in hass, removed duplicate abort if unique id from config flow
* Fix test of config_flow
* Update tests/components/ezviz/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/ezviz/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/ezviz/test_config_flow.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Bumped pyezviz api version, added api pyezvizerror exception raised in api (on HTTPError), cleanup unused imports.
* rebase
* cleanup coordinator, bump pyezviz api version, move async_setup_entry to add entry options to camera entries. (order change)
* Added discovery step in config_flow if cameras detected without rtsp config entry
* Reload main integration after addition or completion of camera rtsp config entry
* Add tests for discovery config_flow, added a few other output asserts
* Camera platform call discover flow with hass.async_create_task. Fixes to config_flow for discovery step
* Fix config_flow discovery, add check to legacy yaml camera platform import, move camera private method to camera import step
* Remove not needed check from config_flow import step.
* Cleanup config_flow
* Added config_flow description for discovered camera
* Reordered description in config_flow confim step.
* Added serial to flow_step description for discovered camera, readded camera attributes for rtsp stream url (allows user to check RTSP cred), added local ip and firmware upgade available.
* Bumped pyezviz version and changed region code to region url. (Russia uses a completly different url). PyEzviz adds a Local IP sensor, removed camera entity attributes.
* Add RSTP describe auth check from API to config_flow
* url as vol.in options in Config_flow
* Config_flow changes to discovery step, added exceptions, fixed tests, added rtsp config validate module mock to test disovery confirm step
* Add test for config_flow step user_camera
* Added tests for abort flow
* Extend tests on custom url flow step
* Fix exceptions in config_flow, fix test for discovery import exception test
* Bump pyezviz api version
* Bump api version, added config_flow function to wake hybernating camera before testing credentials, removed "user camera" step from config flow not needed as cameras are discovered.
* Create pyezviz Api instance for config_flow wake hybernating camera, fixed tests and added fixture to mock method
* Added alarm_control_panel with support to arm/disarm all cameras, fixed camera is available attribute (returns 2 if unavailable, 1 if available)
* Skip ignored entities when setup up camera RTSP stream
* Remove alarm_control_panel, add additional config_flow tests
* Cleanup tests, add tests for discovery_step.
* Add test for config_flow rtsp test step1 exceptions
* Removed redundant except from second step in test RTSP method
* All tests to CREATE or ABORT, added step exception for general HTTP error so user can retry in case of trasient network condition
* Ammended tests with output checks for step_id, error, data, create entry method calls.
* bumped ezviz api now rases library exceptions. Config_flow, coordiantor and init raises library exceptions. Updated test sideeffect for library exceptions
* Bump api version, Create mock ezviz cloud account on discovery tests first to allow more complete testing of step.
* Add abort to rtsp verification method if cloud account was deleted and add tests
* Update tests/components/ezviz/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/ezviz/const.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/ezviz/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/ezviz/camera.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/ezviz/camera.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/ezviz/camera.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/ezviz/camera.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/ezviz/camera.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/ezviz/camera.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Undo config import change to password key for yaml, move hass.data.setdefault to async_setup_entry and remove async_setup
* Fixed tests by removing _patch_async_setup as this was removed from init.
* Update homeassistant/components/ezviz/camera.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/ezviz/camera.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/ezviz/camera.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Changed L67 on camera config to complete suggestion for cleanup
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* New integration for Kostal Plenticore solar inverters.
* Fix errors from github pipeline.
* Fixed test for py37.
* Add more test for test coverage check.
* Try to fix test coverage check.
* Fix import sort order.
* Try fix test code coverage .
* Mock api client for tests.
* Fix typo.
* Fix order of rebased code from dev.
* Add new data point for home power.
* Modifications to review.
Remove service for write access (for first pull request). Refactor
update coordinator to not use the entity API.
* Fixed mock imports.
* Ignore new python module on coverage.
* Changes after review.
* Fixed unit test because of config title.
* Fixes from review.
* Changes from review (unique id and mocking of tests)
* Use async update method. Change unique id. Remove _dict
* Remove _data field.
* Removed login flag from PlenticoreUpdateCoordinator.
* Removed Dynamic SoC sensor because it should be a binary sensor.
* Remove more sensors because they are binary sensors.
* Add config flow for Waze Travel Time
* update translations
* setup entry is async
* fix update logic during setup
* support old config method in the interim
* fix requirements
* fix requirements
* add abort string
* changes based on @bdraco review
* fix tests
* add device identifier
* Update homeassistant/components/waze_travel_time/__init__.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* fix tests
* Update homeassistant/components/waze_travel_time/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* log warning for deprecation message
* PR feedback
* fix tests and bugs
* re-add name to config schema to avoid breaking change
* handle if we get name from config in entry title
* fix name logic
* always set up options with defaults
* Update homeassistant/components/waze_travel_time/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update config_flow.py
* Update sensor.py
* handle options updates by getting options on every update
* patch library instead of sensor
* fixes and make sure first update writes the state
* validate config entry data during config flow and entry setup
* fix input parameters
* fix tests
* invert if statement
* remove unnecessary else
* exclude helpers from coverage
* remove async_setup because it's no longer needed
* fix patch statements
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Added a new weather integration - Met Éireann
* Fix codespell error
* Update met_eireann to use CoordinatorEntity
* Remove deprecated platform setup
* Fix merge conflict
* Remove unnecessary onboarding/home tracking code
* Use common strings for config flow
* Remove unnecessary code
* Switch to using unique IDs in config flow
* Use constants where possible
* Fix failing tests
* Fix isort errors
* Remove unnecessary DataUpdateCoordinator class
* Add device info
* Explicitly define forecast data
* Disable hourly forecast entity by default
* Update config flow to reflect requested changes
* Cleanup code
* Update entity naming to match other similar components
* Convert forecast time to UTC
* Fix test coverage
* Update test coverage
* Remove elevation conversion
* Update translations for additional clarity
* Remove en-GB translation
* Add ClimaCell v4 API support
* fix tests
* use constants
* fix logic and update tests
* revert accidental changes and enable hourly and nowcast forecast entities in test
* use variable instead of accessing dictionary multiple times
* only grab necessary fields
* add _translate_condition method ot base class
* bump pyclimacell again to fix bug
* switch typehints back to new format
* more typehint fixes
* fix tests
* revert merge conflict change
* handle 'migration' in async_setup_entry so we don't have to bump config entry versions
* parametrize timestep test
* Add Compensation Integration
Adds the Compensation Integration
* Add Requirements
add missing requirements to compensation integration
* Fix for tests
Fix files after tests
* Fix isort
ran isort
* Handle ADR-0007
Change the configuration to deal with ADR-0007
* fix flake8
Fix flake8
* Added Error Trapping
Catch errors.
Raise Rank Warnings but continue.
Fixed bad imports
* fix flake8 & pylint
* fix isort.... again
* fix tests & comments
fix tests and comments
* fix flake8
* remove discovery message
* Fixed Review changes
* Fixed review requests.
* Added test to test get more coverage.
* Roll back numpy requirement
Roll back numpy requirement to match other integrations.
* Fix flake8
* Fix requested changes
Removed some necessary comments.
Changed a test case to be more readable.
* Fix doc strings and continue
* Fixed a few test case doc strings
* Removed a continue/else
* Remove periods from logger
Removed periods from _LOGGER errors.
* Fixes
changed name to unqiue_id.
implemented suggested changes.
* Add name and fix unique_id
* removed conf name and auto construct it
* add config flow support to google_travel_time
* fix bugs and add strings
* fix import and add new test
* address comments in #43419 since this is a similar PR
* fix default name and test
* add unique ID and device info
* fix test
* feedback from waze PR
* continue incorporating feedback from waze PR
* final fixes and update tests
* call update in lambda
* Update homeassistant/components/google_travel_time/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* additional fixes
* validate config entry data during config flow and config entry setup
* don't store entity
* patch dependency instead of HA code
* fixes
* improve tests by moving all patching to fixtures
* use self.hass instead of setting self._hass
* invert if
* remove unnecessary else
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>