core/homeassistant
Matthias Alphart 3dac661480
Rewrite Fronius integration (#59686)
* Add unique_id and use DataUpdateCoordinator in Fronius (#57879)

* initial refactoring commit - meters

- config_flow (no strings, no tests yet)
- import yaml config
- FroniusSolarNet class for holding Fronius object , coordinators and some common data
- meter descriptions
- update coordinator
- entities (including devices)

* storage controllers

* error handling on init; inverter unique_id

* inverters

* power_flow

* fix VA, var, varh not valid for device_class power/energy

and add custom icons

* add SolarNet device for system wide values

* cleanup

* config_flow strings

* test config_flow

* use pyfronius 0.7.0

* enable strict typing

* remove TODO comments

* fix lint errors; move FroniusSensorEntity to sensor.py

* power_flow as optional coordinator

API V0 doesn't support power_flow endpoint

* show error message in logs

* prevent parallel requests to one host

* logger_info coordinator

* store FroniusSolarNet reference directly in coordinator

* cleanup coordinators when unloading entry

* round floats returned by Fronius API

* default icons for grid im/export tariffs

* small typing fix

* Update homeassistant/components/fronius/sensor.py

Co-authored-by: Brett Adams <Bre77@users.noreply.github.com>

* DC icons

* prepend names with "Fronius" and device type

to get more reasonable default entity_ids (eg. have them next to each other when alphabetically sorted)

* remove config_flow and devices

* rename _FroniusUpdateCoordinator to FroniusCoordinatorBase

and mark ABC

* move SensorEntityDescriptions to sensor.py

* Revert "move SensorEntityDescriptions to sensor.py"

This reverts commit 2e5a726eb6.

* Don't raise ConfigEntryNotReady and use regular refresh method

* move bridge initialization out of helper class

* no coverage tests

* power_flow update interval 10 seconds

* move SensorEntityDescriptions to sensor.py

without introducing a circular dependency

* deprecation warning for CONF_MONITORED_CONDITIONS

* remove extra_state_attributes form meter sensor entities

* readd diagnostic entities

* decouple default entity_id from default name

* use key instead of name for entity_id

and make deprecated config key optional

* adjust tests

* use old entity_ids

these changes are now backwards compatible

* check coverage

* simplify entity description definitions

* restore entity names of previous implementation

Co-authored-by: Brett Adams <Bre77@users.noreply.github.com>

* Add config_flow for Fronius integration (#59677)

* Cleanup Fronius config_flow and tests (#60094)

* Add devices to Fronius integration (#60104)

* New entity names for Fronius entities (#60215)

* Adaptive update interval for Fronius coordinators (#60192)

Co-authored-by: Brett Adams <Bre77@users.noreply.github.com>
2021-11-24 02:04:36 +01:00
..
auth Use atomicwrites for mission critical core files (#59606) 2021-11-15 11:19:31 +01:00
components Rewrite Fronius integration (#59686) 2021-11-24 02:04:36 +01:00
generated Rewrite Fronius integration (#59686) 2021-11-24 02:04:36 +01:00
helpers Show how user input is malformed in the UI on error (#60057) 2021-11-23 22:50:54 +01:00
scripts Upgrade colorlog to 6.6.0 (#59440) 2021-11-09 21:30:23 +02:00
util Change device entry type to an StrEnum (#59940) 2021-11-22 18:14:15 +01:00
__init__.py
__main__.py
async_timeout_backcompat.py Add integration filtering and error if core options to helpers.frame.report (#60009) 2021-11-20 12:53:04 +02:00
block_async_io.py
bootstrap.py
config.py
config_entries.py Adjust async_step_usb signature for strict typing (#59773) 2021-11-16 19:03:50 +01:00
const.py Add accumulated precipitation to unit system (#59657) 2021-11-19 09:18:44 +01:00
core.py Use atomicwrites for mission critical core files (#59606) 2021-11-15 11:19:31 +01:00
data_entry_flow.py Use dataclass for DhcpServiceInfo (#60136) 2021-11-23 13:35:53 +01:00
exceptions.py
loader.py
package_constraints.txt Bump frontend to 20211123.0 (#60184) 2021-11-22 19:07:27 -08:00
requirements.py
runner.py
setup.py
strings.json