|
Home IO Control
ESPHome add-on for IO-Homecontrol devices
|
IO-Homecontrol command IDs, result codes and protocol enumerations. More...
Go to the source code of this file.
Namespaces | |
| namespace | esphome |
| namespace | esphome::home_io_control |
Functions | |
| const char * | esphome::home_io_control::command_name (uint8_t cmd) |
| Get a human-readable name for any IO-Homecontrol command ID. | |
| const char * | esphome::home_io_control::manufacturer_name (uint8_t id) |
| Get a human-readable manufacturer name from the protocol manufacturer byte. | |
| const char * | esphome::home_io_control::originator_name (uint8_t originator) |
| Get a human-readable name for a command originator byte. | |
| const char * | esphome::home_io_control::acei_level_name (uint8_t level) |
| Get a human-readable name for an ACEI priority level (0–7). | |
| uint8_t | esphome::home_io_control::discovery_att_class (uint8_t flags) |
| Extract the ATT class field from a discovery response's Multi Information Byte. | |
| uint8_t | esphome::home_io_control::discovery_power_save_mode (uint8_t flags) |
| Extract the power save mode field from a discovery response's Multi Information Byte. | |
| const char * | esphome::home_io_control::att_class_name (uint8_t att_class) |
| Get a human-readable turnaround time string for an ATT class value. | |
| const char * | esphome::home_io_control::power_save_mode_name (uint8_t mode) |
| Get a human-readable power save mode name. | |
| const char * | esphome::home_io_control::command_result_name (uint8_t result) |
| Return a stable symbolic name for a CMD_ERROR_RESP result code. | |
| const char * | esphome::home_io_control::command_result_description (uint8_t result) |
| Return a human-readable explanation for a CMD_ERROR_RESP result code. | |
| bool | esphome::home_io_control::is_limitation_result (uint8_t result) |
| Check whether a result code represents an environmental or control limitation. | |
Variables | |
| static constexpr uint8_t | esphome::home_io_control::CMD_EXECUTE = 0x00 |
| Set position/open/close/stop — requires authentication. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_ACTIVATE_MODE = 0x01 |
| Activate device mode (scene, ventilation) — requires auth. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_PRIVATE = 0x03 |
| Get device status — no authentication needed. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_PRIVATE_RESP = 0x04 |
| Response to 0x00 and 0x03 (contains position data). | |
| static constexpr uint8_t | esphome::home_io_control::CMD_PRIVATE2 |
| Content otherwise undecoded by the wire parser. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_PRIVATE2_RESP = 0x0D |
| Response to CMD_PRIVATE2. See CMD_PRIVATE2's comment. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_SET_SENSOR = 0x19 |
| Inject sensor value into a device. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_SET_SENSOR_ACK = 0x1A |
| Acknowledgment to CMD_SET_SENSOR. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_IDENTIFY = 0x1E |
| Device physical identification / jog — requires authentication. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_WRITE_PRIVATE = 0x20 |
| Write private register (climate/heating devices). | |
| static constexpr uint8_t | esphome::home_io_control::CMD_WRITE_PRIVATE_ACK = 0x21 |
| Acknowledgment to CMD_WRITE_PRIVATE. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_DISCOVER_REQ = 0x28 |
| Broadcast discovery request. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_DISCOVER_RESP = 0x29 |
| Device responds with its ID and type. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_DISCOVER_SPE_REQ |
| Broadcast roll-call answered by every device that already holds this controller's system key, regardless of device type. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_DISCOVER_SPE_RESP |
| Roll-call reply to CMD_DISCOVER_SPE_REQ, sent only by devices that already hold the requesting controller's system key. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_DISCOVER_CONFIRM = 0x2C |
| Confirm discovery to device. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_DISCOVER_CONFIRM_ACK = 0x2D |
| Device acknowledges confirmation. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_DISCOVER_ALT_REQ |
| Alternate discovery. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_DISCOVER_ALT_RESP |
| Reply to an addressed (non-broadcast) CMD_DISCOVER_ALT_REQ, following a 0x3C/0x3D challenge-response. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_ONEWAY_ADD_CONTROLLER |
| 1W "add controller": a 1W device broadcasts this while its key-copy gesture is active, handing its network's wrapped system key to whichever controller is listening — see docs/commands.md#30-send-1w-key in the reference project linked from issue #66. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_ONEWAY_REMOVE = 0x39 |
| 1W "remove controller" (un-pair a 1W remote from a device); same payload shape as 0x2E. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_KEY_INIT = 0x31 |
| Initiate key transfer to device. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_KEY_TRANSFER = 0x32 |
| Send encrypted system key to device. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_KEY_CONFIRM = 0x33 |
| Device confirms key was received. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_ADDRESS_REQ = 0x36 |
| Address assignment request. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_ADDRESS_RESP |
| Address assignment response: the device returns its own 3-byte backbone address, byte-identical to the one it reported at data[2..4] (DISCOVERY_RESP_BACKBONE_OFFSET) of its CMD_DISCOVER_RESP earlier in the same session — an independent confirmation of that offset. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_LAUNCH_KEY_TRANSFER |
| Device-initiated ("pull") key transfer request. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_CHALLENGE_REQ |
| 6-byte random challenge. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_CHALLENGE_RESP |
| HMAC proof answering a 0x3C. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_UNKNOWN4A_REQ |
| Content undecoded. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_UNKNOWN4A_RESP |
| Observed on the wire (tests/corpus/captures/issues/) answering an ON_OFF_SWITCH-type device's traffic, but its request opcode is unconfirmed — it is not established to be CMD_UNKNOWN4A_REQ's reply rather than CMD_GET_GENERAL_INFO3's. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_GET_NAME = 0x50 |
| Request device name. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_GET_NAME_RESP = 0x51 |
| Device name response. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_SET_NAME = 0x52 |
| Set device name (authenticated). | |
| static constexpr uint8_t | esphome::home_io_control::CMD_SET_NAME_RESP = 0x53 |
| Device-name write response. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_GET_INFO1 |
| Request device general info 1 (unimplemented; we only use 0x56/0x57). | |
| static constexpr uint8_t | esphome::home_io_control::CMD_GET_INFO1_RESP = 0x55 |
| Device general info 1 response (unimplemented; we only use 0x56/0x57). | |
| static constexpr uint8_t | esphome::home_io_control::CMD_GET_INFO2 = 0x56 |
| Request device type/model info. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_GET_INFO2_RESP = 0x57 |
| Device type/model response. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_GET_GENERAL_INFO3 |
| Observed on the wire (tests/corpus/captures/issues/) with no payload. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_GET_GENERAL_INFO3_RESP |
| Never captured on our own wire. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_SET_CONFIG1 = 0x6F |
| Configure device to auto-send status updates. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_SET_CONFIG1_RESP |
| Config response. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_STATUS_UPDATE = 0x71 |
| Device-initiated status update (needs auth). | |
| static constexpr uint8_t | esphome::home_io_control::CMD_STATUS_UPDATE_RESP = 0x72 |
| Acknowledge status update. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_SEND_RAW_MESSAGE |
| reference/iown-homecontrol heads this "Send Raw Message / Find Hardware
("Service")" — its own quoting, not settled naming. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_READ_GROUPS |
| reference/iown-homecontrol heads this "Actuator: Read Groups /
"ActuatorAnyConfigIsLocal" (?) / "Service ACK"" — three candidate names, one flagged with its own question mark, from the source itself. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_REBOOT |
| reference/iown-homecontrol heads this "Reboot / Service Status" — two candidate names, one of them destructive-sounding, on no field evidence at all. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_SERVICE_STATUS_ACK |
| reference/iown-homecontrol lists this opcode with its body marked TBD — no description at all, not even a hedge to reproduce. | |
| static constexpr uint8_t | esphome::home_io_control::CMD_ERROR_RESP = 0xFE |
| Error response to any command. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_UNKNOWN_STATUS_REPLY = 0x00 |
| Device returned an unknown status reply. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_COMMAND_COMPLETED_OK = 0x01 |
| No errors detected. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_NO_CONTACT = 0x02 |
| No communication to node. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_MANUALLY_OPERATED = 0x03 |
| Manually operated by a user. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_BLOCKED = 0x04 |
| Node blocked by an object. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_WRONG_SYSTEMKEY = 0x05 |
| Node contains the wrong system key. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_PRIORITY_LEVEL_LOCKED = 0x06 |
| Node is locked on this priority level. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_REACHED_WRONG_POSITION = 0x07 |
| Node stopped in another position than expected. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_ERROR_DURING_EXECUTION = 0x08 |
| Generic execution failure. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_NO_EXECUTION = 0x09 |
| Node did not move. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_CALIBRATING = 0x0A |
| Node is calibrating. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_POWER_CONSUMPTION_TOO_HIGH = 0x0B |
| Node power consumption is too high. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_POWER_CONSUMPTION_TOO_LOW = 0x0C |
| Node power consumption is too low. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LOCK_POSITION_OPEN = 0x0D |
| Lock command failed because the door is open. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_MOTION_TIME_TOO_LONG = 0x0E |
| Target was not reached in time. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_THERMAL_PROTECTION = 0x0F |
| Node entered thermal protection mode. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_PRODUCT_NOT_OPERATIONAL = 0x10 |
| Node is not currently operational. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_FILTER_MAINTENANCE_NEEDED = 0x11 |
| Filter needs maintenance. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_BATTERY_LEVEL = 0x12 |
| Battery level is low. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_TARGET_MODIFIED = 0x13 |
| Node modified the requested target value. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_MODE_NOT_IMPLEMENTED = 0x14 |
| Mode is not supported by the node. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_COMMAND_INCOMPATIBLE_TO_MOVEMENT = 0x15 |
| Command cannot move the node that way. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_USER_ACTION = 0x16 |
| User action overrode the command. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_DEAD_BOLT_ERROR = 0x17 |
| Dead bolt error. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_AUTOMATIC_CYCLE_ENGAGED = 0x18 |
| Node entered automatic cycle mode. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_WRONG_LOAD_CONNECTED = 0x19 |
| Wrong load connected to node. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_COLOUR_NOT_REACHABLE = 0x1A |
| Requested colour not reachable. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_TARGET_NOT_REACHABLE = 0x1B |
| Requested target not reachable. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_BAD_INDEX_RECEIVED = 0x1C |
| Invalid index received. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_COMMAND_OVERRULED = 0x1D |
| Command was overruled by a newer command. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_NODE_WAITING_FOR_POWER = 0x1E |
| Node is waiting for power. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_NODE_LOCKED = 0x20 |
| Node is locked. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_WRONG_POSITION = 0x21 |
| Node reports wrong position. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITS_NOT_SET = 0x22 |
| Device limits are not set. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_IP_NOT_SET = 0x23 |
| Intermediate position is not set. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_OUT_OF_RANGE = 0x24 |
| Requested value is out of range. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_PRIORITY_LOCKED_NON_EXEC |
| Priority locked, command not executed (ACEI priority too low). | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_INFORMATION_CODE = 0xDF |
| Information-only code with unknown semantics. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_PARAMETER_LIMITED = 0xE0 |
| Parameter limited by an unknown device. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_LOCAL_USER = 0xE1 |
| Parameter limited by local button. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_USER = 0xE2 |
| Parameter limited by a remote control. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_RAIN = 0xE3 |
| Parameter limited by a rain sensor. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_TIMER = 0xE4 |
| Parameter limited by a timer. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_SCD = 0xE5 |
| Parameter limited by a security actuator. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_UPS = 0xE6 |
| Parameter limited by a power supply. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_UNKNOWN_DEVICE = 0xE7 |
| Parameter limited by an unknown device. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_SAAC = 0xEA |
| Parameter limited by a standalone automatic controller. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_WIND = 0xEB |
| Parameter limited by a wind sensor. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_MYSELF = 0xEC |
| Parameter limited by the node itself. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_AUTOMATIC_CYCLE = 0xED |
| Parameter limited by an automatic cycle. | |
| static constexpr uint8_t | esphome::home_io_control::RESULT_LIMITATION_BY_EMERGENCY = 0xEE |
| Parameter limited by an emergency. | |
| static constexpr uint8_t | esphome::home_io_control::POS_STOP = 0xD2 |
| Position values in the IO protocol. | |
| static constexpr uint8_t | esphome::home_io_control::POS_UNKNOWN = 0xD4 |
| Wire value: position unknown / keep current. | |
| static constexpr uint8_t | esphome::home_io_control::POS_FAVORITE = 0xD8 |
| Wire value: move to favorite/"My" position. | |
| static constexpr uint8_t | esphome::home_io_control::POS_SECURED_TARGET = 0xD1 |
| Wire value for the secured target position command. | |
| static constexpr uint8_t | esphome::home_io_control::POS_DEFAULT = 0xD3 |
| Wire value for the default position command. | |
| static constexpr uint8_t | esphome::home_io_control::POS_FORCE_OPEN = 0x64 |
| Ambiguous wire value used only for passive 1W-traffic intent decoding (decode_1w_main_intent() / oneway_intent_to_target() in proto_codecs.cpp). | |
| static constexpr uint8_t | esphome::home_io_control::POS_VENT_MODIFIER = 0x03 |
| Modifier byte for the ventilation command. | |
| static constexpr uint8_t | esphome::home_io_control::STATUS_STOPPED = 0x01 |
| Status byte flags in CMD_PRIVATE_RESP and CMD_STATUS_UPDATE. | |
| static constexpr uint8_t | esphome::home_io_control::STATUS_EXPECTED = 0x80 |
| Byte 1 bit 7: device will send auto status update. | |
| static constexpr uint8_t | esphome::home_io_control::STATUS_TILT_SELECTOR = 0x20 |
| Extended status payload marker for tilt-capable devices. | |
| static constexpr uint8_t | esphome::home_io_control::TRANSFER_KEY [AES_KEY_SIZE] |
| The transfer key is a hardcoded key used ONLY during pairing to obfuscate the system key during over-the-air transfer. | |
| static constexpr uint16_t | esphome::home_io_control::CRC_POLYNOMIAL_REVERSED = 0x8408 |
| Reversed CRC-CCITT polynomial used by IO-homecontrol. | |
| static constexpr uint16_t | esphome::home_io_control::CRC_LSB_MASK = 0x0001 |
| Least-significant-bit mask for reflected CRC update. | |
| static constexpr uint8_t | esphome::home_io_control::BROADCAST_DISCOVER [NODE_ID_SIZE] = {0x00, 0x00, 0x3B} |
| Broadcast address for device discovery (0x00003B). | |
| static constexpr uint8_t | esphome::home_io_control::BROADCAST_DISCOVER_ALT [NODE_ID_SIZE] = {0x00, 0x00, 0x3F} |
| Alternate discovery / 1W broadcast address (0x00003F). | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_ID_MAX = 12 |
| Maximum manufacturer ID with a known name in the lookup table. | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_VELUX = 1 |
| IO-Homecontrol manufacturer ID constants. | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_SOMFY = 2 |
| Somfy (shutters, awnings, blinds). | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_HONEYWELL = 3 |
| Honeywell. | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_HORMANN = 4 |
| Hörmann (garage doors, gates). | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_ASSA_ABLOY = 5 |
| ASSA ABLOY (locks, access). | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_NIKO = 6 |
| Niko (switches, home automation). | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_WINDOW_MASTER = 7 |
| WINDOW MASTER (ventilation). | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_RENSON = 8 |
| Renson (ventilation, sun protection). | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_CIAT = 9 |
| CIAT (HVAC). | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_SECUYOU = 10 |
| Secuyou (security). | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_OVERKIZ = 11 |
| OVERKIZ (Somfy connectivity platform). | |
| static constexpr uint8_t | esphome::home_io_control::MANUFACTURER_ATLANTIC_GROUP = 12 |
| Atlantic Group (heating, hot water). | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_LOCAL_USER = 0x00 |
| Command originator codes indicating what or who triggered a command. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_USER_REMOTE = 0x01 |
| User sent command from a remote control. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_RAIN_SENSOR = 0x02 |
| Rain sensor triggered the movement. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_TIMER = 0x03 |
| Timer or schedule triggered the movement. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_SECURITY = 0x04 |
| Security controlling device (SCD) action. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_UPS = 0x05 |
| Uninterruptible power supply action. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_SMART_CONTROLLER = 0x06 |
| Smart function controller. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_LIFESTYLE = 0x07 |
| Lifestyle scenario controller. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_SAAC = 0x08 |
| Stand-alone automatic controller (SAAC). | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_WIND_SENSOR = 0x09 |
| Wind sensor triggered the movement. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_LOAD_SHEDDING = 0x0B |
| Load-shedding manager. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_LOCAL_LIGHT = 0x0C |
| Local light sensor. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_ENVIRONMENT = 0x0D |
| Unspecified environment sensor. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_MYSELF = 0x10 |
| Actuator decided to move by itself. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_AUTOMATIC_CYCLE = 0xFE |
| Automatic cycle / external access. | |
| static constexpr uint8_t | esphome::home_io_control::ORIGINATOR_EMERGENCY = 0xFF |
| Emergency command (never disabled). | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_VALID_BIT = 0x01 |
| ACEI byte bit-field definitions. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_EXTENDED_MASK = 0x06 |
| Bits [2:1]: extended field. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_EXTENDED_SHIFT = 1 |
| Shift for extended field extraction. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_SERVICE_MASK = 0x18 |
| Bits [4:3]: service type. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_SERVICE_SHIFT = 3 |
| Shift for service field extraction. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_LEVEL_MASK = 0xE0 |
| Bits [7:5]: priority level (0–7). | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_LEVEL_SHIFT = 5 |
| Shift for priority level extraction. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_LEVEL_PROTECTION_HUMAN = 0 |
| ACEI priority level values (0–7). | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_LEVEL_PROTECTION_SENSOR = 1 |
| Goods/environment protection via sensors. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_LEVEL_USER_HIGH = 2 |
| High-priority user controller. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_LEVEL_USER_DEFAULT = 3 |
| Default remote controller priority. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_LEVEL_COMFORT_1 = 4 |
| Comfort automation level 1. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_LEVEL_COMFORT_2 = 5 |
| Comfort automation level 2. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_LEVEL_AUTO_SAAC = 6 |
| Stand-alone automatic controller. | |
| static constexpr uint8_t | esphome::home_io_control::ACEI_LEVEL_AUTO_DEFAULT = 7 |
| Default automatic level (lowest). | |
| static constexpr uint8_t | esphome::home_io_control::DISCOVERY_RESP_BACKBONE_OFFSET = 2 |
| Byte offsets within CMD_DISCOVER_RESP (0x29) payload data. | |
| static constexpr uint8_t | esphome::home_io_control::DISCOVERY_RESP_MANUFACTURER_OFFSET = 5 |
| Manufacturer ID at data[5]. | |
| static constexpr uint8_t | esphome::home_io_control::DISCOVERY_RESP_FLAGS_OFFSET = 6 |
| Flags byte at data[6]. | |
| static constexpr uint8_t | esphome::home_io_control::DISCOVERY_RESP_TIMESTAMP_OFFSET = 7 |
| Timestamp starts at data[7] (2 bytes). | |
| static constexpr uint8_t | esphome::home_io_control::DISCOVERY_RESP_FULL_SIZE = 9 |
| Full discovery response payload size. | |
| static constexpr uint8_t | esphome::home_io_control::DISCOVERY_FLAGS_ATT_MASK = 0xC0 |
| Bit masks and shifts for the Multi Information Byte fields. | |
| static constexpr uint8_t | esphome::home_io_control::DISCOVERY_FLAGS_ATT_SHIFT = 6 |
| Shift for ATT field extraction. | |
| static constexpr uint8_t | esphome::home_io_control::DISCOVERY_FLAGS_SYNC_CTRL_GRP = 0x20 |
| Bit 5: supports sync control group. | |
| static constexpr uint8_t | esphome::home_io_control::DISCOVERY_FLAGS_RF_SUPPORT = 0x08 |
| Bit 3: RF support in node (0=yes, 1=no). | |
| static constexpr uint8_t | esphome::home_io_control::DISCOVERY_FLAGS_POWER_SAVE_MASK = 0x03 |
| Bits [1:0]: power save mode. | |
| static constexpr uint8_t | esphome::home_io_control::ATT_CLASS_5S = 0 |
| Actuator Turnaround Time (ATT) class values. | |
| static constexpr uint8_t | esphome::home_io_control::ATT_CLASS_10S = 1 |
| Response within 10 seconds. | |
| static constexpr uint8_t | esphome::home_io_control::ATT_CLASS_20S = 2 |
| Response within 20 seconds. | |
| static constexpr uint8_t | esphome::home_io_control::ATT_CLASS_40S = 3 |
| Response within 40 seconds. | |
| static constexpr uint8_t | esphome::home_io_control::POWER_SAVE_ALWAYS_ALIVE = 0 |
| Power save mode values from the Multi Information Byte. | |
| static constexpr uint8_t | esphome::home_io_control::POWER_SAVE_LOW_POWER = 1 |
| Device sleeps — needs long preamble to wake. | |
IO-Homecontrol command IDs, result codes and protocol enumerations.
Command bytes, CMD_ERROR_RESP result codes, wire position/status flags, cryptographic constants, and the manufacturer/originator/ACEI/discovery lookups. These describe what travels on the wire, independent of the frame container (proto_frame.h) and the device model (proto_device_model.h).
Definition in file proto_constants.h.