"""Constants for the Main Gate Controller integration.""" from __future__ import annotations from logging import Logger, getLogger DOMAIN = "main_gate_controller" LOGGER: Logger = getLogger(__package__) MANUFACTURER = "Custom" MODEL = "Main Gate Controller" # Configuration fields CONF_NAME = "name" CONF_SWITCH_ENTITY_ID = "switch_entity_id" CONF_OPEN_DURATION = "open_duration" CONF_PULSE_DURATION = "pulse_duration" CONF_NOTIFY_ENABLED = "notify_enabled" CONF_NOTIFY_ENTITIES = "notify_entities" CONF_NOTIFY_OPENING_TEXT = "notify_opening_text" CONF_NOTIFY_CLOSING_TEXT = "notify_closing_text" # Defaults DEFAULT_NAME = "Main Gate" DEFAULT_OPEN_DURATION = 20 DEFAULT_PULSE_DURATION = 1.0 DEFAULT_NOTIFY_ENABLED = False DEFAULT_NOTIFY_OPENING_TEXT = "Opening Main Gate (Pedestrians)" DEFAULT_NOTIFY_CLOSING_TEXT = "Closing Main Gate" # Validation bounds MIN_OPEN_DURATION = 1 MAX_OPEN_DURATION = 3600 MIN_PULSE_DURATION = 0.1 MAX_PULSE_DURATION = 10 # Gate states (machine-readable) GATE_STATE_CLOSED = "closed" GATE_STATE_OPENING = "opening" GATE_STATE_OPEN = "open" GATE_STATE_CLOSING = "closing" # Sensor attributes ATTR_REMAINING_SECONDS = "remaining_seconds" ATTR_DURATION = "duration" ATTR_RUNNING = "running" ATTR_STARTED_AT = "started_at" ATTR_FINISHES_AT = "finishes_at" # Service targets SWITCH_DOMAIN = "switch" NOTIFY_DOMAIN = "notify" SERVICE_SEND_MESSAGE = "send_message"