Zonnestanden

Hallo,

Ik heb een vraagje over de zonnestanden app.
Ik gebruik de app al een tijdje zonder problemen.
Nu heb ik een flow gemaakt waarin ik de offset van de zonsondergang wil aanpassen doormidden van een variabele die in een logica staat. In mijn geval is het een negatieve waarde (tussen -60 en 0) zodat de flow getriggerd wordt voor de zon ondergaat.
Ik krijg dit echter niet werkend.
Als ik een vaste negatieve waarde boven de -60 invul dan werkt het wel.

Ik zie jullie reactie graag tegemoet.

Met vriendelijke groet,

Richard

Als je de flow hier even deelt, dan kan iemand je beter helpen.

Voorbeeld met een EN kaartje:
"en" kaartje met "de zon gaat onder over..." - #11 by Tasz

Voorbeeld met een ALS kaartje invullen:

Voorbeeld ALS kaartje gereed:

Voor zonsondergang werkt het op dezelfde wijze.

Bedankt voor alle voorbeeld plaatjes.
Hoe de app standaard werkt weet ik, en dat weekt ook goed.
Het probleem zit hem bij het gebruik van een variabele offset tijd.

Deze flow heb ik gemaakt.

En deze is om de offset tijd te vullen.

Alvast bedankt voor jullie reactie.

Ah, vandaar dat Jan om je flows vroeg. Ik gokte dat je wat moeite had met hoe de logica kaartjes werken, en die heb je voor “normaal” offset-waarde gebruik niet nodig.

Lijkt erop dat er een verborgen spatie voor of na de waarde van je variabele staat…
Werkt het als je handmatig de waarde van var [licht aan offset tijd] op -10 zet, via …Meer>Logic

Bedankt voor de feedback.
Ik zie net op GitHub dat het issue 17 dagen geleden ook door iemand is gemeld bij de app ontwikkelaar. Een issue in Homey dat de ontwikkelaar zelf niet kan oplossen, een fix vanuit homey is daar voor nodig.

Ah, okee. Dan is iig bekend wat het probleem is, Richard.

Ik gebruik het kaartje Als: begin zonsondergang
en dan ook nog -30 min offset werkt nog steeds goed.
Sorry ik moet beter lezen het gaat over een variabele offset. wel mooi idee

Op FB had iemand hetzelfde probleem met het instellen van Sonos volume via een var
Met een getal intikken werkt het, maar hetzelfde getal uit een variabele laten uitlezen werkt niet…

Misschien niet het juiste topic, maar het ging er toch een beetje over.\

Ik wil een zonnestand-kaartje gebruiken die niet waar is, als het 2 uur voor zonsondergang is.
M.a.w. Als de zonsondergang over 2 uur is, dan kaartje niet uitvoeren.

Zit ik met dit kaartje in de goede richting? Welke waarde moet ik hier invoeren?
Scherm­afbeelding 2023-06-14 om 09.13.54

De offset mag maximaal 60 minuten zijn. In het geval van 60 minuten kun je het zoals in deze flow doen:

Een offset van -60 betekent dat het event met 60 minuten wordt vervroegd.

Voor een offset van -120 minuten kan het via een andere route :upside_down_face:
Met de BLL app kun je met tijden rekenen, dus kun je ook een offset van -120 minuten instellen:
(let op dat de offsetwaarde hier als positief getal moet worden opgegeven)



Ik heb 2 numerieke variabelen aangemaakt, sunset_hour en sunset_minutes


De gebruikte code in de gebruikte BLL kaart “EN BLL expressie is waar”:
(Met dank aan BLL developer @Arie_J_Godschalk voor deze expressie welke checkt of een tijdstip x minuten voor een gegeven tijdstip is.)
new Date().setHours([sunset_hour]-Number.parseInt(_.last(date('DATETIME', null, 'en'))),[sunset_minutes],0,0) - Date.now() < 121*60*1000
en
new Date().setHours([sunset_hour]-Number.parseInt(_.last(date('DATETIME', null, 'en'))),[sunset_minutes],0,0) - Date.now() > 119*60*1000



Waar komt de [Sunset] tag in de logica kaartjes vandaan?
Screenshot from 2023-06-14 17-21-03

1 Like

Hey @Peter_Kawa

In plaatst van
Number.parseInt(_.last(date('DATETIME', null, 'en')))
kun je ook het iets makkelijker doen:
parseInt(date('z'))

Btw, parseInt en parseFloat bestaan al standaard in JS/NodeJS, je hoeft Number. er niet voor te zetten.

z Geeft de Timezone difference met UTC, alleen dit werkt ook bij bijv. 12 uur verschil, wat met _.last() niet zou werken.

image

Edit:
Ik voeg nu wat extra functies toe om dit soort code makkelijker en korter te maken.
Ik laat zo een bericht achter als ik er klaar mee ben.

Thanks Arie,
Ik was al blij dat het werkte :wink:
Ik had jouw expressie code toen bewaard uit een ander topic, waar iemand een voorwaarde wilde “als het x minuten is vóór x”, maar kan het nergens terug vinden :face_with_open_eyes_and_hand_over_mouth:
Dit is het kaartje daarvan dat ik had bewaard:
Screenshot from 2023-06-14 19-26-42

“Code technisch” zegt het me nog niet zoveel, daar ontbreekt echt diepgaande kennis voor.

Er is nóg een manier, via de Advanced Scheduler app.
Deze is iets beter te ‘lezen’ denk ik:

Ik heb hiertoe een Scheduler apparaat toegevoegd, welke iedere dag triggert, en de starttijd zet ik dus via de flow iedere dag naar het actuele tijdstip van de zonsondergang (wederom de tag van de Zonnestanden app)
Screenshot from 2023-06-14 18-40-04

1 Like

Thanks voor beide reply’s! Mooi dat je even voor mij hebt gedacht.

Ik ga de laatste zeker gebruiken. Kan ik ook aanpassen voor andere flows! Ik kan weer verder :slight_smile:

1 Like

Just for the record @Arie_J_Godschalk , gevonden! :blush: