Public Access
Add Interstellar and Your Name pages
Interstellar: Gargantua with a time dilation clock (Earth today vs. Miller's planet), TARS with his settings and remarks about the house, the Endurance spinning at a solar-driven RPM while a Ranger docks, and the tesseract's bookshelf with the time in binary dust and the Message's first word in Morse on a watch. Your Name: comet Tiamat splitting over Itomori's lake, and kataware-doki, a countdown to sunset from sun.sun where two silhouettes stand on the crater rim during the twilight hour. HomeData gains sunset, sunrise and sun elevation (with an ISO time parser); wrap() and typed() move to el512_pages.h. Share Tech Mono 22 gets the full Latin set. All pages are in the renderer, checked with normal, busy and empty data. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a4ce97d744
commit
f46f7ab6c5
22 files changed
+1159
-110
No files matched your search
@@ -22,6 +22,8 @@ esphome:
|
||||
id(f_ks_jp_big), id(icons_l)};
|
||||
id(sg_fonts) = {id(f_sg_nixie), id(f_sg_title), id(f_cp_mono), id(f_cp_code), id(f_ks_pixel), id(f_sg_jp)};
|
||||
id(st_fonts) = {id(f_st_small), id(f_st_medium), id(f_st_large), id(f_ks_text), id(f_ks_pixel)};
|
||||
id(is_fonts) = {id(f_is_title), id(f_is_large), id(f_cp_mono), id(f_cp_code)};
|
||||
id(yn_fonts) = {id(f_yn_jp), id(f_yn_hand), id(f_yn_clock), id(f_cp_mono)};
|
||||
|
||||
esp32:
|
||||
board: wemos_d1_mini32
|
||||
@@ -67,7 +69,7 @@ globals:
|
||||
- id: plex_updated
|
||||
type: uint32_t
|
||||
initial_value: "0"
|
||||
# Themed pages (Cyberpunk, KonoSuba, Steins;Gate, Star Trek): their fonts and the home data they show.
|
||||
# Themed pages (Cyberpunk, KonoSuba, Steins;Gate, Star Trek, Interstellar, Your Name): their fonts and the home data they show.
|
||||
- id: cp_fonts
|
||||
type: el512::cyber::Fonts
|
||||
- id: ks_fonts
|
||||
@@ -76,6 +78,10 @@ globals:
|
||||
type: el512::steins::Fonts
|
||||
- id: st_fonts
|
||||
type: el512::trek::Fonts
|
||||
- id: is_fonts
|
||||
type: el512::interstellar::Fonts
|
||||
- id: yn_fonts
|
||||
type: el512::yourname::Fonts
|
||||
- id: cp_home
|
||||
type: el512::HomeData
|
||||
|
||||
@@ -174,7 +180,7 @@ font:
|
||||
- file: "gfonts://Share Tech Mono"
|
||||
id: f_cp_code
|
||||
size: 22
|
||||
glyphs: " 0123456789ABCDEF.%"
|
||||
glyphsets: [GF_Latin_Core]
|
||||
# KonoSuba pages
|
||||
- file: "gfonts://Cinzel@700"
|
||||
id: f_ks_title
|
||||
@@ -231,6 +237,28 @@ font:
|
||||
id: f_st_large
|
||||
size: 60
|
||||
glyphs: " 0123456789:ADELRT"
|
||||
# Interstellar pages (also use f_cp_mono and f_cp_code)
|
||||
- file: "gfonts://Michroma"
|
||||
id: f_is_title
|
||||
size: 12
|
||||
glyphsets: [GF_Latin_Core]
|
||||
- file: "gfonts://Michroma"
|
||||
id: f_is_large
|
||||
size: 28
|
||||
glyphs: " 0123456789:.ARST"
|
||||
# Your Name pages (also use f_cp_mono)
|
||||
- file: "gfonts://Yuji Syuku"
|
||||
id: f_yn_jp
|
||||
size: 26
|
||||
glyphs: "君の名は。かたわれ時"
|
||||
- file: "gfonts://Caveat@700"
|
||||
id: f_yn_hand
|
||||
size: 22
|
||||
glyphsets: [GF_Latin_Core]
|
||||
- file: "gfonts://Cormorant Garamond@600"
|
||||
id: f_yn_clock
|
||||
size: 48
|
||||
glyphs: "0123456789:"
|
||||
|
||||
# --- Data from Home Assistant -------------------------------------------------
|
||||
text_sensor:
|
||||
@@ -266,6 +294,14 @@ text_sensor:
|
||||
- platform: homeassistant
|
||||
id: printer_state
|
||||
entity_id: ${printer}
|
||||
- platform: homeassistant
|
||||
id: sun_setting
|
||||
entity_id: sun.sun
|
||||
attribute: next_setting
|
||||
- platform: homeassistant
|
||||
id: sun_rising
|
||||
entity_id: sun.sun
|
||||
attribute: next_rising
|
||||
- platform: homeassistant
|
||||
id: plex_update
|
||||
entity_id: update.plex_media_server_mangavalkserver
|
||||
@@ -294,6 +330,10 @@ sensor:
|
||||
- platform: homeassistant
|
||||
id: tautulli_bandwidth
|
||||
entity_id: sensor.tautulli_total_bandwidth
|
||||
- platform: homeassistant
|
||||
id: sun_elev
|
||||
entity_id: sun.sun
|
||||
attribute: elevation
|
||||
# Solar (Enphase Envoy) and grid
|
||||
- platform: homeassistant
|
||||
id: solar_power
|
||||
@@ -439,6 +479,12 @@ select:
|
||||
- Duty Roster
|
||||
- Warp Core
|
||||
- Captain's Log
|
||||
- Gargantua
|
||||
- TARS
|
||||
- Endurance
|
||||
- Tesseract
|
||||
- Comet Tiamat
|
||||
- Kataware-doki
|
||||
initial_option: Clock
|
||||
set_action:
|
||||
- lambda: |-
|
||||
@@ -467,6 +513,12 @@ select:
|
||||
else if (x == "Duty Roster") p = id(page_st_roster);
|
||||
else if (x == "Warp Core") p = id(page_st_warp);
|
||||
else if (x == "Captain's Log") p = id(page_st_log);
|
||||
else if (x == "Gargantua") p = id(page_is_gargantua);
|
||||
else if (x == "TARS") p = id(page_is_tars);
|
||||
else if (x == "Endurance") p = id(page_is_endurance);
|
||||
else if (x == "Tesseract") p = id(page_is_tesseract);
|
||||
else if (x == "Comet Tiamat") p = id(page_yn_comet);
|
||||
else if (x == "Kataware-doki") p = id(page_yn_twilight);
|
||||
id(panel).show_page(p);
|
||||
id(panel).update();
|
||||
|
||||
@@ -506,7 +558,9 @@ interval:
|
||||
id(page_plex), id(page_solar), id(page_cyber_hud), id(page_cyber_breach), id(page_cyber_scan),
|
||||
id(page_cyber_split), id(page_ks_explosion), id(page_ks_guild), id(page_ks_card),
|
||||
id(page_ks_battle), id(page_sg_meter), id(page_sg_dmail), id(page_sg_lab), id(page_sg_world),
|
||||
id(page_st_lcars), id(page_st_roster), id(page_st_warp), id(page_st_log), id(page_still_alive)};
|
||||
id(page_st_lcars), id(page_st_roster), id(page_st_warp), id(page_st_log),
|
||||
id(page_is_gargantua), id(page_is_tars), id(page_is_endurance), id(page_is_tesseract),
|
||||
id(page_yn_comet), id(page_yn_twilight), id(page_still_alive)};
|
||||
for (size_t i = order.size() - 1; i > 0; i--)
|
||||
std::swap(order[i], order[random_uint32() % (i + 1)]);
|
||||
pos = order.size() - 1; // the next step starts at the front
|
||||
@@ -535,6 +589,9 @@ interval:
|
||||
d.agenda = id(agenda_events).state;
|
||||
d.message = id(panel_message).state;
|
||||
d.printer = id(printer_state).state;
|
||||
d.sunset = el512::fx::parse_iso_utc(id(sun_setting).state);
|
||||
d.sunrise = el512::fx::parse_iso_utc(id(sun_rising).state);
|
||||
d.sun_elevation = id(sun_elev).state;
|
||||
d.house = id(house_power).state;
|
||||
d.grid = id(grid_import).state - id(grid_export).state;
|
||||
d.rooms[0] = {"Woonkamer", id(t_woonkamer).state};
|
||||
@@ -555,7 +612,9 @@ display:
|
||||
animated_pages: [page_cyber_hud, page_cyber_breach, page_cyber_scan, page_cyber_split,
|
||||
page_ks_explosion, page_ks_guild, page_ks_card, page_ks_battle,
|
||||
page_sg_meter, page_sg_dmail, page_sg_lab, page_sg_world,
|
||||
page_st_lcars, page_st_roster, page_st_warp, page_st_log]
|
||||
page_st_lcars, page_st_roster, page_st_warp, page_st_log,
|
||||
page_is_gargantua, page_is_tars, page_is_endurance, page_is_tesseract,
|
||||
page_yn_comet, page_yn_twilight]
|
||||
animation_interval: 66ms
|
||||
on_page_change:
|
||||
- then:
|
||||
@@ -584,6 +643,12 @@ display:
|
||||
else if (to == id(page_st_roster)) name = "Duty Roster";
|
||||
else if (to == id(page_st_warp)) name = "Warp Core";
|
||||
else if (to == id(page_st_log)) name = "Captain's Log";
|
||||
else if (to == id(page_is_gargantua)) name = "Gargantua";
|
||||
else if (to == id(page_is_tars)) name = "TARS";
|
||||
else if (to == id(page_is_endurance)) name = "Endurance";
|
||||
else if (to == id(page_is_tesseract)) name = "Tesseract";
|
||||
else if (to == id(page_yn_comet)) name = "Comet Tiamat";
|
||||
else if (to == id(page_yn_twilight)) name = "Kataware-doki";
|
||||
if (id(page_select).current_option() != name) id(page_select).publish_state(name);
|
||||
pages:
|
||||
# 1. Clock, date and current weather
|
||||
@@ -853,3 +918,25 @@ display:
|
||||
- id: page_st_log
|
||||
lambda: |-
|
||||
el512::trek::captains_log(*id(panel), id(st_fonts), id(cp_home), id(ha_time).now());
|
||||
|
||||
# 25-28. Interstellar pages (components/el512/interstellar.cpp)
|
||||
- id: page_is_gargantua
|
||||
lambda: |-
|
||||
el512::interstellar::gargantua(*id(panel), id(is_fonts), id(ha_time).now());
|
||||
- id: page_is_tars
|
||||
lambda: |-
|
||||
el512::interstellar::tars(*id(panel), id(is_fonts), id(cp_home));
|
||||
- id: page_is_endurance
|
||||
lambda: |-
|
||||
el512::interstellar::endurance(*id(panel), id(is_fonts), id(cp_home), id(ha_time).now());
|
||||
- id: page_is_tesseract
|
||||
lambda: |-
|
||||
el512::interstellar::tesseract(*id(panel), id(is_fonts), id(cp_home), id(ha_time).now());
|
||||
|
||||
# 29-30. Your Name pages (components/el512/yourname.cpp)
|
||||
- id: page_yn_comet
|
||||
lambda: |-
|
||||
el512::yourname::comet(*id(panel), id(yn_fonts), id(cp_home), id(ha_time).now());
|
||||
- id: page_yn_twilight
|
||||
lambda: |-
|
||||
el512::yourname::twilight(*id(panel), id(yn_fonts), id(cp_home), id(ha_time).now());
|
||||
Reference in new issue
Block a user