Automatisering/Automation

Eksempler på automatisering/Examples of automations


Detaljert navigering i sidene

AUTOMATISERING

Som jeg har nevnt utallige steder på disse sidene og som skjermbildene tydelig viser så har jeg valgt å basere vårt smarthjem på Apple Home. Jeg kjenner ikke noe behov for å forsvare dette valget eller kritisere andre som velger andre plattformer, men i blant får jeg selv til dels "kritikk" og til dels spørsmål om ikke Apple Home er for begrenset til å kunne gjøre noe særlig med, spesielt når det gjelder automatisering og programmering. Til det er svaret "tja"; baserer man seg utelukkende på Apple Home og Home-appen er det nokså betydelige begrensninger, både i støttede enheter og programmeringsmuligheter. Men begge deler kan omgås, dels ved hjelp av andre "basestasjoner" (fysiske eller virtuelle, som Homey eller Homebridge) og dels ved hjelp av andre apper for programmering (som jeg vil diskutere her).

Det skal også sies at jeg rett som det får høre mer eller mindre nedlatende bemerkninger fra personer som bruker andre plattformer om hvor enkelt og simpelt Apple Home er og hvor lite man kan gjøre med det. Faktum er når jeg har spurt om eksempler på hva disse personene får til er det ytterst få ganger at mitt oppsett kommer til kort. Det har skjedd, spesielt når det gjelder å integrere enhetstyper som overhodet ikke støttes i Apple Home, men ikke ofte.

Tanken min her er å vise eksempler på spekteret av muligheter og hvordan man kan få til ulike typer programmering/automatisering (alle eksemplene er også beskrevet under de ulike rommene der de anvendes). Jeg starter med enklere rutiner og går videre til mer komplekse eksempler:

UTLØSER - AKSJON

De aller enkleste formene for automatisering er at når "noe" skjer så utløser det en handling av ett eller annet slag, med den enkle «syntaksen» UTLØSER - AKSJON. Man kan lage mange varianter av slike, som vist under.

Tidsbasert

Enten at et gitt tidspunkt inntreffer eller knyttet til solens gang, begge deler settes veldig enkelt opp i Home-appen:

Eksempel: Kl. 6.00 hver morgen slås lyset på (med rød farge) i akvariet

Stacks Image 555

Man kan velge hvilke ukedager regelen skal kjøres og også om det skal settes betingelser om hvem som er hjemme eller ikke.

Eksempel: To timer før solnedgang slås gruppen med lys kalt "Afternoon Lights" på

Stacks Image 628

Man kan finjustere hvor lang tid før, ved eller etter solopp- eller nedgang rutinen skal kjøres.

Personbasert

Ting kan skje når noen kommer hjem eller forlater hjemmet.

Her er det mulig å justere mange faktorer, som hvilke personer det gjelder, hvilket sted og om dette skal gjelde når som helst eller til spesifikke tider av døgnet:

Stacks Image 591

§ For eksempel har vi en regel der lysene i scenen "Evening Lights" slås på når en av oss kommer hjem og det er etter solnedgang:

Stacks Image 1239

Sensorbasert

At en sensor av én eller annen type registrerer en verdi som skal utløse en handling. Her finnes det mange muligheter:

Bevegelse er kanskje det mest vanlige, der typisk lys slås på når noen kommer inn i et rom.

Vi har mange slike, f.eks. slås lyset på badet nede på ved bevegelse og her utnyttelsen muligheten for å automatisk slå av lyset igjen etter en viss tid, i dette tilfellet 5 minutter:

Stacks Image 635

Dør eller vindu åpnes eller lukkes, basert på det som gjerne kalles en "kontaktsensor".

Dette er også en nyttig funksjon og vi har en rekke slike, f.eks. lyset i redskapsboden slås på når døren til boden åpnes (en tilhørende rutine slår det av igjen når døren lukkes):

Stacks Image 598

Temperaturbasert

Dette er gjerne mest aktuelt for enheter som enten varmer eller kjøler et rom, og man kan da lage regler der en ovn, vifte, osv. slås på eller av om temperaturen når et visst nivå.

Vi har f.eks. en takvifte på soverommet og en rutine som gjør at viften slås av om temperaturen faller under 20 grader:

Stacks Image 605

Det er også mulig å basere rutiner på andre "klimaparametre", helt tilsvarende som for temperatur kan man benytte luftfuktighet og luftkvalitet som utløsende faktor, men vi har ikke satt opp noen slike.

Basert på "krisesituasjoner"

“Krise" er kanskje ikke det beste begrepet, men man kan utløse aksjoner basert på at en røykvarsler detekterer røyk eller en lekkasjesensor detekterer vann.

Vi har begge typer sensorer, men har nøyd oss med å få varsler om disse oppdager noe galt. Vi kunne f.eks. satt opp en regel om at alle lys i huset skal settes til rødt om det oppdages røyk (her er røde akvariumslys vist):

Stacks Image 612

Basert på lysnivå

Som er noe mange ulike sensorer måler, f.eks. måler mange bevegelsessensorer både temperatur og lysnivå.

Som et eksempel (vi har ikke denne rutinen aktiv, disse lysene styres av solens gang) kan lysene i vinterhagen slås på dersom lysnivået faller under 20 lux (en slik rutine bør gjerne bare være aktiv før leggetid så man unngår at lysene står på hele natten):

Stacks Image 619

Det finnes også andre sensorer, f.eks. vibrasjon, og det vil helt sikkert komme flere, prinsippet for automatisering vil nok uansett være det samme.

Bryterstyrt

Dette er vel kanskje den typen "automatisering" som likner med på det man kjenner fra et "ikke-smart hjem". Slår man på en lysbryter kommer lyset på, og det samme prinsippet gjelder i et smart hjem, bare med flere muligheter. I motsetning til en tradisjonell bryter, som naturlig nok bare kan slå på/av enhetene som fysisk er koplet til denne, kan smarte brytere styre alle mulige enheter uansett hvor i hjemmet de befinner seg:

F.eks. har vi en smart bryter på nattbordet ved sengen vår (i soverommet) og et dobbelttrykk på denne aktiverer scenen "Good Morning", som slår på en rekke lys rundt om i huset (og den kunne også ha skrudd opp temperaturen, åpnet gardiner, slått på TV-en til morgennyheter, osv.):

Stacks Image 672

Med en annen smart bryter i biblioteket gjør et langt trykk at "Rob", robotstøvsugeren, starter:

Stacks Image 714

Basert på enhetsstatus

Dette er en omfattende kategori av rutiner, der i praksis enhver status/endring i status for enhver smart enhet kan utløse en aksjon:

F.eks. kunne vi satt opp en regel om at når TV-en slås på kjøres solskjermingen i stuen for vinduet ved TV-en ned:

Stacks Image 679

Her er det ellers bare fantasien som setter grenser, man kan benytte som utløsende faktor at lys slås på eller av, rullegardin åpnes eller lukkes, oppvaskmaskinen er ferdig, osv.

UTLØSER - BETINGELSE - AKSJON

Slike relativt enkle rutiner kan, som eksemplene over viser, være veldig nyttige, men man kan oppnå enda mer ved å utvide disse med betingelser. Dette er forhold som må være oppfylt for at det skal iverksettes en aksjon, etter «syntaksen» UTLØSER - BETINGELSE - AKSJON. Det er mulig å sette én eller flere betingelser, og dersom man benytter flere kan det også defineres om det er tilstrekkelig at bare én av disse er oppfylt eller alle må være oppfylte. Programmering av slike betingelsesrutiner kan til dels skje i Home-appen, men for mer avanserte versjoner må det brukes andre apper (med mindre man tyr til Shortcuts i Home-appen, mer om dette under). Eksempler på rutiner og hvordan disse kan settes opp:

Én betingelse/to betingelser (der betingelsen(e) gjelder tid eller person)

Dette kan programmeres i selve Home-appen, da dette er standardbetingelser som vises som valg når man lager en rutine:

Stacks Image 686

Man har da de samme valgene som ble vist over, altså knyttet til spesifikke tider på døgnet eller solens gang eller om ulike personer er hjemme eller borte. Lages det både tids- og personbaserte betingelser behandles disse med "OG"-operatør, det vil si at begge betingelsene må være oppfylte for at aksjonen skal iverksettes.

F.eks. har vi en rutine der UTLØSER er at (såkalt Audi) garasjeporten åpnes og AKSJON er at lyset i garasjen slås på. Siden dette er unødvendig på dagtid er det satt som BETINGELSE at tidspunktet er mellom solnedgang og soloppgang:

Stacks Image 694

Én betingelse (der betingelsen gjelder noe annet enn tid eller person)

Dette kan ikke programmeres i selve Home-appen, utenom ved hjelp av Shortcuts, da må man ty til én av flere andre apper. Jeg er ganske sikker på at det finnes flere muligheter, men jeg har selv benyttet Eve-appen, Fibaro-appen og Controller for HomeKit-appen.

Man har da de samme valgene som ble vist over, altså knyttet til spesifikke tider på døgnet eller solens gang eller om ulike personer er hjemme eller borte. Lages det både tids- og personbaserte betingelser behandles disse med "OG"-operatør, det vil si at begge betingelsene må være oppfylte for at aksjonen skal iverksettes.

F.eks. ser følgende rutine slik ut i Eve-appen, der UTLØSER er bevegelse på badet oppe og AKSJON er at det slås på nattlys (rødt lys på 3% styrke). BETINGELSE er at et annet lys, en vegglampe i biblioteket, er av. Logikken er at dette er et lys vi slår av når vi legges oss (ved bruk av scenen "Good Night") så dersom dette er av er badærendet på natten og man ønsker ikke å få skarpt lys i øynene:

Stacks Image 700
Stacks Image 766
Stacks Image 768

Et annet eksempel bruker lysnivå som betingelse, og ser slik ut i Fibaro-appen, der UTLØSER er bevegelse i vinterhagen, AKSJON er å slå på én lampe i dette rommet. Her er BETINGELSE at lysnivået er under 10 lux, som man altså kan taste inn ved bruk av skjermtastatur:

Stacks Image 773
Stacks Image 775

Flere betingelser (der alle må være oppfylt for at aksjonen skal iverksettes, altså ved bruk av OG-operatøren)

Også til dette kan alle de nevnte tre appene benyttes.

F.eks. har vi en nokså sammensatt rutine, vist i Eve-appen, der UTLØSER er at vinduet på hjemmekontoret lukkes. Dette fører til AKSJON at varmepumpen slås på, dersom et antall BETINGELSER er oppfylte, nemlig at et antall andre vinduer/dører er lukkede (bortsett fra døren til hjemmekontoret, som må være åpen for at denne rutinen skal tre i kraft, ellers påvirkes ikke resten av huset av vinduet i dette rommet) og det er også satt som betingelse av varmepumpen skal være avslått (denne siste betingelsen er strengt tatt ikke nødvendig). Merk informasjon i rød oval, nemlig at alle betingelsene må være oppfylte, og dette kan ikke endres, verken i Eve- eller Fibaro-appen.

Stacks Image 794
Stacks Image 796

Forøvrig vises, naturlig nok, rutiner som er satt opp i andre apper i Home-appen, men når det er satt betingelser som ikke kan defineres der angis dette bare med "Custom condition":

Stacks Image 743

Flere betingelser (der det holder at én er oppfylt for at aksjonen skal iverksettes, altså ved bruk av ELLER-operatøren)

Dette er noe som kun kan programmeres i Controller for HomeKit (evt. andre apper som jeg ikke kjenner til).

Vi har ikke mange slike, men ett eksempel er en annen rutine for styring av varmepumpen. Her benyttes som utløsende hendelse en såkalt "virtuell bryter", dette forklares nærmere under. Som UTLØSER benyttes at den virtuelle bryteren Heat Pump Delay Switch slås av (denne ble slått på ved at en verandadør ble åpnet og slår seg automatisk av etter ett minutt, logikken forklares under). Det iverksetter som AKSJON at varmepumpen slås av, dersom én (eller flere) av følgende BETINGELSER er oppfylt; at vinduet i kjøkkenet er åpent, at en verandadør er åpen eller takvinduet i vinterhagen er åpent. Er alle disse lukket, er det ingen grunn til å slå av varmepumpen da den ikke vil forsøke å motvirke lufting fra åpen dør/vindu:

Stacks Image 751

UTLØSER - AKSJON MED FLERE UTLØSENDE HENDELSER

En noe mer avansert versjon av UTLØSER - AKSJON som også er verdt å nevne, er at det kan defineres flere utløsende hendelser. Disse kan ikke programmeres i Home-appen men alle de nevnte andre appene gjør dette mulig. Operatøren ELLER anvendes da på disse (jeg har ikke funnet noen måte å sette opp rutiner der flere utløsende hendelser må inntreffe, dette må programmeres ved hjelp av betingelser), det vil si at dersom én av utløserne inntreffer, iverksettes aksjonen. Som for slike rutiner med én utløsende hendelse kan det benyttes tids-, person-, sensorbaserte hendelser osv.:

F.eks. er det hos oss satt opp slik at registrert bevegelse ENTEN i gangen eller vindfanget, som er to rom ved siden av hverandre, gjør at lyset slås på:

Stacks Image 757

VIRTUELLE ENHETER

Virtuelle enheter fortjener en egen omtale, da slike kan benyttes i ulike automatiseringer, både som UTLØSER, BETINGELSE og AKSJON. En virtuell enhet er, som navnet indikerer, basert på programvare, men som likevel fremkommer i Apple Home som en hvilken som helst annet fysisk enhet.

Det er nok mest vanlig å lage ulike virtuelle brytere (disse kan ta ulike former, ren av/på, automatisk av/på etter en viss tid etter å ha blitt på/av, osv.), men det kan også lages virtuelle sensorer (for bevegelse, vær-/klimaforhold, osv.).

Ulempen med slike er at de ikke kan lages direkte i Apple Home, men må gjøres ad én eller flere mulige omveier:

Homebridge, som er en server man selv setter opp på en egnet maskin som alltid er på, og for Homebridge finnes det flere plugins som muliggjør virtuelle enheter. Jeg bruker Homebridge-Dummy og har satt opp flere virtuelle brytere, som i Apple Home ser ut som en hvilken som helst annen bryter, f.eks. tidligere nevnte Heat Pump Delay Switch:

Home Assistant, en enda mer avansert plattform som man også må sette opp på en egen maskin, og som har enda flere muligheter for virtuelle enheter. En stund kjørte jeg Home Assistant for å integrere enheter jeg ikke fant andre løsninger på, men har avinstallert dette nå.

Homey, som er (ett av mange eksempler på) en smart hjemmesentral med støtte for mange ulike typer enheter, også enheter som det (hvert fall per i dag) ikke er støtte for i Apple Home. Ved å lage en virtuell enhet som baserer seg på en slik ikke-støttet type fysisk enhet, er dette en løsning for å delvis kunne få slike enheter inn i Apple Home. I vårt tilfelle utnyttes dette til å integrere vindmålinger i styringen av en solskjerm montert utenpå stuevinduer. En utendørs Netatmo vindmåler er fullt ut støttet i Homey og viser alle data fra denne:

Stacks Image 823
Stacks Image 827

Via HomeKitty kan denne strengt tatt også eksponeres til Apple Home, men da angis den bare som ikke støttet, så den kan ikke benyttes til noe. Derfor har jeg definert et sett med rutiner i Homey (kalt flows) som slår på og av en virtuell bryter i Homey, kalt High Wind, avhengig av vindstyrke (både jevn styrke og kast). Denne fremkommer da i Home-appen som en hvilken som helst bryter, men den viser altså ikke vindstyrken, som hadde vært det beste, denne virtuelle bryteren slår seg på om vinden blir så sterk at den kan skade solskjermen.

Stacks Image 707

Så er denne integrert i flere rutiner for å åpne/lukke solskjermen, f.eks. en veldig enkel som simpelthen åpner solskjermen om vinden blir for sterk:

Stacks Image 843

En mer avansert rutine bruker både to virtuelle brytere og et sett BETINGELSER for å avgjøre om solskjermen skal lukkes. Først benyttes en virtuell bryter kalt Sun Screen Down Delay Button, som slås på dersom lysnivået målt av en sensor på garasjeveggen overstiger 25.000 lux:

Stacks Image 864

Denne kalles en "forsinkelsesbryter" fordi den er satt opp i Homebridge til å være aktiv i 10 minutter før den slår seg av automatisk. Dette er gjort slik for å unngå at solskjermen kjøres opp og ned til stadighet bare det kommer en solstråle eller en sky dekker for solen i en kort periode (en liknende forsinkelsesbryter styrer åpning av solskjermen når lysnivået går under en grense).

Når så forsinkelsesbryteren går av etter 10 minutter er dette UTLØSER, så sjekkes det om ALLE av de følgende BETINGELSER er oppfylt; at lysnivået fortsatt er over 25.000 lux, at utetemperaturen er over 3 grader Celsius (vi har nemlig hatt problemer med is i skinnene på vinteren), at det ikke er sterk vind (den virtuelle bryteren High Wind er avslått) og vår Samsung TV er påslått (dette siste fordi vi vil at solskjermen skal lukke seg ved lavere lysnivå når vi ser på TV enn når vi ikke gjør det, og dette styres ved en tilsvarende rutine der grensen er 35.000 lux). Er alle oppfylt lukkes solskjermen:

Stacks Image 871

Dette er nokså kompliserte rutiner, men som altså er fullt mulige å få til i Apple Home via en app som Controller for HomeKit og virtuelle brytere.

SHORTCUTS

Dette er den siste mekanismen jeg vil nevne for programmering i Apple Home. Dette startet opprinnelig som en tredjeparts app kalt Workflow, som ble kjøpt av Apple og integrert inn i de ulike operativsystemene. Etter hvert ble det også mulig å bruke Shortcuts i Apple Home, noe som gjør det mulig å programmere både de eksemplene vist over og andre avanserte rutiner i Home-appen.

Man kan enten starte programmering av dette i Shortcuts-appen eller i Home-appen, og i begge tilfeller velge å konvertere til en Shortcut, noe i Home-appen vises helt nederst i listen over scener og enheter når man skal definere AKSJON i rutinen:

Stacks Image 879

Når man velger dette kommer man inn i "programmeringsvinduet" med uendelig mange flere muligheter enn oppsett av en enkel rutine:

Stacks Image 885

Her kan man bl.a.:

  • Velge UTLØSER for å starte rutinen, der man i tillegg til alt nevnt over (tid, person, sensor, osv.) kan bruke værforhold, kalenderavtaler, osv.

  • Lage avanserte rutiner ved hjelp av IF-setninger, repeterende løkker, venting av ulik varighet, osv.

  • Definere AKSJONER, som ellers ved oppsett av Apple Home-rutiner

Shortcuts kan også i stor grad være et alternativ til virtuelle enheter, f.eks. kunne 10-minutters ventingen før solskjermen åpnes/lukkes vært programmert med "wait" i stedet for en virtuell forsinkelsesbryter.

Vi har ikke mange Shortcuts, kanskje mest fordi jeg allerede hadde funnet løsninger for ulike behov før det ble mulig å bruke Shortcuts i Apple Home, men én rutine gjør det mulig å bruke en såkalt Hue Wall Switch Module i Apple Home. Dette er et smart bryterrelé som i Hue-appen kan tilordnes ulike aksjoner avhengig av om bryteres slås på eller av, men som i Apple Home bare fremkommer slik at et trykk uansett stilling på bryteren utløser en aksjon. Med en Shortcuts er dette ordnet slik at dersom lyset som bryteren skal styre er på når bryteren trykkes, så slås lyset av. Om ikke, slås det på:

Stacks Image 894

Jeg håper dette demonstrerer hvilke allsidige muligheter som finnes i Apple Home og gir inspirasjon til hva man kan få til!