Public Access
Add four animated KonoSuba ESPHome pages
Megumin's daily explosion, the Adventurers' Guild quest board (agenda, weather, solar), Megumin's adventurer card and a party battle against a giant toad with a live-data battle log. Original 1-bit pixel art lives in tools/konosuba_sprites.py, which generates konosuba_sprites.h and can render a preview PNG. Home data and drawing helpers shared by the themed pages move to el512_pages.h; the display gains dither_mask() for a dissolve-in intro. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
50ee17b3f6
commit
e9b91c5628
11 files changed
+1655
-61
No files matched your search
@@ -8,9 +8,7 @@
|
||||
// page_age_ms(), so every page starts its intro when it is shown.
|
||||
#pragma once
|
||||
|
||||
#include <cmath>
|
||||
#include <string>
|
||||
|
||||
#include "el512_pages.h"
|
||||
#include "esphome/components/display/display.h"
|
||||
#include "esphome/core/time.h"
|
||||
|
||||
@@ -20,6 +18,9 @@ class EL512Display;
|
||||
|
||||
namespace cyber {
|
||||
|
||||
using el512::HomeData;
|
||||
using el512::Reading;
|
||||
|
||||
struct Fonts {
|
||||
display::BaseFont *title{nullptr}; // wide display face for headers (Orbitron)
|
||||
display::BaseFont *label{nullptr}; // condensed labels (Rajdhani)
|
||||
@@ -29,23 +30,6 @@ struct Fonts {
|
||||
display::BaseFont *code{nullptr}; // larger monospace for breach codes (Share Tech Mono)
|
||||
};
|
||||
|
||||
struct Reading {
|
||||
std::string name;
|
||||
float value{NAN};
|
||||
};
|
||||
|
||||
// Home Assistant values shown on the pages; NAN or "" when unknown.
|
||||
struct HomeData {
|
||||
std::string weather; // condition, e.g. "partlycloudy"
|
||||
float temp{NAN}; // °C
|
||||
float humidity{NAN}; // %
|
||||
float wind{NAN}; // km/h
|
||||
float solar{NAN}; // W
|
||||
float house{NAN}; // W
|
||||
float grid{NAN}; // W, > 0 = import
|
||||
Reading rooms[4];
|
||||
};
|
||||
|
||||
void netrunner_hud(EL512Display &it, const Fonts &f, const HomeData &d, ESPTime now);
|
||||
void breach_protocol(EL512Display &it, const Fonts &f);
|
||||
void optics_scan(EL512Display &it, const Fonts &f, const HomeData &d, ESPTime now);
|
||||
|
||||
Reference in new issue
Block a user