ok:

ok:

I taki hint, bo widzę, że nic nie rozumiesz, ale by działało zrób sobie wyzwalacz uruchomienie co minutę, a jako warunki daj wszystko inne.
Zachód Słońca nie może być wyzwalaczem przy tak zdefiniowanych warunkach jak ma działać ta automatyzacja.
Normalnie tym warunkiem powinna być jasność (bo nie zmienia się co chwilę, ale zmiana powodująca wyzwolenie występuje potencjalnie wielokrotnie), ale wyzwalaj co minutę to będzie Ci łatwiej (takie częste wyzwalania jest nieprawidłową drogą, ale będziesz miał jako rezultat coś działającego).
Dobra, kompletnie nie rozumiem ale dobra - jak czytam “wyzwalacz” ma zainicjować procedurę wtedy gdy coś zaistnieje np. co minutę. Następuje start i sprawdzane są warunki. Jeśli, jak w tym wypadku, oba nie są spełnione nie wykonuje się akcja. Jeśli oba będą spełnione akcja się wykona i … No właśnie, i co? Ta automatyzacja staje się odrobiona i już więcej nie kręci się w pętli “co minutę”: WYWOŁANIE → SPRAWDZENIE WARUNKÓW? A jeśli tak to do kiedy się nie kreci a kiedy znów wraca do sprawdzania (następna doba).
Na dobry początek zrób sobie dwie różne automatyzacje jedną do zapalania, drugą do gaszenia z odpowiednio różnymi warunkami.
Jeśli wyzwalaczem jest
triggers:
- trigger: time_pattern
minutes: /1
to ta automatyzacja się będzie wyzwalać bez względu na wszystko 24/7 co minutę, ale to czy się coś stanie będzie zależało od spełnionych warunków, to jest nieprawidłowa droga, bo ta automatyzacja zostanie wykonana każdego dnia 1440 razy (podczas gdy po doborze właściwych wyzwalaczy być może będzie to góra kilka razy)
No właśnie, czyli spełnienie warunków i wykonanie akcji nie wyłącza tej pętli? Ona kręci się cały czas? No to, w takim razie, włączanie światła, w moim przypadku, powinno wykonywać się wielokrotnie. Ale to niemożliwe bo warunki są spełnione do samego rana a automatyzacja wyłączająca światła o 24:00 działa bezbłędnie. No to jak to jest?
Masz ślady, to sobie sprawdź dlaczego się wyzwala choć masz wrażenie, że nie powinna.
Było za dużo wersji bym był w stanie cokolwiek przetestować u siebie, a nie zamieściłeś ani razu żadnego YAMLa, ale np. na jednym z obrazkó powyżej widzę, że masz warunek sprzeczny z wyzwalaczem (więc to gwarantuje że się automatyzacja nie wykona nigdy).
Aha, no dlaczego wyzwalacz nie może być także warunkiem? Wyzwalanie co minutę nie jest takim samym wyzwalaniem jak zachód słońca?
Sorry masz rację, tu jest yaml:

Tu nie ma żadnego YAMLa, to jest obrazek, zadaj sobie trud i przeczytaj linka, który wklejałem 2x
Nie mam wbudowanego OCR, nie jestem sztuczną inteligencją. Obrazka sobie nie zaimportuję do instalacji testowej.
Zachód czy wschód Słońca zdarzają się raz na dobę, cron co minutę jest 1440x dziennie.
Trigger/wyzwalacz to jest taki kopniak, który powoduje, że automatyzacja w ogóle się uruchomi.
Jeśli się nie uruchomi to nie sprawdza warunków.
ALE jeśli wyzwalasz w momencie GDY dzieje się COŚ i równocześnie sprawdzasz czy jest to inny moment (PO momencie gdy stało się COŚ), to ten warunek nie zostanie spełniony, bo nigdy równocześnie nie jest ten moment i po tym momencie (czas tutaj nie jest analogową wartością liniową ze względu na ograniczenia kwantyzacji i umowne założenie, że wykonanie automatyzacji zajmuje zerowy czas).
Doba, to w warunku sprawdzę zachód słońca plus 30 minut, zagra?
30 minut po zachodzie Słońca jest też tylko raz na dobę… (z tego wynika, że jeśli w tym momencie warunki nie będą spełnione, to tego dnia światło się nie zapali).
Wszystko zależy - jeśli będziesz wyzwalał 30 minut po zachodzie Słońca i sprawdzał czy jest po zachodzie Słońca (ale nie 30 minut!!), to tak, ten warunek zawsze będzie spełniony, ale jednocześnie z tego powodu staje się zbędny.
Właściwa konstrukcja to wyzwalanie zdarzeniem “gdy się dostatecznie ściemnia” i sprawdzenie warunku czy dzieje się to w zakresie czasu, kiedy chcesz zapalać światło.
Nie jest zbędny bo koniunkcja warunków ma szansę zadziałać a wyzwalacz z warunkiem tego nie robi co już wiem. A o to przecież mi chodzi. To byłoby banalne do oprogramowania (if (W1 & W2) then “włącz światło”) ale tu nie rozumiem reguł.
Dobra - kluczowe założenie jest takie, że automatyzacja się nie wykonuje sama - musi dostać tego kopniaka
(twoje założenie (if (W1 & W2) then “włącz światło”) wymaga, aby się to działo w nieskończonej pętli jakiegoś programu - i ta pętla, którą uważasz za coś oczywistego stanowi takie kopniaki co jakiś niewielki kwant czasu).
Tak jak rozwiązano kwestię kopniaka w HA jest istotnie nieintuicyjne, ale dzięki temu wymaga niemal zerowej mocy obliczeniowej (a zysk jest taki, że to dzieje się asynchronicznie = zdarzenie wywołuje reakcję w sposób natychmiastowy).
Warunek nie jest wyzwalaczem, więc się trzeba dobrze zastanowić co ma być wyzwalaczem, a co ma być sprawdzane. Obejście wykorzystujące cominutowy cron jest nieoptymalne, ale ono jest realizacją tego twojego założenia - uruchamiamy cominutową pętlę (co minutę to zdrowiej niż w kółko non-stop bez żadnego throttlowania, jest to dzięki temu do zaakceptowania, ale wciąż jest to >1400 razy dziennie za dużo, więc nieoptymalnie).
No właśnie, “co minutę” to chyba zapychanie systemu i jeśli pójść tą ścieżką to sprawdzać co 15 minut (wyzwalacz). A warunki, jak rozumiem, zostawić jakie są?
Co minutę jest akceptowalne, tylko nieeleganckie.
Co sekundę też jeszcze nie zapcha systemu, chyba że narobisz tysiące takich automatyzacji.
Ale tego rodzaju obejścia trzeba wykorzystywać z umiarem.
Tak zadziała:

Ale się uparłeś na obrazki… chcemy YAMLa.
- id: '1724929598900'
alias: Wieczorne włączenie oświetlenia zewnętrznego
description: ''
triggers:
# - trigger: sun
# event: sunset
# offset: 00:30:00
- trigger: time_pattern
minutes: /15
conditions:
- condition: and
conditions:
- condition: sun
after: sunset
- condition: numeric_state
entity_id: sensor.pogodynka_jasnosc
below: 3000
actions:
- action: light.turn_on
metadata: {}
data: {}
target:
entity_id:
- light.knx_oswietlenie_zewnetrzne
mode: single
Tak, moim zdaniem to zadziała, nie musisz aż tak oszczędzać mocy obliczeniowej - co minutę HA to zniesie bez zająknięcia.
Jeśli dodasz jako warunek sprawdzanie czy światło nie już jest zapalone, to KNX nie będzie spamowany zbędnymi poleceniami. (sprawdzenie odbędzie się w HA lokalnie na podstawie bieżącego stanu encji, co o ile integracja jest prawidłowo napisana nie wymaga odwołań na zewnątrz, natomiast zapalanie/gaszenie jest poleceniem gdzieś na zewnątrz)
No to zobaczymy, bardzo Ci dziękuję za poświęcony czas!