mirror of
https://github.com/home-assistant/core.git
synced 2026-02-15 07:36:16 +00:00
Add jet lag prevention event support to Sleep as Android integration (#154075)
This commit is contained in:
@@ -38,6 +38,7 @@ class SleepAsAndroidEvent(StrEnum):
|
||||
SLEEP_PHASE = "sleep_phase"
|
||||
SLEEP_TRACKING = "sleep_tracking"
|
||||
SOUND_EVENT = "sound_event"
|
||||
JET_LAG_PREVENTION = "jet_lag_prevention"
|
||||
|
||||
|
||||
EVENT_DESCRIPTIONS: tuple[SleepAsAndroidEventEntityDescription, ...] = (
|
||||
@@ -120,6 +121,15 @@ EVENT_DESCRIPTIONS: tuple[SleepAsAndroidEventEntityDescription, ...] = (
|
||||
"apnea_alarm",
|
||||
],
|
||||
),
|
||||
SleepAsAndroidEventEntityDescription(
|
||||
key=SleepAsAndroidEvent.JET_LAG_PREVENTION,
|
||||
translation_key=SleepAsAndroidEvent.JET_LAG_PREVENTION,
|
||||
event_types=[
|
||||
"jet_lag_start",
|
||||
"jet_lag_stop",
|
||||
],
|
||||
entity_registry_enabled_default=False,
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
},
|
||||
"sleep_health": {
|
||||
"default": "mdi:heart-pulse"
|
||||
},
|
||||
"jet_lag_prevention": {
|
||||
"default": "mdi:airplane-clock"
|
||||
}
|
||||
},
|
||||
"sensor": {
|
||||
|
||||
@@ -117,6 +117,17 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"jet_lag_prevention": {
|
||||
"name": "Jet lag prevention",
|
||||
"state_attributes": {
|
||||
"event_type": {
|
||||
"state": {
|
||||
"jet_lag_start": "[%key:component::sleep_as_android::entity::event::lullaby::state_attributes::event_type::state::start%]",
|
||||
"jet_lag_stop": "[%key:common::state::stopped%]"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sensor": {
|
||||
|
||||
@@ -65,6 +65,64 @@
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_setup[event.sleep_as_android_jet_lag_prevention-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'event_types': list([
|
||||
'jet_lag_start',
|
||||
'jet_lag_stop',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'event',
|
||||
'entity_category': None,
|
||||
'entity_id': 'event.sleep_as_android_jet_lag_prevention',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': None,
|
||||
'original_icon': None,
|
||||
'original_name': 'Jet lag prevention',
|
||||
'platform': 'sleep_as_android',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': <SleepAsAndroidEvent.JET_LAG_PREVENTION: 'jet_lag_prevention'>,
|
||||
'unique_id': '01JRD840SAZ55DGXBD78PTQ4EF_jet_lag_prevention',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_setup[event.sleep_as_android_jet_lag_prevention-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'event_type': None,
|
||||
'event_types': list([
|
||||
'jet_lag_start',
|
||||
'jet_lag_stop',
|
||||
]),
|
||||
'friendly_name': 'Sleep as Android Jet lag prevention',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'event.sleep_as_android_jet_lag_prevention',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_setup[event.sleep_as_android_lullaby-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
|
||||
@@ -27,6 +27,7 @@ def event_only() -> Generator[None]:
|
||||
yield
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||
@freeze_time("2025-01-01T03:30:00.000Z")
|
||||
async def test_setup(
|
||||
hass: HomeAssistant,
|
||||
@@ -123,8 +124,11 @@ async def test_setup(
|
||||
"value2": "label",
|
||||
},
|
||||
),
|
||||
("jet_lag_prevention", {"event": "jet_lag_start"}),
|
||||
("jet_lag_prevention", {"event": "jet_lag_stop"}),
|
||||
],
|
||||
)
|
||||
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||
@freeze_time("2025-01-01T03:30:00.000+00:00")
|
||||
async def test_webhook_event(
|
||||
hass: HomeAssistant,
|
||||
|
||||
Reference in New Issue
Block a user