Commit Graph
27841 Commits
Author SHA1 Message Date
J. Nick Koston 5890223237 [online_image] Migrate triggers to callback automation 2026-03-26 19:06:49 -10:00
J. Nick Koston 44aed02908 Merge branch 'dev' into ld2450-trigger-trampoline 2026-03-26 19:00:31 -10:00
J. Nick Koston ac84a61ee6 Merge branch 'dev' into media-player-trigger-trampoline 2026-03-26 19:00:09 -10:00
J. Nick KostonandClaude Opus 4.6 4c57beb5a0 Use codegen enum expressions instead of raw strings for MediaPlayerState
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 18:58:51 -10:00
J. Nick KostonandClaude Opus 4.6 006c18ce88 Remove unused automation.h include from ld2450.h
With LD2450DataTrigger removed, no automation types remain in this header.
LazyCallbackManager is provided by helpers.h (via component.h).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 18:53:36 -10:00
J. Nick Koston 29bc97cdb8 Fix comments: remove PR-relative wording 2026-03-26 17:45:31 -10:00
J. Nick Koston b25e63344f Fix comments: remove PR-relative wording 2026-03-26 17:45:10 -10:00
J. Nick Koston dcdde00559 Merge branch 'dev' into fan-store-preset-modes-on-entity 2026-03-26 17:40:28 -10:00
J. Nick Koston 61597e304b Merge branch 'dev' into lock-trigger-trampoline 2026-03-26 17:39:33 -10:00
Edward Firmoandpre-commit-ci-lite[bot] 6feb2d04df [nextion] Replace static std::string COMMAND_DELIMITER with constexpr (#15195)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-03-26 17:36:35 -10:00
J. Nick Koston 0221db0f13 Merge branch 'dev' into fan-store-preset-modes-on-entity 2026-03-26 17:06:40 -10:00
J. Nick Koston 05a5c27b90 Add 2026.11.0 removal comments to integration test and fixture 2026-03-26 16:21:30 -10:00
J. Nick Koston 91932ed919 Merge branch 'dev' into ld2450-trigger-trampoline 2026-03-26 16:20:33 -10:00
J. Nick Koston 592371f9f6 Add 2026.11.0 removal comments to integration test and fixture 2026-03-26 16:20:32 -10:00
J. Nick Koston cfbba0af90 Add comment about string literal pointer stability in compat save_state_ 2026-03-26 16:18:01 -10:00
J. Nick Koston 0b68b497bb Move demo custom modes to setup(), simplify Midea frost protection
- Demo: custom fan modes and presets now set once in setup() instead
  of on every traits() call, matching bedjet/thermostat pattern
- Midea: frost protection merge only calls get_traits() once (guarded
  by frost_protection_set_ flag), not on every status change
2026-03-26 16:17:13 -10:00
J. Nick Koston b5df9de79b Remove unnecessary get_setup_priority from test fixture 2026-03-26 16:08:08 -10:00
J. Nick Koston 541ab9abf9 Fix fan test: use fan_schema(), remove unnecessary get_setup_priority 2026-03-26 16:07:20 -10:00
J. Nick Koston 90dafa3fa4 [logger] Warn when VERBOSE/VERY_VERBOSE logging is active (#15189) 2026-03-27 01:59:58 +00:00
J. Nick Koston eaa7659285 Fix Midea preset merge, fix get_supports_fan_modes precedence
- Midea: merge frost protection into existing custom presets instead
  of overwriting (fixes potential loss of user-configured presets)
- get_supports_fan_modes(): use same precedence as getter — if pointer
  is set, only check pointer; fall back to compat only when unset
2026-03-26 15:58:23 -10:00
J. Nick Koston 794b7ef562 Fix supports_preset_modes: use same precedence as getter 2026-03-26 15:55:49 -10:00
J. Nick Koston a3f5458ae3 Fix unused services variable in test 2026-03-26 15:54:54 -10:00
J. Nick Koston 7513db9dcd Fix clang-tidy: protected method needs trailing underscore 2026-03-26 15:50:10 -10:00
J. Nick Koston 863dc62dae Fix clang-tidy: protected methods need trailing underscore 2026-03-26 15:48:50 -10:00
J. Nick Koston 3388d420ec Fix unused services variable in test 2026-03-26 15:42:36 -10:00
J. Nick Koston 7591f1d473 Add deprecated array overloads for compat, fix Copilot review 2026-03-26 15:41:47 -10:00
J. Nick Koston 7c259d2f64 Simplify save_state_ compat path, move CopyFan preset copy to setup()
- save_state_(): split into two clear branches instead of conditional
  FanTraits construction trick
- CopyFan: copy source preset modes once in setup() instead of on
  every get_traits() call
2026-03-26 15:39:29 -10:00
J. Nick Koston 317db8438c Move set_supported_custom_* out of traits() hot path
- Midea: frost protection preset now set once in on_status_change()
  when autoconf completes, guarded by a flag
- BedJet: custom fan modes and presets moved from traits() to setup()
- Test fixture: use has_custom_fan_mode() instead of nullptr check
2026-03-26 15:36:56 -10:00
J. Nick Koston 3328423373 Move pointer setter to protected with friend class Fan 2026-03-26 15:31:27 -10:00
J. Nick Koston d54fd0ef69 Move pointer setters to protected (friend-only), add missing vector include 2026-03-26 15:29:57 -10:00
J. Nick Koston 95cdc90835 Fix to_code signature: add ConfigType annotation 2026-03-26 15:27:20 -10:00
J. Nick Koston 1c054db1f1 Fix to_code signature: add ConfigType annotation 2026-03-26 15:26:51 -10:00
J. Nick Koston 576b1c3ff0 Fix fan fixture: use C++17 namespace style 2026-03-26 15:25:13 -10:00
J. Nick Koston 991c34a4f3 Fix fixtures: remove unnecessary build flags, use C++17 namespace style 2026-03-26 15:24:38 -10:00
J. Nick Koston c8d842586a Fix fan fixture: remove unnecessary build flags 2026-03-26 15:23:44 -10:00
J. Nick Koston 2f93ba0d71 Add integration test for deprecated FanTraits compat layer 2026-03-26 15:21:11 -10:00
J. Nick Koston 602bcd2c97 Add integration test for deprecated ClimateTraits compat layer 2026-03-26 15:19:45 -10:00
J. Nick Koston e77cdb5971 [light] Validate effect names during config validation instead of codegen (#15107) 2026-03-26 15:13:44 -10:00
J. Nick Koston 90e6c0d7c7 [core] Remove indirection from ControllerRegistry dispatch (#15173) 2026-03-26 15:09:16 -10:00
J. Nick Koston 240e53afce [fan] Add benchmarks for fan component (#15210) 2026-03-26 14:35:09 -10:00
J. Nick Koston 413202e02e Restore deleted std::string overloads for clear compile-time diagnostics 2026-03-26 14:31:06 -10:00
J. Nick Koston c42cfac50f Fix dangling reference in save_state_, restore deleted string overloads
1. save_state_() bound a reference to supported_preset_modes() from
   a temporary FanTraits returned by get_traits(). When the compat
   path fired, the temporary was destroyed and the reference dangled.
   Fix: keep the FanTraits alive for the loop duration.

2. Restore deleted std::vector<std::string> / initializer_list<std::string>
   overloads to preserve clear compile-time diagnostics.
2026-03-26 14:28:55 -10:00
J. Nick Koston 027cb0c35c Fix compat: use owned vectors instead of heap leak
Replace new-and-leak deprecated setters with plain owned vector members
on ClimateTraits. Copies copy the vector (same cost as before this PR).
No heap leak, no dangling pointer, no smart pointer overhead.

All compat paths (getters, find, supports) check the owned vector as
fallback when the pointer path is not set.
2026-03-26 14:11:15 -10:00
J. Nick Koston 56f0d3f7f5 Fix compat: use owned vector instead of leak, wire preset modes in subclasses
- Deprecated FanTraits setters store in an owned compat_preset_modes_
  vector (same copy cost as pre-PR). No heap leak, no dangling pointer.
- Subclass get_traits() calls wire_preset_modes_() to attach the
  Fan-owned pointer to the returned traits.
- Getter/find/supports all check compat vector as fallback.
2026-03-26 14:08:07 -10:00
J. Nick Koston 4838c61a8c Move preset modes pointer to private, consolidate empty vector to cpp
- Move supported_preset_modes_ pointer and ensure helper to private
- Move static EMPTY_VECTOR from inline header getter to a single
  file-scope constant in fan.cpp (avoids duplication per TU)
- Add 2026.11.0 removal comments on all compat code paths
2026-03-26 14:02:27 -10:00
J. Nick Koston ebc4421ba6 Move custom mode pointers to private, consolidate empty vector to cpp
- Move supported_custom_fan_modes_ and supported_custom_presets_ pointers
  and ensure helpers to private section
- Move static EMPTY_VECTOR from inline header getters to a single
  file-scope constant in climate_traits.cpp (avoids duplication per TU)
- Add 2026.11.0 removal comments on all compat code paths
2026-03-26 14:01:08 -10:00
J. Nick Koston df8edfe346 Merge branch 'dev' into alarm-control-panel-trigger-trampoline 2026-03-26 13:53:12 -10:00
J. Nick Koston 2d56b089ed Merge branch 'dev' into lock-trigger-trampoline 2026-03-26 13:53:03 -10:00
J. Nick Koston 147c96ce33 Merge branch 'dev' into safe-mode-trigger-trampoline 2026-03-26 13:52:52 -10:00
J. Nick Koston 0fb9699257 Merge branch 'dev' into ld2450-trigger-trampoline 2026-03-26 13:52:41 -10:00