Merge pull request #76 from schizza/74-additional-sensors

Release 1.6.7
77-wbgt-temperature-sensor-wslink-api-parameter-t1wbgt v1.6.7
Lukas Svoboda 2025-10-26 21:03:23 +01:00 committed by GitHub
commit 1d8928bf12
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 68 additions and 10 deletions

View File

@ -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."""

View File

@ -10,6 +10,6 @@
"issue_tracker": "https://github.com/schizza/SWS-12500-custom-component/issues", "issue_tracker": "https://github.com/schizza/SWS-12500-custom-component/issues",
"requirements": [], "requirements": [],
"ssdp": [], "ssdp": [],
"version": "1.6.6", "version": "1.6.7",
"zeroconf": [] "zeroconf": []
} }

View File

@ -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:

View File

@ -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),
),
) )

View File

@ -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á"
}
} }
} }
}, },

View File

@ -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"
}
} }
} }
}, },