mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 18:57:06 +00:00
Add new sensors to fyta (#135032)
This commit is contained in:
parent
a01521b224
commit
de9c05ad53
@ -13,6 +13,9 @@
|
||||
"moisture_status": {
|
||||
"default": "mdi:water-percent-alert"
|
||||
},
|
||||
"nutrients_status": {
|
||||
"default": "mdi:emoticon-poop"
|
||||
},
|
||||
"salinity_status": {
|
||||
"default": "mdi:sprout-outline"
|
||||
},
|
||||
@ -21,6 +24,12 @@
|
||||
},
|
||||
"salinity": {
|
||||
"default": "mdi:sprout-outline"
|
||||
},
|
||||
"last_fertilised": {
|
||||
"default": "mdi:calendar-check"
|
||||
},
|
||||
"next_fertilisation": {
|
||||
"default": "mdi:calendar-end"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -82,6 +82,13 @@ SENSORS: Final[list[FytaSensorEntityDescription]] = [
|
||||
options=PLANT_MEASUREMENT_STATUS_LIST,
|
||||
value_fn=lambda plant: plant.moisture_status.name.lower(),
|
||||
),
|
||||
FytaSensorEntityDescription(
|
||||
key="nutrients_status",
|
||||
translation_key="nutrients_status",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PLANT_MEASUREMENT_STATUS_LIST,
|
||||
value_fn=lambda plant: plant.nutrients_status.name.lower(),
|
||||
),
|
||||
FytaSensorEntityDescription(
|
||||
key="salinity_status",
|
||||
translation_key="salinity_status",
|
||||
@ -124,6 +131,18 @@ SENSORS: Final[list[FytaSensorEntityDescription]] = [
|
||||
state_class=SensorStateClass.MEASUREMENT,
|
||||
value_fn=lambda plant: plant.ph,
|
||||
),
|
||||
FytaSensorEntityDescription(
|
||||
key="fertilise_last",
|
||||
translation_key="last_fertilised",
|
||||
device_class=SensorDeviceClass.DATE,
|
||||
value_fn=lambda plant: plant.fertilise_last,
|
||||
),
|
||||
FytaSensorEntityDescription(
|
||||
key="fertilise_next",
|
||||
translation_key="next_fertilisation",
|
||||
device_class=SensorDeviceClass.DATE,
|
||||
value_fn=lambda plant: plant.fertilise_next,
|
||||
),
|
||||
FytaSensorEntityDescription(
|
||||
key="battery_level",
|
||||
native_unit_of_measurement=PERCENTAGE,
|
||||
|
@ -84,6 +84,17 @@
|
||||
"too_high": "[%key:component::fyta::entity::sensor::temperature_status::state::too_high%]"
|
||||
}
|
||||
},
|
||||
"nutrients_status": {
|
||||
"name": "Nutrients state",
|
||||
"state": {
|
||||
"no_data": "[%key:component::fyta::entity::sensor::temperature_status::state::no_data%]",
|
||||
"too_low": "[%key:component::fyta::entity::sensor::temperature_status::state::too_low%]",
|
||||
"low": "[%key:component::fyta::entity::sensor::temperature_status::state::low%]",
|
||||
"perfect": "[%key:component::fyta::entity::sensor::temperature_status::state::perfect%]",
|
||||
"high": "[%key:component::fyta::entity::sensor::temperature_status::state::high%]",
|
||||
"too_high": "[%key:component::fyta::entity::sensor::temperature_status::state::too_high%]"
|
||||
}
|
||||
},
|
||||
"salinity_status": {
|
||||
"name": "Salinity state",
|
||||
"state": {
|
||||
@ -100,6 +111,12 @@
|
||||
},
|
||||
"salinity": {
|
||||
"name": "Salinity"
|
||||
},
|
||||
"last_fertilised": {
|
||||
"name": "Last fertilized"
|
||||
},
|
||||
"next_fertilisation": {
|
||||
"name": "Next fertilization"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -50,6 +50,53 @@
|
||||
'state': '80.0',
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.gummibaum_last_fertilized-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.gummibaum_last_fertilized',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.DATE: 'date'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Last fertilized',
|
||||
'platform': 'fyta',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'last_fertilised',
|
||||
'unique_id': 'ce5f5431554d101905d31797e1232da8-0-fertilise_last',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.gummibaum_last_fertilized-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'date',
|
||||
'friendly_name': 'Gummibaum Last fertilized',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.gummibaum_last_fertilized',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.gummibaum_light-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
@ -279,6 +326,117 @@
|
||||
'state': 'perfect',
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.gummibaum_next_fertilization-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.gummibaum_next_fertilization',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.DATE: 'date'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Next fertilization',
|
||||
'platform': 'fyta',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'next_fertilisation',
|
||||
'unique_id': 'ce5f5431554d101905d31797e1232da8-0-fertilise_next',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.gummibaum_next_fertilization-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'date',
|
||||
'friendly_name': 'Gummibaum Next fertilization',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.gummibaum_next_fertilization',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.gummibaum_nutrients_state-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'no_data',
|
||||
'too_low',
|
||||
'low',
|
||||
'perfect',
|
||||
'high',
|
||||
'too_high',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.gummibaum_nutrients_state',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Nutrients state',
|
||||
'platform': 'fyta',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'nutrients_status',
|
||||
'unique_id': 'ce5f5431554d101905d31797e1232da8-0-nutrients_status',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.gummibaum_nutrients_state-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'enum',
|
||||
'friendly_name': 'Gummibaum Nutrients state',
|
||||
'options': list([
|
||||
'no_data',
|
||||
'too_low',
|
||||
'low',
|
||||
'perfect',
|
||||
'high',
|
||||
'too_high',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.gummibaum_nutrients_state',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'perfect',
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.gummibaum_ph-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
@ -716,6 +874,53 @@
|
||||
'state': '80.0',
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.kakaobaum_last_fertilized-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.kakaobaum_last_fertilized',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.DATE: 'date'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Last fertilized',
|
||||
'platform': 'fyta',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'last_fertilised',
|
||||
'unique_id': 'ce5f5431554d101905d31797e1232da8-1-fertilise_last',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.kakaobaum_last_fertilized-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'date',
|
||||
'friendly_name': 'Kakaobaum Last fertilized',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.kakaobaum_last_fertilized',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.kakaobaum_light-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
@ -945,6 +1150,117 @@
|
||||
'state': 'perfect',
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.kakaobaum_next_fertilization-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.kakaobaum_next_fertilization',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.DATE: 'date'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Next fertilization',
|
||||
'platform': 'fyta',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'next_fertilisation',
|
||||
'unique_id': 'ce5f5431554d101905d31797e1232da8-1-fertilise_next',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.kakaobaum_next_fertilization-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'date',
|
||||
'friendly_name': 'Kakaobaum Next fertilization',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.kakaobaum_next_fertilization',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.kakaobaum_nutrients_state-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'no_data',
|
||||
'too_low',
|
||||
'low',
|
||||
'perfect',
|
||||
'high',
|
||||
'too_high',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.kakaobaum_nutrients_state',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Nutrients state',
|
||||
'platform': 'fyta',
|
||||
'previous_unique_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'nutrients_status',
|
||||
'unique_id': 'ce5f5431554d101905d31797e1232da8-1-nutrients_status',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.kakaobaum_nutrients_state-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'enum',
|
||||
'friendly_name': 'Kakaobaum Nutrients state',
|
||||
'options': list([
|
||||
'no_data',
|
||||
'too_low',
|
||||
'low',
|
||||
'perfect',
|
||||
'high',
|
||||
'too_high',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.kakaobaum_nutrients_state',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'perfect',
|
||||
})
|
||||
# ---
|
||||
# name: test_all_entities[sensor.kakaobaum_ph-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
|
Loading…
x
Reference in New Issue
Block a user