Home IO Control
ESPHome add-on for IO-Homecontrol devices
Loading...
Searching...
No Matches
home_io_control Namespace Reference

Namespaces

namespace  button
namespace  cover
namespace  light
namespace  lock
namespace  switch

Functions

 validate_device_type (value)
 device_type_expression (value)
 validate_node_id (value)
 validate_system_key (value)
 validate_device_id (value)
 validate_status_poll_interval (value)
 to_code (config)

Variables

list DEPENDENCIES = ["api", "spi"]
list AUTO_LOAD = ["button", "cover", "light", "lock", "switch", "text_sensor"]
bool MULTI_CONF = False
str CONF_HOME_IO_CONTROL_ID = "home_io_control_id"
str CONF_RST_PIN = "rst_pin"
str CONF_DIO0_PIN = "dio0_pin"
str CONF_DIO4_PIN = "dio4_pin"
str CONF_DIO1_PIN = "dio1_pin"
str CONF_BUSY_PIN = "busy_pin"
str CONF_NODE_ID = "node_id"
str CONF_SYSTEM_KEY = "system_key"
str CONF_TX_POWER = "tx_power"
str CONF_PA_PIN = "pa_pin"
str CONF_RADIO_TYPE = "radio_type"
str CONF_FEM_EN_PIN = "fem_en_pin"
str CONF_VFEM_PIN = "vfem_pin"
str CONF_FEM_PA_PIN = "fem_pa_pin"
str CONF_TCXO_VOLTAGE = "tcxo_voltage"
int MIN_STATUS_POLL_INTERVAL_MS = 500
 home_io_control_ns = cg.esphome_ns.namespace("home_io_control")
 IOHomeControlComponent
dict PA_PIN_OPTIONS
dict RADIO_TYPE_OPTIONS
dict TCXO_VOLTAGE_OPTIONS
dict DEVICE_TYPE_OPTIONS
tuple CONFIG_SCHEMA

Function Documentation

◆ device_type_expression()

home_io_control.device_type_expression ( value)
Generate a C++ static_cast expression for a validated device type.

Definition at line 107 of file __init__.py.

◆ to_code()

home_io_control.to_code ( config)

Definition at line 189 of file __init__.py.

◆ validate_device_id()

home_io_control.validate_device_id ( value)
Validate io_device_id as exactly 6 hex characters (3 bytes).

Definition at line 138 of file __init__.py.

◆ validate_device_type()

home_io_control.validate_device_type ( value)
Validate io_device_type as a named string or integer 0-255.

Definition at line 86 of file __init__.py.

◆ validate_node_id()

home_io_control.validate_node_id ( value)
Validate node_id as exactly 6 hex characters (3 bytes).

Definition at line 114 of file __init__.py.

◆ validate_status_poll_interval()

home_io_control.validate_status_poll_interval ( value)
Validate status_poll_interval is at least MIN_STATUS_POLL_INTERVAL_MS.

Definition at line 150 of file __init__.py.

◆ validate_system_key()

home_io_control.validate_system_key ( value)
Validate system_key as exactly 32 hex characters (16 bytes).

Definition at line 126 of file __init__.py.

Variable Documentation

◆ AUTO_LOAD

list home_io_control.AUTO_LOAD = ["button", "cover", "light", "lock", "switch", "text_sensor"]

Definition at line 15 of file __init__.py.

◆ CONF_BUSY_PIN

str home_io_control.CONF_BUSY_PIN = "busy_pin"

Definition at line 23 of file __init__.py.

◆ CONF_DIO0_PIN

str home_io_control.CONF_DIO0_PIN = "dio0_pin"

Definition at line 20 of file __init__.py.

◆ CONF_DIO1_PIN

str home_io_control.CONF_DIO1_PIN = "dio1_pin"

Definition at line 22 of file __init__.py.

◆ CONF_DIO4_PIN

str home_io_control.CONF_DIO4_PIN = "dio4_pin"

Definition at line 21 of file __init__.py.

◆ CONF_FEM_EN_PIN

str home_io_control.CONF_FEM_EN_PIN = "fem_en_pin"

Definition at line 29 of file __init__.py.

◆ CONF_FEM_PA_PIN

str home_io_control.CONF_FEM_PA_PIN = "fem_pa_pin"

Definition at line 31 of file __init__.py.

◆ CONF_HOME_IO_CONTROL_ID

str home_io_control.CONF_HOME_IO_CONTROL_ID = "home_io_control_id"

Definition at line 18 of file __init__.py.

◆ CONF_NODE_ID

str home_io_control.CONF_NODE_ID = "node_id"

Definition at line 24 of file __init__.py.

◆ CONF_PA_PIN

str home_io_control.CONF_PA_PIN = "pa_pin"

Definition at line 27 of file __init__.py.

◆ CONF_RADIO_TYPE

str home_io_control.CONF_RADIO_TYPE = "radio_type"

Definition at line 28 of file __init__.py.

◆ CONF_RST_PIN

str home_io_control.CONF_RST_PIN = "rst_pin"

Definition at line 19 of file __init__.py.

◆ CONF_SYSTEM_KEY

str home_io_control.CONF_SYSTEM_KEY = "system_key"

Definition at line 25 of file __init__.py.

◆ CONF_TCXO_VOLTAGE

str home_io_control.CONF_TCXO_VOLTAGE = "tcxo_voltage"

Definition at line 32 of file __init__.py.

◆ CONF_TX_POWER

str home_io_control.CONF_TX_POWER = "tx_power"

Definition at line 26 of file __init__.py.

◆ CONF_VFEM_PIN

str home_io_control.CONF_VFEM_PIN = "vfem_pin"

Definition at line 30 of file __init__.py.

◆ CONFIG_SCHEMA

tuple home_io_control.CONFIG_SCHEMA
Initial value:
1= (
2 cv.Schema(
3 {
4 cv.GenerateID(): cv.declare_id(IOHomeControlComponent),
5 cv.Required(CONF_RST_PIN): pins.internal_gpio_output_pin_schema,
6 cv.Optional(CONF_DIO0_PIN): pins.internal_gpio_input_pin_schema,
7 cv.Optional(CONF_DIO4_PIN): pins.internal_gpio_input_pin_schema,
8 cv.Optional(CONF_DIO1_PIN): pins.internal_gpio_input_pin_schema,
9 cv.Optional(CONF_BUSY_PIN): pins.internal_gpio_input_pin_schema,
10 cv.Required(CONF_NODE_ID): validate_node_id,
11 cv.Required(CONF_SYSTEM_KEY): validate_system_key,
12 cv.Optional(CONF_TX_POWER, default=17): cv.int_range(min=0, max=22),
13 cv.Optional(CONF_PA_PIN, default="BOOST"): cv.enum(
14 PA_PIN_OPTIONS, upper=True
15 ),
16 cv.Optional(CONF_RADIO_TYPE): cv.enum(RADIO_TYPE_OPTIONS, lower=True),
17 cv.Optional(CONF_FEM_EN_PIN): pins.internal_gpio_output_pin_schema,
18 cv.Optional(CONF_VFEM_PIN): pins.internal_gpio_output_pin_schema,
19 cv.Optional(CONF_FEM_PA_PIN): pins.internal_gpio_output_pin_schema,
20 cv.Optional(CONF_TCXO_VOLTAGE, default="1_8V"): cv.enum(
21 TCXO_VOLTAGE_OPTIONS, upper=True
22 ),
23 }
24 )
25 .extend(cv.COMPONENT_SCHEMA)
26 .extend(spi.spi_device_schema(True, 8e6, "mode0"))
27)

Definition at line 160 of file __init__.py.

◆ DEPENDENCIES

list home_io_control.DEPENDENCIES = ["api", "spi"]

Definition at line 14 of file __init__.py.

◆ DEVICE_TYPE_OPTIONS

dict home_io_control.DEVICE_TYPE_OPTIONS
Initial value:
1= {
2 "unknown": 0x00,
3 "venetian_blind": 0x01,
4 "roller_shutter": 0x02,
5 "awning": 0x03,
6 "window_opener": 0x04,
7 "garage_opener": 0x05,
8 "light": 0x06,
9 "gate_opener": 0x07,
10 "rolling_door_opener": 0x08,
11 "lock": 0x09,
12 "blind": 0x0A,
13 "screen": 0x0B,
14 "dual_shutter": 0x0D,
15 "heating_temperature_interface": 0x0E,
16 "on_off_switch": 0x0F,
17 "horizontal_awning": 0x10,
18 "external_venetian_blind": 0x11,
19 "louvre_blind": 0x12,
20 "curtain_track": 0x13,
21 "intrusion_alarm": 0x17,
22 "swinging_shutter": 0x18,
23}

Definition at line 61 of file __init__.py.

◆ home_io_control_ns

home_io_control.home_io_control_ns = cg.esphome_ns.namespace("home_io_control")

Definition at line 35 of file __init__.py.

◆ IOHomeControlComponent

home_io_control.IOHomeControlComponent
Initial value:
1= home_io_control_ns.class_(
2 "IOHomeControlComponent", cg.Component, spi.SPIDevice
3)

Definition at line 36 of file __init__.py.

◆ MIN_STATUS_POLL_INTERVAL_MS

int home_io_control.MIN_STATUS_POLL_INTERVAL_MS = 500

Definition at line 33 of file __init__.py.

◆ MULTI_CONF

bool home_io_control.MULTI_CONF = False

Definition at line 16 of file __init__.py.

◆ PA_PIN_OPTIONS

dict home_io_control.PA_PIN_OPTIONS
Initial value:
1= {
2 "BOOST": 0x80,
3 "RFO": 0x00,
4}

Definition at line 40 of file __init__.py.

◆ RADIO_TYPE_OPTIONS

dict home_io_control.RADIO_TYPE_OPTIONS
Initial value:
1= {
2 "sx1276": "sx1276",
3 "sx1262": "sx1262",
4}

Definition at line 45 of file __init__.py.

◆ TCXO_VOLTAGE_OPTIONS

dict home_io_control.TCXO_VOLTAGE_OPTIONS
Initial value:
1= {
2 "1_6V": 0x01,
3 "1_7V": 0x02,
4 "1_8V": 0x03,
5 "2_2V": 0x04,
6 "2_4V": 0x05,
7 "2_7V": 0x06,
8 "3_0V": 0x07,
9 "3_3V": 0x08,
10}

Definition at line 50 of file __init__.py.