Public Access
Home Assistant requests in a task, progress bar, Plex page, bitmap cache
- net/ha_api: the HTTP requests run in a FreeRTOS task on core 0; loop()
only hands over copies through queues. The web UI's test button polls.
No more 3-4 s loop() stalls once a minute; timeout raised to 5 s.
- Progress bar page element (page format 4, v3 pages are converted)
- Plex user setting (settings v6): {plex_user} in entity ids
- Plex page (examples): watchers, play/pause icon, title, progress
- Bitmaps cached in RAM: a LittleFS read took ~100 ms on every render
and web preview; long JSON lists sent in 2 KB pieces
- Backup includes the refresh settings and the Plex user
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
090c2bf8ae
commit
490cefc360
42 files changed
+1074
-175
No files matched your search
@@ -5,7 +5,7 @@
|
||||
|
||||
#include "logic/settings.h"
|
||||
|
||||
static const char *const TYPES[] = {"clock", "date", "ha", "text", "countdown", "stopwatch", "image"};
|
||||
static const char *const TYPES[] = {"clock", "date", "ha", "text", "countdown", "stopwatch", "image", "bar"};
|
||||
static const char *const ALIGNS[] = {"left", "center", "right"};
|
||||
static const char *const OVERLAYS[] = {"top", "box", "invert"};
|
||||
static const char *const LANGUAGES[] = {"nl", "en"};
|
||||
@@ -69,6 +69,10 @@ void pageToJson(const DynamicPage &page, JsonObject out)
|
||||
o["auto_unit"] = e.auto_unit;
|
||||
o["absolute"] = e.absolute;
|
||||
o["map"] = withDegrees(e.map);
|
||||
o["bar_width"] = e.bar_width;
|
||||
o["bar_height"] = e.bar_height;
|
||||
o["bar_max"] = e.bar_max;
|
||||
o["bar_frame"] = e.bar_frame;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,6 +132,10 @@ const char *pageFromJson(JsonVariantConst in, DynamicPage &page)
|
||||
e.input_unit = unit;
|
||||
e.auto_unit = o["auto_unit"] | false;
|
||||
e.absolute = o["absolute"] | false;
|
||||
e.bar_width = constrain(o["bar_width"] | 40, 0, 255);
|
||||
e.bar_height = constrain(o["bar_height"] | 3, 0, 255);
|
||||
e.bar_max = o["bar_max"] | 100.0f;
|
||||
e.bar_frame = o["bar_frame"] | true;
|
||||
if (!copyText(o["map"], e.map, sizeof(e.map)))
|
||||
return "The list of texts is too long (63 characters)";
|
||||
const char *target = o["target"] | "";
|
||||
|
||||
Reference in new issue
Block a user