Homey Community Forum

Weerlive.nl

Op basis van informatie van @Rocodamelshe ben ik gaan stoeien met weerlive.nl. Ik kan op dit moment de actuele weersgegevens opvragen bij weerlive.nl, deze in een variabele zetten en gebruiken.

Nu heeft weerlive.nl ook een interessante api voor de weersverwachtingen per uur. Deze informatie jan ik ook opvragen, alleen weet ik niet hoe ik die data kan verwerken. Bij de actuele weersgegevens heb je een unieke code(d0tmax, d0tmin en d0neerslag),maar die zie ik niet bij de weersverwachting. Iemand een idee?

Ik dacht dat er wel ergens een “verw” stond in de originele link. Kan hem nu ff niet checken helaas.

Dat zou kunnen. Maar het probleem dat ik heb is dat ik meedere dagen krijg. Steeds zie ik temp staan voor ieder uur en dag. Hoe krijg ik nu bijvoorbeeld de temp van morgen 11:00 binnen en van overmorgen 11:00? Althans in een variabele

@Rocodamelshe In bovenstaande schermafdruk worden in één flow 3 aanroepen gedaan naar de weerlive API. Zelf heb ik ook een soortgelijke constructie (omdat ik nog niet beter weet), maar als je dat echt elke 10 minuten zou opvragen dan heb je dus 3 x 6 x 24 = meer dan de 300 aanvragen die je op een dag mag doen met de gratis API.

Is het met BL ook mogelijk om de hele JSON respons op te slaan in 1 aanroep en deze vervolgens binnen een tweede flow verder uit te splitsen naar de gewenste waarden elk in hun eigen variabele?

Ik zou zeggen dat GET JSONpath triggerwaarde iets zou moeten kunnen doen, maar ik krijg het niet uitgevogeld…

Edit: inmiddels zelf uitgevogeld hoe het werkt. Voor iedereen met dezelfde vraag hier mijn oplossing:

Maak eerst een flow die alle gegevens in 1x ophaalt en de totale JSON string doorgeeft aan een tweede flow:
image

Dan de tweede flow welke alle gegevens die nodig zijn verwerkt en in aparte BL variabelen zet:
image

De eerste flow kan zo vaak als nodig is aangeroepen worden (maar let op de max. van 300x per dag voor de API key). De tweede flow wordt vervolgens automatisch door de eerste aangeroepen omdat ze dezelfde triggernaam hebben (in mijn voorbeeld WeerUpdate).

Het is dus nodig om hiervoor zowel de Better Logic als de HTTP app geïnstalleerd te hebben.

2 Likes

Mooi voorbeeld. Ik tracht de 14 daagse weersverwachting nog steeds in variabelen te krijgen. Hetgeen ik nog niet begrijp is $.liveweer[0].d0tMax.
Dollarteken zal een standaard aanroep zijn
Liveweer zal denk ik de naam van de Json file zijn
[0] geen enkel idee waar dit vandaan komt
d0tMax De variabele in de jsonfile

image
Kan iemand dit in ‘mensentaal’ uitleggen? Ik heb het werkend voor weerlive door die code erbij in te typen, maar wellicht kan het mij op weg helpen voor de 14-daagse verwachting

Probeer eens met [1] of [2] aangezien de door jou gewenste variabelen er vaker in staan zal je die specifieker moeten specificeren.
0 zal mogelijk de 1e instance zijn, 1 de 2e, enz.
Zeker weten doe ik het niet, maar het is het proberen waard.
liveweer is de naam van de set die terug komt uit de JSON aanroep.

  • $ representeert het (JSON) object dat teruggestuurd wordt door de server
  • liveweer is de naam van een “key” in dat object; de waarde die bij de key hoort is een array van waarden (elke waarde is weer een object, dus $.liveweer is een array-van-objecten);
  • [0] is het eerste element van dat array; als je het tweede element wilt, moet je [1] gebruiken (enz);
  • d0tmax is de naam van een key in het (in dit geval) eerste element van de liveweer array

De expressie is een JSONPath expressie. Je kunt hier in realtime zulke expressies uitproberen: plak het JSON resultaat van de weerlive server in het “JSON” veld, vul bovenin de JSONPath expressie in, en rechts zie je het resultaat.

@robertklep stel dat ik onderstaande jsonfile heb, is dan plaatsnaam de key van het object? En de variabele “temp” op tijdstip 14:00 is dat dan het tweede element?

Om die variabele dan aan te roepen: $plaatsnaam[1].temp. ?

Dit is wel ff andere koek zeg:nerd_face:

Welke onderstaande JSON file? :wink:

Zo te zien moet je dan $.data[1].temp hebben.

1 Like

Fantastisch @robertklep, dat is hem. Werkt geweldig. Nu kan ik verder met ‘mijn’ volautomatische tuin🤗

Ik wil hwt antwoord op ‘solution’ zetten, kan ik dat doen en hoe?

Op die 3 puntjes onder zijn bericht klikken

image

En dan?:nerd_face:

Dan niks haha! Ik zie hem hier niet bij staan. Eens even vragen of iemand iets is vergeten met het maken van de extra categorieën.

@Marcel_Ubels ^^
Is gefixed, check again!
Emile heeft het aangepast.

1 Like