mirror of
https://github.com/home-assistant/core.git
synced 2025-06-26 07:57:12 +00:00
Remove Essent integration (#56991)
This commit is contained in:
parent
bf9f55c376
commit
dc6f6b7f68
@ -290,7 +290,6 @@ omit =
|
|||||||
homeassistant/components/esphome/select.py
|
homeassistant/components/esphome/select.py
|
||||||
homeassistant/components/esphome/sensor.py
|
homeassistant/components/esphome/sensor.py
|
||||||
homeassistant/components/esphome/switch.py
|
homeassistant/components/esphome/switch.py
|
||||||
homeassistant/components/essent/sensor.py
|
|
||||||
homeassistant/components/etherscan/sensor.py
|
homeassistant/components/etherscan/sensor.py
|
||||||
homeassistant/components/eufy/*
|
homeassistant/components/eufy/*
|
||||||
homeassistant/components/everlights/light.py
|
homeassistant/components/everlights/light.py
|
||||||
|
@ -157,7 +157,6 @@ homeassistant/components/epson/* @pszafer
|
|||||||
homeassistant/components/epsonworkforce/* @ThaStealth
|
homeassistant/components/epsonworkforce/* @ThaStealth
|
||||||
homeassistant/components/eq3btsmart/* @rytilahti
|
homeassistant/components/eq3btsmart/* @rytilahti
|
||||||
homeassistant/components/esphome/* @OttoWinter @jesserockz
|
homeassistant/components/esphome/* @OttoWinter @jesserockz
|
||||||
homeassistant/components/essent/* @TheLastProject
|
|
||||||
homeassistant/components/evohome/* @zxdavb
|
homeassistant/components/evohome/* @zxdavb
|
||||||
homeassistant/components/ezviz/* @RenierM26 @baqs
|
homeassistant/components/ezviz/* @RenierM26 @baqs
|
||||||
homeassistant/components/faa_delays/* @ntilley905
|
homeassistant/components/faa_delays/* @ntilley905
|
||||||
|
@ -1 +0,0 @@
|
|||||||
"""The Essent component."""
|
|
@ -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"
|
|
||||||
}
|
|
@ -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())
|
|
||||||
)
|
|
@ -22,9 +22,6 @@ Mastodon.py==1.5.1
|
|||||||
# homeassistant.components.orangepi_gpio
|
# homeassistant.components.orangepi_gpio
|
||||||
OPi.GPIO==0.4.0
|
OPi.GPIO==0.4.0
|
||||||
|
|
||||||
# homeassistant.components.essent
|
|
||||||
PyEssent==0.14
|
|
||||||
|
|
||||||
# homeassistant.components.flick_electric
|
# homeassistant.components.flick_electric
|
||||||
PyFlick==0.0.2
|
PyFlick==0.0.2
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user