In mijn homey 2019 wil ik de volgende schakeling maken :
Stel ik ga over 2 weken op vakantie. dan wil ik dat nu aan zetten dat
Er vóór een bepaalde datum (vakantie start) niks gebeurd en
na een bepaalde datum (vakantie start) een flow wordt gestart en
na een volgende datum (vakantie einde) de flow weer naar zijn normale stand gaat.
Nu heb ik heb volgende gemaakt (zie bijlage) met logic.
Ik vergelijk dus de huidige datum met een datum die in in een variabel heb opgevoerd.
MAAR beide zijn “tekst variabele” en daarom is de datum van 31-10-2025 toch groter dan 15-11-2025 (31 wordt vergeleken met 15)
hoe kan ik dat ik toch voor zorgen dat ze beide als datums gezien worden?
en met elkaar juist vergeleken worden?
(Ik wil voorkomen om iets met “aanwezigheid” te doen omdat ik de enige ben die de app op mij telefoon heb staan in ons huishouden. de rest wilt het allemaal niet.)
Dank je. het zou een oplossing kunnen zijn maar werkt maar op één bepaalde dag.
Dat is de dag dat “vandaag” en “datum” gelijk zijn. Gisteren, morgen en overmorgen werk het niet meer.
En door “all” wordt een bepaalde flow tegen gehouden. ik wil juist dat er een flow (de “vakantie flow") start. En aan terugkomst van mijn vakantie weer stopt.
Wel goed om te beseffen dat je op deze wijze niet ‘echte’ datums vergelijkt, maar een tekstuele weergave van een opgemaakte datum.
Mocht je ook willen rekenen met datums en tijdscomponenten (zoals in deze post) of datums die een verschillende opmaak hebben, dan kun je deze het beste eerst omzetten nar een echte datumwaarde (in ms).
Dat kan m.b.t. een aantal JavaScript functies. Ik gebruik zelf het liefst de flowkaarten van de Better Logic Library (BLL) voor het uitvoeren van functies. Specifiek de volgende:
Als je sec de datum-/tijd-waarde van het huidige moment wilt weten, dan gaat dat simpelweg via de functie Date.now(). De waarde die je krijgt is een getal dat het aantal ms t.o.v. 1-1-1970 voorstelt in UTC-tijdzone.
Als je een andere/vooraf bepaalde datum en tijd wilt omzetten naar de datum-/tijdwaarde, dan kun je de Date.parse("jouw datum en tijdstempel") gebruiken. Er zit echter een addertje onder het gras in deze functie: hij vereist een specifieke syntax waarin je de datum-/tijdstempel aanlevert, namelijk: “YYYY-MM-DDThh:mm:ss”. Dus eerst het jaardeel, dan het maanddeel, vervolgens het dagdeel, etc.
Je zult de bestaande datum-/tijdstempel dan dus moeten gaan opsplitsen in betreffende delen om de betreffende syntax op te bouwen. Ik heb hieronder een voorbeeld opgenomen van een flow die de standaard Datum en Tijd tags van Homey opsplitst in genoemde delen.
Daarvoor gebruik ik de .substring methode. Daarmee kun je een deel van een tekst selecteren, die BLL in de ‘Expressie waarde (Tekst)’-tag stopt. Die datum-/tijddelen stop ik vervolgens in de genoemde Date.parse()-functie voor het omrekenen naar een getalwaarde. Eventueel kun je een datumwaarde ook weer omzetten naar een opgemaakte datum/tijd. Daarvoor heeft BLL een standaard flowkaart: ‘Datum opnamen als’, waar je dan de datum-/tijdwaarde in stopt en aangeeft welke ommaak je wilt en in welke tijdzone hij het resultaat moet tonen.
Nadat je een datum hebt omgezet naar waarde kun je er ook bijv. uren of minuten bij optellen of eraf trekken (zoals in deze post). Zolang die die plussen en minnen altijd terugrekent naar ms.
Wellicht dat het simpler kan; dan hoor ik het graag.
Ik heb nu 1 plek waar in de datum van het energiecontract inzet, en dak die door alle flows/AVD’s die energieverbruik berekenen gebruiken voor het resetten van tellers op de juiste dag
Wat mij verbaasd is dat niemand de app iCalCalendar adviseert…
Zet het in je agenda en start op basis van de gegevens die Homey oppakt uit je agenda een flow. Zowel bij begin als bij het einde.
Op deze manier tegen ik het nachtlampje van mijn dochter. Op schooldagen wordt deze altijd op een vaste tijd groen dat ze er uit mag. Studiedagen en vakantiedagen heb ik in “haar” agenda staan. Op basis daarvan wordt haar lampje pas groen als wij zelf in beweging zijn door het huis.
Ook de tuinverlichting gaat op basis van een andere agenda in bepaalde sferen.
Vakantiemodus gaat hier overigens vanzelf aan als het alarm er 24 uur op staat. Op die manier gaat dat ook vanzelf als het een weekendje of spontaan nachtje weg is.