11import esphome.codegen
as cg
12from esphome.components
import spi
18from esphome.components
import button
as button_component
19from esphome.components
import switch
as switch_component
20from esphome.components
import text_sensor
as text_sensor_component
23CONF_HOME_IO_CONTROL_ID =
"home_io_control_id"
24CONF_RST_PIN =
"rst_pin"
25CONF_DIO0_PIN =
"dio0_pin"
26CONF_DIO4_PIN =
"dio4_pin"
27CONF_DIO1_PIN =
"dio1_pin"
28CONF_BUSY_PIN =
"busy_pin"
29CONF_NODE_ID =
"node_id"
30CONF_SYSTEM_KEY =
"system_key"
31CONF_TX_POWER =
"tx_power"
33CONF_RADIO_TYPE =
"radio_type"
34CONF_FEM_EN_PIN =
"fem_en_pin"
35CONF_VFEM_PIN =
"vfem_pin"
36CONF_FEM_PA_PIN =
"fem_pa_pin"
42CONF_TCXO_VOLTAGE =
"tcxo_voltage"
43CONF_EXPOSED_SENDERS =
"exposed_senders"
44CONF_ACCEPT_FOREIGN_PAIRING =
"accept_foreign_pairing"
45CONF_RECOVER_ONEWAY_KEY =
"recover_oneway_key"
46CONF_SCAN_PAIRED_DEVICES_BUTTON =
"scan_paired_devices_button"
47CONF_DISCOVER_AND_PAIR_BUTTON =
"discover_and_pair_button"
48CONF_ONEWAY_CONTROLLERS =
"oneway_controllers"
51CONF_NODE_ID_DERIVED =
"_node_id_derived"
52CONF_MANUFACTURER =
"manufacturer"
56CONF_IO_DEVICE_TYPE =
"io_device_type"
57CONF_INITIAL_SEQUENCE =
"initial_sequence"
58CONF_COMMANDS =
"commands"
62CONF_EXECUTE_ACEI =
"execute_acei"
63CONF_EXECUTE_BROADCAST =
"execute_broadcast"
67CONF_ENROLLMENT =
"enrollment"
71CONF_ENROLLMENT_WITH_MAC =
"enrollment_with_mac"
75CONF_ENROLLMENT_CLASSES =
"enrollment_classes"
81CONF_LOW_POWER =
"low_power"
84CONF_BUTTON_IDS =
"button_ids"
85CONF_LAST_COMMAND_SENSOR_ID =
"last_command_sensor_id"
88CONF_ENROLL_BUTTON_ID =
"_enroll_button_id"
89CONF_DIAGNOSTIC_PROBES =
"diagnostic_probes"
90CONF_LR1121_FIRMWARE_UPDATE =
"lr1121_firmware_update"
91CONF_LR1121_BOOTLOADER =
"bootloader"
92CONF_CHECKSUM_MD5 =
"checksum_md5"
93CONF_TARGET_VERSION =
"target_version"
94MIN_STATUS_POLL_INTERVAL_MS = 500
101CONF_ACCEPT_FOREIGN_PAIRING_SWITCH_ID =
"_accept_foreign_pairing_switch_id"
104CONF_RECOVER_ONEWAY_KEY_SWITCH_ID =
"_recover_oneway_key_switch_id"
107CONF_LR1121_FIRMWARE_UPDATE_BUTTON_ID =
"_lr1121_firmware_update_button_id"
110CONF_SCAN_PAIRED_DEVICES_BUTTON_ID =
"_scan_paired_devices_button_id"
113CONF_DISCOVER_AND_PAIR_BUTTON_ID =
"_discover_and_pair_button_id"
119CONF_DISCOVER_AND_PAIR_RESULT_SENSOR_ID =
"_discover_and_pair_result_sensor_id"
123CONF_LR1121_BOOTLOADER_SWITCH_ID =
"_lr1121_bootloader_switch_id"
125home_io_control_ns = cg.esphome_ns.namespace(
"home_io_control")
126IOHomeControlComponent = home_io_control_ns.class_(
127 "IOHomeControlComponent", cg.Component, spi.SPIDevice
136IOHomeAcceptForeignPairingSwitch = home_io_control_ns.class_(
137 "IOHomeAcceptForeignPairingSwitch", switch_component.Switch, cg.Component
143IOHomeRecoverOneWayKeySwitch = home_io_control_ns.class_(
144 "IOHomeRecoverOneWayKeySwitch", switch_component.Switch, cg.Component
150IOHomeLr1121FirmwareUpdateButton = home_io_control_ns.class_(
151 "IOHomeLr1121FirmwareUpdateButton", button_component.Button, cg.Component
157IOHomeScanPairedDevicesButton = home_io_control_ns.class_(
158 "IOHomeScanPairedDevicesButton", button_component.Button, cg.Component
165IOHomeDiscoverButton = home_io_control_ns.class_(
166 "IOHomeDiscoverButton", button_component.Button, cg.Component
168IOHomePairingResultTextSensor = home_io_control_ns.class_(
169 "IOHomePairingResultTextSensor", text_sensor_component.TextSensor, cg.Component
174IOHomeOneWayCommandButton = home_io_control_ns.class_(
175 "IOHomeOneWayCommandButton", button_component.Button, cg.Component
177IOHomeOneWayLastCommandTextSensor = home_io_control_ns.class_(
178 "IOHomeOneWayLastCommandTextSensor", text_sensor_component.TextSensor, cg.Component
183IOHomeOneWayEnrollButton = home_io_control_ns.class_(
184 "IOHomeOneWayEnrollButton", button_component.Button, cg.Component
186OneWayButtonAction = home_io_control_ns.enum(
"OneWayButtonAction", is_class=
True)
193IOHomeLr1121BootloaderRewriteSwitch = home_io_control_ns.class_(
194 "IOHomeLr1121BootloaderRewriteSwitch", switch_component.Switch, cg.Component