* add websocket commands to retrieve and set config parameters for a node
* move set_config_parameter into generic function and refactor service and WS API
* add payload to return to make service call behave the same way it did before
* create response class
* update error message to pass tests
* move things a bit to reduce LOC
* add tests
* handle logging errors better and make new response class more generic to prepare for lock user code work
* remove unused function parameter
* invert check
* add additional error checking
* refactor a bit to remove repeat code
* revert log msg change
* one more refactor to create generic get_config_parameters function
* change if logic for consistency
* fix test
* add support to provide bool value in set_config_parameter service call
* standardize parameter names on service call
* add test coverage
* fix tests and message sending
* remove unnecessary logging import
* fix one test to get missing coverage
* update per martin and kpines reviews
* remove false assertion
* string line length
* add support for Decimal config param, remove node instance ID as input, and move helper functions to node.py
* cast Decimal appropriately
* revert change to support Decimal for config params since they are not supported as a config param type
* revert to using error arguments to make next PR for WS lock commands easier
* switch to class method and add guard for list Value not being a number
* update logic to use new openzwavemqtt util methods
* add support for bitsets
* use parent exception class
* bump openzwavemqtt version, remove node.py from .coveragerc and put file references in the right place
* add comment
* improve config validation
* remove bitset support from config validation
* re-add bitset support with some additional tests
* move send_result out of try block
* Fix slack message icon override
Allows overriding the icon for individual slack
messages using either an emoji or a URL.
* Run python3 -m script.gen_requirements_all
* Add period to first line
* Add support for python 3.7 testing
AsyncMock is only available from python 3.8+. Prior to this,
CoroutineMock is used which doesn't mock the method so it
needs to be done manually.
* Fix tests for python3.7 compatibility
The Python3.7 mock call object doesn't have the kwargs helper property.
* Update default emoji test docstring
* Bump wolf_smartset version. Support not fully fetched data
* Fix black and pylint errors
Co-authored-by: Chris Talkington <chris@talkingtontech.com>
* Remove dot from exception message.
Co-authored-by: Chris Talkington <chris@talkingtontech.com>
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
Co-authored-by: Chris Talkington <chris@talkingtontech.com>
* 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>