mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Use NamedTuple - rova (#53292)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
This commit is contained in:
parent
1a450c2084
commit
80c535f02e
@ -1,7 +1,9 @@
|
|||||||
"""Support for Rova garbage calendar."""
|
"""Support for Rova garbage calendar."""
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
import logging
|
import logging
|
||||||
|
from typing import NamedTuple
|
||||||
|
|
||||||
from requests.exceptions import ConnectTimeout, HTTPError
|
from requests.exceptions import ConnectTimeout, HTTPError
|
||||||
from rova.rova import Rova
|
from rova.rova import Rova
|
||||||
@ -24,13 +26,36 @@ CONF_HOUSE_NUMBER_SUFFIX = "house_number_suffix"
|
|||||||
UPDATE_DELAY = timedelta(hours=12)
|
UPDATE_DELAY = timedelta(hours=12)
|
||||||
SCAN_INTERVAL = timedelta(hours=12)
|
SCAN_INTERVAL = timedelta(hours=12)
|
||||||
|
|
||||||
# Supported sensor types:
|
|
||||||
# Key: [json_key, name, icon]
|
class RovaSensorMetadata(NamedTuple):
|
||||||
SENSOR_TYPES = {
|
"""Metadata for an individual rova sensor."""
|
||||||
"bio": ["gft", "Biowaste", "mdi:recycle"],
|
|
||||||
"paper": ["papier", "Paper", "mdi:recycle"],
|
name: str
|
||||||
"plastic": ["pmd", "PET", "mdi:recycle"],
|
json_key: str
|
||||||
"residual": ["restafval", "Residual", "mdi:recycle"],
|
icon: str
|
||||||
|
|
||||||
|
|
||||||
|
SENSOR_TYPES: dict[str, RovaSensorMetadata] = {
|
||||||
|
"bio": RovaSensorMetadata(
|
||||||
|
"Biowaste",
|
||||||
|
json_key="gft",
|
||||||
|
icon="mdi:recycle",
|
||||||
|
),
|
||||||
|
"paper": RovaSensorMetadata(
|
||||||
|
"Paper",
|
||||||
|
json_key="papier",
|
||||||
|
icon="mdi:recycle",
|
||||||
|
),
|
||||||
|
"plastic": RovaSensorMetadata(
|
||||||
|
"PET",
|
||||||
|
json_key="pmd",
|
||||||
|
icon="mdi:recycle",
|
||||||
|
),
|
||||||
|
"residual": RovaSensorMetadata(
|
||||||
|
"Residual",
|
||||||
|
json_key="restafval",
|
||||||
|
icon="mdi:recycle",
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||||
@ -90,18 +115,15 @@ class RovaSensor(SensorEntity):
|
|||||||
|
|
||||||
self._state = None
|
self._state = None
|
||||||
|
|
||||||
self._json_key = SENSOR_TYPES[self.sensor_key][0]
|
metadata = SENSOR_TYPES[sensor_key]
|
||||||
|
self._json_key = metadata.json_key
|
||||||
|
self._attr_icon = metadata.icon
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self):
|
def name(self):
|
||||||
"""Return the name."""
|
"""Return the name."""
|
||||||
return f"{self.platform_name}_{self.sensor_key}"
|
return f"{self.platform_name}_{self.sensor_key}"
|
||||||
|
|
||||||
@property
|
|
||||||
def icon(self):
|
|
||||||
"""Return the sensor icon."""
|
|
||||||
return SENSOR_TYPES[self.sensor_key][2]
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_class(self):
|
def device_class(self):
|
||||||
"""Return the class of this sensor."""
|
"""Return the class of this sensor."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user