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:
2 Interruttore-componenten;
4 Info-componenten;
1 Lucchetto-component;
1 Script-component.

Stap 2:
Open de editor van de Script-component.

Scriptoverzicht

Stap 3:
Maak de eerste variabele aan, 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.

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.

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.

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.

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.

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.

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.

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.

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