* 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
* 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>
* Added 'mix' system support for Growatt integration
* Changed Growatt "Last Data Update" to a timestamp
* Changed Growatt "Last Data Update" to UTC
* Accepted suggested change for Growatt "Last Data Update"
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
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.
* 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 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
* MySensors: Add type annotations
Adds a bunch of type annotations that were created
while understanding the code.
* MySensors: Change GatewayId to string
In preparation for config flow.
The GatewayId used to be id(gateway).
With config flows, every gateway will have its own
ConfigEntry. Every ConfigEntry has a unique id.
Thus we would have two separate but one-to-one related ID systems.
This commit removes this unneeded duplication by using the id of the ConfigEntry
as GatewayId.
* MySensors: Add unique_id to all entities
This allows entities to work well with the frontend.
* MySensors: Add device_info to all entities
Entities belonging to the same node_id will now by grouped as a device.
* MySensors: clean up device.py a bit
* MySensors: Add config flow support
With this change the MySensors can be fully configured from the GUI.
Legacy configuration.yaml configs will be migrated by reading them once.
Note that custom node names are not migrated. Users will have to re-enter
the names in the front-end.
Since there is no straight-forward way to configure global settings,
all previously global settings are now per-gateway. These settings include:
- MQTT retain
- optimistic
- persistence enable
- MySensors version
When a MySensors integration is loaded, it works as follows:
1. __init__.async_setup_entry is called
2. for every platform, async_forward_entry_setup is called
3. the platform's async_setup_entry is called
4. __init__.setup_mysensors_platform is called
5. the entity's constructor (e.g. MySensorsCover) is called
6. the created entity is stored in a dict in the hass object
* MySensors: Fix linter errors
* MySensors: Remove unused import
* MySensors: Feedback from @MartinHjelmare
* MySensors: Multi-step config flow
* MySensors: More feedback
* MySensors: Move all storage in hass object under DOMAIN
The integration now stores everything under hass.data["mysensors"]
instead of using several top level keys.
* MySensors: await shutdown of gateway instead of creating a task
* MySensors: Rename Ethernet to TCP
* MySensors: Absolute imports and cosmetic changes
* MySensors: fix gw_stop
* MySensors: Allow user to specify persistence file
* MySensors: Nicer log message
* MySensors: Add lots of unit tests
* MySensors: Fix legacy import of persistence file name
Turns out tests help to find bugs :D
* MySensors: Improve test coverage
* MySensors: Use json persistence files by default
* MySensors: Code style improvements
* MySensors: Stop adding attributes to existing objects
This commit removes the extra attributes that were being
added to the gateway objects from pymysensors.
Most attributes were easy to remove, except for the gateway id.
The MySensorsDevice class needs the gateway id as it is part of its DevId
as well as the unique_id and device_info.
Most MySensorsDevices actually end up being Entities.
Entities have access to their ConfigEntry via self.platform.config_entry.
However, the device_tracker platform does not become an Entity.
For this reason, the gateway id is not fetched from self.plaform but
given as an argument.
Additionally, MySensorsDevices expose the address of the gateway
(CONF_DEVICE). Entities can easily fetch this information via self.platform,
but the device_tracker cannot. This commit chooses to remove the gateway
address from device_tracker. While this could in theory break some automations,
the simplicity of this solution was deemed worth it.
The alternative of adding the entire ConfigEntry as an argument to MySensorsDevices
is not viable, because device_tracker is initialized by the async_setup_scanner function
that isn't supplied a ConfigEntry. It only gets discovery_info.
Adding the entire ConfigEntry doesn't seem appropriate for this edge case.
* MySensors: Fix gw_stop and the translations
* MySensors: Fix incorrect function calls
* MySensors: Fewer comments in const.py
* MySensors: Remove union from _get_gateway and remove id from try_connect
* MySensors: Deprecate nodes option in configuration.yaml
* MySensors: Use version parser from packaging
* MySensors: Remove prefix from unique_id and change some private property names
* MySensors: Change _get_gateway function signature
* MySensors: add packaging==20.8 for the version parser
* MySensors: Rename some stuff
* MySensors: use pytest.mark.parametrize
* MySensors: Clean up test cases
* MySensors: Remove unneeded parameter from devices
* Revert "MySensors: add packaging==20.8 for the version parser"
This reverts commit 6b200ee01a.
* MySensors: Use core interface for testing configuration.yaml import
* MySensors: Fix test_init
* MySensors: Rename a few variables
* MySensors: cosmetic changes
* MySensors: Update strings.json
* MySensors: Still more feedback from @MartinHjelmare
* MySensors: Remove unused strings
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* MySensors: Fix typo and remove another unused string
* MySensors: More strings.json
* MySensors: Fix gateway ready handler
* MySensors: Add duplicate detection to config flows
* MySensors: Deal with non-existing topics and ports.
Includes unit tests for these cases.
* MySensors: Use awesomeversion instead of packaging
* Add string already_configured
* MySensors: Abort config flow when config is found to be invalid while importing
* MySensors: Copy all error messages to also be abort messages
All error strings may now also be used as an abort reason,
so the strings should be defined
* Use string references
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add support for iCloud 2FA
* Updated dependency for iCloud
* Updated dependency and logic fix
* Added logic for handling incorrect 2FA code
* Bug fix on failing test
* Added myself to codeowners
* Added check for 2FA on setup
* Updated error message
* Run zwave_js scaffold (#44891)
* Add zwave_js basic connection to zwave server (#44904)
* add the basic connection to zwave server
* fix name
* Fix requirements
* Fix things
* Version bump dep to 0.1.2
* fix pylint
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Bump zwave-js-server-python to 0.2.0
* Use zwave js server version check instead of fetching full state (#44943)
* Use version check instead of fetching full state
* Fix tests
* Use 0.3.0
* Also catch aiohttp client errors
* Update docstring
* Lint
* Unignore zwave_js
* Add zwave_js entity discovery basics and sensor platform (#44927)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Complete zwave_js typing (#44960)
* Type discovery
* Type init
* Type entity
* Type config flow
* Type sensor
* Require typing of zwave_js
* Complete zwave_js config flow test coverage (#44955)
* Correct zwave_js sensor device class (#44968)
* Fix zwave_js KeyError on entry setup timeout (#44966)
* Bump zwave-js-server-python to 0.5.0 (#44975)
* Remove stale callback signal from zwave_js (#44994)
* Add light platform to zwave_js integration (#44974)
* add light platform
* styling fix
* fix type hint
* Fix typing
* Update homeassistant/components/zwave_js/const.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/zwave_js/entity.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/zwave_js/entity.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/zwave_js/entity.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/zwave_js/entity.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/zwave_js/entity.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* color temp should be integer
* guard Nonetype error
* Update homeassistant/components/zwave_js/light.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/zwave_js/light.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* some fixes after merging
* add additional guards for None values
* adjustments for rgb lights
* Fix typing
* Fix black
* Bump zwave-js-server-python to 0.6.0
* guard value updated log
* remove value_id lookup as its no longer needed
* fiz sending white value
* Update homeassistant/components/zwave_js/light.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add zwave_js test foundation (#44983)
* Exclude text files from codespell
* Add basic dump fixture
* Add test foundation
* Fix test after rebase
* Exclude jsonl files from codespell
* Rename fixture file type to jsonl
* Update fixture path
* Fix stale docstring
* Add controller state json fixture
* Add multisensor 6 state json fixture
* Update fixtures
* Remove basic dump fixture
* Fix fixtures after library bump
* Update codeowner
* Minor cleanup Z-Wave JS (#45021)
* Update zwave_js device_info (#45023)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Adding switch code for harmony activities
* Working on-off
* Removing poll code for now
* Async updates for current activity
* Update our state based on events
* Notifications we got connected or disconnected
* Remove unncessary constructor arg
* Initial switch tests
* Additional tests for switch transitions
* Test transitions for availability
* Testing switch state changes
* Tests passing
* Final tests
* Updating manifest.
* Correctly mock the return value from a call to the library
* Adding new subscriber classes
* Update class name and location
* Got the refactor working locally.
* Tests passing
* Tracking state changes
* Remove write_to_config_file - this appears to never be read.
It was added far back in the past to account for a harmony library
change, but nothing ever reads that path.
Removing that side effect from tests is a pain - avoid the side effect
completely.
* Connection changes tested
* Clean up temporary code
* Update .coveragerc for harmony component
Specifically exclude untested files instead of the whole module
* Fix linting
* test sending activity change commands by id
* Improving coverage
* Testing channel change commands
* Splitting subscriber logic into it's own class
* Improve coverage and tighten up .coveragerc
* Test cleanups.
* re-add config file writing for harmony remote
* Create fixture for the mock harmonyclient
* Reduce duplication in subscription callbacks
* use async_run_job to call callbacks
* Adding some tests for async behaviors with subscribers.
* async_call_later for delay in marking remote unavailable
* Test disconnection handling in harmony remote
* Early exit if activity not specified
* Use connection state mixin
* Lint fix after rebase
* Fix isort
* super init for ConnectionStateMixin
* Adding @mkeesey to harmony CODEOWNERS
* First implementationof Ondilo component support
* Update manifest toadd pypi pkg dependency
* Update entities name and corrected refresh issue
* Changed percentage unit name
* Corrected merge issues
* Updated coveragerc
* cleaned up code and corrected config flow tests
* Code cleanup and added test for exisitng entry
* Changes following PR comments:
- Inherit CoordinatorEntity instead of Entity
- Merged pools blocking calls into one
- Renamed devices vars to sensors
- Check supported sensor types
- Stop relying on array index position for pools
- Stop relying on attribute position in dict for sensors
* Corrected unit test
* Reformat sensor type check
* Switch to plugwise module and forthcoming changes
* Adjusted according to review
* Fix leaving out domain for tests
* Add tests for exceptions
* Add more tests for exceptions
* Version bump
* Wording on test
* Catch-up with dev
* Add twinkly integration
* Add tests for the Twinkly integration
* Update Twinkly client package to fix typo
* Remove support of configuration.yaml from Twinkly integration
* Add ability to unload Twinkly component from the UI
* Remove dead code from Twinkly
* Fix invalid error namespace in Twinkly for python 3.7
* Fix tests failing on CI
* Workaround code analysis issue
* Move twinkly client init out of entry setup so it can be re-used between entries
* Test the twinkly component initialization
* React to PR review and add few more tests
* Adds self to codeowners for tplink
* Adds retry to update to prevent missing devices
* Runs through isort and corrects async commit
* Runs through black
* Runs through pre-checks
* Corrects and matches var names
* Re-runs through black
* Corrects var name
* Removes the retry loop and in favor of async add
* Cleanup imports
* Removes no longer valid test
* Removes is_ready and only log retry once
* Corrects switch logging vars
* Adds list of entities to add_entities
* Consumes exception for attempt_update
* Consumes specific exception
* Removes unnecessary update
* Reducing back to 2 seconds
* Removes useless return
* Call get_sysinfo for all at once
* Formated black
* Adds missing docstirng
* Corrects docstring
* Update homeassistant/components/tplink/light.py
Co-authored-by: Anders Melchiorsen <amelchio@nogoto.net>
* Corrects sysinfo call
* Adds default for host vars
* Adds log when device responds again
* Revert host alias default
* Removes unncessary host var
* Removes host var
* Get device details from sysinfo
* Use host and alias for log msg
* Gets hosts from smartbulb
* Changes retry logging to debug
* Attempts coverage add
* Removes unused import
* Updates tests for new retry
* Runs through isort
* Removes unneeded try
* Prevents static entries from failing integration
* Format black
* Forces an update after turn on off
* Remove common test
* Revert update after turn_on off
* Adds patch for sleep_time 0
* Returns False when update fails
Co-authored-by: Anders Melchiorsen <amelchio@nogoto.net>
* Add Ruckus Unleashed integration
* Tweak catches to better rely on CoordinatorEntity error handling, rename LoginError to AuthenticationError
* Make router_update be a callback function
* Make name property return hint match the newer value
* Add entity to tracked set when restoring on boot
* Add a device's MAC to the attributes
* Add Modbus cover
* Fix improper commands written for Modbus cover via coil
* Make changes per review comments
* Fix default hub not defined
Since support for multiple hubs was added, the default hub option
was not implemented correctly. Now I added necessary logic to make
it work. First hub in a list will be used as a default hub.
* Move Cover config under Modbus section
* Revert setting up a default hub alias
* Make hub mandatory for Cover
* Add default scan interval
* Read scan_interval from discovery info
* Fix linter error
* Use default scan interval from Cover platform
* Handle polling for Modbus cover directly inside entity
* Move covers under hub config
* Fix for review comment
* Call update() from Cover actuator methods
* Fix time validation
* Scaffold
* Added the en translation
* Modified the name
* Basic functionality for config flow.
* Pulled in enough to validate config flow works.
* Update manifest.json
* initial data polling (water and air temp sensors)
* Adding sensors, debugging update function
* polling updates working
* support for new data format from library
* Updated entity_id, friendly name, conversion for ppm, attributes for hayward display units, MSPSystemID and component systemID
* Fixed errors for PR
* clean up
* Add login exc, check if configured, test login.
* Remove debug print.
* Black formatting, ran isort, update requirements.
* Updated w isort. fix flake8 failures.
* Fix flake8 errors
* Fixed self.attrs to remove invalid self._ values - small change
* Missed on small change - fixing attributes
* Updated naming, updated unit of measure, updated icon, bumped omnilog…
* Updated to fix flake8 issues in __init__.py and config_flow.py
* Updated test_config_flow.py to pass, updated config_flow.py to correct errors in test
* Remove comments in preparation for PR
* update .covezragerc
* Formatting fix
* Rewrote sensors to dynamically add all BOWs, pumps, clorinators. Still to do - add CSAD sensors.
* Rewrote sensors to dynamically add all BOWs, pumps, clorinators. Still to do - add CSAD sensors.
* Added CSAD sensors for pools that have them.
* Added CSAD sensors for pools that have them.
* Fixed CSAD to not create if blank or don't exist, removed broad except usage to pass linting.
* Updated entity naming convention. Fixed linting issues.
* Added device association to the back yard / omnilogic system
* Removed .0 from ppm values when returning imperial values for salt sensor
* Updated to return state = None for water temp when pump is off, handled Chlorinator operatingMode = 2, and added PlatformNotReady check
* Corrected exception from Omnilogic library
* Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors.
* Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors.
* Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors.
* Removed nested_lookup dependency, bumped omnilogic.py to 0.3.8.
* Fixed lint error
* Added logging for sensor creation.
* Fixed linting errors with logging.
* Fixed explicit chaining of raised error. Fixed issue with alarm sensor.
* Fixed manifest.json based on feedback.
* Fixed self.attrs, should_poll, CoordinatorEntity, SCAN_INTERVAL from comments in PR.
* Addressed unique_id, moved data update coordinator, addressed minor other issues from testing
* Created main OmniLogic entity for common items, reworked DataUpdateCoordinator to it's own class.
* Addressed config_schema not used in __init__.py
* Fixed linting issues.
* Addressed several comments, still todo - separate sensor classes.
* Split the Omnilogic Sensors into separate logical classes for simpler logic.
* Fixed snake case lint error for AddAlarms (to add_alarms)
* Addressed config_flow issues from comments.
* Changed addressed ConfigNotReady issue from comments.
* Updated strings.json and generated corrected en.json with translations.
* Updated en.json to standard generated file.
* Added config_flow tests and updated issue with config_flow on cannot_connect
* Added test case for incomplete information entered.
* Compressed logic in the sensor classes to reduce duplication.
* Updated strings.json for polling_interval, added generic exception handling on config flow.
* Removed omnilogic from the .coveragerc omit file.
* Updated test_config_flow to follow recommended pattern.
* Excluded sensor.py from test coverage tests.
* Corected minor issues in test_config_flow from comments
* Fixed linting issues on last commits
* Fixed linting issues.
* Corrected issue when temp state is not available from Omnilogic
* Added omnililogic_common.py from .coveragerc to bypass test coverage check.
* Return false on Login Exception, handle OmniLogicException in config_flow and in tests.
* Handle all exceptions and in config_flow and tests, clarified test naming.
* Broke out test cases per comments.
* Regenerated en.json file.
* Addressed changes from comments in PR.
* Added session and bumped API to 0.4.0, addressed other comments from PR.
* Addressed entitydata (missed earlier).
* Fixed pylint issue
* Added test case for options flow in test_config_flow.py
* Removed super() and used self when calling methods in current class.
* Addressed comments in PR.
* Addressed comments in PR.
* Updated translations file.
* Rewrote data coordinator to output dict for easy searching.
* Updated chlorinator unit when chlorinator is on/off only
* Scaffold
* Added the en translation
* Modified the name
* Basic functionality for config flow.
* Pulled in enough to validate config flow works.
* Update manifest.json
* initial data polling (water and air temp sensors)
* Adding sensors, debugging update function
* polling updates working
* support for new data format from library
* Updated entity_id, friendly name, conversion for ppm, attributes for hayward display units, MSPSystemID and component systemID
* Fixed errors for PR
* clean up
* Add login exc, check if configured, test login.
* Remove debug print.
* Black formatting, ran isort, update requirements.
* Updated w isort. fix flake8 failures.
* Fix flake8 errors
* Fixed self.attrs to remove invalid self._ values - small change
* Missed on small change - fixing attributes
* Updated naming, updated unit of measure, updated icon, bumped omnilog…
* Updated to fix flake8 issues in __init__.py and config_flow.py
* Updated test_config_flow.py to pass, updated config_flow.py to correct errors in test
* Remove comments in preparation for PR
* update .covezragerc
* Formatting fix
* Rewrote sensors to dynamically add all BOWs, pumps, clorinators. Still to do - add CSAD sensors.
* Rewrote sensors to dynamically add all BOWs, pumps, clorinators. Still to do - add CSAD sensors.
* Added CSAD sensors for pools that have them.
* Added CSAD sensors for pools that have them.
* Fixed CSAD to not create if blank or don't exist, removed broad except usage to pass linting.
* Updated entity naming convention. Fixed linting issues.
* Added device association to the back yard / omnilogic system
* Removed .0 from ppm values when returning imperial values for salt sensor
* Updated to return state = None for water temp when pump is off, handled Chlorinator operatingMode = 2, and added PlatformNotReady check
* Corrected exception from Omnilogic library
* Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors.
* Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors.
* Bumped omnilogic to 0.3.7. Added alarm sensor/data to sensors. Handle pump off condition for ph and orp sensors.
* Removed nested_lookup dependency, bumped omnilogic.py to 0.3.8.
* Fixed lint error
* Added logging for sensor creation.
* Fixed linting errors with logging.
* Fixed explicit chaining of raised error. Fixed issue with alarm sensor.
* Fixed manifest.json based on feedback.
* Fixed self.attrs, should_poll, CoordinatorEntity, SCAN_INTERVAL from comments in PR.
* Addressed unique_id, moved data update coordinator, addressed minor other issues from testing
* Created main OmniLogic entity for common items, reworked DataUpdateCoordinator to it's own class.
* Addressed config_schema not used in __init__.py
* Fixed linting issues.
* Addressed several comments, still todo - separate sensor classes.
* Split the Omnilogic Sensors into separate logical classes for simpler logic.
* Fixed snake case lint error for AddAlarms (to add_alarms)
* Addressed config_flow issues from comments.
* Changed addressed ConfigNotReady issue from comments.
* Updated strings.json and generated corrected en.json with translations.
* Updated en.json to standard generated file.
* Added config_flow tests and updated issue with config_flow on cannot_connect
* Added test case for incomplete information entered.
* Compressed logic in the sensor classes to reduce duplication.
* Updated strings.json for polling_interval, added generic exception handling on config flow.
* Removed omnilogic from the .coveragerc omit file.
* Updated test_config_flow to follow recommended pattern.
* Excluded sensor.py from test coverage tests.
* Corected minor issues in test_config_flow from comments
* Fixed linting issues on last commits
* Fixed linting issues.
* Corrected issue when temp state is not available from Omnilogic
* Added omnililogic_common.py from .coveragerc to bypass test coverage check.
* Return false on Login Exception, handle OmniLogicException in config_flow and in tests.
* Handle all exceptions and in config_flow and tests, clarified test naming.
* Broke out test cases per comments.
* Regenerated en.json file.
* Addressed changes from comments in PR.
* Added session and bumped API to 0.4.0, addressed other comments from PR.
* Addressed entitydata (missed earlier).
* Fixed pylint issue
* Added test case for options flow in test_config_flow.py
* Removed super() and used self when calling methods in current class.
* Addressed comments in PR.
* Addressed comments in PR.
* Updated translations file.
* Rewrote data coordinator to output dict for easy searching.
* Updated chlorinator unit when chlorinator is on/off only
* Fixed ORP method not being @property, fixed unique_id potential issue. Does not address comments from PR.
* Rewrote coordinator for updated dict structure, rewrote sensors to parse new data structure.
* Added alarms as attributes on all entities which support alarm reporting.
* Updated SENSOR_TYPES to sensor_types to adhere to snake case in pylint.
* Addressed PR comments.
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Removed binary sensor conditions (alarms, on/off sensor types) and added ability for multiple guard conditions
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Updated per comments in PR for Pump Type and removal of force_update().
* Update homeassistant/components/omnilogic/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/omnilogic/common.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Correctly asserting conditions for the login exception case.
* Update .coveragerc
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Mike Hershberger <mike.hershberger@gmail.com>
Co-authored-by: Chad <54695185+chadlyy@users.noreply.github.com>
Co-authored-by: Tim Empringham <tim.empringham@live.ca>
Co-authored-by: djtimca <60706061+djtimca@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>