github letscontrolit/ESPEasy mega-20230304

latest releases: mega-20240822, mega-20240414, mega-20240401...
18 months ago

Release mega-20230304

Known issues:

  • mega-20230304 mqttimport disabled after reboot #4535
  • Tasks from ESPEasy P2P Networking in mega-20230304 can't be enabled #4530

Work-in-progress to fix these known issues:

  • [I2C] Don't check device availability for remote I2C devices and other improvements #4532

Changes in mega-20230304 (since mega-20221224):

TD-er (136):

  • [CacheReader] Play back the recorded CacheController data
  • [CacheReader] Add rate limiter + command to set readpos
  • [Cleanup] Speedup dumpcache page serving
  • [Cache Reader] Create binary dump messages.
  • [Cache Reader] Send binary blobs to MQTT
  • [Cache Reader] Fix check max. message size bin upload
  • [Cache Reader] Fix memory leak by indexing non existing files.
  • [Cache Reader] Fix stop increasing peek file nr when last was read.
  • [Cache Reader] Store/fetch Plugin ID per sample
  • [Cache Reader] Fix proper handling last file upload + wait
  • [ESP32 SDK] Update to ESP32 SDK 2.0.6
  • [Cache Reader] Add sending task names + fix upload all files
  • [JSON] Fix escaping invalid characters in JSON
  • [JSON] Fix escaping invalid characters in JSON
  • [Controller Queue] Reduce bin size by using inheritance
  • [Controllers] Reduce bin size by no longer using template
  • [Controllers] Reduce bin size by getting rid of extensive macros
  • [Controllers] Move TaskIndex to base class for queue elements
  • [Controller] Fix queue element vase class members being set
  • [Cache Reader] Fix not converting to PluginID twice
  • [PubSubClient] Speedup publish calls by direct writing to client
  • [Cache Reader] Fix JSON taskinfo + speedup sending to MQTT
  • [Dallas] Fix uninitialized sensor data (+crash) when sensor not found
  • [Dallas] Fix uninitialized sensor data (+crash) when sensor not found
  • [Cleanup] Fix proper initialization of controller queue elements
  • [Cleanup] Proper member initialization on ExtraTaskSettings
  • [Dallas] Show auto-detected 1Wire ID on Devices page
  • [Cleanup] Proper initialization of P036 and P037 members
  • [Dallas] Show auto-detected 1Wire ID on Devices page
  • [DNS] Fix restoring DNS server config on DHCP renewal
  • [DNS] Fix restoring DNS server config on DHCP renewal
  • [Build] Disable some plugins in custom build to make it fit again
  • [Build] Fix build on ESP8266
  • [Build] Fix building on ESP8266
  • [Build] Fix missing include
  • [Build] Fix missing include
  • [Build] Reduce bin size to make normal_esp8266_1M finish building
  • [Build] Reduce build size by not including ESP8266mDNS lib at all
  • [Build] Reduce build size by not including ESP8266mDNS lib at all
  • [Cleanup] Reduce build size.
  • [TM1621 Display] Plugin 148: Sonoff POWR3xxD and THR3xxD display (#4448)
  • [TM1621 Display] Plugin 148: Sonoff POWR3xxD and THR3xxD display (#4448)
  • [Build] Fix build error (signed/unsigned comparison)
  • [TM1621] Clean-up, simplify code slightly.
  • [TM1621] Add font containing letters for Sonoff Elite displays
  • [TM1621] Simplify code
  • [TM1621] Access to units of measure symbols
  • [TM1621] Properly formatting numericals
  • [TM1621] Clean-up unused function + fix comment
  • [TM1621] Add option to show taskvalues from plugin
  • [TM1621] Documenting commands
  • [TM1621] Documentation
  • [TM1621] Add selection of unit symbols per task page
  • [Dallas] Fix crash when pluginstats are enabled and sensor not found
  • [Dallas] Fix re-init of sensors when using 'scan on init'
  • [Cleanup] Only save/load settings from storage when changed.
  • [Cache] Only clear specific task caches when needed.
  • [Cache] Only flush task caches when config.dat file is renamed/moved
  • [Cleanup] Leave out unused code.
  • [Cleanup] Reduce build size
  • [Build] Fix missing includes.
  • [Cache] Do not load ExtraTaskSettings from storage for empty tasks.
  • [Cache] Fix saving task name and set taskvalue names
  • [Cache] Reduce nr of file load/save calls to a minimum.
  • [Cache Reader] Fix selecting start position when only 1 file is present.
  • [Cleanup] Add ChecksumType to reduce unneeded file access.
  • [Cleanup] Use ChecksumType to limit load/save
  • [Build] Add missing include
  • [Cleanup] Reduce nr load/save operations (proper init structs)
  • [Cleanup] Reduce build size
  • [Cache] Simplify task settings checksums
  • [TimingStats] Turn timing stats elements into types to check types
  • [TimingStats] Fix cast issue
  • [Cache Reader] Add configurable MQTT topics for upload/metadata
  • [Cleanup] Group timingstats & fix delete of cache controller files
  • [ADXL345] Fix setting nr. of decimals
  • [Cache Reader] Stop sending 'empty' data if cache controller not enabled
  • [Build] Add pre_custom_espXXX_IR.py due to size of IR libs
  • [ESP8266] Speedup event handling and rules parsing by caching task name
  • [Docs] Add warning about calibrating CO2 sensors
  • [ESP8266] Use different constructor for IPAddress (fix crash)
  • [Cache] Cache Controller Settings on ESP32 (slow read from LittleFS)
  • [Controller Queue] Do not format message when controller queue is full
  • [Factory Reset] Factory reset fails with valid FS, but no config.dat
  • [ESP32] Export all task values CacheController
  • [Cache Controller] Add command to flush all data in RTC memory to flash.
  • [Cache Controller] Improve CSV dump speed via /dumpcache
  • [Cache Controller] Add JoinSameTimestamp option
  • [Cache Controller] Add option to exclude not enabled tasks
  • [Cleanup] Reduce bin size on speed-optimized toString function
  • [Cache Reader] Make selecting set tasks optional + add join count column
  • [Cache Reader] Add config flags + CSV download button
  • [Cache Reader] Add Python code to decode bulk upload data sent via MQTT
  • [Cache Reader] Add intended nr of 'samples' per bulk message
  • [Cache Reader] Cleanup Export dump to CSV & fix separator
  • [Cache Reader] Allow bulk dump CSV to MQTT
  • [Cache Reader] Fix serving 'last line' of stored data
  • [Cache Reader] Send bulk taskinfo in either CSV or JSON, using settings
  • [TaskRun] Add optional unixtime as siuggested timestamp (#4497)
  • [C016] Use less includes when USES_C016 is not defined
  • [Build] Reduce build size ESP8266_normal_1M to match _1M_VCC
  • [BootState] Cleanup setting GPIO boot state
  • [Task Commands] Fix parsing parameters on commands with only taskindex
  • [Build] Fix build error on ESP32 ETH builds
  • [TaskRun] Reschedule task to set Interval
  • [TaskRun] Also reschedule on TaskValueSetAndRun
  • [TaskRun] Cleanup code
  • [TaskRun] Fix new command ScheduleTaskRun
  • [Build] Cleanup code + reduce build size
  • [Cleanup] Simplify generating task events
  • [Cleanup] Reduce build size by omitting some conversions
  • [Cleanup] Reduce bin size for (flash)string compares
  • [Cleanup] Reduce build size using own equals function for flash strings
  • [Cleanup] Reduce build size by using own equals() function
  • [Cleanup] Replace single char flash strings with char
  • [Cleanup] Fix copy/paste error handling stringcommands
  • [Cleanup] Small tweaks suggested to reduce bin size
  • [ADC] Add config commands to set calibration
  • [ADC] Document new ADC set calibration commands
  • [SenseAir] Fix reading error state from sensor
  • [Controller] Fix crash debug label for delay queue
  • [ESP32 ETH] Fix setting DNS on latest ESP32 SDK
  • [ESP32 Ethernet] Make sure any ETH power pin is pulled up at boot
  • [Build] Fix build error
  • [ESP32] Enable LTO to reduce bin size
  • [Build] Fix build ESP32 IR ext. using LTO
  • [Build] Fix extra_scripts path
  • [Build] Set Python 3.10 in build script
  • [I2C] Fix crash I2C device is set as first task, with I2C check enabled
  • [Build] Disable LTO for ESP32 and ESP32-S2 due to linker errors
  • [P025] Uncrustify code
  • [ADS1115] Cleanup I2C code + add read timeout
  • [ADS1115] Further clean-up of the code
  • automatically updated release notes for mega-20230304
  • [Build] Replace all Python 3.8 to 3.10
  • automatically updated release notes for mega-20230304

Ton Huisman (161):

  • [P138] Add Power mgt - IP5306 plugin
  • [P138] Add IP5306 library to lib folder
  • [P138] Fix some typos, clean up some obsolete comments
  • [P143] Add plugin I2C Rotary encoders
  • [Core I2C] Add I2C_writeBytes_reg function, format source
  • [P143] Add support for M5Stack I2C Rotary encoder
  • [P143] Add support for DFRobot I2C Rotary encoder
  • [P143] Add Led(s) off on exit option
  • [P143] Add Button longpress support
  • [P143] Add command handling, some refactoring
  • [P143] Remove [Testing] tag from plugin name
  • [P143] Add documentation
  • [P143] Add i2cencoder,set, command
  • [P138] Remove [Testing] tag
  • [P138] Add to I2C scanner
  • [P138] Reorder Device configuration, enable PluginStats option
  • [P138] Add documentation
  • [P138] Use same term for PowerMgt as in P137 docs
  • [P143] Move to Collection C (from A) because of build size
  • [P143] Update documentation
  • [P143] Add nullptr checks, fix byte-swap issue (M5Stack)
  • [Misc] Add byteSwap16() function
  • [P143] Replace macro by byteSwap16() function
  • [P038] Bugfix: Set default for Initial brightness > 0
  • [Misc] Revert/remove byteSwap16() function
  • [P143] Disable all code related to M5Stack encoder firmware V1.1 (no device available)
  • [P001] Get duty-cycle for [Plugin#GPIO#Pinstate#N] on PWM or SERVO pins
  • [P001] Get pinstate/duty-cycle for any plugin that registers its pins, exclude code from 1M devices
  • [Plugin] Update documentation for [Plugin##Pinstate#] use
  • [Build] Add ESP32 IRExt with Ethernet build environments
  • [Eth] Mark used Ethernet Clock pin as unusable if Ethernet is set as Preferred network medium
  • [Eth] Refactor EthClockMode vs gpio check into separate function
  • [P067] Refactoring and other improvements
  • [N001] Add Date in nail header
  • [SysVars] Add %month_s% on System variables page
  • [DateTime] Allow manual datetime command repeatedly (skip delay)
  • [SysVars] Add variable systzoffset with the timezone-offset string, like +0100
  • [N001] Add timezone offset in Date header
  • [Docs] Extend copyright year to 2023
  • [Docs] Add %sysmonth_s% and %systzoffset% variables
  • [N001] Update comments
  • [P067] Fixes and improvements in refactoring
  • [Plugin] Improved documentation for [Plugin##Pinstate#] use
  • [P067] Fix a typo that broke the Tare value of channel A
  • [P067] Minor string reductions
  • [Build] Reduce bin size by string reductions and other optimizations
  • [Build] Fix ESP8266 Custom IR build failure
  • [Build] Reduce bin size by string reductions and other optimizations, next batch
  • [Build] Reduce bin size by string reductions and other optimizations, next batch
  • [P129] Use DIRECT_pin GPIO functions
  • [Build] Adjust Custom ESP8266 as already planned to fix build failure
  • [Build] Reduce bin size by string reductions and other optimizations, next batch
  • [Build] Reduce bin size by string reductions and other optimizations, next batch
  • [Build] Reduce bin size by string reductions and other optimizations, P103 Atlas EZO
  • [P103] Uncrustify and more optimizations
  • [P129] Suppress PVS Studio false positive warning
  • [P103] Refactoring, move some code into PluginStructs folder
  • [P039] Add Temperature Threshold option (#4451), update documentation
  • [Build] Fix warning: comparison between signed and unsigned integer expressions
  • [Build] Include P019 PCF8574 in Climate build, as documented (#4444)
  • [Build] Reduce bin size by string reductions and other optimizations, next batch
  • [Build] Reduce bin size by string reductions and other optimizations, final batch
  • [INIT] Validate all plugins to return success = true when successful
  • [Devices] Check Task settings on save except MINIMAL builds (#4455)
  • [Github build] Switch job-runner to Ubuntu 22.04 to possibly resolve runner failures
  • [Github build] Revert job-runner to Ubuntu 20.04 because of python2 missing
  • [Github build] Switch job-runner to Ubuntu 22.04 (without python-dev)
  • [Github] Replace deprecated set-output command by environment file
  • [Github build] Switch release.yml job-runners also to Ubuntu 22.04 (in line with build.yml)
  • [CDN] Update link for Chart.js
  • [CDN] Enable overriding CDN urls in Custom.h
  • [Adagfx plugins] Improve PLUGIN_READ performance
  • [Config] Add option to zerofill Unitnr when appended to Hostname
  • [Config] Add missing conditional compile check, minor String improvements
  • [Config] Add missing conditional compile check, minor String improvements
  • [Commands] Add PostToHTTP command
  • [Commands] Add missing documentation for NTPHost command
  • [WiFi] Workaround Arduino ESP8266 issue, correct TaskExit event generation
  • [WiFi] Code optimization
  • [WiFi] Correct TaskExit event generation, revert unneeded previous change
  • [P042] Reduce size by minifying js scripts, implement jscolor latest updates
  • [Markup] Add id attribute to input elements for easing javascript support
  • [P042] Reformat source using uncrustify
  • [Misc] Add RGB2HSV, migrated from P042 (float version)
  • [P042] Add Led Count option, more improvements and optimizations
  • [P042] Move to PluginStruct for multi-instance use
  • [Config] Zero fill unitnr option also disabled in 1M builds
  • [Build] Reduce build size by minifying some inlined javascript code
  • [Build] Reduce size of embedded css by gzipping it
  • [ColorCode] Add PostToHTTP command
  • [Config] Revert zerofill option, add %unit_0%, parse sysvars in hostname
  • [Docs] Fix typo in PostToHTTP documentation
  • [Config] Replace Settings.Name by Settings.getUnitname()
  • [Config] Rename getUnitname() to getName() to avoid confusion, fix error that was introduced
  • [Config] Update documentation
  • [Rules] Accept if and elseif statements only at the start of a line
  • [MQTT] Publish command allow empty payload
  • [P067] Add documentation
  • [Build] Fix some compiler warnings
  • [I2C] Check if I2C device is connected in PLUGIN_INIT and PLUGIN_READ
  • [I2C] Add I2C_deviceCheck() to all I2C plugins PLUGIN_INIT and PLUGIN_READ (if applicable)
  • [I2C] Conditionally compile I2C_deviceCheck() and exclude from Minimal and ESP8266 Display builds
  • [I2C] Conditionally compile I2C_deviceCheck() and exclude from Minimal and ESP8266 Display builds
  • [I2C] Fix buildsize issues for 1M builds
  • [I2C] Rework implementation, separate I2C_GET_ADDRESS from the device check, add setting for Device check
  • [I2C] Device check: Update documentation
  • [I2C] Add FEATURE flags to Custom-sample.h
  • [I2C] Device check: Fix issues and some code improvement
  • [I2C] Refactor getTaskI2CAddress()
  • [I2C] Show task I2C address on Devices page
  • [I2C] Fix copy/paste error [P019]
  • [P072] Correct typo in calculation, code improvement
  • [P030] Remove plugin (BMP280) from repository
  • [P077] CSE7766 Add serial GPIO pin configuration
  • [P077] Cleanup unused code from source
  • [P077] Fix support for ports other than HWSerial0, add calibration commands
  • [P077] Add documentation
  • [P077] Add safety warning, correct few documentation errors
  • [P077] Separate serial0 SERIAL_IN/TEN_PER_SECOND handling, other fixes
  • [Build] Simplify the content of the Binaries.zip file
  • [Build] Exclude unused debug folder from Binaries.zip
  • [Build] Replace Espressif flash download tool 3.8.5 by 3.9.3
  • [Build] Testing release steps in pr build
  • [Build] Temporariy reducing the number of envs to improve testing turnaround time
  • [Build] Testing release steps in pr build, fix typo
  • [Build] Temporariy reducing the number of envs to improve testing turnaround time
  • [Build] Temporariy reducing the number of envs to improve testing turnaround time
  • [Build] Testing release steps in pr build, fix script
  • [Build] Testing release steps in pr build, fix quotes
  • [Build] Remove outdated ESP8266-only Flash tools from disrtibution
  • [Build] Testing release steps in pr build, fix script, add date/time
  • [Build] Testing release steps in pr build, fix script
  • [Build] Testing release steps in pr build, fix script, add date & run_id
  • [Build] Testing release steps in pr build, fix script
  • [Build] Testing release steps in pr build, improved file filtering, date format
  • [Build] Testing release steps in pr build, include mega_ in zip filenames
  • [Build] Testing release steps in pr build, filename tweaks
  • [Build] Improve release build by creating separate ESP82xx and ESP32 dated archives
  • [Build] Restore ESP.Easy.Flasher.exe (ESP8266 usable only)
  • [Build] remove undesirable files from ESP32 archive
  • [Build] For PR/Push builds repackage Binaries.zip into separate ESP82xx/ESP32 artifacts
  • [Build] For PR/Push builds repackage Binaries.zip into separate ESP82xx/ESP32 artifacts, fix typo
  • [Build] For PR/Push builds repackage Binaries.zip into separate ESP82xx/ESP32 artifacts, fix typo
  • [Build] For PR/Push builds repackage Binaries.zip into separate ESP82xx/ESP32 artifacts, fix typo
  • [Build] Remove Binaries artifact after repackaging
  • [Build] Restore all build environments to original state
  • [Build] Schedule repackage after build step (avoid scheduling delays)
  • [Build] Switch actions plugin, add concurrency check for same PR
  • [Build] Actions plugin used only checks jobs with a name attribute
  • [Build] Rename build-matrix to build-all, test concurrency check
  • [Build] Fix typo, test concurrency check
  • [Build] Revert waiting for job to complete action, keep concurrency check
  • [Scheduled Tasks] Parse correct argument for scheduling
  • [P067] Ignore first PLUGIN_READ as no data is available yet
  • [P067] Update documentation
  • [AdaGFX_helper] Parse commands and colors using GetCommandCode()
  • [P116][P131] Add get_config_value support (from AdafruitGFX_helper)
  • [P116][P131] Update documentation
  • [P028] Align INFO logging with other plugins
  • [I2C] Log error if unresponsive device gets disabled
  • [Release] Upload correct files in Binaries artifact

christian-gosse (2):

  • Add some log about current conversion channel number
  • Correct Handling of end of conversion

flashmark (20):

  • Introduce P145 Gasses MQ-xxx
  • P145 cleanup, added sensors, start ESP32 support
  • P145 Cleanup, update calibrated value
  • P145 add [TESTING]
  • Rework during review
  • Removed P085 & P100 from test setup to free some space P145 Tidy up some comments
  • Rollback removal of P085 and P100 exclusion in prwe_custom_esp32.py
  • P145 start documentation
  • Rework during review rework
  • P145 fixes during review P145 updated documentation
  • P145 code cleanup,small GUI changes, documentation updates
  • P145 implement lowVcc feature, reduce memory usage, cleanup
  • P145 Save some memory
  • P145 save some memory
  • Removed strings from sensor definition table Added optional heater control for MQ-7 Added new sensor definitions Rework on algorithms
  • P145 updated documentation
  • P145 small documentation updates
  • P145 testing autocalibration
  • P145 plugin updates & refactoring
  • P145 restructuring and some updates.

Don't miss a new ESPEasy release

NewReleases is sending notifications on new releases.