Script met zonsopgang- en zonsondergangstijden van een online API

Hoe je in Ilevia Manager een script maakt dat de tijden van zonsopgang en zonsondergang uit een online API haalt en een Lucchetto-component aanstuurt op basis van de huidige tijd.

INLEIDING

De volgende gids legt in detail uit hoe je het script opbouwt en hoe het werkt. Het script haalt online informatie op via HTTP-verzoeken aan API's, verwerkt die vervolgens en stuurt de ingestelde componenten aan.

Componentconfiguratie

Stap 1:

Open de configuratiesoftware Ilevia Manager en ga naar de sectie Componenti. Open het menu Home automation en voeg de volgende componenten toe:

Benodigde componenten voor het opbouwen van het script in Ilevia Manager

Stap 2:

Open de editor van de Script-component.

Hoe je de editor van de Script-component in Ilevia Manager opent

Scriptoverzicht

Scriptoverzicht

Stap 3:

Maak de eerste variabele aan, die het HTTP-verzoek voor de tijden van zonsopgang en zonsondergang bevat.

Variabele die het HTTP-verzoek voor de tijden van zonsopgang en zonsondergang bevat

Stap 4:

Voeg de eerste functie toe, genaamd Sunrise_sunset, die de Parse van de payload uitvoert, in dit voorbeeld weergegeven door de variabele “Payload”. Maak daarna een variabele aan met de naam “Sunrisetime_ok”, die de parse van de zonsopgangstijd uit het HTTP-verzoek bevat. Zet tot slot de waarde in de component met ID 18.

Eerste deel van de eerste functie: uitlezen van de zonsopgangstijd uit de JSON van het HTTP-verzoek

Stap 5:

Hetzelfde proces wordt toegepast op de zonsondergangstijd: de nieuwe variabele met de naam “sunsettime” bevat de parse van de zonsondergangstijd uit de JSON van het HTTP-verzoek, vanaf de variabele “Payload”. Stel tot slot de waarde in met ID 19.

Tweede deel van de eerste functie: uitlezen van de zonsondergangstijd uit de JSON van het HTTP-verzoek

Stap 6:

Maak de variabele “currenttime” aan, die een HTTP-verzoek doet om de huidige tijd op te halen op basis van je tijdzone. Maak daarna de variabele “timesettings” aan, die de JSON van het HTTP-verzoek parst en daaruit de huidige tijd extraheert.

HTTP-verzoek voor de huidige tijd

Stap 7:

De volgende stap is het extraheren van de waarden voor uren, minuten en seconden: er worden dus drie nieuwe variabelen aangemaakt, die elk een deel van de informatie uit de JSON nemen. Vervolgens worden deze waarden samengevoegd tot één tijdswaarde in de variabele todayTime. Tot slot wordt het resultaat weggeschreven in de component met ID 20.

Extractie van uren, minuten en seconden uit de JSON van het HTTP-verzoek

Stap 8:

De volgende stap bepaalt of de tijd AM of PM is. De nieuwe variabele “period” dient om de aanduiding AM of PM aan de huidige tijd toe te kennen. Daarna wordt de huidige tijd omgezet van het 24-uursformaat naar het 12-uursformaat. Tot slot wordt de huidige tijd samengesteld en wordt de waarde weggeschreven in de component met ID 21.

Conversie van de tijd van 24-uursformaat naar 12-uursformaat

Stap 9:

Om de functie “Sunrise_sunset” periodiek bij te werken, maak je een nieuwe functie aan met de naam “Over”. Deze functie stelt een Interval in op de hoofdfunctie, zodat deze herhaaldelijk wordt uitgevoerd.

Tijdsinterval voor het periodiek opnieuw uitvoeren van de functie Sunrise_sunset

Stap 10:

De laatste functie van het script wijzigt de waarde van een Lucchetto-component als de huidige tijd overeenkomt met de zonsondergangstijd. De eerste variabele, “Time digest”, bevat de huidige tijd; de tweede, “IF_Pm”, bevat de zonsondergangstijd; de laatste, “lock”, bevat de waarde van de Lucchetto-component. Tot slot wordt de functie afgerond met een If Else-logica die de status van de Lucchetto-component wijzigt als de huidige tijd vóór de zonsondergang ligt.

Functie die controleert of de zonsondergang voorbij is en het lucchetto aanstuurt

Stap 11:

Stel ten slotte de setTrigger-acties in: ze zijn verplicht voor de uitvoering van de functies. De eerste setTrigger laat de functie “Sunrise_sunset” alleen uitvoeren als component-ID 12 de status wijzigt naar ON. De tweede setTrigger voert de functie “Over” uit telkens wanneer component-ID 12 van status verandert. De laatste setTrigger voert de functie “Locking_home” uit telkens wanneer component-ID 23 van status verandert.

Instelling van de setTrigger-acties die de functies starten bij statuswijzigingen van de componenten

Klik op de onderstaande link om het demoproject te downloaden en uit te proberen.

Download het demoproject!

Laatst bijgewerkt: