typedefenum// Enumeration of sensor / binary sensor supported by gateway.
typedefenum// Enumeration of sensor / binary sensor supported by gateway.
@ -450,10 +469,10 @@ typedef struct // Structure for data exchange between ESP-NOW devices.
ha_binary_sensor_device_class_tbinary_sensor_device_class;// Binary sensor type supported by the Home Assistant. @note Used to prepare a correct configuration message for Home Assistant MQTT discovery. For details see https://www.home-assistant.io/integrations/binary_sensor.
ha_binary_sensor_device_class_tbinary_sensor_device_class;// Binary sensor type supported by the Home Assistant. @note Used to prepare a correct configuration message for Home Assistant MQTT discovery. For details see https://www.home-assistant.io/integrations/binary_sensor.
ha_on_off_type_tpayload_on;// The payload that represents ON state.
ha_on_off_type_tpayload_on;// The payload that represents ON state.
ha_on_off_type_tpayload_off;// The payload that represents OFF state.
ha_on_off_type_tpayload_off;// The payload that represents OFF state.
uint16_texpire_after;// If set, it defines the number of seconds after the sensor’s state expires, if it’s not updated. After expiry, the sensor’s state becomes unavailable.
uint16_texpire_after;// If set, it defines the number of seconds after the sensors state expires, if its not updated. After expiry, the sensors state becomes unavailable.
uint16_toff_delay;// For sensors that only send on state updates (like PIRs), this variable sets a delay in seconds after which the sensor’s state will be updated back to off.
uint16_toff_delay;// For sensors that only send on state updates (like PIRs), this variable sets a delay in seconds after which the sensors state will be updated back to off.
boolenabled_by_default;// Flag which defines if the entity should be enabled when first added.
boolenabled_by_default;// Flag which defines if the entity should be enabled when first added.
boolforce_update;// Sends update events (which results in update of state object’s last_changed) even if the sensor’s state hasn’t changed. Useful if you want to have meaningful value graphs in history or want to create an automation that triggers on every incoming state message (not only when the sensor’s new state is different to the current one).
boolforce_update;// Sends update events (which results in update of state objects last_changed) even if the sensors state hasnt changed. Useful if you want to have meaningful value graphs in history or want to create an automation that triggers on every incoming state message (not only when the sensors new state is different to the current one).
uint8_tqos;// The maximum QoS level to be used when receiving and publishing messages.
uint8_tqos;// The maximum QoS level to be used when receiving and publishing messages.
boolretain;// If the published message should have the retain flag on or not.
boolretain;// If the published message should have the retain flag on or not.
}binary_sensor_config_message;
}binary_sensor_config_message;
@ -462,16 +481,16 @@ typedef struct // Structure for data exchange between ESP-NOW devices.
uint8_tunique_id;// An ID that uniquely identifies this sensor device. @note The ID will look like this - "MAC-X" (for example 64-B7-08-31-00-A8-1). @attention If two sensors have the same unique ID, Home Assistant will raise an exception.
uint8_tunique_id;// An ID that uniquely identifies this sensor device. @note The ID will look like this - "MAC-X" (for example 64-B7-08-31-00-A8-1). @attention If two sensors have the same unique ID, Home Assistant will raise an exception.
ha_sensor_device_class_tsensor_device_class;// Sensor type supported by the Home Assistant. @note Used to prepare a correct configuration message for Home Assistant MQTT discovery. For details see https://www.home-assistant.io/integrations/sensor.
ha_sensor_device_class_tsensor_device_class;// Sensor type supported by the Home Assistant. @note Used to prepare a correct configuration message for Home Assistant MQTT discovery. For details see https://www.home-assistant.io/integrations/sensor.
charunit_of_measurement[5];// Defines the units of measurement of the sensor, if any.
charunit_of_measurement[5];// Defines the units of measurement of the sensor, if any.
uint8_tsuggested_display_precision;// The number of decimals which should be used in the sensor’s state after rounding.
uint8_tsuggested_display_precision;// The number of decimals which should be used in the sensors state after rounding.
uint16_texpire_after;// If set, it defines the number of seconds after the sensor’s state expires, if it’s not updated. After expiry, the sensor’s state becomes unavailable.
uint16_texpire_after;// If set, it defines the number of seconds after the sensors state expires, if its not updated. After expiry, the sensors state becomes unavailable.
boolenabled_by_default;// Flag which defines if the entity should be enabled when first added.
boolenabled_by_default;// Flag which defines if the entity should be enabled when first added.
boolforce_update;// Sends update events (which results in update of state object’s last_changed) even if the sensor’s state hasn’t changed. Useful if you want to have meaningful value graphs in history or want to create an automation that triggers on every incoming state message (not only when the sensor’s new state is different to the current one).
boolforce_update;// Sends update events (which results in update of state objects last_changed) even if the sensors state hasnt changed. Useful if you want to have meaningful value graphs in history or want to create an automation that triggers on every incoming state message (not only when the sensors new state is different to the current one).
uint8_tqos;// The maximum QoS level to be used when receiving and publishing messages.
uint8_tqos;// The maximum QoS level to be used when receiving and publishing messages.
boolretain;// If the published message should have the retain flag on or not.
boolretain;// If the published message should have the retain flag on or not.
}sensor_config_message;
}sensor_config_message;
struct// Tertiary structure of zh_espnow_sensor node hardware configuration message. @note Used for change hardware configuration / publish at MQTT zh_espnow_sensor node hardware configuration message.
struct// Tertiary structure of zh_espnow_sensor node hardware configuration message. @note Used for change hardware configuration / publish at MQTT zh_espnow_sensor node hardware configuration message.
{
{
ha_sensor_type_tsensor_type;// Sensor types. @note Used in zh_espnow_sensor firmware only.
ha_sensor_type_tsensor_type;// Sensor type. @note Used in zh_espnow_sensor firmware only.
uint8_tsensor_pin_1;// Sensor GPIO number 1. @note Main pin for 1-wire sensors, SDA pin for I2C sensors.
uint8_tsensor_pin_1;// Sensor GPIO number 1. @note Main pin for 1-wire sensors, SDA pin for I2C sensors.
uint8_tsensor_pin_2;// Sensor GPIO number 2. @note SCL pin for I2C sensors.
uint8_tsensor_pin_2;// Sensor GPIO number 2. @note SCL pin for I2C sensors.
uint8_tpower_pin;// Power GPIO number (if used sensor power control).
uint8_tpower_pin;// Power GPIO number (if used sensor power control).
@ -491,7 +510,7 @@ typedef struct // Structure for data exchange between ESP-NOW devices.
}led_config_message;
}led_config_message;
struct// Tertiary structure of zh_espnow_led node hardware configuration message. @note Used for change hardware configuration / publish at MQTT zh_espnow_led node hardware configuration message.
struct// Tertiary structure of zh_espnow_led node hardware configuration message. @note Used for change hardware configuration / publish at MQTT zh_espnow_led node hardware configuration message.
{
{
ha_led_type_tled_type;// Led types. @note Used in zh_espnow_led firmware only.
ha_led_type_tled_type;// Led type.
uint8_tfirst_white_pin;// First white GPIO number.
uint8_tfirst_white_pin;// First white GPIO number.
uint8_tsecond_white_pin;// Second white GPIO number (if present).
uint8_tsecond_white_pin;// Second white GPIO number (if present).
uint8_tred_pin;// Red GPIO number (if present).
uint8_tred_pin;// Red GPIO number (if present).
@ -511,23 +530,24 @@ typedef struct // Structure for data exchange between ESP-NOW devices.
}switch_config_message;
}switch_config_message;
struct// Tertiary structure of zh_espnow_switch node hardware configuration message. @note Used for change hardware configuration / publish at MQTT zh_espnow_switch node hardware configuration message.
struct// Tertiary structure of zh_espnow_switch node hardware configuration message. @note Used for change hardware configuration / publish at MQTT zh_espnow_switch node hardware configuration message.
{
{
uint8_trelay_pin;// Relay GPIO number.
uint8_trelay_pin;// Relay GPIO number.
boolrelay_on_level;// Relay ON level. @note HIGH (true) / LOW (false).
boolrelay_on_level;// Relay ON level. @note HIGH (true) / LOW (false).
uint8_tled_pin;// Led GPIO number (if present).
uint8_tled_pin;// Led GPIO number (if present).
boolled_on_level;// Led ON level (if present). @note HIGH (true) / LOW (false).
boolled_on_level;// Led ON level (if present). @note HIGH (true) / LOW (false).
uint8_tint_button_pin;// Internal button GPIO number (if present).
uint8_tint_button_pin;// Internal button GPIO number (if present).
uint8_tsensor_pin;// Sensor GPIO number (if present).
uint8_tsensor_pin;// Sensor GPIO number (if present).
ha_sensor_type_tsensor_type;// Sensor types (if present). @note Used to identify the sensor type by ESP-NOW gateway and send the appropriate sensor status messages to MQTT.
ha_sensor_type_tsensor_type;// Sensor type (if present). @note Used to identify the sensor type by ESP-NOW gateway and send the appropriate sensor status messages to MQTT.
uint16_tmeasurement_frequency;// Sensor measurement frequency (if present).
}switch_hardware_config_message;
}switch_hardware_config_message;
}config_message;
}config_message;
union// Secondary union of structures of any status messages. @attention Not used in this view. Should be converted to the required tertiary structure.
union// Secondary union of structures of any status messages. @attention Not used in this view. Should be converted to the required tertiary structure.
{
{
struct// Tertiary structure of zh_espnow_binary_sensor node status message.
struct// Tertiary structure of zh_espnow_binary_sensor node status message.
{
{
ha_sensor_type_tsensor_type;// Binary sensor types. @note Used to identify the binary sensor type by ESP-NOW gateway and send the appropriate binary sensor status messages to MQTT.
ha_sensor_type_tsensor_type;// Binary sensor type. @note Used to identify the binary sensor type by ESP-NOW gateway and send the appropriate binary sensor status messages to MQTT.
ha_on_off_type_tconnect;// Event that caused the sensor to be triggered (if present). @note Example - CONNECT @attention Must be same with set on binary_sensor_config_message structure.
ha_on_off_type_tconnect;// Event that caused the sensor to be triggered (if present). @note Example - CONNECT @attention Must be same with set on binary_sensor_config_message structure.
ha_on_off_type_topen;// Event that caused the sensor to be triggered (if present). @note Example - OPEN / CLOSE @attention Must be same with set on binary_sensor_config_message structure.
ha_on_off_type_topen;// Event that caused the sensor to be triggered (if present). @note Example - OPEN / CLOSE @attention Must be same with set on binary_sensor_config_message structure.
ha_on_off_type_tbattery;// Event that caused the sensor to be triggered (if present). @note Example - HIGH / LOW @attention Must be same with set on binary_sensor_config_message structure.
ha_on_off_type_tbattery;// Event that caused the sensor to be triggered (if present). @note Example - HIGH / LOW @attention Must be same with set on binary_sensor_config_message structure.
@ -537,20 +557,40 @@ typedef struct // Structure for data exchange between ESP-NOW devices.
ha_on_off_type_treserved_3;// Reserved for future development.
ha_on_off_type_treserved_3;// Reserved for future development.
ha_on_off_type_treserved_4;// Reserved for future development.
ha_on_off_type_treserved_4;// Reserved for future development.
ha_on_off_type_treserved_5;// Reserved for future development.
ha_on_off_type_treserved_5;// Reserved for future development.
ha_on_off_type_treserved_6;// Reserved for future development.
ha_on_off_type_treserved_7;// Reserved for future development.
ha_on_off_type_treserved_8;// Reserved for future development.
ha_on_off_type_treserved_9;// Reserved for future development.
ha_on_off_type_treserved_10;// Reserved for future development.
ha_on_off_type_treserved_11;// Reserved for future development.
ha_on_off_type_treserved_12;// Reserved for future development.
ha_on_off_type_treserved_13;// Reserved for future development.
ha_on_off_type_treserved_14;// Reserved for future development.
ha_on_off_type_treserved_15;// Reserved for future development.
}binary_sensor_status_message;
}binary_sensor_status_message;
struct// Tertiary structure of zh_espnow_sensor node status message.
struct// Tertiary structure of zh_espnow_sensor node status message.
{
{
ha_sensor_type_tsensor_type;// Sensor types. @note Used to identify the sensor type by ESP-NOW gateway and send the appropriate sensor status messages to MQTT.
ha_sensor_type_tsensor_type;// Sensor type. @note Used to identify the sensor type by ESP-NOW gateway and send the appropriate sensor status messages to MQTT.
floattemperature;// Temperature value (if present).
floattemperature;// Temperature value (if present).
floathumidity;// Humidity value (if present).
floathumidity;// Humidity value (if present).
floatpressure;// Pressure value (if present).
floatatmospheric_pressure;// Atmospheric pressure value (if present).
floatquality;// Quality value (if present).
floataqi;// Air quality index (if present).
floatvoltage;// Voltage value (if present).
floatvoltage;// Voltage value (if present).
floatreserved_1;// Reserved for future development.
floatilluminance;// Light level (if present).
floatreserved_2;// Reserved for future development.
floatuv_index;// UV index (if present).
floatreserved_3;// Reserved for future development.
floatreserved_3;// Reserved for future development.
floatreserved_4;// Reserved for future development.
floatreserved_4;// Reserved for future development.
floatreserved_5;// Reserved for future development.
floatreserved_5;// Reserved for future development.
floatreserved_6;// Reserved for future development.
floatreserved_7;// Reserved for future development.
floatreserved_8;// Reserved for future development.
floatreserved_9;// Reserved for future development.
floatreserved_10;// Reserved for future development.
floatreserved_11;// Reserved for future development.
floatreserved_12;// Reserved for future development.
floatreserved_13;// Reserved for future development.
floatreserved_14;// Reserved for future development.
floatreserved_15;// Reserved for future development.
}sensor_status_message;
}sensor_status_message;
struct// Tertiary structure of zh_espnow_led node status message.
struct// Tertiary structure of zh_espnow_led node status message.
{
{
@ -566,15 +606,18 @@ typedef struct // Structure for data exchange between ESP-NOW devices.
{
{
ha_on_off_type_tstatus;// Status of the zh_espnow_switch. @note Example - ON / OFF. @attention Must be same with set on switch_config_message structure.
ha_on_off_type_tstatus;// Status of the zh_espnow_switch. @note Example - ON / OFF. @attention Must be same with set on switch_config_message structure.
}switch_status_message;
}switch_status_message;
struct// Tertiary structure of ESP-NOW node error message.
{
charmessage[150];// Error message.
}error_message;
}status_message;
}status_message;
union// Secondary union of structures of any OTA update messages. @attention Not used in this view. Should be converted to the required tertiary structure.
union// Secondary union of structures of any OTA update messages. @attention Not used in this view. Should be converted to the required tertiary structure.
{
{
struct// Tertiary structure for transfer from ESP-NOW node to ESP-NOW gateway system information for OTA update initialization.
struct// Tertiary structure for transfer from ESP-NOW node to ESP-NOW gateway system information for OTA update initialization.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.