public-espnow2mqtt/002-espnow2mqtt_receiver/changelog.txt

597 lines
18 KiB
Plaintext
Raw Permalink Normal View History

2024-05-18 14:07:37 +01:00
TODO:
0 - implement send command to sender in LoRa (now there is no feedback from receiver to sender if LoRa in use only)
1 - implement #ifdef DEBUG instead of if (debug_mode)
2 - improve CP html, add old values, checking if new are correct etc (check in sender sketch)
3 - // config["exp_aft"] never expire sensor - to avoid "unavailable" (but how to recognize if something not working?)
4 - add common libs to the path on server!
Webserial:
- http://HOSTNAME.local/log
- commands: start, stop, info, reset, restart, update
OTA:
- http://HOSTNAME.local:8080/update
2024-05-01
3.10.1 - send "cleared" to individual gw cmd topic on clear_commands command
2024-05-01
3.10.0 - command_for_all_senders_topic introduced to send only 1 message with command to all gateways:
/client/allgateways/cmd/....
2024-04-19
3.9.1 - replaced VERSION with ZH_PROG_VERSION
2024-04-19
3.9.0 - firmware moved to internet
- automatic ftp of binary file to ftp
2024-02-08
3.8.4 - update comment only - no need to recompile
2024-01-15
3.8.3 - availability topic inside top level and not as sensor
2024-01-14
3.8.2 - changing topics and top level topic, ALL data done
2024-01-14
3.8.1 - changing topics and top level topic, gw data done
2024-01-13
3.8.0 - limit mqtt_publish_***_config() to only 1 time after restart (all sensors) - after delete from HA must restart the bridge!
(some in main.cpp and most in mqtt_publish_gw_data.h)
- restart button left with config always it so still possible to restart from HA as the button will appear there after deletion
- most mqtt messages use universal functions except:
- mqtt_publish_gw_status_values()
- mqtt_publish_switch_publish_values()
- HEARTBEAT_INTERVAL_S = 15
- move VERSION to platformio.ini
2024-01-10
3.7.3 - splitting receiver from sendor on gitlab
2024-01-09
3.7.3 - HEARTBEAT_INTERVAL_S=60, as still gw sends always its configs
- WAIT_FOR_WIFI=10s
2024-01-09
3.7.2 - send sender's config mqtt message only on boot=1 of the sensor device - to avoid mqtt traffic
- weblog off as compiled remotely
2024-01-08
3.7.1 - when DEBUG defined, the sensors dont receive the command - never compile with DEBUG for Production!
2024-01-02
3.7.0 - fatal error in publish_gw_data - wrong conversion form IP to char
- esphome/AsyncTCP-esphome@2.0.0 to avoid issues wiht 2.0.1
2023-11-21
3.6.2 - retain_flag corrected (it was always false)
2023-09-23
3.6.1 - retain_flag rewritten, false for push_buttons (042)
2023-08-22
3.6.0 - ota_enabled done
2023-08-22
3.6.b7 - mqtt_publish_sensors_values() corrected
2023-08-22
3.6.b1 - ota_enabled - flag to exclude/include sensor device from OTA - usefull if you mark ALL devices to perform OTA but you don't want to perform on some (i.e. dining/living etc.)
2023-08-18
3.5.b2 - rename senders device name to: "name (device_id)" i.e. "Office (100)" or "Garage (28)"
- rename gw devices as well
2023-08-18
3.5.b1 - flags introduced to reduce/control amount of sensors/entity_id on HA
2023-08-18
3.4.1 - added:
#define RETAIN_SENSORS_DATA 1 // 0 or comment out to disable
#define RETAIN_GATEWAY_DATA 1 // 0 or comment out to disable
2023-08-18
3.4.0 - INA3221 integrated
2023-08-16
3.4.b1 - testing: DON'T retain the sensors data (only data - configs are still retained) and gw data
2023-08-16
3.3.3 - final (?) correction of INA measurement: Volts, Amperes, Watts
2023-08-14
3.3.2 - change name and model
2023-08-13
3.3.1 - correction in light
2023-08-13
3.3.0 - changing naming for all sensors done:
name: "esp32100 Office" - HOSTNAME + DEVICE_NAME
mode: "ESP32S2, ESPnow, env+mot" - (board, comm_type, dev_type/SENSOR_TYPE)
2023-08-13
3.3.b2 - added object_id to solve mqtt naming issues on HA (sensors)
2023-08-13
3.3.b1 - added object_id to solve mqtt naming issues on HA (GW only)
2023-08-07
3.2.b6 - change W to mW (although there is a warning in HA as illegal unit - problem solved by disabling: "config["dev_cla"] = "power"")
2023-08-05
3.2.b5 - removed blinking LEDs from loop (error fix)
2023-08-05
3.2.b4 - heartbeat 30s
2023-07-31
3.2.b3 - change mW to W
2023-07-28
3.2.b2 - // config["exp_aft"] = exp_after - never expire sensor - to avoid "unavailable" (but how to recognize if something not working?)
2023-07-15
3.2.b1 - added INA260 (current/volts/power measurements)
- set properly WiFi protocols in case other were in use (common library/captive portal)
2023-07-15
3.1.b2 - renamed:
- esp32029 - gw1 in hall, configures as ESPnow but with LoRa capability if needed when relocated
- esp32045 - gw4, new board, noy yet deployed
2023-07-15
3.1.b1 - separated devices for ESPnow and LoRa (too much of time consuming and panic)
- changed esp32045 to LoRa only - renamed from 029 gw1 hall
- added esp32029 - new board, ESPnow only (not yet installed)
- changed eso32027 and 030 to ESPnow only
2023-07-14
3.0.b6 - MAX_MQTT_ERROR 30 to reduce MQTT timeout (each try takes around 4s so 4x 30 = 120s)
2023-07-14
3.0.b5 - some cleaning
2023-07-11
3.0.b4 - some cleaning
2023-07-09
3.0.b2 - testing LoRa
2023-07-09
3.0.b1 - testing LoRa
2023-07-05
2.27.1 - exp_aft minimum for sensors = 60s, else 2x sleep time
2023-07-04
2.27.0 - valid flag in data structure - accepted
2023-06-21
2.27.b2 - valid flag in data structure - continuing
2023-06-20
2.27.b1 - valid flag in data structure - don't publish to HA if valid = 0 (default value = 1)
2023-06-14
2.26.0 - testing S3 as gateway - accepted
more - config["en"] = false; - battery
2023-06-12
2.26.b1 - testing S3 as gateway
2023-06-07
2.25.1 - force update ALWAYS, otherwise no history in Grafana!!!
2023-06-07
2.25.0 - accepted
2023-06-07
2.25.b2 - cleaning exp_aft - sleep_time_s * 3(sensors), no exp_aft for gateways (as here we have hostname_available topic)
2023-06-07
2.25.b1 - availability topic on: hostname/sensor/availability that becomes offline if mqtt/sensor/connectivity is lost - around 25s
- new sensor: hostname_available i.e.: "sensor.esp32029_available": value = {"available":"online/offline"}
- ONLY FOR GATEWAYS
2023-06-07
2.24.b3 - config["frc_upd"] = "true"; to config["frc_upd"] = "false";
2023-05-30
2.24.b2 - config["exp_aft"] = sleep_time_s * 3;
2023-05-30
2.24.b1 - sleep_time_s - testing
2023-05-20
2.23.0 - accepted working_time_ms
2023-05-19
2.23.0b1 - new myData structure - working_time_ms
2023-05-19
2.22.1 - new firmware server path on Mac
2023-03-19
2.22.0 - set hostname properly
2023-03-07
2.21.0 - full revert 2.17.0: all mqtt messages are retained
2023-02-28
2.20.0 - half revert 2.17.0: all config topics are retained, value topics non retained
2023-02-27
2.19.1e - use co2_received to trigger publishing
2023-02-27
2.19.1d - reverted 2.19.0, using 2.19.1 instead
2023-02-27
2.19.1 - don't publish CO2 if < MIN_CO2
2023-02-27
2.19.0 - mqtt_publish_sensor_with_unit_value() accepts value as char* but publishes as float!
2023-02-27
2.18.1 - FW update timer: FW_UPDATE_TIME_S - 180s - to avoid hanging without handling it
2023-02-27
2.18.0 - restart if MQTT not connected for MAX_MQTT_ERROR seconds (180)
2023-02-27
2.17.0 - exp_aft removed for all except rssi:
- sensors:
- 900s (env or env+mot) or
- 3700s (battery or push_b + motion)
- gw=60s
- all MQTT are now NOT retained!
2023-02-26
2.16.b2 - config["en"] = false; for 9 sensors
2023-02-23
2.16.b1 - push buttons implemented
2023-02-23
2.15.b2 - add IP of gateway
2023-02-23
2.15.b1 - light_high_sensitivity: 0 - low, light meas. time 13ms, 1 - high, light meas. time 403ms
2023-02-16
2.14.3a - CP_TIMEOUT_S = 180s / 3min for my receivers
2023-02-16
2.14.3 - mqtt not forced during upgrade from weblog
2023-02-16
2.14.2b1 - testing mqtt off from weblog
2023-02-16
2.14.1 - CP_TIMEOUT_S = 600s / 5min for CLIENT
2023-02-16
2.14.0 - failure with Git(hub)
2023-02-15
2.13.1c - cleaning variables
2023-02-15
2.13.1b - gateway serving as sensor on sender
2023-02-15
2.13.1a - corrections: #if (xxx == 1)
2023-02-14
2.13.1 - motion_enabled as sensor (not binary_sensor)
2023-02-13
2.13.0 - motion_enabled implemented
2023-02-12
2.12.4 - corrected humidity unit to %
2023-02-01
2.12.3 - corrected clearing the queue AGAIN but now it is ok ;-)
2023-01-31
2.12.2 - corrected clearing the queue
2023-01-31
2.12.1 - removed clearing the queue - work on it later
2023-01-30
2.12.0 - added lux measurement using TEPT4400
2023-01-30
2.11.0 - added temperature from BMP280
2023-01-29
2.10.0 - added MHZ19B CO2 sensor
- OTA_ACTIVE, USE_WEB_SERIAL per device config
2023-01-29
2.9.0 - implemented badbootcount
- only restart on command resets badbootcount, any other restart (on ESP.restart()) i.e. MQTT error will cause badbootcount to increase
good restarts:
- fw update
- queue reset
- any restart on command: webserial, mqtt, button, etc
bad restarts:
- MQTT error
- wifi error
- queue error
- if badbootcount > MAX_BAD_BOOT_COUNT erase_nvs() is performed
- when first time heartbeat() is successful it will reset badbootcount
2023-01-29
2.8.2 - added WebSerial.println() to fw_update.h, mqtt.h, main.c
- stop checking MQTT if FW update requested from webserial - new global variable: skip_mqtt
- more command to webserial (info, restart, reset, update)
- print2web enabled at start, disabled by end of setup()
2023-01-28
2.8.1 - last_cmd_received to count COMMAND_QUEUE_TIMEOUT_S from last command received
2023-01-28
2.8.0 - all LEDs can be managed from HA (on/off, dimm)
- LED removed from connect_wifi() - LED_GPIO_GATEWAY obligatory to work
2023-01-27
2.7.0 - all LED related macros redefined, BLUE-standby, RED-sensor, GREEN-gateway
2023-01-27
2.6.1 - added BMP280 air pressure to gateway
- COMMAND_QUEUE_TIMEOUT_S to clear cmd_for_sender queue
- publish to HA queue with commands size
- clear queue with commands from HA (button)
- added:
bool mqtt_publish_text_sensor_config(const char* text_sensor);
bool mqtt_publish_text_sensor_value(const char* text_sensor, const char* text_sensor_value);
bool mqtt_publish_sensor_with_unit_config(const char* sensor_with_unit, const char* sensor_unit);
bool mqtt_publish_sensor_with_unit_value(const char* sensor_with_unit, const char* sensor_unit, const char* sensor_with_unit_value);
- void measure_temp_pressure(char *pressure);
- publish config before publishing values always
-
2023-01-26
2.6.0b5 - sensor devices act on commands from receiver ;-)
2023-01-24
2.6.0b1- receiver sends confirmation to sender with command (u_int8_t), sender acts on the command accordingly
- timeout set on sender side to be WAIT_FOR_COMMAND_MS=100ms
2023-01-22
2.4.0 - reversing to publishing configs before publishing values
2023-01-21
2.3.1 - added USE_INFLUXDB to bypass MQTT (for testing purposes only for HomeKit) - disabled by default now
2023-01-18
2.3.0 - update firmware for CLIENT(s) on web, on local server for my devices
- MQTT server, port, user, password on captive_portal
2023-01-10
2.2.5 - // config["exp_aft"] for rssi, now all are not expiring
2023-01-03
2.2.4 - serial2web http://esp.local/log start to start, stop to stop prining on web, default is stopped
2022-12-25
2.1.0 - dedicated MQTT_SERVER x.43
2022-12-12
2.0.2 - corrections:
- rssi was not published as promiscuous_rx_cb was omitted - solved
- reshuffle functions definitions
- change:
- abandon zhwifi.h file
- #define MQTT_DEVICE_IDENTIFIER in config.h
2022-12-11
2.0.1 - corrections in captive_portal.h (variable names, DNS) and MQTT_DEVICE_IDENTIFIER in change_mac()
2.0.0 - captive portal done, it seems to work ;-) all is done in 1 file only: captive-portal.h so it should be movable to other sketches
- if wifi not ok CP starts
- if CP timeout occures nvs is reset, old wifi credentials are restored, restart happens and it tries WiFi again
- CP blinks LED provided in wifi_connected = connect_wifi(STATUS_GW_LED_GPIO_RED); returns bool true when connected
2022-12-11
1.26.b2- added blinking LED (error_led, global variable must be!) during CP active
2022-12-10
1.26.b1- added captive portal and nvs_reset() on restart from HA - check if all is OK !!!
1.25.0 - platformio.ini scripted - choosing boards in platformio.ini now - not in config.h (but still full board config is in config.h)
1.24.0 - wifi_ok added to myData to indicate if WiFi is configured on device sensor
2022-12-02
1.23.b3 - mqtt_publish_gw_last_updated_sensor_config never expire (as some gateways are totally idle)
1.23.b2 - added MDNS so device can be reached on hostname.local
1.23.b1 - every GW has fixed fake MAC address
2022-11-19
1.22.1 - temp and hum expire after 400s (6 minutes 40 seconds)
2022-10-31
1.22.0 - board type makes model in MQTT device
2022-10-31
1.21.10 - RESTART GW on queue FULL as data is not important anymore few minutes/hours later
2022-10-21
1.21.9 - redo setup_wifi, move some functions from espnow_start to start_wifi - all to reduce disconnections for S3 and C3
2022-10-20
1.21.8 - correcting fw_update.h for C3
2022-10-20
1.21.7 - correcting pins for ESP32-S, cleaning
2022-10-20
1.21.6 - correction in fw_update.h: #ifdefined LEDs...
2022-10-19
1.21.5 - config["exp_aft"] does not expire for anything except rssi
- rssi does not expire for new sender_type = battery
2022-10-17:
1.21.4 - improved wifi settings for wifi (all protocols)
2022-10-17:
1.21.3 - testing long range esp_wifi_set_protocol( WIFI_IF_AP, WIFI_PROTOCOL_LR );
2022-10-15:
1.21.2 - charging, boot, ontime, pretty_ontime - are now in all sensor types
2022-10-15:
1.21.1 - remove config["exp_aft"] = 3600; from motion sensor - never expire then
2022-10-13:
1.21.0 - "_pretty_ontime" changed to "_prettyontime" to distinguish them on HA
2022-10-11:
1.20.0 - finally ready
2022-10-11:
1.20.b8 - cleaning done for (probably) all functions
2022-10-10:
1.20.b5f - merged to main
1.20.b5f3- mqtt_publish_sensors_data.h corrected fully
1.20.b5f5- espnow.h corrected fully
1.20.b5f6- mqtt.h corrected fully
1.20.b6 - more cleaning done
2022-10-10:
1.20.b5c - b5 based, reconnect and loop in loop(), nice prints from publish
1.20.b5d - heartbeat in loop()
1.20.b5e - only setup_wifi() as task - all others in loop (reconnect, mqtt_loop, gw-update, sensors-update)
2022-10-10:
1.20.b5 - DON'T change MAC address - not needed and conflicting
- mqtt reconnect and loop in loop()
-
2022-10-08:
1.20.b3 - updateFirmware working
2022-10-08:
1.20.b1 - rewrite on vTasks with fully working queue
2022-10-06:
1.19.3 - cleanup of MOTION_SENSOR_GPIO
2022-10-02:
1.19.2 - cancelling 1.19.1
2022-10-02:
1.19.1 - enable queue again - testing
2022-10-02:
1.19.0 - change UPDATE_FIRMWARE_HOST to baboon server
2022-09-17:
1.18.1 - UPDATE_INTERVAL 60s
2022-09-14:
1.18.0 - "env" + "motion" + "env+mot" in mqtt_publish_sensors_data for unified sensor device
2022-08-06:
1.17.2 - add device type to name on HA
1.17.1 - batchr and batpct for motion sensors added
2022-08-05:
1.17.0 - official release 1.17.0 including both: env and motion sensors
2022-08-04:
1.12.1c - add battery to motion sensors
1.12.1b - 2nd correction for "turn RED LED on when publish switch is OFF"
1.12.1a - correction for "turn RED LED on when publish switch is OFF"
1.12.1 - deregister callback during update to HA to avoid interference between sensors
- turn RED LED on when publish switch is OFF
2022-07-26:
1.12.0 - change of the data structure
2022-07-24:
1.11.b2 - device name with or without MAC (chose in mqtt_publish_sensors_config())
- model = ESP32
2022-07-09:
1.11.b1 - added:
char sender_type[10]; // "motion" "env"
char motion[2]; // "0" "1" [2]
for motion devices to reuse gateway with the same message structure
2022-07-09:
1.10.1 - corrections
1.10.0 - remove MOTION sensor because of interference with antenna
2022-07-09:
1.9.3 - cleaning (Serial.println(), config.h etc.)
1.9.2 - motion with interrupts
- keep motion "Detected" for entire motion_delay_s time since the last detection (not the first detection)
- few cosmetics
2022-07-08:
1.9.1 - motion sensor added working always on Gateway
2022-07-04:
1.9.b1 - battery change rate, redo myData structure
2022-07-04:
1.8.2 - version and uptime added to GW status
2022-07-02:
1.8.1 - 3 LEDs, POWER_ON_LED_GPIO_GREEN with PWM
2022-07-02:
1.8.0 - common script for multiple receivers (DEVICE_ID and config.h)
2022-06-29:
1.7.2 - added support for ESP32-S3 board
- 2x LED: 1 for gateway device (STATUS_GW_LED_GPIO_RED) and 1 for sensor device (SENSORS_LED_GPIO_BLUE)
2022-06-26:
1.7.1 - change name of the device on HA (all devices) to: ESPnow_hostname_name
2022-06-26:
1.7.0 - incoming messages in the queue to avoid losing data
2022-06-24:
1.6.2 - #define GND_GPIO_FOR_LED 13 // if not equipped comment out - GND for ACTIVITY_LED_GPIO
- testing esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_11B|WIFI_PROTOCOL_11G|WIFI_PROTOCOL_11N|WIFI_PROTOCOL_LR);
to extend the range of radio (no conclusion yet)
2022-06-22:
1.6.1 - pretty_ontime implemented as string
2022-06-22:
1.6.0 - ontime implemented in seconds
2022-06-21:
1.5.0 - gateway firmware update implemented
2022-06-19:
1.4.1 - cleaning for github
2022-06-18:
1.4.0 - bootCount added
2022-06-15:
1.3.0 - switch "publish" to enable/disable publishing to HA
- buttons: update/restart
- update FW on gateway not yet implemented
2022-06-11:
1.2.0 - added device name on sender, myData.name on receiver, it goes to name of the device on HA
2022-06-11:
1.1.0 - added lux from TEPT/ADC, added CHARGING
2022-06-10:
1.0.0 - journey started ;-)