Martin Koksrud Bekkelund

Martin Koksrud Bekkelund

Teknologi • Samfunn • Politikk

Homey og webhooks

28.08.23

Utgangspunktet for denne artikkelen startet ganske enkelt: Jeg har en Homey hjemme og jeg har en Homey på hytta. Er det mulig å få dem til å snakke med hverandre? Svaret er selvfølgelig ja, og webhooks er løsningen. I denne artikkelen viser jeg hva som er mulig og hvordan du går frem.

Hva er Homey?

Som fast leser har du fått med deg mine artikler om Homey. Selvfølgelig har du det. Homey er en smarthussentral, altså en spesialisert datamaskin du kan bruke til å styre alt fra lys og varme i hjemmet, til sikkerhet og automatisering av kjedelige oppgaver. Homey har vært en av de mer populære smarthussentralene de siste årene. Jeg skrev en lengre artikkel om Homey i 2019. Siden artikkelen ble skrevet har det kommet en oppdatert utgave av Homey som støtter flere standarder, har mer minne og kraftigere prosessor.

Hva er webhooks?

Webhooks er, litt forenklet, en mulighet for å dytte en automatisert melding fra et sted til et annet i sanntid. Det vil si at når noe skjer på Homey hjemme, så kan jeg sende en automatisert melding til Homey på hytta, eller omvendt.

Uten å gjøre dette alt for teknisk, kan vi litt upresist si at en slik melding kan være en hendelse alene, en såkalt «event», eller den kan også ha med et innhold, en såkalt «payload».

Hva kan vi bruke webhooks til?

Hvis vi går tilbake til eksempelet med å kunne kommunisere mellom Homey hjemme og Homey på hytta, kan vi tenke oss at når vi reiser hjemmefra og setter huset i sparemodus, kan vi samtidig sende en hendelse til Homey på hytta, som så skrur hytta på.

La meg ta et eksempel med en payload. På hytta har jeg en flow som hver time regner ut strømprisen inkludert nettleie. Den ble opprinnelig laget da strømprisene var ekstremt mye høyere enn de er nå, men som et eksempel fungerer det bra. Hver time oversender jeg bruttoprisen fra hytta og hjem med en webhook. Deretter lagrer jeg prisen i en database, slik at jeg har historikk og kan gjøre artige spørringer og sammenstille innsikt over tid.

Slik setter du opp webhooks i Homey

For å få webhooks til å fungere trenger du først en flow med en navngitt webhook på den Homey som skal motta en hendelse. La oss kalle denne webhook-en for test-for-mottak-av-webhook. Du oppretter en ny flow i Homey som skal motta hendelsen og velger Når og dernest Logikk og så Hendelse har blitt mottatt. Her skriver du inn test-for-mottak-av-webhook. Nå trykker du og velger hva du ønsker skal skje når en hendelse mottas. Hva med en push-melding til deg selv?

Eksempel på mottak av webhook

Så langt, så fint. Nå trenger avsender-Homey å vite adressen til mottaker-Homey. Hver Homey har en unik adresse, en URL, som du skal bruke for å sende meldingen. Adressen vil se ut som https://webhook.homey.app/01234567890abc/.

For å finne denne adressen må du logge inn i Homey Developer Tools, hvor du finner alle detaljer om dine Homeys. Husk å velge riktig Homey, både når du lager flows og i Homey Developer Tools, slik at du får alt riktig.

Trykk på System og se etter cloudId. Denne skal du kopiere og erstatte 01234567890abc i adressen over. Hvis adressen til mottaker-Homey er https://webhook.homey.app/01234567890abc/ så er den fulle adressen til eksempelet https://webhook.homey.app/01234567890abc/test-for-mottak-av-webhook.

Nå trenger du en flow på den Homey som skal sende hendelsen, og denne flow-en skal kalle test-for-mottak-av-webhook hos mottaker. Husk å bytte Homey, og så lager du en ny flow. Velg hva som skal starte denne flow-en, for eksempel bare manuell start med Start. Trykk , velg Logikk og Gjør en HTTP Metode-forespørsel til URL med overskrifter Overskrift og brødtekst Brødtekst. I dette kortet velger du først metode Get og dernest limer du inn https://webhook.homey.app/01234567890abc/test-for-mottak-av-webhook i URL.

Eksempel for å sende webhook

Hvis alt er gjort riktig, så skal du kunne starte flow-en manuelt, og som ved trolldom vil du motta et push-varsel på telefonen fra mottaker-Homey.

Så var det dette med payload da. I flow-en som sender en hendelse putter du inn ?tag= bak URL-en, og dernest kan du trykke på den lille etiketten og velge hvilken tag du vil sende med hendelsen.

Eksempel på å sende webhook med payload

I flow-en som mottar hendelsen vil du nå få tilgjengelig Tag som kan inneholde en verdi som du kan benytte videre, enten du vil dytte det inn i en variabel eller, som meg, rett i en database.

Eksempel på mottak av webhook med payload

Hvor nyttig er denne artikkelen for deg?

Hva kan bli bedre?

Jeg blir veldig glad hvis du legger igjen noen stikkord om hva du tenker!

Smarthus

Som leser kan du gi et bidrag til produksjonen, til driften og til å skaffe utstyr til testing for å sikre regelmessige, uavhengige artikler, tester og vurderinger av høy kvalitet.

Gi et bidrag

Husk å abonnere på nyhetsbrevet, det er gratis og du får alle artikler rett i innboksen.

 

Flere artikler

Enda flere artikler? Besøk arkivet.

Om Martin

Martin Koksrud Bekkelund

Dette er Martin Koksrud Bekkelund sitt private nettsted, hvor han skriver om forbrukerteknologi, teknologiledelse og hvordan teknologi, samfunn og politikk påvirker hverandre. Martin er innehaver av konsulentselskapet Nivlheim. Les mer...

 

Mastodon Facebook LinkedIn Thingiverse GitHub Ko-Fi PayPal

© 1995-2024 Martin Koksrud Bekkelund
OpphavsrettRSS og abonnementKontaktPersonvern og informasjonskapsler