← Apps

Mutti

Min personlige assistent, der samler mine smarte enheder og de services, jeg bruger derhjemme. Udgangspunktet for flere af mine andre projekter.

Privat repo

Hvorfor jeg byggede det

Som en rigtig nørd er jeg med tiden kommet til at købe alle mulige enheder med indbygget connectivity. Det smarte ved dem blev efterhånden fordelt på en hel samling apps. Jeg ville gerne have ét samlet system, hvor jeg kunne bruge alle mine smarte enheder, og få dem ud af deres mange respektive apps.

Det blev til Mutti: min personlige assistent med forbindelser til de smarthome-enheder og øvrige services, jeg bruger derhjemme. Tanken er at bringe dem sammen, så jeg kan tage udgangspunkt i det, jeg vil have gjort, frem for hvilken app en bestemt enhed hører til.

Arbejdet med Mutti er også blevet udgangspunktet for flere af mine andre projekter. Det første selvstændige bibliotek, jeg byggede, var pyskoleintra. Min søns skole bruger Skoleintra, og jeg ville kunne få adgang til beskeder og hverdagens skoleoplysninger gennem min egen løsning.

Jeg ville også kunne se status på min Xiaomi-støvsuger og styre den fra Mutti. Jeg kunne ikke finde et helstøbt bibliotek, der gav mig det, jeg havde brug for, så det byggede jeg også selv. Det blev til mihome-cloud, endnu et selvstændigt bibliotek, der voksede ud af et konkret behov i Mutti.

Automations på tværs af mærker

Automations er blevet en af de funktioner i Mutti, jeg er allermest glad for. Jeg kan tage en Philips Hue-controller og selv bestemme, hvad dens knapper skal gøre på tværs af de enheder og services, jeg har forbundet. Den kan være knappen til en Sonoff-kontakt, støvsugeren eller et helt forløb med flere handlinger. Det er mine automations, der bestemmer, hvad der sker.

Jeg bygger forløbene i en visuel editor: vælger en hændelse, tilføjer eventuelle betingelser og bestemmer handlingerne. De kan køre i rækkefølge eller parallelt og reagere forskelligt efter eksempelvis tidspunkt eller sensorværdier. Mulighederne følger de handlinger, de enkelte forbindelser stiller til rådighed.

Det er enormt tilfredsstillende at kunne give en fysisk knap en ny funktion, helt uafhængigt af hvilket mærke der står på den. Når et forløb er defineret, udfører Mutti det direkte. Der skal ikke en sprogmodel til at fortolke hvert knaptryk.

Tal til Mutti fra håndleddet

Jeg har også bygget en app til mit ur, der kan vælges som digital assistent og åbnes fra urets assistentgenvej. Så kan jeg bede Mutti om at styre tingene med stemmen, lige dér fra håndleddet. Det gør en stor forskel i hverdagen, at jeg ikke først skal finde telefonen frem og åbne den rigtige app.

Talen sendes via companion-appen på telefonen til Mutti, hvor talegenkendelse omsætter den til tekst. Derefter behandles ønsket som en almindelig besked til assistenten, og svaret kommer tilbage på uret. Talegenkendelsen kan køre lokalt på Mutti-serveren. Uret lytter, når jeg åbner optagelsen og taler til det.

Mit eget kort over hverdagen

Companion-appen kan også registrere, hvor jeg har været, og sende punkterne til min egen Mutti-server. Det giver mig en personlig lokationshistorik, som jeg kan spørge ind til og få vist på et kort. Er serveren ikke tilgængelig, gemmer telefonen punkterne og afleverer dem senere.

Jeg kan godt lide at kunne se tilbage på en dag eller en tur uden at skulle lægge min lokationshistorik på en Google-konto. Historikken ligger hos mig, og jeg bestemmer, hvor længe den skal gemmes. Kortbaggrund og valgfrie adresseopslag kan bruge eksterne tjenester; de dele kan også hostes selv.

Lys, kontakter og sensorer

Jeg har bygget forbindelser til Philips Hue, Sonoff/eWeLink og Nedis SmartLife, så lys, kontakter og sensorer kan bruges fra samme sted. Hue kan styre både enkelte lamper, rum og scener. Sonoff og Nedis giver adgang til blandt andet kontakter og målinger fra de enheder, der understøtter det.

Der er også en separat lokal Zigbee-integration, som samler lys, sensorer og hændelser fra knapper og fjernbetjeninger. Det giver mig mulighed for at lade enheder fra forskellige producenter indgå i de samme automatikker.

De praktiske ting i hjemmet

Xiaomi-støvsugeren kan vise status, gøre rent i bestemte rum og vende tilbage til ladestationen. Integrationen holder også øje med forbrugsdele og de vedligeholdelsesfunktioner, modellen understøtter.

BSK Zephyr-forbindelsen giver adgang til ventilation, temperatur, luftfugtighed og påmindelser om vedligeholdelse. Mit Sony BRAVIA kan styres med tænd/sluk, lydstyrke og fjernbetjeningsfunktioner. Det er små ting hver for sig, men det er netop den slags, jeg gerne vil samle.

Skole, mail og kalender

Skoleintra og Tabulex/IST SFO giver adgang til beskeder, lektier, skema, læsekontrakter og afhentningsaftaler. Det er her, pyskoleintra binder skolens systemer sammen med Mutti.

Gmail-integrationen henter mailoverblik fra flere konti, og Google Calendar samler aftaler til blandt andet dagens overblik. Begge forbindelser er lavet til at læse oplysninger. De sender ikke Gmail-beskeder eller ændrer aftaler i Google Calendar.

Energi, batterier og vejr

Eloverblik henter historisk elforbrug fra DataHub. Victron VRM giver indblik i solproduktion, batteriets ladestand og strøm fra og til nettet. Jeg har også bygget aflæsning af JK/Jikong-batteristyringer, så Mutti kan følge blandt andet cellespændinger, temperaturer og alarmer. Den forbindelse overvåger batteriet uden at ændre dets indstillinger.

Vejrdata fra Open-Meteo supplerer overblikket. Målet er at kunne se tingene i sammenhæng og følge udviklingen over tid, frem for at skulle samle tallene fra flere apps selv.

Kameraer og billeder

Ring-integrationen samler hændelser fra kameraer og dørklokker og kan hente billeder og optagelser til automatikker. Jeg har også bygget lokale billedværktøjer til at beskære og forbedre billeder, udtage billeder fra video og genkende nummerplader eller sammenligne ansigter med udvalgte referencebilleder. Selve billedbehandlingen og genkendelsen foregår lokalt.

Små hjælpere omkring det hele

Systemovervågning følger maskinens belastning, hukommelse og diskplads, mens en OpenAI Platform-integration bruges til indholdsscreening i Gmail-forløbet.

Sammen med Muttis egne opgaver, påmindelser og daglige overblik gør forbindelserne assistenten til mere end endnu en fjernbetjening. Det er stadig et personligt projekt under udvikling, og selve Mutti-repoet er endnu ikke offentligt.

← Alle projekter