Commit Graph
18156 Commits
Author SHA1 Message Date
Claude da96905f27 [Dallas] Keep 1-Wire ISR functions in IRAM on ESP32
Dallas_read_bit_ISR() and Dallas_write_bit_ISR() have only a single
caller, Dallas_read_bit() / Dallas_write_bit(), which is not in IRAM.
The ESP32 builds use LTO (-flto=auto, set by the build flags of the
arduino-esp32 framework package), so GCC inlines these functions into
their caller and the timing critical code with interrupts disabled runs
from flash. DALLAS_IRAM_ATTR thus had no effect for these functions.
Without LTO the same happens as soon as these functions are static
(-finline-functions-called-once is enabled at -Os).

Add noinline to DALLAS_IRAM_ATTR on ESP32.
ESP8266 is not affected, as DALLAS_IRAM_ATTR is empty there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018S3oPMc7qQGQGGGyMUvcaf
2026-10-17 23:58:26 +02:00
Claude 55828c8851 [NodeType] Return empty string again for unknown node types
After splitting toNodeTypeDisplayString(), every node type which is not
ESP Easy, ESP Easy Mega, RPI Easy, Arduino Easy or Nano Easy was shown as
"ESP Easy 32". For example nodeType 0, the default of NodeStruct::nodeType.
Before, an empty string was returned for unknown node types.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018S3oPMc7qQGQGGGyMUvcaf
2026-10-17 23:56:07 +02:00
TD-er 396504655e [Build] Reduce build size using static functions in src/WebServer 2026-10-17 23:55:19 +02:00
TD-er 5961277bf8 [Build] Reduce build size by static only functions in .cpp files 2026-10-17 18:03:37 +02:00
TD-er 11070fbd17 [Build] Reduce build size using static functions
As suggested here: https://github.com/letscontrolit/ESPEasy/pull/5654#issuecomment-6222575013
2026-10-17 03:32:20 +02:00
TD-er 680517fa4c Merge pull request #5654 from goodprogrammist/bugfix/Rules_unknown_braces_endless_loop
[Rules] Fix endless loop on unknown {...} in rules on ESP8266
2026-10-17 01:08:32 +02:00
Aleksandr ZharovandClaude Opus 5.5 f23953d428 [Rules] Make the escape/mask helpers static
hideEscaped(), hideMasked() and restoreMaskedAndEscaped() are only used in
ESPEasyRules.cpp. With internal linkage GCC inlines them where they are
called once (builds without FEATURE_EXTENDED_STRING_FUNCTIONS), so the
ESP8266 build is the same size as before the previous commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:21:12 +05:00
Aleksandr ZharovandClaude Opus 5.5 0cf0b0df25 [Rules] Use the escape/mask helpers also without FEATURE_EXTENDED_STRING_FUNCTIONS
parse_string_commands() had #else copies of hideEscaped(), hideMasked()
and restoreMaskedAndEscaped() for builds without
FEATURE_EXTENDED_STRING_FUNCTIONS, and the previous commit fixed a bug in
one of those copies. Build the helpers always and keep only the escaped
colon (\:) handling under FEATURE_EXTENDED_STRING_FUNCTIONS, the same as
in stripEscapeCharacters() / addEscapeCharacters().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:34:33 +05:00
Aleksandr ZharovandClaude Opus 5.5 fbd7e43d5d [Rules] Fix endless loop on unknown {...} in rules on ESP8266
In parse_string_commands() the branch without FEATURE_EXTENDED_STRING_FUNCTIONS
masked '{' and '}' in the whole line instead of in replacement (regression from
4e191fc5b). The following line.replace() put the unmasked braces back, so
get_next_inner_bracket() found them again and the loop never ended
(SW watchdog / exception reset). Mask replacement, as before 4e191fc5b.

Fixes #5653

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 17:01:26 +05:00
TD-er ed56769e43 Merge pull request #5652 from goodprogrammist/bugfix/P056_ReadAverage_by_reference
[P056] Fix SDS011 always reporting 0 (ReadAverage by reference)
2026-10-16 11:12:35 +02:00
Aleksandr Zharov 31ba12eeae [P056] Fix ReadAverage() output params passed by value, always returning 0
Regression from #5369: P056_data_struct::ReadAverage() took float pm25/pm10 by value, so the averaged values never reached the caller and the task values stayed 0. Pass them by reference like CjkSDS011::ReadAverage().
2026-10-16 11:07:06 +05:00
TD-er 0c5d756fd1 Merge pull request #5645 from Firat17aze/fix/hdc10xx-read-errors
[P072] Reject failed HDC10xx sensor reads
2026-10-10 15:47:27 +02:00
Firat17aze ae1ff88401 Only mark HDC10xx values invalid on read errors
Avoid provisional NAN writes on valid reads because setFloat dispatches formulas. Use the invalid-value handler only after a failed register selection or short response. Add the requested GitHub changelog attribution.

OpenAI Codex automation prepared and validated this follow-up. The submitted plugin fails four new setter-order regression scenarios; all 12 revised host scenarios pass with ASan/UBSan. Both complete climate-A ESP8266/ESP32 firmware builds pass, retaining existing warnings in unchanged sources. No physical ESP board or HDC10xx sensor was tested.
2026-10-09 17:08:03 -04:00
Firat17aze d14fc2f7a9 Reject failed HDC10xx I2C reads 2026-10-09 15:30:33 -04:00
TD-er d4efae2f20 Merge pull request #5623 from vaibhav8a/fix-typo-noticeable
docs: fix the misspellings across docs/source
2026-10-07 21:56:56 +02:00
TD-er a31a417540 Merge pull request #5639 from BrainHunter/Fix_SHT1x_SendDataOption
Fixed SendDataOption in P031_SHT1X.ino
2026-10-07 21:55:52 +02:00
TD-er 06b2d3a037 Merge pull request #5642 from tonhuisman/bugfix/Command-udpport-argument-parsing
[Commands] UdpPort argument processing fix
2026-10-07 21:54:56 +02:00
TD-er e826e12969 Merge pull request #5644 from tonhuisman/bugfix/MQTT-discovery-sysname-not-made-ha-compliant
[Bugfix] MQTT AutoDiscovery should use HA-compliant SysName
2026-10-07 21:54:07 +02:00
Ton Huisman 85e60c479b [Bugfix] MQTT AutoDiscovery should use HA-compliant SysName 2026-10-07 21:47:48 +02:00
Ton Huisman 80ebf9a8b7 Merge branch 'mega' into bugfix/Command-udpport-argument-parsing 2026-10-07 21:40:36 +02:00
TD-er 8ca31acb52 Merge pull request #5637 from TD-er/bugfix/load_1wire_page_after_save
[1Wire] Fix caching issue + multiple attempts scan sensors after save
2026-10-07 13:04:59 +02:00
TD-er 02b8acc73e [WiFi] Fix wrong sign check in set TX power (ESP32) 2026-10-07 09:34:54 +02:00
TD-er 050017b2b0 [DNS] Fix hostByName returning negative values when lookup failed
`hostByName` does only return `1` on success, however it may return a negative value when lookup failed.
So need to check for the exact return value and not consider it a boolean return type.
2026-10-07 08:27:40 +02:00
TD-er 488cb70ba9 [WiFi] Fix setting TX power on ESP32 when not exactly matching pwr value 2026-10-07 08:23:54 +02:00
Ton Huisman 55d20f0f65 [Commands] UdpPort argument processing fix 2026-09-28 23:30:24 +02:00
TD-er 3533142af4 Merge remote-tracking branch 'letscontrolit/mega' into bugfix/load_1wire_page_after_save 2026-09-23 00:36:37 +02:00
TD-er 2c53b7b82a [Time] Speedup getting first NTP time sync 2026-09-22 23:51:29 +02:00
TD-er 7f5f5d4f35 Merge pull request #5640 from tonhuisman/bugfix/Rules-taskname-command-prefix-issue
[Tasks] Taskname prefix for commands not always working
2026-09-21 22:30:02 +02:00
Ton Huisman 3634fded80 [Tasks] Taskname prefix for commands not always working 2026-09-21 21:21:28 +02:00
BrainHunter f410cd6e1a Fixed P031_SHT1X.ino to set SendDataOption to true since it was missing
This allows the device to be configured to send data as expected.
2026-09-20 19:00:57 +02:00
TD-er a6b95f8851 [1Wire] Fix caching issue + multiple attempts scan sensors after save 2026-09-18 00:26:28 +02:00
TD-er b1ecd19790 Merge pull request #5636 from TD-er/bugfix/1wire_show_sensors
[1Wire] Fix not always showing 1-wire sensor & correct saving sensor
2026-09-16 23:58:49 +02:00
TD-er 3393f1801b [Build] Install pygit2 Python package. 2026-09-16 22:35:52 +02:00
TD-er e81eb68fab [Build] Fix build binaries path 2026-09-16 22:10:48 +02:00
TD-er 235d7076b0 [Build] Disable PVS-Studio as it has been removed from pioarduino 6.2.0 2026-09-16 15:47:34 +02:00
TD-er da65e7836d [Build] Use matrix.env instead of matrix.variant 2026-09-16 15:33:01 +02:00
TD-er a5a980ce7d [Build] Make sure to install pioarduino in build section YAML file 2026-09-16 15:29:00 +02:00
TD-er 1c669e6bc8 [Build] Call platformio command directly from GH Actions yaml file 2026-09-16 15:12:30 +02:00
TD-er 5239d2e172 [Build] Update to latest PioArduino to fix GH Actions builds 2026-09-16 14:37:32 +02:00
TD-er e329922abd [1Wire] Fix not always showing 1-wire sensor & correct saving sensor
Fixes: #5309
2026-09-16 13:47:48 +02:00
TD-er 8ccd7d13e8 Merge pull request #5622 from tonhuisman/feature/Flash-size-logged-during-boot
[Init] Log flash-size and used size during boot
2026-09-14 23:26:51 +02:00
Ton Huisman a7818e8f23 [Init] Log optimizations 2026-09-14 22:46:19 +02:00
Ton Huisman 1055fdeae7 Merge branch 'mega' into feature/Flash-size-logged-during-boot 2026-09-14 22:44:55 +02:00
Ton Huisman 76f6f9c8f0 [Init] Log optimizations 2026-09-14 22:44:27 +02:00
TD-er 6934e59005 Merge pull request #5633 from tonhuisman/feature/P037-process-variables-in-json-attributes
[P037] Add variable processing for JSON attributes
2026-09-14 21:43:37 +02:00
TD-er 2c15aed103 Merge pull request #5629 from tonhuisman/bugfix/I2Cscan-pconfig-errors
[I2CScan] Avoid using PCONFIG() during I2CScan
2026-09-14 21:42:11 +02:00
TD-er 49df5aca47 Merge pull request #5634 from TD-er/build/ReduceBuildSize_KeyValueStruct
[Build] Reduce build size optimizing KeyValueStruct use
2026-09-14 20:32:47 +02:00
TD-er c46d726f21 [Build] Change 'long' to 'int32_t' and fix some signed/unsigned issues 2026-09-14 14:44:11 +02:00
TD-er 157a954e5d [Build] Change 'unsigned long' to 'uint32_t' 2026-09-14 12:28:33 +02:00
TD-er 233602d268 [mDNS] Enable mDNS for ESP32-MAX builds 2026-09-13 23:26:42 +02:00