Add last cleaned sensor to lamarzocco (#143414)

This commit is contained in:
Josef Zweck 2025-04-22 07:02:16 +02:00 committed by GitHub
parent 54050f10b7
commit 1064588c00
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 69 additions and 3 deletions

View File

@ -76,6 +76,9 @@
"coffee_boiler_ready_time": {
"default": "mdi:av-timer"
},
"last_cleaning_time": {
"default": "mdi:spray-bottle"
},
"steam_boiler_ready_time": {
"default": "mdi:av-timer"
}

View File

@ -7,6 +7,7 @@ from typing import cast
from pylamarzocco.const import ModelName, WidgetType
from pylamarzocco.models import (
BackFlush,
BaseWidgetOutput,
CoffeeBoiler,
SteamBoilerLevel,
@ -84,6 +85,17 @@ ENTITIES: tuple[LaMarzoccoSensorEntityDescription, ...] = (
in (ModelName.GS3_AV, ModelName.GS3_MP, ModelName.LINEA_MINI)
),
),
LaMarzoccoSensorEntityDescription(
key="last_cleaning_time",
translation_key="last_cleaning_time",
device_class=SensorDeviceClass.TIMESTAMP,
value_fn=(
lambda config: cast(
BackFlush, config[WidgetType.CM_BACK_FLUSH]
).last_cleaning_start_time
),
entity_category=EntityCategory.DIAGNOSTIC,
),
)

View File

@ -146,6 +146,9 @@
},
"steam_boiler_ready_time": {
"name": "Steam boiler ready time"
},
"last_cleaning_time": {
"name": "Last cleaning time"
}
},
"switch": {

View File

@ -299,7 +299,7 @@
"code": "CMBackFlush",
"index": 1,
"output": {
"lastCleaningStartTime": null,
"lastCleaningStartTime": 1743236747166,
"status": "Off"
},
"tutorialUrl": "http://lamarzocco.com/it/en/app/support/cleaning-and-backflush/#gs3-av"

View File

@ -7,7 +7,7 @@
'coffee_station': None,
'config': dict({
'CMBackFlush': dict({
'last_cleaning_start_time': None,
'last_cleaning_start_time': '2025-03-29T08:25:47.166000+00:00',
'status': 'Off',
}),
'CMCoffeeBoiler': dict({
@ -571,7 +571,7 @@
'code': 'CMBackFlush',
'index': 1,
'output': dict({
'last_cleaning_start_time': None,
'last_cleaning_start_time': '2025-03-29T08:25:47.166000+00:00',
'status': 'Off',
}),
}),

View File

@ -47,6 +47,54 @@
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.gs012345_last_cleaning_time-entry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.gs012345_last_cleaning_time',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
'original_icon': None,
'original_name': 'Last cleaning time',
'platform': 'lamarzocco',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'last_cleaning_time',
'unique_id': 'GS012345_last_cleaning_time',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[sensor.gs012345_last_cleaning_time-state]
StateSnapshot({
'attributes': ReadOnlyDict({
'device_class': 'timestamp',
'friendly_name': 'GS012345 Last cleaning time',
}),
'context': <ANY>,
'entity_id': 'sensor.gs012345_last_cleaning_time',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '2025-03-29T08:25:47+00:00',
})
# ---
# name: test_sensors[sensor.gs012345_steam_boiler_ready_time-entry]
EntityRegistryEntrySnapshot({
'aliases': set({