core/homeassistant/components/mobile_app/timers.py

55 lines
1.5 KiB
Python

"""Timers for the mobile app."""
from datetime import timedelta
from homeassistant.components import notify
from homeassistant.components.intent import TimerEventType, TimerInfo
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_DEVICE_ID
from homeassistant.core import HomeAssistant, callback
from . import device_action
@callback
def async_handle_timer_event(
hass: HomeAssistant,
entry: ConfigEntry,
event_type: TimerEventType,
timer_info: TimerInfo,
) -> None:
"""Handle timer events."""
if event_type != TimerEventType.FINISHED:
return
if timer_info.name:
message = f"{timer_info.name} finished"
else:
message = f"{timedelta(seconds=timer_info.created_seconds)} timer finished"
entry.async_create_task(
hass,
device_action.async_call_action_from_config(
hass,
{
CONF_DEVICE_ID: timer_info.device_id,
notify.ATTR_MESSAGE: message,
notify.ATTR_DATA: {
"group": "timers",
# Android
"channel": "Timers",
"importance": "high",
"ttl": 0,
"priority": "high",
# iOS
"push": {
"interruption-level": "time-sensitive",
},
},
},
{},
None,
),
"mobile_app_timer_notification",
)