Hvordan hente data fra API og bruke dataene? Response mapping og variabler

Fant ut av det og kan dele det sånn at andre slipper å streve med det her.

Du legger inn url’en og json.

Request template
Er bare en oversikt over hvordan dataene ser ut. Ikke nødvendig, men gjør det lettere å se hva du arbeider med.

Headers
Du kan legge inn ekstra verdier som sendes til server. Her står det at vi ønsker json tilbake. Her er aktuelt å legge inn en token for å få data. Ikke aktuelt her.

Authentication
Ikke testet noe her enda, men antar du kan her legge inn brukernavn og passord til en konto og du får token tilbake som du kan bruke til å hente data fra APIet med.

Response mapping
Denne er viktig. Et API kall kan inneholde enorme mengder data. Her henter du ut det du trenger.

Name
Ikke nødvendig. Vet ikke enda hva den kan brukes til uten en info til deg selv hva dette er.

Path in response
Denne er viktig for du kan motta store mengder data, men du skal her hente ut den verdien du trenger. Da skriver du opp sti til verdien. Starter med $. Da er du på topp i strukturen. Så jobber du deg nedover. Dette kalles Json XPath. Søk på det og du finner hjelp til å hente ut verdier. Se f.eks. https://jsonpath.com/ I dette tilfelle ligger verdien i den første propertyen som er pricelevel. I template ser vi at den f.eks. kan være HIGH.

Result variable name
Du har nå fått verdien fra APIet, f.eks. HIGH. Denne skal du nå legge i en variablen. Gi variabelen din et navn. Du må også angi hvilken type verdien er. I dette tilfellet tekst, dvs. String.

Update trigger message
Usikker hva denne gjør.

Set as global
Variabelen du opprettet vil bare være tilgjengelig inne i denne Flowen. Men her kan du gjøre den global slik at den blir tilgjengelig i alle Flower.

Trykk Close og så Lagre flowen.

Du må opprette en Trigger som kan trigge flowen. En enkel måte er i appen å lage en Snarvei. Så kan du legge den som trigger i flowen og kjøre den hver gang du klikker på Snarveien i appen.

Nederst i Flowen kan du velge Show variables. Der skal du kunne se variabelen. Er den Global skal den også kunne se i Flows > Context. At den er I Memory antar jeg betyr at den er i bruk i minnet. Da får du heller ikke slettet den. Det ser også ut til at du ikke for oppdatert den heller. Så ser ikke ut til å være noen god ide og ha den i Memory. Jeg måtte resette Huben for å få fjernet noen som lå i memory og ikke lot seg oppdatere.

Fikk litt inntrykk av at variablene ikke opprettes sånn med en gang. Må lagre og kanskje trigge flowen også.

Bruke variabelen til noe
Hvis du så oppretter en IF, så skal du her få opp variabelen. Merk Global hvis du gjorde den global. Da kan du sette IF variabelen = HIGH så…

Skjermbilde 2022-03-18 kl. 10.22.17

Dette er forøvrig en del av en løsning for å kunne styre strømmen etter når den er dyr eller billig. Jeg har laget mitt eget API som jeg kan kalle opp hver time og får tilbake om strømmen er HIGH, MEDIUM, LOW eller CHEAP. Så er tanken å kjøre en shortcut for hver av dem. Eks. slå av varmtvannsbereder og varme hvis HIGH. Full varme hvis CHEAP etc.

Her en foreløpig test der jeg får en Notification på hva prisnivået er akkurat nå.

Tar gjerne imot tips og ideer rundt dette.

2 Likes