Compare commits

...

10 Commits
v2.0.0 ... main

Author SHA1 Message Date
73e8a70f4f Version 2.0.5
Added sensor measurement frequency in switch hardware configuration.
2024-07-19 15:10:38 +03:00
db717bf6ee Version 2.0.4
Added support for error messages.
2024-07-16 09:05:55 +03:00
49a4564b99 Minor changes 2024-07-05 11:38:51 +03:00
4b9ccf882d Version 2.0.3
Updated supported sensors.
2024-07-03 07:11:37 +03:00
c568d84e56 Version 2.0.2
Updated ha_sensor_device_class_t enumeration.
Updated binary_sensor_status_message structure.
Updated sensor_status_message structure.
2024-06-24 18:06:25 +03:00
befd1cd3bb Recovered erroneously deleted data 2024-06-23 22:08:45 +03:00
7a42949720 Removed unused data 2024-06-23 21:36:34 +03:00
bc12b2ca4b Version 2.0.1
Updated supported sensors.
2024-06-23 10:43:40 +03:00
ec60c4d559 Removed unused data 2024-06-09 12:46:09 +03:00
caba4a0284 Updated some comments 2024-06-07 08:52:34 +03:00
2 changed files with 123 additions and 80 deletions

View File

@ -69,6 +69,7 @@ char *zh_get_device_type_value_name(zh_device_type_t value);
DF(ZHPT_RGB, "rgb") \ DF(ZHPT_RGB, "rgb") \
DF(ZHPT_EFFECT, "effect") \ DF(ZHPT_EFFECT, "effect") \
DF(ZHPT_HARDWARE, "hardware") \ DF(ZHPT_HARDWARE, "hardware") \
DF(ZHPT_ERROR, "") \
DF(ZHPT_MAX, "") DF(ZHPT_MAX, "")
typedef enum // Enumeration of payload types supported by the ESP-NOW gateway. typedef enum // Enumeration of payload types supported by the ESP-NOW gateway.
@ -213,48 +214,59 @@ typedef enum // Enumeration of cover types supported by the Home Assistant. For
*/ */
char *zh_get_cover_device_class_value_name(ha_cover_device_class_t value); char *zh_get_cover_device_class_value_name(ha_cover_device_class_t value);
#define HA_SENSOR_DEVICE_CLASS \ #define HA_SENSOR_DEVICE_CLASS \
DF(HASDC_NONE, "") \ DF(HASDC_NONE, "") \
DF(HASDC_APPARENT_POWER, "apparent_power") \ DF(HASDC_APPARENT_POWER, "apparent_power") /* Apparent power in VA */ \
DF(HASDC_AQI, "aqi") \ DF(HASDC_AQI, "aqi") /* Air quality index (unitless) */ \
DF(HASDC_BATTERY, "battery") \ DF(HASDC_BATTERY, "battery") /* Percentage of battery that is left in % */ \
DF(HASDC_CARBON_DIOXIDE, "carbon_dioxide") \ DF(HASDC_CARBON_DIOXIDE, "carbon_dioxide") /* Carbon dioxide in CO2 (Smoke) in ppm */ \
DF(HASDC_CARBON_MONOXIDE, "carbon_monoxide") \ DF(HASDC_CARBON_MONOXIDE, "carbon_monoxide") /* Carbon monoxide in CO (Gas CNG/LPG) in ppm */ \
DF(HASDC_CURRENT, "current") \ DF(HASDC_CURRENT, "current") /* Current in A, mA */ \
DF(HASDC_DATE, "date") \ DF(HASDC_DATE, "date") /* Date string (ISO 8601) */ \
DF(HASDC_DISTANCE, "distance") \ DF(HASDC_DISTANCE, "distance") /* Generic distance in km, m, cm, mm, mi, yd, or in */ \
DF(HASDC_DURATION, "duration") \ DF(HASDC_DURATION, "duration") /* Duration in d, h, min, or s */ \
DF(HASDC_ENERGY, "energy") \ DF(HASDC_ENERGY, "energy") /* Energy in Wh, kWh, MWh, MJ, or GJ */ \
DF(HASDC_FREQUENCY, "frequency") \ DF(HASDC_FREQUENCY, "frequency") /* Frequency in Hz, kHz, MHz, or GHz */ \
DF(HASDC_GAS, "gas") \ DF(HASDC_GAS, "gas") /* Gasvolume in m³, ft³ or CCF */ \
DF(HASDC_HUMIDITY, "humidity") \ DF(HASDC_HUMIDITY, "humidity") /* Percentage of humidity in the air in % */ \
DF(HASDC_ILLUMINANCE, "illuminance") \ DF(HASDC_ILLUMINANCE, "illuminance") /* The current light level in lx */ \
DF(HASDC_MOISTURE, "moisture") \ DF(HASDC_MOISTURE, "moisture") /* Percentage of water in a substance in % */ \
DF(HASDC_MONETARY, "monetar") \ DF(HASDC_MONETARY, "monetary") /* The monetary value (ISO 4217) */ \
DF(HASDC_NITROGEN_DIOXIDE, "nitrogen_dioxide") \ DF(HASDC_NITROGEN_DIOXIDE, "nitrogen_dioxide") /* Concentration of nitrogen dioxide in µg/m³ */ \
DF(HASDC_NITROGEN_MONOXIDE, "nitrogen_monoxide") \ DF(HASDC_NITROGEN_MONOXIDE, "nitrogen_monoxide") /* Concentration of nitrogen monoxide in µg/m³ */ \
DF(HASDC_NITROUS_OXIDE, "nitrous_oxide") \ DF(HASDC_NITROUS_OXIDE, "nitrous_oxide") /* Concentration of nitrous oxide in µg/m³ */ \
DF(HASDC_OZONE, "ozone") \ DF(HASDC_OZONE, "ozone") /* Concentration of ozone in µg/m³ */ \
DF(HASDC_PM1, "pm1") \ DF(HASDC_PM1, "pm1") /* Concentration of particulate matter less than 1 micrometer in µg/m³ */ \
DF(HASDC_PM10, "pm10") \ DF(HASDC_PM10, "pm10") /* Concentration of particulate matter less than 10 micrometers in µg/m³ */ \
DF(HASDC_PM25, "pm25") \ DF(HASDC_PM25, "pm25") /* Concentration of particulate matter less than 2.5 micrometers in µg/m³ */ \
DF(HASDC_POWER_FACTOR, "power_factor") \ DF(HASDC_POWER_FACTOR, "power_factor") /* Power factor (unitless), unit may be None or % */ \
DF(HASDC_POWER, "power") \ DF(HASDC_POWER, "power") /* Power in W or kW */ \
DF(HASDC_PRECIPITATION, "precipitation") \ DF(HASDC_PRECIPITATION, "precipitation") /* Accumulated precipitation in cm, in or mm */ \
DF(HASDC_PRECIPITATION_INTENSITY, "precipitation_intensity") \ DF(HASDC_PRECIPITATION_INTENSITY, "precipitation_intensity") /* Precipitation intensity in in/d, in/h, mm/d or mm/h */ \
DF(HASDC_PRESSURE, "pressure") \ DF(HASDC_PRESSURE, "pressure") /* Pressure in Pa, kPa, hPa, bar, cbar, mbar, mmHg, inHg or psi */ \
DF(HASDC_REACTIVE_POWER, "reactive_power") \ DF(HASDC_REACTIVE_POWER, "reactive_power") /* Reactive power in var */ \
DF(HASDC_SIGNAL_STRENGTH, "signal_strength") \ DF(HASDC_SIGNAL_STRENGTH, "signal_strength") /* Signal strength in dB or dBm */ \
DF(HASDC_SPEED, "speed") \ DF(HASDC_SPEED, "speed") /* Generic speed in ft/s, in/d, in/h, km/h, kn, m/s, mph or mm/d */ \
DF(HASDC_SULPHUR_DIOXIDE, "sulphur_dioxide") \ DF(HASDC_SULPHUR_DIOXIDE, "sulphur_dioxide") /* Concentration of sulphur dioxide in µg/m³ */ \
DF(HASDC_TEMPERATURE, "temperature") \ DF(HASDC_TEMPERATURE, "temperature") /* Temperature in °C, °F or K */ \
DF(HASDC_TIMESTAMP, "timestamp") \ DF(HASDC_TIMESTAMP, "timestamp") /* Datetime object or timestamp string (ISO 8601) */ \
DF(HASDC_VOLATILE_ORGANIC_COMPOUNDS, "volatile_organic_compounds") \ DF(HASDC_VOLATILE_ORGANIC_COMPOUNDS, "volatile_organic_compounds") /* Concentration of volatile organic compounds in µg/m³ */ \
DF(HASDC_VOLTAGE, "voltage") \ DF(HASDC_VOLTAGE, "voltage") /* Voltage in V, mV */ \
DF(HASDC_VOLUME, "volume") \ DF(HASDC_VOLUME, "volume") /* Generic volume in L, mL, gal, fl. oz., m³, ft³, or CCF */ \
DF(HASDC_WATER, "water") \ DF(HASDC_WATER, "water") /* Water consumption in L, gal, m³, ft³, or CCF */ \
DF(HASDC_WEIGHT, "weight") \ DF(HASDC_WEIGHT, "weight") /* Generic mass in kg, g, mg, µg, oz, lb, or st */ \
DF(HASDC_WIND_SPEED, "wind_speed") \ DF(HASDC_WIND_SPEED, "wind_speed") /* Wind speed in Beaufort, ft/s, km/h, kn, m/s, or mph */ \
DF(HASDC_ATMOSPHERIC_PRESSURE, "atmospheric_pressure") /* Atmospheric pressure in cbar, bar, hPa, mmHg, inHg, kPa, mbar, Pa or psi */ \
DF(HASDC_DATA_RATE, "data_rate") /* Data rate in bit/s, kbit/s, Mbit/s, Gbit/s, B/s, kB/s, MB/s, GB/s, KiB/s, MiB/s or GiB/s */ \
DF(HASDC_DATA_SIZE, "data_size") /* Data size in bit, kbit, Mbit, Gbit, B, kB, MB, GB, TB, PB, EB, ZB, YB, KiB, MiB, GiB, TiB, PiB, EiB, ZiB or YiB */ \
DF(HASDC_ENERGY_STORAGE, "energy_storage") /* Stored energy in Wh, kWh, MWh, MJ, or GJ */ \
DF(HASDC_ENUM, "enum") /* Has a limited set of (non-numeric) states */ \
DF(HASDC_IRRADIANCE, "irradiance") /* Irradiance in W/m² or BTU/(h⋅ft²) */ \
DF(HASDC_PH, "ph") /* Potential hydrogen (pH) value of a water solution */ \
DF(HASDC_SOUND_PRESSURE, "sound_pressure") /* Sound pressure in dB or dBA */ \
DF(HASDC_VOLATILE_ORGANIC_COMPOUNDS_PARTS, "volatile_organic_compounds_parts") /* Ratio of volatile organic compounds in ppm or ppb */ \
DF(HASDC_VOLUME_FLOW_RATE, "volume_flow_rate") /* Volume flow rate in m³/h, ft³/min, L/min, gal/min */ \
DF(HASDC_VOLUME_STORAGE, "volume_storage") /* Generic stored volume in L, mL, gal, fl. oz., m³, ft³, or CCF */ \
DF(HASDC_MAX, "") DF(HASDC_MAX, "")
typedef enum // Enumeration of sensor types supported by the Home Assistant. For details see https://www.home-assistant.io/integrations/sensor. typedef enum // Enumeration of sensor types supported by the Home Assistant. For details see https://www.home-assistant.io/integrations/sensor.
@ -389,15 +401,22 @@ typedef enum // Enumeration of led types supported by gateway.
#undef DF #undef DF
} ha_led_type_t; } ha_led_type_t;
#define HA_SENSOR_TYPE \ #define HA_SENSOR_TYPE \
DF(HAST_NONE, "") \ DF(HAST_NONE, "") \
DF(HAST_DS18B20, "DS18B20") \ DF(HAST_DS18B20, "DS18B20") \
DF(HAST_DHT11, "DHT11") \ DF(HAST_AHT, "AHT") /* AHT10/AHT20/AHT21/AHT25/AHT30 */ \
DF(HAST_DHT22, "DHT22") \ DF(HAST_SHT, "SHT") /* SHT2X/3X/4X */ \
DF(HAST_GATEWAY, "") \ DF(HAST_GATEWAY, "") \
DF(HAST_WINDOW, "") \ DF(HAST_WINDOW, "") \
DF(HAST_DOOR, "") \ DF(HAST_DOOR, "") \
DF(HAST_LEAKAGE, "") \ DF(HAST_LEAKAGE, "") \
DF(HAST_DHT, "DHT") /* DHT11/DHT22/AM2302/AM2320 */ \
DF(HAST_BH1750, "BH1750") \
DF(HAST_BMP280, "BMP280") /* BMP180/BMP280 */ \
DF(HAST_BME280, "BME280") \
DF(HAST_BME680, "BME680") \
DF(HAST_HTU, "HTU") /* HTU20/HTU21/HTU30/HTU31 */ \
DF(HAST_HDC1080, "HDC1080") \
DF(HAST_MAX, "") DF(HAST_MAX, "")
typedef enum // Enumeration of sensor / binary sensor supported by gateway. typedef enum // 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_t binary_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_t binary_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_t payload_on; // The payload that represents ON state. ha_on_off_type_t payload_on; // The payload that represents ON state.
ha_on_off_type_t payload_off; // The payload that represents OFF state. ha_on_off_type_t payload_off; // The payload that represents OFF state.
uint16_t expire_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_t expire_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_t off_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. uint16_t off_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.
bool enabled_by_default; // Flag which defines if the entity should be enabled when first added. bool enabled_by_default; // Flag which defines if the entity should be enabled when first added.
bool force_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). bool force_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_t qos; // The maximum QoS level to be used when receiving and publishing messages. uint8_t qos; // The maximum QoS level to be used when receiving and publishing messages.
bool retain; // If the published message should have the retain flag on or not. bool retain; // 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_t unique_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_t unique_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_t sensor_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_t sensor_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.
char unit_of_measurement[5]; // Defines the units of measurement of the sensor, if any. char unit_of_measurement[5]; // Defines the units of measurement of the sensor, if any.
uint8_t suggested_display_precision; // The number of decimals which should be used in the sensors state after rounding. uint8_t suggested_display_precision; // The number of decimals which should be used in the sensors state after rounding.
uint16_t expire_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_t expire_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.
bool enabled_by_default; // Flag which defines if the entity should be enabled when first added. bool enabled_by_default; // Flag which defines if the entity should be enabled when first added.
bool force_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). bool force_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_t qos; // The maximum QoS level to be used when receiving and publishing messages. uint8_t qos; // The maximum QoS level to be used when receiving and publishing messages.
bool retain; // If the published message should have the retain flag on or not. bool retain; // 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_t sensor_type; // Sensor types. @note Used in zh_espnow_sensor firmware only. ha_sensor_type_t sensor_type; // Sensor type. @note Used in zh_espnow_sensor firmware only.
uint8_t sensor_pin_1; // Sensor GPIO number 1. @note Main pin for 1-wire sensors, SDA pin for I2C sensors. uint8_t sensor_pin_1; // Sensor GPIO number 1. @note Main pin for 1-wire sensors, SDA pin for I2C sensors.
uint8_t sensor_pin_2; // Sensor GPIO number 2. @note SCL pin for I2C sensors. uint8_t sensor_pin_2; // Sensor GPIO number 2. @note SCL pin for I2C sensors.
uint8_t power_pin; // Power GPIO number (if used sensor power control). uint8_t power_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_t led_type; // Led types. @note Used in zh_espnow_led firmware only. ha_led_type_t led_type; // Led type.
uint8_t first_white_pin; // First white GPIO number. uint8_t first_white_pin; // First white GPIO number.
uint8_t second_white_pin; // Second white GPIO number (if present). uint8_t second_white_pin; // Second white GPIO number (if present).
uint8_t red_pin; // Red GPIO number (if present). uint8_t red_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_t relay_pin; // Relay GPIO number. uint8_t relay_pin; // Relay GPIO number.
bool relay_on_level; // Relay ON level. @note HIGH (true) / LOW (false). bool relay_on_level; // Relay ON level. @note HIGH (true) / LOW (false).
uint8_t led_pin; // Led GPIO number (if present). uint8_t led_pin; // Led GPIO number (if present).
bool led_on_level; // Led ON level (if present). @note HIGH (true) / LOW (false). bool led_on_level; // Led ON level (if present). @note HIGH (true) / LOW (false).
uint8_t int_button_pin; // Internal button GPIO number (if present). uint8_t int_button_pin; // Internal button GPIO number (if present).
bool int_button_on_level; // Internal button trigger level (if present). @note HIGH (true) / LOW (false). bool int_button_on_level; // Internal button trigger level (if present). @note HIGH (true) / LOW (false).
uint8_t ext_button_pin; // External button GPIO number (if present). uint8_t ext_button_pin; // External button GPIO number (if present).
bool ext_button_on_level; // External button trigger level (if present). @note HIGH (true) / LOW (false). bool ext_button_on_level; // External button trigger level (if present). @note HIGH (true) / LOW (false).
uint8_t sensor_pin; // Sensor GPIO number (if present). uint8_t sensor_pin; // Sensor GPIO number (if present).
ha_sensor_type_t sensor_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_t sensor_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_t measurement_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_t sensor_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_t sensor_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_t connect; // 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_t connect; // 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_t open; // 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_t open; // 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_t battery; // 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_t battery; // 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_t reserved_3; // Reserved for future development. ha_on_off_type_t reserved_3; // Reserved for future development.
ha_on_off_type_t reserved_4; // Reserved for future development. ha_on_off_type_t reserved_4; // Reserved for future development.
ha_on_off_type_t reserved_5; // Reserved for future development. ha_on_off_type_t reserved_5; // Reserved for future development.
ha_on_off_type_t reserved_6; // Reserved for future development.
ha_on_off_type_t reserved_7; // Reserved for future development.
ha_on_off_type_t reserved_8; // Reserved for future development.
ha_on_off_type_t reserved_9; // Reserved for future development.
ha_on_off_type_t reserved_10; // Reserved for future development.
ha_on_off_type_t reserved_11; // Reserved for future development.
ha_on_off_type_t reserved_12; // Reserved for future development.
ha_on_off_type_t reserved_13; // Reserved for future development.
ha_on_off_type_t reserved_14; // Reserved for future development.
ha_on_off_type_t reserved_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_t sensor_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_t sensor_type; // Sensor type. @note Used to identify the sensor type by ESP-NOW gateway and send the appropriate sensor status messages to MQTT.
float temperature; // Temperature value (if present). float temperature; // Temperature value (if present).
float humidity; // Humidity value (if present). float humidity; // Humidity value (if present).
float pressure; // Pressure value (if present). float atmospheric_pressure; // Atmospheric pressure value (if present).
float quality; // Quality value (if present). float aqi; // Air quality index (if present).
float voltage; // Voltage value (if present). float voltage; // Voltage value (if present).
float reserved_1; // Reserved for future development. float illuminance; // Light level (if present).
float reserved_2; // Reserved for future development. float uv_index; // UV index (if present).
float reserved_3; // Reserved for future development. float reserved_3; // Reserved for future development.
float reserved_4; // Reserved for future development. float reserved_4; // Reserved for future development.
float reserved_5; // Reserved for future development. float reserved_5; // Reserved for future development.
float reserved_6; // Reserved for future development.
float reserved_7; // Reserved for future development.
float reserved_8; // Reserved for future development.
float reserved_9; // Reserved for future development.
float reserved_10; // Reserved for future development.
float reserved_11; // Reserved for future development.
float reserved_12; // Reserved for future development.
float reserved_13; // Reserved for future development.
float reserved_14; // Reserved for future development.
float reserved_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_t status; // 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_t status; // 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.
{
char message[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.
{ {
zh_device_type_t device_type; // ESP-NOW device type. char app_name[32]; // Firmware application name.
char app_name[32]; // Firmware application name. char app_version[32]; // Firmware application version.
char app_version[32]; // Firmware application version.
uint8_t mac_addr[6]; // ESP-NOW node MAC address.
} espnow_ota_data; } espnow_ota_data;
struct // Tertiary structure for transfer from ESP-NOW gateway to ESP-NOW node OTA update data. struct // Tertiary structure for transfer from ESP-NOW gateway to ESP-NOW node OTA update data.
{ {

View File

@ -1 +1 @@
2.0.0 2.0.5