* Add default device class display precision for Sensor
* Renaming, docstrings, cleanup
* Simplify units list
* Fix tests
* Fix missing precision when suggested is specified
* Update snapshots
* Fix when unit of measurement is not valid
* Fix tests
* Fix deprecated unit usage
* Fix goalzero tests
The sensor native_value method was accessing the data dict and trowing,
since the mock did not have any data for the sensors.
Since now the precision is always specified (it was missing for those
sensors), the throw was hitting async_update_entity_options in _update_suggested_precision.
Previously, async_update_entity_options was not called since it had no
precision.
* Fix metoffice
* Fix smartthings
* Add default sensor data for Tesla Wall Connector tests
* Update snapshots
* Revert spaces
* Update smartthings snapshots
* Add missing sensor mock for tesla wall connector
* Address review comments
* Add doc comment
* Add cap to doc comment
* Update comment
* Update snapshots
* Update comment
* Add WS command to help reset custom entity_id
* Calculate suggested object id from entity properties
* Fix logic and add additional tests
* Adjust test
* Update folder_watcher test
* Handle current entity id matches the automatic entity id
* Don't store calculated_object_id
* Update snapshots
* Update snapshots
* Update test
* Tweak logic for reusing current entity_id
* Improve test
* Don't assign same entity_id to several entities
* Prioritize custom entity name
* Update snapshots
* Update snapshots
* First try to use snapshot testing for sensors
* Use snapshot testing
* Add ambr files
* Update comment
* Address review comments
* Remove duplicate async init integration call
* Add device test for cases w/o SERIALNO
* Use friendlier snapshot names
* Use * to mandate keyed argument for async_init_integration
* Always pass mock config entry ID
* Fix incorrect ID
* Add handling for LASTSTEST sensor
* Set the state to unknown instead of unavailable
* Use LASTSTEST constant and revise the logic to add it to the entity list
* Use LASTSTEST constant
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Implement diagnostic platform for APCUPSd
* Put APCUPSd in gold quality scale
* Revert quality scale update
* Use snapshot testing for apcupsd
* Prettify the code
* Properly set entity names for APCUPSD
* Add test cases to prevent future regressions
* Fix tests due to the updated entity IDs
* Prettify code
* Remove redundant translation key
* Replace apcaccess dependency with async version aioapcaccess
* Upgrade the dependency to the latest version (v0.4.2)
* Handle asyncio.IncompleteReadError
* Add test sensor.
* Fix sensor test file name.
* Add binary sensor test.
* Fix comments and styling.
* Remove apcupsd from omissions in coveragerc.
* Revert "Remove apcupsd from omissions in coveragerc."
This reverts commit 66b05fcb8829619a771a650a3d70174089e15d91.
* Implement the data coordinator for apcupsd.
* Add tests for sensor updates and throttles.
* Reorder the statement for better code clarity.
* Update docstring.
* Add more tests for checking if the coordinator works ok.
* Implement a custom debouncer with 5 second cooldown for the coordinator.
* Add more tests for checking if our integration is able to properly mark entity's availability.
* Make apcupsd a silver integration.
* Try to fix non-deterministic test behaviors
* Fix JSON format
* Use new `with` format in python 3.10 for better readability
* Update tests.
* Rebase and simplify code.
* Add an ups prefix to the property methods of the coordinator
* Replace init_integration with async_init_integration
* Lint fixes
* Fix imports
* Update BinarySensor implementation to add initial update of attributes
* Fix test failures due to rebases
* Reorder the statements for better code clarity
* Fix incorrect references to the ups_name property
* Simplify BinarySensor value getter code
* No need to update when adding coordinator-controlled sensors
* Add tests for init.
* Add more test init.
* Fix test init side_effect.
* Add test sensor.
* Fix sensor test file name.
* Fix sensor test.
* Add binary sensor test.
* Fix comments and styling.
* Remove apcupsd from omissions in coveragerc.
* Add a test case for binary sensor when STATFLAG is not available.
* Complete type annotations for test files.
* Revert "Remove apcupsd from omissions in coveragerc."
This reverts commit 66b05fcb8829619a771a650a3d70174089e15d91.
* Add Config Flow to APCUPSd integration and remove YAML support.
* Hide the binary sensor if user does not select STATFLAG resource.
* Add tests for config flows.
* Simplify config flow code.
* Spell fix.
* Fix pylint warnings.
* Simplify the code for config flow.
* First attempt to implement import flows to suppport legacy YAML configurations.
* Remove unnecessary log calls.
* Wrap synchronous update call with `hass.async_add_executor_job`.
* Import the YAML configurations when sensor platform is set up.
* Move the logger call since the variables are not properly set up.
* Add codeowner.
* Fix name field of manifest.json.
* Fix linting issue.
* Fix incorrect dependency due to incorrect rebase.
* Update codeowner and config flows via hassfest.
* Postpone the deprecation warning to 2022.7.
* Import future annotations for init file.
* Add an newline at the end to make prettier happy.
* Update github id.
* Add type hints for return types of steps in config flow.
* Move the deprecation date for YAML config to 2022.12.
* Update according to reviews.
* Use async_forward_entry_setups.
* Add helper properties to `APCUPSdData` class.
* Add device_info for binary sensor.
* Simplify config flow.
* Remove options flow strings.
* update the tests according to the changes.
* Add `entity_registry_enabled_default` to entities and use imported CONF_RESOURCES to disable entities instead of skipping them.
* Update according to reviews.
* Do not use model of the UPS as the title for the integration.
Instead, simply use "APCUPSd" as the integration title and let the device info serve as title for each device instead.
* Change schema to be a global variable.
* Add more comments.
* Rewrite the tests for config flows.
* Fix enabled_by_default.
* Show friendly titles in the integration.
* Add import check in `async_setup_platform` to avoid importing in sensor platform setup.
* Add import check in `async_setup_platform` to avoid importing in sensor platform setup.
* Update comments in test files.
* Use parametrize instead of manually iterating different test cases.
* Swap the order of the platform constants.
* Avoid using broad exceptions.
* Set up device info via `_attr_device_info`.
* Remove unrelated test in `test_config_flow`.
* Use `DeviceInfo` instead of dict to assign to `_attr_device_info`.
* Add english translation.
* Add `async_create_issue` for deprecated YAML configuration.
* Enable UPS status by default since it could show "online, charging, on battery etc" which is meaningful for all users.
* Apply suggestions from code review
* Apply suggestion
* Apply suggestion
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>