Add sensors for ventilator in LG ThinQ (#140846)

Co-authored-by: yunseon.park <yunseon.park@lge.com>
This commit is contained in:
LG-ThinQ-Integration 2025-07-24 19:33:34 +09:00 committed by GitHub
parent eea22d8079
commit f481c1b92f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 106 additions and 0 deletions

View File

@ -219,6 +219,9 @@
"total_pollution_level": {
"default": "mdi:air-filter"
},
"carbon_dioxide": {
"default": "mdi:molecule-co2"
},
"monitoring_enabled": {
"default": "mdi:monitor-eye"
},
@ -330,9 +333,21 @@
"hop_oil_info": {
"default": "mdi:information-box-outline"
},
"hop_oil_capsule_1": {
"default": "mdi:information-box-outline"
},
"hop_oil_capsule_2": {
"default": "mdi:information-box-outline"
},
"flavor_info": {
"default": "mdi:information-box-outline"
},
"flavor_capsule_1": {
"default": "mdi:information-box-outline"
},
"flavor_capsule_2": {
"default": "mdi:information-box-outline"
},
"beer_remain": {
"default": "mdi:glass-mug-variant"
},

View File

@ -75,6 +75,11 @@ AIR_QUALITY_SENSOR_DESC: dict[ThinQProperty, SensorEntityDescription] = {
device_class=SensorDeviceClass.ENUM,
translation_key=ThinQProperty.TOTAL_POLLUTION_LEVEL,
),
ThinQProperty.CO2: SensorEntityDescription(
key=ThinQProperty.CO2,
device_class=SensorDeviceClass.ENUM,
translation_key="carbon_dioxide",
),
}
BATTERY_SENSOR_DESC: dict[ThinQProperty, SensorEntityDescription] = {
ThinQProperty.BATTERY_PERCENT: SensorEntityDescription(
@ -175,10 +180,30 @@ RECIPE_SENSOR_DESC: dict[ThinQProperty, SensorEntityDescription] = {
key=ThinQProperty.HOP_OIL_INFO,
translation_key=ThinQProperty.HOP_OIL_INFO,
),
ThinQProperty.HOP_OIL_CAPSULE_1: SensorEntityDescription(
key=ThinQProperty.HOP_OIL_CAPSULE_1,
device_class=SensorDeviceClass.ENUM,
translation_key=ThinQProperty.HOP_OIL_CAPSULE_1,
),
ThinQProperty.HOP_OIL_CAPSULE_2: SensorEntityDescription(
key=ThinQProperty.HOP_OIL_CAPSULE_2,
device_class=SensorDeviceClass.ENUM,
translation_key=ThinQProperty.HOP_OIL_CAPSULE_2,
),
ThinQProperty.FLAVOR_INFO: SensorEntityDescription(
key=ThinQProperty.FLAVOR_INFO,
translation_key=ThinQProperty.FLAVOR_INFO,
),
ThinQProperty.FLAVOR_CAPSULE_1: SensorEntityDescription(
key=ThinQProperty.FLAVOR_CAPSULE_1,
device_class=SensorDeviceClass.ENUM,
translation_key=ThinQProperty.FLAVOR_CAPSULE_1,
),
ThinQProperty.FLAVOR_CAPSULE_2: SensorEntityDescription(
key=ThinQProperty.FLAVOR_CAPSULE_2,
device_class=SensorDeviceClass.ENUM,
translation_key=ThinQProperty.FLAVOR_CAPSULE_2,
),
ThinQProperty.BEER_REMAIN: SensorEntityDescription(
key=ThinQProperty.BEER_REMAIN,
native_unit_of_measurement=PERCENTAGE,
@ -415,6 +440,7 @@ DEVICE_TYPE_SENSOR_MAP: dict[DeviceType, tuple[SensorEntityDescription, ...]] =
DeviceType.COOKTOP: (
RUN_STATE_SENSOR_DESC[ThinQProperty.CURRENT_STATE],
POWER_SENSOR_DESC[ThinQProperty.POWER_LEVEL],
TIMER_SENSOR_DESC[TimerProperty.REMAIN],
),
DeviceType.DEHUMIDIFIER: (
JOB_MODE_SENSOR_DESC[ThinQProperty.CURRENT_JOB_MODE],
@ -435,7 +461,11 @@ DEVICE_TYPE_SENSOR_MAP: dict[DeviceType, tuple[SensorEntityDescription, ...]] =
RECIPE_SENSOR_DESC[ThinQProperty.WORT_INFO],
RECIPE_SENSOR_DESC[ThinQProperty.YEAST_INFO],
RECIPE_SENSOR_DESC[ThinQProperty.HOP_OIL_INFO],
RECIPE_SENSOR_DESC[ThinQProperty.HOP_OIL_CAPSULE_1],
RECIPE_SENSOR_DESC[ThinQProperty.HOP_OIL_CAPSULE_2],
RECIPE_SENSOR_DESC[ThinQProperty.FLAVOR_INFO],
RECIPE_SENSOR_DESC[ThinQProperty.FLAVOR_CAPSULE_1],
RECIPE_SENSOR_DESC[ThinQProperty.FLAVOR_CAPSULE_2],
RECIPE_SENSOR_DESC[ThinQProperty.BEER_REMAIN],
RUN_STATE_SENSOR_DESC[ThinQProperty.CURRENT_STATE],
ELAPSED_DAY_SENSOR_DESC[ThinQProperty.ELAPSED_DAY_STATE],
@ -497,6 +527,16 @@ DEVICE_TYPE_SENSOR_MAP: dict[DeviceType, tuple[SensorEntityDescription, ...]] =
TEMPERATURE_SENSOR_DESC[ThinQPropertyEx.ROOM_IN_WATER_CURRENT_TEMPERATURE],
TEMPERATURE_SENSOR_DESC[ThinQPropertyEx.ROOM_OUT_WATER_CURRENT_TEMPERATURE],
),
DeviceType.VENTILATOR: (
AIR_QUALITY_SENSOR_DESC[ThinQProperty.CO2],
AIR_QUALITY_SENSOR_DESC[ThinQProperty.PM1],
AIR_QUALITY_SENSOR_DESC[ThinQProperty.PM2],
AIR_QUALITY_SENSOR_DESC[ThinQProperty.PM10],
TEMPERATURE_SENSOR_DESC[ThinQProperty.CURRENT_TEMPERATURE],
TIME_SENSOR_DESC[TimerProperty.ABSOLUTE_TO_START],
TIME_SENSOR_DESC[TimerProperty.ABSOLUTE_TO_STOP],
TIMER_SENSOR_DESC[TimerProperty.SLEEP_TIMER_RELATIVE_TO_STOP],
),
DeviceType.WASHCOMBO_MAIN: WASHER_SENSORS,
DeviceType.WASHCOMBO_MINI: WASHER_SENSORS,
DeviceType.WASHER: WASHER_SENSORS,

View File

@ -333,6 +333,19 @@
"very_bad": "Poor"
}
},
"carbon_dioxide": {
"name": "[%key:component::sensor::entity_component::carbon_dioxide::name%]",
"state": {
"invalid": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::invalid%]",
"good": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::good%]",
"normal": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::normal%]",
"moderate": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::normal%]",
"bad": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::bad%]",
"unhealthy": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::bad%]",
"very_bad": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::very_bad%]",
"poor": "[%key:component::lg_thinq::entity::sensor::total_pollution_level::state::very_bad%]"
}
},
"monitoring_enabled": {
"name": "Air quality sensor",
"state": {
@ -771,9 +784,47 @@
"hop_oil_info": {
"name": "Hops"
},
"hop_oil_capsule_1": {
"name": "First hop",
"state": {
"cascade": "Cascade",
"chinook": "Chinook",
"goldings": "Goldings",
"fuggles": "Fuggles",
"hallertau": "Hallertau",
"citrussy": "Citrussy"
}
},
"hop_oil_capsule_2": {
"name": "Second hop",
"state": {
"cascade": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::cascade%]",
"chinook": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::chinook%]",
"goldings": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::goldings%]",
"fuggles": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::fuggles%]",
"hallertau": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::hallertau%]",
"citrussy": "[%key:component::lg_thinq::entity::sensor::hop_oil_capsule_1::state::citrussy%]"
}
},
"flavor_info": {
"name": "Flavor"
},
"flavor_capsule_1": {
"name": "First flavor",
"state": {
"coriander": "Coriander",
"coriander_seed": "[%key:component::lg_thinq::entity::sensor::flavor_capsule_1::state::coriander%]",
"orange": "Orange"
}
},
"flavor_capsule_2": {
"name": "Second flavor",
"state": {
"coriander": "[%key:component::lg_thinq::entity::sensor::flavor_capsule_1::state::coriander%]",
"coriander_seed": "[%key:component::lg_thinq::entity::sensor::flavor_capsule_1::state::coriander%]",
"orange": "[%key:component::lg_thinq::entity::sensor::flavor_capsule_1::state::orange%]"
}
},
"beer_remain": {
"name": "Recipe progress"
},