Adds indoor and channel 2 battery sensors
Adds support for displaying indoor console and channel 2 battery levels as sensors. Updates sensor logic to use a common list to determine icon representation Fixes #7474-additional-sensors
parent
5022cb7767
commit
80909e88c0
|
|
@ -23,12 +23,8 @@ WSLINK: Final = "wslink"
|
||||||
WINDY_API_KEY = "WINDY_API_KEY"
|
WINDY_API_KEY = "WINDY_API_KEY"
|
||||||
WINDY_ENABLED: Final = "windy_enabled_checkbox"
|
WINDY_ENABLED: Final = "windy_enabled_checkbox"
|
||||||
WINDY_LOGGER_ENABLED: Final = "windy_logger_checkbox"
|
WINDY_LOGGER_ENABLED: Final = "windy_logger_checkbox"
|
||||||
WINDY_NOT_INSERTED: Final = (
|
WINDY_NOT_INSERTED: Final = "Data was succefuly sent to Windy, but not inserted by Windy API. Does anyone else sent data to Windy?"
|
||||||
"Data was succefuly sent to Windy, but not inserted by Windy API. Does anyone else sent data to Windy?"
|
WINDY_INVALID_KEY: Final = "Windy API KEY is invalid. Send data to Windy is now disabled. Check your API KEY and try again."
|
||||||
)
|
|
||||||
WINDY_INVALID_KEY: Final = (
|
|
||||||
"Windy API KEY is invalid. Send data to Windy is now disabled. Check your API KEY and try again."
|
|
||||||
)
|
|
||||||
WINDY_SUCCESS: Final = (
|
WINDY_SUCCESS: Final = (
|
||||||
"Windy successfully sent data and data was successfully inserted by Windy API"
|
"Windy successfully sent data and data was successfully inserted by Windy API"
|
||||||
)
|
)
|
||||||
|
|
@ -81,10 +77,12 @@ DAILY_RAIN: Final = "daily_rain"
|
||||||
SOLAR_RADIATION: Final = "solar_radiation"
|
SOLAR_RADIATION: Final = "solar_radiation"
|
||||||
INDOOR_TEMP: Final = "indoor_temp"
|
INDOOR_TEMP: Final = "indoor_temp"
|
||||||
INDOOR_HUMIDITY: Final = "indoor_humidity"
|
INDOOR_HUMIDITY: Final = "indoor_humidity"
|
||||||
|
INDOOR_BATTERY: Final = "indoor_battery"
|
||||||
UV: Final = "uv"
|
UV: Final = "uv"
|
||||||
CH2_TEMP: Final = "ch2_temp"
|
CH2_TEMP: Final = "ch2_temp"
|
||||||
CH2_HUMIDITY: Final = "ch2_humidity"
|
CH2_HUMIDITY: Final = "ch2_humidity"
|
||||||
CH2_CONNECTION: Final = "ch2_connection"
|
CH2_CONNECTION: Final = "ch2_connection"
|
||||||
|
CH2_BATTERY: Final = "ch2_battery"
|
||||||
CH3_TEMP: Final = "ch3_temp"
|
CH3_TEMP: Final = "ch3_temp"
|
||||||
CH3_HUMIDITY: Final = "ch3_humidity"
|
CH3_HUMIDITY: Final = "ch3_humidity"
|
||||||
CH3_CONNECTION: Final = "ch3_connection"
|
CH3_CONNECTION: Final = "ch3_connection"
|
||||||
|
|
@ -95,7 +93,7 @@ HEAT_INDEX: Final = "heat_index"
|
||||||
CHILL_INDEX: Final = "chill_index"
|
CHILL_INDEX: Final = "chill_index"
|
||||||
|
|
||||||
|
|
||||||
REMAP_ITEMS: dict = {
|
REMAP_ITEMS: dict[str, str] = {
|
||||||
"baromin": BARO_PRESSURE,
|
"baromin": BARO_PRESSURE,
|
||||||
"tempf": OUTSIDE_TEMP,
|
"tempf": OUTSIDE_TEMP,
|
||||||
"dewptf": DEW_POINT,
|
"dewptf": DEW_POINT,
|
||||||
|
|
@ -117,7 +115,7 @@ REMAP_ITEMS: dict = {
|
||||||
"soilmoisture3": CH4_HUMIDITY,
|
"soilmoisture3": CH4_HUMIDITY,
|
||||||
}
|
}
|
||||||
|
|
||||||
REMAP_WSLINK_ITEMS: dict = {
|
REMAP_WSLINK_ITEMS: dict[str, str] = {
|
||||||
"intem": INDOOR_TEMP,
|
"intem": INDOOR_TEMP,
|
||||||
"inhum": INDOOR_HUMIDITY,
|
"inhum": INDOOR_HUMIDITY,
|
||||||
"t1tem": OUTSIDE_TEMP,
|
"t1tem": OUTSIDE_TEMP,
|
||||||
|
|
@ -145,6 +143,8 @@ REMAP_WSLINK_ITEMS: dict = {
|
||||||
"t234c2tem": CH3_TEMP,
|
"t234c2tem": CH3_TEMP,
|
||||||
"t234c2hum": CH3_HUMIDITY,
|
"t234c2hum": CH3_HUMIDITY,
|
||||||
"t1bat": OUTSIDE_BATTERY,
|
"t1bat": OUTSIDE_BATTERY,
|
||||||
|
"inbat": INDOOR_BATTERY,
|
||||||
|
"t234c1bat": CH2_BATTERY,
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO: Add more sensors
|
# TODO: Add more sensors
|
||||||
|
|
@ -157,6 +157,7 @@ REMAP_WSLINK_ITEMS: dict = {
|
||||||
DISABLED_BY_DEFAULT: Final = [
|
DISABLED_BY_DEFAULT: Final = [
|
||||||
CH2_TEMP,
|
CH2_TEMP,
|
||||||
CH2_HUMIDITY,
|
CH2_HUMIDITY,
|
||||||
|
CH2_BATTERY,
|
||||||
CH3_TEMP,
|
CH3_TEMP,
|
||||||
CH3_HUMIDITY,
|
CH3_HUMIDITY,
|
||||||
CH4_TEMP,
|
CH4_TEMP,
|
||||||
|
|
@ -164,6 +165,12 @@ DISABLED_BY_DEFAULT: Final = [
|
||||||
OUTSIDE_BATTERY,
|
OUTSIDE_BATTERY,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
BATTERY_LIST = [
|
||||||
|
OUTSIDE_BATTERY,
|
||||||
|
INDOOR_BATTERY,
|
||||||
|
CH2_BATTERY,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class UnitOfDir(StrEnum):
|
class UnitOfDir(StrEnum):
|
||||||
"""Wind direrction azimut."""
|
"""Wind direrction azimut."""
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ from .const import (
|
||||||
WIND_DIR,
|
WIND_DIR,
|
||||||
WIND_SPEED,
|
WIND_SPEED,
|
||||||
WSLINK,
|
WSLINK,
|
||||||
|
BATTERY_LIST,
|
||||||
)
|
)
|
||||||
from .sensors_common import WeatherSensorEntityDescription
|
from .sensors_common import WeatherSensorEntityDescription
|
||||||
from .sensors_weather import SENSOR_TYPES_WEATHER_API
|
from .sensors_weather import SENSOR_TYPES_WEATHER_API
|
||||||
|
|
@ -144,7 +145,7 @@ class WeatherSensor(
|
||||||
def icon(self) -> str | None:
|
def icon(self) -> str | None:
|
||||||
"""Return the dynamic icon for battery representation."""
|
"""Return the dynamic icon for battery representation."""
|
||||||
|
|
||||||
if self.entity_description.key == OUTSIDE_BATTERY:
|
if self.entity_description.key in BATTERY_LIST:
|
||||||
try:
|
try:
|
||||||
return battery_level_to_icon(self.native_value)
|
return battery_level_to_icon(self.native_value)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ from .const import (
|
||||||
BARO_PRESSURE,
|
BARO_PRESSURE,
|
||||||
CH2_HUMIDITY,
|
CH2_HUMIDITY,
|
||||||
CH2_TEMP,
|
CH2_TEMP,
|
||||||
|
CH2_BATTERY,
|
||||||
|
INDOOR_BATTERY,
|
||||||
CH3_HUMIDITY,
|
CH3_HUMIDITY,
|
||||||
CH3_TEMP,
|
CH3_TEMP,
|
||||||
CH4_HUMIDITY,
|
CH4_HUMIDITY,
|
||||||
|
|
@ -28,8 +30,10 @@ from .const import (
|
||||||
DEW_POINT,
|
DEW_POINT,
|
||||||
HEAT_INDEX,
|
HEAT_INDEX,
|
||||||
HOURLY_RAIN,
|
HOURLY_RAIN,
|
||||||
|
INDOOR_BATTERY,
|
||||||
INDOOR_HUMIDITY,
|
INDOOR_HUMIDITY,
|
||||||
INDOOR_TEMP,
|
INDOOR_TEMP,
|
||||||
|
INDOOR_BATTERY,
|
||||||
MONTHLY_RAIN,
|
MONTHLY_RAIN,
|
||||||
OUTSIDE_BATTERY,
|
OUTSIDE_BATTERY,
|
||||||
OUTSIDE_HUMIDITY,
|
OUTSIDE_HUMIDITY,
|
||||||
|
|
@ -312,4 +316,18 @@ SENSOR_TYPES_WSLINK: tuple[WeatherSensorEntityDescription, ...] = (
|
||||||
device_class=SensorDeviceClass.ENUM,
|
device_class=SensorDeviceClass.ENUM,
|
||||||
value_fn=lambda data: battery_level_to_text(data),
|
value_fn=lambda data: battery_level_to_text(data),
|
||||||
),
|
),
|
||||||
|
WeatherSensorEntityDescription(
|
||||||
|
key=CH2_BATTERY,
|
||||||
|
translation_key=CH2_BATTERY,
|
||||||
|
icon="mdi:battery-unknown",
|
||||||
|
device_class=SensorDeviceClass.ENUM,
|
||||||
|
value_fn=lambda data: battery_level_to_text(data),
|
||||||
|
),
|
||||||
|
WeatherSensorEntityDescription(
|
||||||
|
key=INDOOR_BATTERY,
|
||||||
|
translation_key=INDOOR_BATTERY,
|
||||||
|
icon="mdi:battery-unknown",
|
||||||
|
device_class=SensorDeviceClass.ENUM,
|
||||||
|
value_fn=lambda data: battery_level_to_text(data),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -144,6 +144,22 @@
|
||||||
"normal": "Normální",
|
"normal": "Normální",
|
||||||
"unknown": "Neznámá / zcela vybitá"
|
"unknown": "Neznámá / zcela vybitá"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"indoor_battery": {
|
||||||
|
"name": "Stav nabití baterie kozole",
|
||||||
|
"state": {
|
||||||
|
"low": "Nízká",
|
||||||
|
"normal": "Normální",
|
||||||
|
"unknown": "Neznámá / zcela vybitá"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ch2_battery": {
|
||||||
|
"name": "Stav nabití baterie kanálu 2",
|
||||||
|
"state": {
|
||||||
|
"low": "Nízká",
|
||||||
|
"normal": "Normální",
|
||||||
|
"unknown": "Neznámá / zcela vybitá"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -144,6 +144,22 @@
|
||||||
"low": "Low",
|
"low": "Low",
|
||||||
"unknown": "Unknown / drained out"
|
"unknown": "Unknown / drained out"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"ch2_battery": {
|
||||||
|
"name": "Channel 2 battery level",
|
||||||
|
"state": {
|
||||||
|
"normal": "OK",
|
||||||
|
"low": "Low",
|
||||||
|
"unknown": "Unknown / drained out"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indoor_battery": {
|
||||||
|
"name": "Console battery level",
|
||||||
|
"state": {
|
||||||
|
"normal": "OK",
|
||||||
|
"low": "Low",
|
||||||
|
"unknown": "Unknown / drained out"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue