4365 Commits

Author SHA1 Message Date
Maxim Prokhorov
39f2fa14cc webui(build): bump esbuild & vitest 2025-03-05 18:44:06 +03:00
Maxim Prokhorov
12a6506905 webui(build): bump locked versions 2025-03-05 18:44:06 +03:00
Maxim Prokhorov
f984ec9dbc libs(delimiter): revert to shared iterator instance
old gcc compat, plus stl would work more nicely
2025-03-05 18:44:06 +03:00
Maxim Prokhorov
cc0f3b2d03 sns(dht): merge common dht11 & dht12 calculations
notice sign bit in both bytes, apply magnitude mask to integer & scale
nb. technically... dht11 shares dht12 format, but prefer to stay on the integer side
2025-03-05 18:13:33 +03:00
Maxim Prokhorov
305918d5d8 sns(dht): different number representations for dht22
sometimes sign-magnitude, sometimes twos-complement
resolve #2638
2025-03-05 18:13:33 +03:00
Maxim Prokhorov
ff6d86c7e5 light(color): fix stateful parser api 2025-03-05 18:13:33 +03:00
Maxim Prokhorov
edb458fac6 test(sch): fix utc offset 2025-03-05 18:13:33 +03:00
Maxim Prokhorov
5ff4efd513 test(sns): voltage magnitude should work 2025-03-05 18:13:33 +03:00
Maxim Prokhorov
180361a89d test: expected vs. actual stringified 2025-03-05 18:13:33 +03:00
Maxim Prokhorov
824c527064 libs(delimiter): stateless and stateful splitview
reference, value, difference and tag metadata
std::find_if needs same type for begin() and end()
2025-03-05 18:13:33 +03:00
Maxim Prokhorov
91fa550018 libs(delimiter): iterate over split view
adjust internals to provide .begin(), .end(), and the iterator object itself
since the original class is only forward-going, iterator behaves the same
2025-03-05 18:13:33 +03:00
Maxim Prokhorov
56061ec054 led(api): apply mode through payload string
allow to reset to a specific mode without settings reload
similarly, interpret on & off as modes and not just status updates
2025-03-05 18:13:33 +03:00
Maxim Prokhorov
6aaa62fac7 types(span): infer const from T 2025-03-05 18:13:33 +03:00
Maxim Prokhorov
6cc364e04d led(api): status changes state based on payload
do not always reset status when processing payload
allow to pass mode string as payload (e.g revert from from manual mode via mqtt)
2025-03-05 18:13:33 +03:00
Maxim Prokhorov
8e91a34a48 led: constexpr methods instead of temporaries 2025-03-05 18:13:33 +03:00
Maxim Prokhorov
4a4dcaeab5 sch(restore): avoid duplicate actions on matching schedule
skip restore::run when action was already executed at least once
(since restore search never returns offset==0 result)
2025-03-05 18:13:33 +03:00
Maxim Prokhorov
0114d69809 led: shared delay logic and schedule checks 2025-03-05 18:13:15 +03:00
Maxim Prokhorov
0033735caa led(relay): ensure link exists before applying status 2025-03-05 18:13:07 +03:00
Maxim Prokhorov
a189c5f33f test(delimiter): split and delimiter view
using comparison macro for tests referencing string views
move all local code related to unity to a separate object
2025-03-05 18:12:59 +03:00
Maxim Prokhorov
ac86899764 libs(delimiter): split strings using the same utility function 2025-03-05 18:12:47 +03:00
Maxim Prokhorov
8e698ac28b util(stream): not all 3.x.x streams have peek api 2025-03-05 18:12:39 +03:00
Maxim Prokhorov
1366713896 terminal: typo 2025-01-29 12:47:31 +03:00
Maxim Prokhorov
27cf0afc11 terminal: semicolon with serial and telnet 2025-01-29 12:36:00 +03:00
Maxim Prokhorov
776acaaa84 terminal: strict state check when injecting lf
avoid accidentally returning Lf as remaining string when the given line is already terminated
2025-01-29 12:36:00 +03:00
Maxim Prokhorov
356fcc6555 terminal: semicolon as line break 2025-01-29 12:36:00 +03:00
Maxim Prokhorov
c9e13d4025 terminal: remove line break requirement from all api calls
already handled internally
2025-01-29 12:36:00 +03:00
Maxim Prokhorov
3970dfbbcc terminal: string delimiters and reworked line api
update string search logic to use brute-force for a full string, not just a single char
(ref. c++17/c++20 algorithm std::search defaults)

original code mixed lineview/buffer logic outside of the terminal parser
instead, make sure that delimited classes never return delimiter itself
line classes do so as well, equaly handling both '\n' and '\r\n'
existing terminal api now handles implicitly terminated strings by default

reworked linebuffer initialization order to use inheritance in place of
plain member init. as a bonus, its main methods are no longer templated
reducing the resulting code size per linebuffer specialization (not by very much, though)
2025-01-29 12:35:49 +03:00
Maxim Prokhorov
ab876d4ec8 terminal: report about remaining input and auto-inject line break at the end
- extra flag to include new-line after the input ends
- keep tokens sv to the original string.
  unless escaped characters appear, prefer to not make extra buffers
  (only matters for >12byte tokens; smaller strings do not allocate)
- keep remaining sv, after line break encountered by the parser.
  update api caller to re-use the parser, no need for a separate line delim class
2025-01-29 12:27:36 +03:00
Maxim Prokhorov
96fbde0d99 terminal: serial noise 2025-01-29 12:27:36 +03:00
Maxim Prokhorov
bae01f55a1 terminal: sv switch instead of pstr 2025-01-29 12:27:36 +03:00
Lübbe Onken
97db8fcc8d ha: color_mode flag is deprecated (#2634)
Deprecated flag `color_mode` used in MQTT JSON light config , the `color_mode` flag is not used anymore and should be removed.
...
This will stop working in Home Assistant Core 2025.3
2025-01-24 05:52:34 +03:00
dependabot[bot]
0934262f14 build(deps): bump vite from 5.4.9 to 5.4.14 in /code (#2635)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.9 to 5.4.14.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.14/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.14/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 05:51:45 +03:00
Maxim Prokhorov
c23bfeb6d9 core: bump version 2025-01-14 23:51:39 +03:00
Maxim Prokhorov
05513b5d63 pio: uninstall one package at a time
amend 7c2130b722
since install skips deps, skip them in uninstall as well
2025-01-14 19:42:20 +03:00
Maxim Prokhorov
4d8b7658f9 alexa: fauxmoesp version bump
mentioned in #2632
2025-01-13 19:18:09 +03:00
Maxim Prokhorov
881c55ddd0 onewire: private anonymous ns
merged files should not share anonymous scope
under espurna::driver:: ...
2025-01-13 19:15:28 +03:00
Maxim Prokhorov
21ee2d560d onewire: check for presence & more debug strings
- halt methods when reset() does not result in PRESENCE pulse
  clear up naming, separate reset() and presence() check
- port search, writes and requests are logged
- wire reset is logged
2025-01-10 23:23:47 +03:00
Maxim Prokhorov
0927423d28 onewire: terminal crash and output fixes
- do not refer to non-existent memory
- actually report ok & error after command is done
2025-01-10 23:22:53 +03:00
Maxim Prokhorov
a90716e60f dallas: w1 & w1.devices should show the port 2025-01-10 23:22:53 +03:00
Maxim Prokhorov
7337d7f158 gpio: only keep unique entries in locks list
frequently calling gpioLock & gpioUnlock should not consume so much ram
2025-01-10 23:22:22 +03:00
Maxim Prokhorov
a29aec2281 rpn: sv is copied 2025-01-10 23:21:10 +03:00
Maxim Prokhorov
5108e32174 rfb: fix rcswitch anonymous include 2024-12-28 05:52:51 +03:00
Maxim Prokhorov
d0029bc393 rfb: private and public symbols fixes
as usual with older code, use global namespace { ... } instead of static
public functions from .h moved to the very end of the file

fixup module:: and keys:: references
2024-12-28 05:41:57 +03:00
Maxim Prokhorov
bd2e52af87 rfb: fix code api passing invalid string length
broken in c45a1ec097 converting from ptr to sv
point to the null char, not the actual buffer storage end

resulting sv length is off-by-one, unless converted to a string obj
2024-12-28 05:09:26 +03:00
Maxim Prokhorov
332d29bdf4 sch: keep sun .last from updating when .next stays the same
update tests & externalize event hanlding implementation
prevent spurious .last == .next when .next never did or cannot happen

ref. 758ff844, in case update routine is called repeatedly
ref. #2629, 'event' should output coherent values
2024-12-07 18:08:44 +03:00
Maxim Prokhorov
758ff844a6 sch: skip next day search w/ valid sunrise or sunset 2024-12-07 16:56:35 +03:00
Maxim Prokhorov
6500f45d59 ota: fix -latest build
enum case only valid for -git, both -latest and base should be excluded
2024-12-07 15:21:10 +03:00
Maxim Prokhorov
930b130e63 ota: condition typo & fix END version check 2024-12-07 14:44:13 +03:00
Maxim Prokhorov
df0c6aaac4 sch: dump internal events by name
also try to simplify .size() branching
2024-12-07 14:34:55 +03:00
Maxim Prokhorov
2fb3e30d70 sch: record last action when restoring 2024-12-07 14:18:07 +03:00