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.
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.
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».
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.
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 Så
og velger hva du ønsker skal skje når en hendelse mottas. Hva med en push-melding til deg selv?
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 Så
, 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
.
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.
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.
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.
Husk å abonnere på nyhetsbrevet, det er gratis og du får alle artikler rett i innboksen.
Enda flere artikler? Besøk arkivet.
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...
© 1995-2024 Martin Koksrud Bekkelund
Opphavsrett • RSS og abonnement • Kontakt • Personvern og informasjonskapsler