Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

HomeSeer-skolen #7: Events - automatikkens kjerne


Moskus

Anbefalte innlegg

Endelig, litt automatikk!

For at heimen faktisk skal bli smart, må heimen gjøre som du vil uten at det er du som gjør det. Alt vi har gjort til nå er å legge til rette for fjernstyring, som i "weee, jeg kan styre lyset fra mobilen" (noe som man blir lei av ganske raskt), men HomeSeer har en fantastisk motor for automatikk. Og den skal vi nå benytte oss av. :) 

 

 

 

 

 

 

automate all the things.jpg

 

 

Bli kjent, med begrepet Event

Ordet Event er selvfølgelig engelsk, det mest passende norske ordet er vel "hendelse". Jeg bruker ordet "Event" på norsk, akkurat som jeg bruker ordet "Device".

 

Et Event er delt i to: Det har en trigger (med en eller flere conditions) og en eller flere actions.

 

Trigger

En trigger er det som setter Eventet i gang. Som i "kjør dette eventet når klokka slår 06:00" eller "kjør dette eventet når lyset i gangen blir skrudd på".

 

Condition

En condition (altså "betingelse") hører til en trigger. De begrenser triggeren, som i: "kjør dette eventet når klokka slår 06:00 men bare på en mandag" eller "kjør dette eventet når lyset i gangen ble skrudd på men bare hvis klokken er 17:00 eller senere, det har regnet 3 mm OG ingen har ringt på døra på 4 timer".

 

Action

En action (en "handling") er det som faktisk skal skje. F.eks. at man skrur på av eller på et lys, kjører et annet event eller et script.

 

I utgangspunktet ganske enkle verktøy som man, med litt trening, kan bruke på ganske så avanserte måter. :) 

 

 

Event-oppsett

Vi går til View -> Events. Hvis vi ikke har lagt til noen eventer, blir vi bedt om å navngi vårt første Event.

Nytt event 1.png

 

Control 6 - Add_Below.png betyr selvfølgelig "Legg til". Det kan være legg til et Event til gruppa, en trigger/condition eller en action.

Control 1 - Run event.png kjører Eventet slik det er nå, helt uten å ta hensyn til eventuelle conditions.

Control 2 - Enable-Check.png deaktiverer eller aktiverer et event.

Control 4 - Delete.png sletter et event, en trigger/condition eller en action.

Control 5 - Duplicate.png kopierer eventet slik det er.

Control 3 - Expand.png utvider eller minimerer alle Events eller conditions.

Control 7 - basic.png indikerer at du nå kun viser basis-valg, trykk denne for å se:

Control 8 -advanced.png avanserte valg.

 

MERK:

Det er en god idé å minimere triggers og actions når man er ferdig med dem, for da får man opp eventuelle feilmeldinger. Hvis et en trigger, condition eller action ikke lar seg minimere, så er det et tegn på at noe er galt eller at linjen ikke er ferdig konfigurert.

 

 

Vi kan velge en trigger (i den blå linjen, øverst). Her er trigger-kategoriene som kommer med en helt vanlig HS-installasjon:

Nytt event 2 - Triggers.png

 

En trigger-kategori har flere tilhørende triggere:

Nytt event 3 - Subtriggers.png

 

For actions er lista lenger:

Nytt event 4 - Actions.png

 

Igjen har Actions flere underalternativer. Hvis man velger "Control a Device" får man opp valg om å velge en device å controllere. Når man har gjort det, blir alle CAPI-verdiene (se del 6) listet opp.

Nytt event 6 - SubActions 2.png

 

... så hvordan ser et Event ut? I sin enkleste form, kan det se slik ut:

Nytt event 7 - Ferdig event.png

 

Dette leser vi som at kl. 06:00 blir lyset satt til 17%.

 

 

Organisering

Ved siden av Event-navnet, kan man velge en Type hvis man ønsker det. Ved siden av Typen, kan man flytte eventet til en annen gruppe (eller lage en ny).

 

Grunnen til dette er at man skal finne igjen eventene sine. Når man har 5-10 stykker så er det enkelt. Når det er 300 så er det verre. Jeg sorterer forskjellige typer Eventer i forskjellige grupper (jeg bruker ikke "Event Types" så mye).

Filtering.png

 

Men det gjør det overraskende fort å finne frem i eventene. Skal du kikke på eventet som styrer lyset i gangen basert på en bevegelsessensor? Kikk i gruppa "Bevegelse". Hva med lyset som går automatisk i ferien? Kikk i gruppa "Automatisk (ferie)". Hva med de trådløse bryterne? "Brytere". Og hvordan får dere beskjed tilbake? "Notifikasjoner".

 

"Referencing Device(s)" er veldig hendig hvis du skal finne eventene som styrer eller blir styrt av en bestemt device. Si at et lys skrur seg på og av når det ikke skal, og du lurer på hvorfor. Da er det bare å velge devicen i Referencing Device(s), så blir Eventene dine filtrert til å kun vise de som har med denne devicen å gjøre. MERK: Hvis du bruker scripts vil disse komme med i filtreringen, det er kun de som har en Device spesifisert i en ren Event trigger, condition eller action.

 

Når du er ferdig med filtreringen er det en god vane å trykke på "Show All" etterpå... ;) 

 

 

Blant de mest brukte: Bevegelsessensor

I utgangspunktet er det enkelt. Vi velger bevegelsessensoren som device, og velger CAPI-verdien "Motion" som trigger.

Event-eksempel 1 - Standard bevegelse.png

 

I dette eksempelet vil jeg styre lyset på badet i kjelleren. De to nederste linjene er enkle. Den ene skrur lyset PÅ, og den andre skrur lyset AV etter 10 minutter. Så langt er alt vel.

 

Men hva skal vi med "Remove Delayed Device Actions"? Jo, "lyset av etter 10 minutter" blir nettopp det; en "Delayed Action". Disse Delayed Action'ene blir kjørt etter den aktuelle forsinkelsen. Når bevegelsessensoren blir trigget, så blir alle eventuelle slike Actions (som i vårt tilfelle skrur lyset av) fjernet først.

 

Sluttresultatet er at lyset blir værende på så lenge det er bevegelse i rommet, men blir skrudd av etter 10 minutter hvis bevegelsen stopper (for da blir IKKE denne Delayed Actions fjernet). :) 

 

 

På toalettet i 1. etg er det både en bevegelsessensor og en magnetsensor på døren. Det kan jo selvfølgelig løses med å lage to forskjellige eventer, men siden det er det samme som skal skje uavhengig av trigger, så velger vi heller at Eventet skal ha flere forskjellige triggere.

 

For å få til flere triggere trykker du på den grønne Control 6 - Add_Below.png-knappen, men istedenfor "AND IF" til venstre, velger man "OR IF". Dette blir en ny trigger.

I tillegg har jeg her noen conditions som gjør at dette Eventet kun kjører når det ikke er natt (dvs. på morgen, dag og kveld).

 

Event-eksempel 2 - To triggere.png

 

 

Da jeg skulle lage Natt-versjonen av dette Eventet, kopierte jeg det ved å trykke på Control 5 - Duplicate.png-knappen. Så endret jeg condition fra "Device Value Not Equal To" til "Device Value Equal To". Lys-kontrollen ble endret fra "On" (som betyr 100%) til "Dim 10%".

Event-eksempel 3 - Natt.png 

 

 

Planlegging

Hvis du ikke har sett på Events før nå, så vil det sannsynligvis begynne å demre for deg at det er enormt med muligheter her. Og det har du helt rett i! Hemmeligheten for å finne frem i kaoset er rett og slett å prøve seg frem, og å spørre hvis det feiler og du ikke finner ut hvorfor. Andre her har lang erfaring med å sette opp Eventer og har sikkert gjort samme feil selv som du har gjort.

 

Alt koker ned til en ting: Logikk.

Dette er programmering. Men istedenfor å måtte bruke et tastatur og kode hver linje, er de aller fleste valgene bakt inn i programmet. Hvis man installerer plugins, vil disse også kunne ha sine egne triggere og actions.

 

Det man må gjøre når man skal begynne å automatisere er å planlegge. Det er veldig fristende å kaste seg hodestups ut i eventene, men man sparer seg mye frustrasjon hvis man tenker gjennom problemstillingen først.

 

  • Hvorfor skal noe skje?
    Er det en bestemt hendelse? Som at noen kommer hjem? Eller står opp av senga? Eller noe så enkelt som et bestemt klokkeslett på bestemte dager?
     
  • Hva er det egentlig som skal skje?
    Er "Når det er morgen skal ganglyset komme på" det eneste som skal skje? Skal det skje noe annet? Er det andre betingelser man skal ta hensyn til? Skal ting skje i en bestemt rekkefølge?
     
  • Har jeg nok inn- eller ut-data? Hvordan kan man eventuelt ordne det? Eller kan jeg komme rundt det på en akseptabel måte?
    Hvis jeg vil koke kaffe når jeg står opp, så må jeg faktisk vite når jeg står opp OG jeg må ha muligheten til å koke kaffen. Hvis man alltid står opp kl 07:00 så kan det være så enkelt som å ha en trigger 15 minutter før. Alternativt kan en bevegelsessensor i gangen på utsiden av soverommet være en indikasjon på det ("HVIS bevegelse AND Time is after 07:00"), eller man kan (etter hvert) bruke en sensor, som et smart sengelaken.

    For å trakte kaffen kan man bruke en vanlig kaffetrakter med en plugin-modul, eller man kan integrere en smartere kaffetrakter.

 

For å sette opp en dagsrutine, må man faktisk tenke gjennom hva man gjør gjennom en vanlig dag, og hvordan man ønsker at det skal være. Del dagen i små biter og ta del for del, så blir problemstillingen mindre og mer overkommelig.

Utenom det er det bare å sette i gang! :)

Eventer justeres etter hvert, og automatikken bygges ut fortløpende.

 

 

Event-valg

Hvis man kikker under selve Event-definisjonen (under actions), så ser man teksten "Options". Utvider man denne menyen, ser man dette:

Event-options.png

 

Her gis det enda flere valg til hvordan eventet skal trigges. "Priority Event" skal visstnok prioritere denne triggeren, som navnet antyder, men jeg har ikke hørt om situasjoner som blir løst av å bruke denne. "Include in Powerfailure Recovery" kan være grei hvis du har Eventer som MÅ kjøre etter at HS har blitt avsluttet av et strømbrudd (ikke blitt avsluttet skånsomt). Jeg bruker ikke noen av disse.

 

"Security" er derimot hendig. Hvis man velger "Time is 14:00" som trigger, og huker av Security, vil dette eventet få en ny random tid etter hver gang det er blitt kjørt. Tiden som brukes til å gi intervallet den nye random-tiden er valgt fra, definerer du under valget Setup -> "Security Offset +/- (minutes)". Hvis du velger 15 minutter, så kan altså neste trigger for eventet være alt mellom 13:45 og 14:15. Veldig hendig hvis du ikke vil at det skal se ut som om hverdagen avsluttes kl 23:00 hver ukedag hele året uansett. :)

 

"Remove This Event After Trigging" er det sjeldent man bruker på eventer man definerer selv. Men de er mer praktiske når vi kommer til Scripting. Alle Actions som er satt som delayed, blir i praksis et nytt event med dette valget huket av.

 

"Do Not Log This Event" velger jeg på de fleste Eventer. Jeg trenger ikke fylle opp loggen min med unyttig informasjon om eventer som gjør som de skal.

 

"Cannot Re-Run for XYZ time" er også veldig viktig. Av og til kan en trigger bli trigget svært raskt etter hverandre, og det kan gi litt kluss for Action'ene som dermed kjører nesten dobbelt. F.eks. kan man ha flere RFXtrx433-tranceivere, og alle disse vil motta et signal fra en Nexa-bryter. Dermed vil et event som bruker Nexa-bryteren som trigger kjøre flere ganger etter hverandre. Da er det lurt å sette "Cannot Re-Run For" til minimum 1 sekund.

 

 

Betingelser for Actions

En trigger har betingelser/conditions, men det hender at det er praktisk å ha betingelser for Actions også. F.eks. har jeg en dørlås (en Danalock v1) som man kan "låse" så mange ganger den vil. Det vil si: Hvis jeg velger "Lock" vil kjøre motoren uansett hvor mye den er låst fra før, og resultatet er at tannhjulene i låsen "pusser tenner". Jeg er redd det går ut over låsen i lengden. (Dette gjør heldigvis ikke Yale-låsen vår, eller ID-lock).

 

Men jeg vil jo fremdeles at huset skal låse døra når vi går ut eller legger oss HVIS dørlåsen er opplåst! Da ville det vært praktisk å ha conditions for Actions, men HS støtter ikke dette direkte. Man må bruke et ekstra Event.

 

Først definerer vi selve eventet som låser døren. Merk at det er en MANUELL trigger, men MED conditions.

 

Conditional Actions 1 - Eventet.png

... som vi leser som "lås døren hvis den ikke er låst".

 

I Eventet som kjøres når nattmodus blir satt, eller som kjøres når hus-alarmen blir aktivert, så legges denne Action'en inn.

Conditional Actions 2 - Trigger.png

Det viktige her er avkryssingen for "Run Only If Other Event Conditios are TRUE", som du muligens må trykke på det røde Control 8 -advanced.png-ikonet for å få se.

Dermed blir kjellerdøren kun låst hvis den ikke er låst fra før! :)

 

 

Dette gir også andre muligheter. Jeg vil at huset skal gjøre en vurdering av Lux-nivået i stua, og justere lyset deretter. Dette skal vurderes hver gang Lux endrer seg, eller når vi kommer hjem (alarmen blir skrudd av) eller at det blir morgen (Tidsstatus skiftes fra Natt til Morgen), altså er det tre forskjellige triggere.

 

Dette kunne jeg løst med å lage 6 forskjellige eventer, og bruke en haug med (forholdsvis like) conditions for hvert event. Det blir mye å holde styr på, så jeg samlet triggere i et Event, og Lux-vurderingene i to andre (fordi de har forskjellige Actions, et skrur lyset på et annet skrur det av).

 

Først selve vurderingen for å skru lyset av:

Conditional Actions 3 - Lys av.png

 

... eller på:

Conditional Actions 4 - Lys på.png

 

Og så et event for når disse vurderingene skal skje:

Conditional Actions 5 - Lys-triggere.png

 

Som du ser er det ingen overlapping i Lux i eventene som skrur det av eller på, så de to øverste kan ikke bli trigget samtidig. Og en bonus er at siden jeg sjekker om lyset er "På" eller "Av" istedenfor hhv. "ikke Av" eller "ikke På", så vil ikke automatikken ta over hvis jeg har dimmet lyset i stua. Og som du ser i devicen "Settings - Options - Automatisk lys i stue" kan jeg overstyre automatikken med en virtuell device.

 

At Lux-vurderingen gjøres når Tidsstatus blir "Morning" er hendig både om sommer og om vinter. Hvis det er behov for lys, så får du det. Men om sommeren kan det jo fint være lyst nok til å slippe det når klokka er 06:30.

 

Den skarpe leser vil legge merke til at det ikke er definert hva som skal skje hvis Lux blir målt til å være mellom 300 og 650, og svaret er enkelt: Det skal ikke skje noe, og det er faktisk et poeng at det er et relativt stort sprik mellom av eller på, ellers ville en lettskyet himmel være nok til at lyset omtrent ville flimre (avhengig av hvor ofte Lux-verdien blir lest).

 

Tips: Bruker du slike virtuelle devicer for å styre når automatikken skal virke, så er det alltid en god idé å lage et Event med en gang som setter devicen tilbake til det du mener skal være standard-verdien. "Settings - Options - Automatisk lys i stue" blir hos oss satt til "On" når huset går i natt-modus.

 

Da er det bare å begynne å automatisere. :) 

 

Vanne plenen, anyone? ;) 

Vanning 1 - Trigger.png

 

 

FAQ

Q: Hva er forskjellen på triggerne "Device Changes and Becomes" og "Device Was Set To"? Er de ikke like?

A: Nei, de er ikke helt like. Hvis et lys er på, og det får et nytt PÅ-signal vil "Device Was Set To" bli trigget, mens "Device Changes And Becomes" ikke blir. For at "Device Changes And Becomes" må verdien være en annen før triggeren skjer.

 

Q: Hva er forskjellen på triggerne "Device Has Been X for Exactly Y time" og "Device Has Been X for At Least Y time"?
     Vil det ikke være best å bruke "At Least"?

A: Som trigger er "At Least" veldig skummel å bruke, et eksempel på hvor galt det kan gå kan du lese her. Grunnen er forskjellen i hvordan disse to trigges.

 

Nå er det litt mer komplisert enn det som forklares her (og sjekkene skjer oftere enn det), men la oss for enkelhets skyld si at alle eventer blir sjekket hvert sekund. Normalt skal et Event kun kjøre en gang, med mindre det er gode grunner til å kjøre det flere ganger, men sannsynligvis aldri så ofte som hvert sekund

Et event med trigger "Taklys has been OFF for exactly 2 minutes" vil kun kjøre den ene gangen, og ferdig med det.

Et event med trigger "Taklys has been OFF for at least 2 minutes" vil kjøre etter 2:00, 2:01, 2:02... altså hvert sekund etter at det har gått to minutter siden taklyset ble skrudd av.

 

Jeg tror grunnen til at folk ofte velger "at least" istedenfor "exactly" er at "exactly" høres så usikkert ut. "Oi, tenk hvis den bommer! Da vil jo 'At Least' være sikrere". Og det finnes tilfeller der "At Least" absolutt kan være nyttig, den er spesielt hendig som en condition. Men hvis du vil bruke den som trigger, så må du legge til andre conditions som gjør at eventet ikke trigges i det uendelige...

 

 

Q: Hvordan kan jeg endre rekkefølgen på Actions (eller conditions)? Må jeg slette alle Actions og legge dem til i rett rekkefølge?

A: Neida, det er rett og slett "drag and drop". Minimer action/condition, og ta tak i den. Dra de så oppover (eller nedover) og slipp når du er fornøyd. Dette kan du ikke gjøre med en touch-skjerm, dessverre, man trenger en mus.

 

 

Oppsummering

Da har vi vært gjennom en kort introduksjon til automatisering, tro det eller ei. Og ja, nå begynner det å dra seg til! Event-motoren er utmerket, og det er enkelt å redigere og utvide etter hvert. Event-motoren er et kraftig verktøy, som tidvis kan være ganske komplisert. Det vil ta seg litt tid å lære, men når man har satt opp de første Eventene (og navngitt dem skikkelig), så går det raskt å sette opp flere. Øvelse gjør mester! :) 

 

Det er mulig vi kommer tilbake til eventer senere, det er litt avhengig av tilbakemeldingene. Savner du noe, gi lyd i kommentarfeltet under.

 

 

HomeSeer-skolen har tidligere dekket innkjøp (del 1), oppsett (del 2), Z-wave-konfigurasjon (del 3 og del 4), 433 MHz utstyr (del 5) og device-håndtering, -sortering og -oppsett (del 6).

 

I del 8 skal Fermate vise oss hvordan vi kommer i gang med HStouch Designeren! :) 

 

 


Vis full oppføring

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.