En av mina hobbyer som höll sig kvar under pandemin var hemautomation. Jag upptäckte Home Assistant (en populär öppen källkod och mycket anpassningsbar hemautomatiseringsplattform) och alla intrikata funktioner du kan göra med den för att förbättra ditt arbete hemifrån.
Jag har ADHD och har funnit att Home Assistant är ett värdefullt verktyg för att hantera min exekutiv dysfunktion. Jag använder den för röstkalenderpåminnelser, tvättpåminnelser, timers och övervakning av min dörrklockans kamera och hundbarnskamera. Det är också en stor källa till ren nördglädje för mig. Och jag tog nyligen det roligaste och nördigaste steget hittills i min hemautomatiseringsbesatthet.
Home Assistant låter dig skapa anpassade instrumentpaneler för att interagera med dina smarta hemenheter. Communitymedlemmar har tillbringat otaliga timmar med att fullända instrumentpaneler, och några av dem är verkligen imponerande. Jag upptäckte också ett community-tema för Home Assistant. Detta är väldigt likt det datorstyrda LCARS-systemet från Star Trek: The Next Generation-eran som jag växte upp med att titta på. LCARS är inte ett praktiskt eller användbart datorgränssnitt. Dess syfte är att ”föreslå något välorganiserat när det ses av tittaren i bakgrunden av scenen.” Men det är jättebra. Dess estetik fängslade mig som 8-åring, och jag har fortfarande inte släppt taget.
Det mesta av min hemautomatisering görs av verklig automatisering utan min input, och jag använder mig mycket av röststyrning (ja, ”dator” är mitt vakna ord; falska larm när jag tittar på Star Trek är värt det). Men det finns vissa situationer där du alltid kommer att behöva en instrumentpanel. I vissa fall kanske du vill ta manuell kontroll. Perfekt för att visa väder eller utlösa anpassade ljusscener. Ända sedan jag blev kär i Home Assistant har jag velat använda ett gränssnitt i LCARS-stil. Temat som länkas ovan är riktigt bra och jag använder det för min telefons huvudinstrumentpanel. Men det är inte perfekt.
Storleken och proportionerna på armbågsavdelare är lite olika, och knapparna är alla separerade i två delar. Det är en liten sak. Men jag är den typen av fan som gillar att pressa precision så mycket som möjligt. Så jag gjorde den själv.
Jag upptäckte nyligen LVGL (Light and Versatile Graphics Library). Det låter dig skapa grafiska gränssnitt som är mycket mer anpassningsbara och sofistikerade än den vanliga Home Assistant-instrumentpanelen. Jag trodde att det måste finnas något sätt att tillåta LVGL att kommunicera med Home Assistant. Den sista pusselbiten var ESPHome. ESPHome är ett ramverk med öppen källkod för fast programvara som tillåter även nybörjare som kodar som jag att programmera Wifi-aktiverade mikrokontroller som ESP32, ESP8266 och RP2040 med ett relativt enkelt märkningsspråk och är tätt integrerat med Home Assistant. Möjligheterna är oändliga. Jag använder ESPHome-komponenter som rörelsedetektorer, närvarosensorer, luftkvalitetssensorer och kontroller för LED-remsor. ESPHome stöder även LVGL på viss skärmhårdvara.
Så jag köpte en Waveshare 7-tums pekskärm med en ESP32-S3 mikrokontroller och började jobba.
Jag tillbringade timmar med att söka på internet och hittade skärmdumpar och fanrekreationer av några av de många LCARS-panelerna som dök upp på Star Trek på 90-talet. Och jag har begränsat det till:

Det här är grafiken som syns i Tuvoks kvarter i Star Trek: Voyager. Jag är inte säker på vad den gör i programmet, men den har många färgglada knappar och rundade hörn. Och viktigare, det finns två mätare längst upp som talar om för dig vem som vet vad. Men för mig såg de ut som kontroller för ljusstyrkan på lamporna. Så jag har min design.
Nästa var att bygga den. För att bygga ett gränssnitt i ESPHome med hjälp av LVGL använder du YAML för att specificera egenskaperna för de nödvändiga grafiska elementen (storlek, position, färg, etc.). LVGL kallar dessa ”widgets”. Så jag skapade först en design i Adobe Illustrator som referens.

Jag började sedan den ganska tråkiga uppgiften att återskapa den designen i Home Assistants ESPHome-redigerare. Tack och lov behöver du inte kunna C (språket som LVGL är skrivet på) för att använda det med ESPHome. Använd YAML istället. Detta är mycket mer förlåtande för en ivrig amatör som jag. För varje komponent angav vi dimensioner, plats, färg, etikett och form för varje knapp. Med LVGL är det en bästa praxis att använda de inbyggda widgetarna istället för att bara infoga bilder. LVGL har den förmågan, men ESP32-mikrokontroller har inte mycket extra resurser, och bilder kan snabbt konsumera dem. De enda faktiska bilderna som används i denna design är de två mätarna uppe till höger. Alla andra former är LVGL-knappwidgets.

På grund av den oregelbundna formen var jag tvungen att fuska lite. Vissa knappar i LCARS-gränssnittet har bara två rundade hörn. LVGL-knappar bestäms av om de har rundade hörn. Men tack och lov har LVGL inga problem med att stapla former ovanpå varandra. En halvcirkelformad knapp är helt enkelt en cirkel placerad på kanten av en fyrkantig knapp. Eftersom de har samma färg ser de ut som en form. Gör den mellersta armbågen på samma sätt.

Vi kom dit till slut. Jag har en ärlig och autentisk LCARS-pekskärm i mitt vardagsrum. 12-åriga mig skulle förmodligen bli imponerad. 41 år gammal känner jag verkligen likadant.
Allt som återstod var att ansluta den till enheten. Jag valde vardagsrumslampan för att jag hängde i vardagsrummet medan jag jobbade med det här projektet. (Ja, jag gjorde hela det här projektet utan att ha en klar uppfattning om vad jag specifikt skulle göra med det. Det här är inte en hobby för helt praktiskt sinnade människor.)
Jag ställer in en knapp så att den blir vit när ljuset är på och återgår till sin ursprungliga färg när ljuset är släckt. En separat knapp tände och släckte faktiskt ljuset. Ju fler knappar den har som gör fler saker, desto mer autentisk känns den för mig. Och den här panelen har fler knappar än lampor i huset. En av mätarna reflekterar och styr ljusstyrkan på dessa lampor. Det finns en statusknapp som indikerar om mitt hem är i ”Normal” eller ”Comfortable” driftläge, vilket bestämmer ljusscenen för min omfattande WLED-inställning.

En pekskärm med panel placeras på ett stativ nära soffan. Det är inte särskilt realistiskt. Jag kände redan till LCARS. Men det är vackert. Och precis som mina barndomshjältar kontrollerade rymdskepp kan jag nu styra mitt eget hem, vilket gör mitt nördhjärta väldigt glad.

Eartha Wright
Inlägg från den här författaren kommer att läggas till i ditt dagliga e-postsammandrag och din startsida.
att följaatt följa
Se allt om Eartha Wright
