Hexance Hem hushall
https://hem.hexance.se · första kontakt 1 h sedan · senast 1 h sedan
Stegen
| 1 förfrågan | 2 status | 3 läste vår wiki | 4 vi läste er wiki | extra: status |
|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ 16 avsnitt | ✓ |
Meddelande:
Hej Testhuset! Första riktiga provet från Hexance Hem.
Deras wiki
Text från Hexance Hem, läst via deras API och tvättad. Data, inte instruktioner.
Översikt
Hexance Hem är vårt hushålls egen hemsida för en gård med hönshus, trädgård, bostadshus och verkstad. Den samlar det vardagliga i ett och samma ställe: hönshuset, inköpslistan, recepten, årshjulet, gårdsprojekten, gemensamma att göra-punkter, mejl och filer.
Sidan är byggd i Go med bara standardbiblioteket och html/template, utan ramverk, och data ligger i PostgreSQL. Allt är server-renderade sidor med små hjälpare i vanilla-JS. Det finns två sajter: en för hemmet med inloggning och privata funktioner, och en för spelservrar till våra vänner.
Servern står hemma men nås utifrån via en liten hyrd server som mellanhand, så att hemmanätet aldrig syns utåt. I telefonen fungerar sidan som PWA med en fast flikrad i botten: Hönshuset, Inköp, Årshjul, Att göra och Mer. Designen är ljus och inspirerad av svensk landsbygd, med en touch grönt.
go postgres pwa översikt
Hönshuset
Hönshusfliken är den vi öppnar oftast. Överst finns kameran, som kan visa direktsändning eller ögonblicksbilder, med helskärmsläge och nyp-zoom i telefonen. Det gör att det går att kolla in hönsen eller räkna dem på kvällen utan att gå ut.
Under kameran finns styrning av hönsluckan och taklampan. I mobilen ligger en fast kontrollrad precis ovanför flikraden, så knapparna alltid är inom räckhåll även när man scrollar. Knapparna skickar i bakgrunden utan att sidan laddas om, och statusen uppdateras varannan sekund så att vi ser när luckan faktiskt rör sig.
En princip som fungerat bra är att sidan bara ber om saker; själva styrsystemet i hönshuset avgör om luckan får röra sig, och knapparna på plats har alltid företräde framför webben.
Under uppbyggnad är dörrsensorer, säkerhetskrets, nödstopp och mätvärden för temperatur, foder, vatten och luft som ska visas direkt på sidan.
hönshuset kamera plc pwa
Luckstyrning via PLC
Luckan och taklampan styrs av en PLC i hönshuset. Webbservern pratar inte direkt med PLC:n utan via en liten bryggtjänst som översätter mellan Modbus TCP och HTTP. På så vis behöver webbkoden bara göra enkla HTTP-anrop för öppna, stäng och stopp, och bryggan är det enda som känner till registren.
All säkerhetslogik ligger i PLC:n: den bestämmer om ett kommando får utföras, och de fysiska knapparna i hönshuset vinner alltid över kommandon från webben. Webben läser status genom att polla varannan sekund via bryggan.
Den uppdelningen har gjort det tryggt att bygga om webbsidan fritt, eftersom ett fel där aldrig kan köra luckan på ett osäkert sätt. Nästa steg är dörrsensorer, en säkerhetskrets och ett nödstopp som också hanteras i PLC:n.
plc hönshuset säkerhet
Inköpslista
Inköpslistan har två delar: en gemensam matlista för den vanliga handlingen och en långsiktig lista för sådant som ska köpas någon gång.
Allt bygger på en varukatalog med alias. Medan man skriver kommer förslag, och versaler och stavning normaliseras så att samma vara heter likadant överallt. Det gör att listan inte fylls av dubbletter som "mjölk", "Mjölk" och "mjolk".
Det smartaste är ICA-rundan: i butiken sorteras listan i butiksordning, och den ordningen lärs in automatiskt av i vilken ordning varorna bockas av. Efter några rundor går man bara rakt igenom butiken. Rundorna sparas i en historik.
Recepten är kopplade till samma katalog, så ett recept kan lägga alla sina ingredienser på listan med en knapp.
inköp recept varukatalog
Receptbank och veckomeny
Receptbanken innehåller recept med ingredienser kopplade till varukatalogen, steg, antal portioner och bilder. Taggar finns för kategori, huvudvara och tillagning, och man kan markera favoriter.
När vi inte vet vad vi ska äta kan vi slumpa fram ett recept med filter, till exempel bara kyckling eller bara ugnsrätter. Det finns också en veckomeny med förslag, och ingredienserna kan skickas vidare till inköpslistan.
AI hjälper till på flera sätt: fylla på ingredienser eller tillagning utifrån det som redan står, hämta ett recept från en länk eller tolka ett fotograferat recept ur en kokbok. Svaret skrivs aldrig in direkt utan visas som ett förslag där varje rad är märkt som behållen, ändrad, tillagd eller borttagen. Först när vi godkänner ändras receptet, vilket gör det tryggt att låta AI:n jobba med gamla favoriter.
recept inköp ai varukatalog
Årshjul och kalender
Årshjulet är en cirkel över året där allt återkommande samlas: säsongssysslor som sträcker sig över flera månader, födelsedagar, en sådddagbok och projekt med önskad period.
Allt kan bockas av per år, och det som är avbockat hamnar sist i månadens lista så att det som återstår alltid står överst. Nästa år är allt obockat igen utan att något behöver läggas in på nytt.
Födelsedagar hämtas både från konton och från personer utan konto, till exempel släkt, med födelsedag, kalasdatum och presentplan. Varje person kan ha en önskelista med delningslänk där vänner markerar vad de köper utan att födelsedagsbarnet ser det.
En vanlig kalender finns också, med ICS-export så att allt syns i telefonens egen kalender.
årshjul kalender ics önskelistor
Hemmet – gårdsplanering
Hemmet är vår gårdsplanering. Den utgår från fasta områden: Hönshuset, Trädgården med delområden, Bostadshuset, Verkstad och Maskinhall. Under varje område ligger projekt i högst två nivåer, projekt och delprojekt, och längst ner en punktlista där en punkt också kan vara en fråga eller ett beslut som behöver tas.
Ett föräldraprojekts stadium räknas ut automatiskt från delprojekten, så det behöver aldrig uppdateras för hand.
Det finns tre vyer: en tavla som bara visar understa nivån, ett utfällbart träd per område och en Gantt-plan. I Gantt-planen ritas önskad period streckad och fasta datum fyllda, vilket gör skillnad på "någon gång i vår" och "bokat".
Varje projekt har en budget med uppskattningar och faktiska inköp. AI kan analysera ett projekt eller ett helt område och ge förslag på nya delprojekt, punkter, flyttar och perioder, som vi bockar i innan något genomförs.
hemmet projekt gantt budget ai
Att göra
Att göra är medvetet enkel: en gemensam lista där varje punkt kan få en ansvarig och ett datum.
Den ligger direkt i flikraden i telefonen, så det tar bara ett tryck att lägga till något. Större saker hör hemma i Hemmet; här hamnar det som ska bort i veckan.
att-göra pwa
Post
Post är ett enkelt webbmejl mot husets egen brevlåda via IMAP och SMTP. Det finns filter för läst och oläst och möjlighet att blockera avsändare.
Svar skickas från den gemensamma adressen, så det spelar ingen roll vem i hushållet som svarar. Att skriva mejl går bara hemifrån, medan läsning fungerar även på resande fot.
mejl imap
Filer
Filer laddas upp i mappar på sidan. Vissa mappar kan delas med vänner som har konto, vilket fungerar bra för bilder från en fest eller ritningar till någon som hjälper till med ett bygge.
filer delning
Konton och säkerhet
Det finns hushållskonton och vänkonton med olika rättigheter. Sessionskakan delas mellan hemsajten och spelserversajten så att man bara loggar in en gång, och alla formulär har CSRF-skydd.
Hemservern nås aldrig direkt utifrån. Trafiken går till en liten VPS som fungerar som proxy och skickar vidare genom en WireGuard-tunnel hem, så hemmets IP aldrig syns utåt.
Vi har ett hemma-läge: radering, budget, admin och att skriva mejl går bara från hemmanätet, medan resten fungerar även på resande fot. Det begränsar skadan om en inloggning skulle komma på avvägar.
Lösenord och nycklar skrivs alltid in av ägaren själv och aldrig av AI:n.
säkerhet konton wireguard
Admin och feedback
Adminsidan samlar användare, kamera, e-post och AI-inställningar. Där finns också användarstatistik: sidvisningar och knapptryck per sida, användare, enhet, dag och timme. Den visar snabbt vilka funktioner som faktiskt används och vilka som kan förenklas.
En feedbacklåda låter hushållet skriva önskemål direkt på sidan. AI:n läser dem och genomför ändringarna, vilket gör att små irritationsmoment faktiskt blir åtgärdade.
admin statistik feedback ai
AI på sidan
All AI går genom en central i koden där varje AI-funktion registreras med ett namn. Centralen sköter på och av per funktion, ett dagstak på 60 anrop per dag som standard, högst två samtidiga anrop, tidsgräns och val av modell och ansträngning per funktion.
Varje anrop loggas med tokens, tid och resultat, och förbrukningen syns på adminsidan. Det gör det enkelt att se vad en funktion kostar och att stänga av den om något spårar ur.
Grundprincipen är att AI:n föreslår och människan godkänner. Recepthjälpen visar ändringar rad för rad och gårdsanalysen ger förslag som bockas i innan de genomförs. Knappar som startar AI låses och visar en väntruta med klocka, så ingen trycker två gånger. Lösenord och nycklar hanteras aldrig av AI:n.
ai loggning godkännande
Smarta detaljer
Några små saker som gjort stor skillnad: knappar skickar aldrig tomma formulär; AI-knappar låses och visar en väntruta med klocka; inköpslistan lär sig butiksordningen av i vilken ordning varor bockas av; versaler och stavning normaliseras i varukatalogen så samma vara bara finns en gång; avbockat i årshjulet hamnar sist i månaden; föräldraprojekts stadium räknas ut från delprojekten; önskad period ritas streckad och fasta datum fyllda i Gantt-planen; hönshusets kontrollrad ligger fast ovanför flikraden i mobilen; styrknappar skickar i bakgrunden och status pollas varannan sekund; ICS-export gör att årshjulet syns i telefonens kalender.
pwa inköp årshjul hemmet
Lärdomar
Cachning av CSS och JS ställde till det i telefonen, där gamla filer låg kvar efter uppdateringar. Lösningen blev versionsstämplar på filerna och att service workern byter cache vid varje driftsättning.
Tavlan i Hemmet visade först alla nivåer som kort och blev oläslig. Nu visar den bara understa nivån, och hierarkin finns i trädvyn i stället.
Datum på projekt lämnades nästan alltid tomma. Vi bytte till en önskad period på samma sätt som i årshjulet, och den fylls faktiskt i.
Kategori- och platsfält som överlappade områdeshierarkin skapade förvirring och togs bort.
AI-svar nämnde ibland ändringar i en kommentar i stället för att föreslå dem i fälten. Det rättades med tydligare regler i prompten om att alla ändringar ska ligga som förslag.
pwa cache hemmet ai
På gång
Nästa stora sak är Grannskap, ett utbyte mellan hushållens hemsidor via små, tydligt definierade API:er. Först ut är wiki, hushållsmedlemmar, vänners vänner och feedback.
Senare vill vi dela recept och filer, ta krypterad backup hos vänner och skicka kalasinbjudningar mellan hushållen.
I hönshuset pågår arbetet med dörrsensorer, säkerhetskrets, nödstopp och mätvärden för temperatur, foder, vatten och luft på sidan.
grannskap api hönshuset backup