diff --git a/.coveragerc b/.coveragerc index 1a716ef4e5c..8a53086d840 100644 --- a/.coveragerc +++ b/.coveragerc @@ -290,7 +290,6 @@ omit = homeassistant/components/esphome/select.py homeassistant/components/esphome/sensor.py homeassistant/components/esphome/switch.py - homeassistant/components/essent/sensor.py homeassistant/components/etherscan/sensor.py homeassistant/components/eufy/* homeassistant/components/everlights/light.py diff --git a/CODEOWNERS b/CODEOWNERS index 58225f4e36a..64b87195d8f 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -157,7 +157,6 @@ homeassistant/components/epson/* @pszafer homeassistant/components/epsonworkforce/* @ThaStealth homeassistant/components/eq3btsmart/* @rytilahti homeassistant/components/esphome/* @OttoWinter @jesserockz -homeassistant/components/essent/* @TheLastProject homeassistant/components/evohome/* @zxdavb homeassistant/components/ezviz/* @RenierM26 @baqs homeassistant/components/faa_delays/* @ntilley905 diff --git a/homeassistant/components/essent/__init__.py b/homeassistant/components/essent/__init__.py deleted file mode 100644 index 42e867c6d21..00000000000 --- a/homeassistant/components/essent/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""The Essent component.""" diff --git a/homeassistant/components/essent/manifest.json b/homeassistant/components/essent/manifest.json deleted file mode 100644 index d136cae43a9..00000000000 --- a/homeassistant/components/essent/manifest.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "domain": "essent", - "name": "Essent", - "documentation": "https://www.home-assistant.io/integrations/essent", - "requirements": ["PyEssent==0.14"], - "codeowners": ["@TheLastProject"], - "iot_class": "cloud_polling" -} diff --git a/homeassistant/components/essent/sensor.py b/homeassistant/components/essent/sensor.py deleted file mode 100644 index 42a4c1c399b..00000000000 --- a/homeassistant/components/essent/sensor.py +++ /dev/null @@ -1,130 +0,0 @@ -"""Support for Essent API.""" -from __future__ import annotations - -from datetime import timedelta - -from pyessent import PyEssent -import voluptuous as vol - -from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity -from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, ENERGY_KILO_WATT_HOUR -import homeassistant.helpers.config_validation as cv -from homeassistant.util import Throttle - -SCAN_INTERVAL = timedelta(hours=1) - -PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( - {vol.Required(CONF_USERNAME): cv.string, vol.Required(CONF_PASSWORD): cv.string} -) - - -def setup_platform(hass, config, add_devices, discovery_info=None): - """Set up the Essent platform.""" - username = config[CONF_USERNAME] - password = config[CONF_PASSWORD] - - essent = EssentBase(username, password) - meters = [] - for meter in essent.retrieve_meters(): - data = essent.retrieve_meter_data(meter) - for tariff in data["values"]["LVR"]: - meters.append( - EssentMeter( - essent, - meter, - data["type"], - tariff, - data["values"]["LVR"][tariff]["unit"], - ) - ) - - if not meters: - hass.components.persistent_notification.create( - "Couldn't find any meter readings. " - "Please ensure Verbruiks Manager is enabled in Mijn Essent " - "and at least one reading has been logged to Meterstanden.", - title="Essent", - notification_id="essent_notification", - ) - return - - add_devices(meters, True) - - -class EssentBase: - """Essent Base.""" - - def __init__(self, username, password): - """Initialize the Essent API.""" - self._username = username - self._password = password - self._meter_data = {} - - self.update() - - def retrieve_meters(self): - """Retrieve the list of meters.""" - return self._meter_data.keys() - - def retrieve_meter_data(self, meter): - """Retrieve the data for this meter.""" - return self._meter_data[meter] - - @Throttle(timedelta(minutes=30)) - def update(self): - """Retrieve the latest meter data from Essent.""" - essent = PyEssent(self._username, self._password) - eans = set(essent.get_EANs()) - for possible_meter in eans: - meter_data = essent.read_meter(possible_meter, only_last_meter_reading=True) - if meter_data: - self._meter_data[possible_meter] = meter_data - - -class EssentMeter(SensorEntity): - """Representation of Essent measurements.""" - - def __init__(self, essent_base, meter, meter_type, tariff, unit): - """Initialize the sensor.""" - self._state = None - self._essent_base = essent_base - self._meter = meter - self._type = meter_type - self._tariff = tariff - self._unit = unit - - @property - def unique_id(self) -> str | None: - """Return a unique ID.""" - return f"{self._meter}-{self._type}-{self._tariff}" - - @property - def name(self): - """Return the name of the sensor.""" - return f"Essent {self._type} ({self._tariff})" - - @property - def native_value(self): - """Return the state of the sensor.""" - return self._state - - @property - def native_unit_of_measurement(self): - """Return the unit of measurement.""" - if self._unit.lower() == "kwh": - return ENERGY_KILO_WATT_HOUR - - return self._unit - - def update(self): - """Fetch the energy usage.""" - # Ensure our data isn't too old - self._essent_base.update() - - # Retrieve our meter - data = self._essent_base.retrieve_meter_data(self._meter) - - # Set our value - self._state = next( - iter(data["values"]["LVR"][self._tariff]["records"].values()) - ) diff --git a/requirements_all.txt b/requirements_all.txt index ba3aa664fe9..24812d8e25c 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -22,9 +22,6 @@ Mastodon.py==1.5.1 # homeassistant.components.orangepi_gpio OPi.GPIO==0.4.0 -# homeassistant.components.essent -PyEssent==0.14 - # homeassistant.components.flick_electric PyFlick==0.0.2