mirror of
				https://github.com/home-assistant/core.git
				synced 2025-11-04 08:29:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Demo platform that has two fake alarm control panels."""
 | 
						|
 | 
						|
from __future__ import annotations
 | 
						|
 | 
						|
import datetime
 | 
						|
 | 
						|
from homeassistant.components.alarm_control_panel import AlarmControlPanelState
 | 
						|
from homeassistant.components.manual.alarm_control_panel import (  # pylint: disable=hass-component-root-import
 | 
						|
    ManualAlarm,
 | 
						|
)
 | 
						|
from homeassistant.config_entries import ConfigEntry
 | 
						|
from homeassistant.const import CONF_ARMING_TIME, CONF_DELAY_TIME, CONF_TRIGGER_TIME
 | 
						|
from homeassistant.core import HomeAssistant
 | 
						|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
 | 
						|
 | 
						|
 | 
						|
async def async_setup_entry(
 | 
						|
    hass: HomeAssistant,
 | 
						|
    config_entry: ConfigEntry,
 | 
						|
    async_add_entities: AddConfigEntryEntitiesCallback,
 | 
						|
) -> None:
 | 
						|
    """Set up the Demo config entry."""
 | 
						|
    async_add_entities(
 | 
						|
        [
 | 
						|
            ManualAlarm(
 | 
						|
                hass,
 | 
						|
                "Security",
 | 
						|
                "demo_alarm_control_panel",
 | 
						|
                "1234",
 | 
						|
                None,
 | 
						|
                True,
 | 
						|
                False,
 | 
						|
                {
 | 
						|
                    AlarmControlPanelState.ARMED_AWAY: {
 | 
						|
                        CONF_ARMING_TIME: datetime.timedelta(seconds=5),
 | 
						|
                        CONF_DELAY_TIME: datetime.timedelta(seconds=0),
 | 
						|
                        CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
 | 
						|
                    },
 | 
						|
                    AlarmControlPanelState.ARMED_HOME: {
 | 
						|
                        CONF_ARMING_TIME: datetime.timedelta(seconds=5),
 | 
						|
                        CONF_DELAY_TIME: datetime.timedelta(seconds=0),
 | 
						|
                        CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
 | 
						|
                    },
 | 
						|
                    AlarmControlPanelState.ARMED_NIGHT: {
 | 
						|
                        CONF_ARMING_TIME: datetime.timedelta(seconds=5),
 | 
						|
                        CONF_DELAY_TIME: datetime.timedelta(seconds=0),
 | 
						|
                        CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
 | 
						|
                    },
 | 
						|
                    AlarmControlPanelState.ARMED_VACATION: {
 | 
						|
                        CONF_ARMING_TIME: datetime.timedelta(seconds=5),
 | 
						|
                        CONF_DELAY_TIME: datetime.timedelta(seconds=0),
 | 
						|
                        CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
 | 
						|
                    },
 | 
						|
                    AlarmControlPanelState.DISARMED: {
 | 
						|
                        CONF_DELAY_TIME: datetime.timedelta(seconds=0),
 | 
						|
                        CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
 | 
						|
                    },
 | 
						|
                    AlarmControlPanelState.ARMED_CUSTOM_BYPASS: {
 | 
						|
                        CONF_ARMING_TIME: datetime.timedelta(seconds=5),
 | 
						|
                        CONF_DELAY_TIME: datetime.timedelta(seconds=0),
 | 
						|
                        CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
 | 
						|
                    },
 | 
						|
                    AlarmControlPanelState.TRIGGERED: {
 | 
						|
                        CONF_ARMING_TIME: datetime.timedelta(seconds=5)
 | 
						|
                    },
 | 
						|
                },
 | 
						|
            )
 | 
						|
        ]
 | 
						|
    )
 |