Wschód i zachód słońca nad akwarium o ustalonej godzinie

Witam.
Na ESPHome mam zrobioną lampę nad akwarium (zwykłe światło monochromatyczne - jeden kanał).
Chciał bym zrobić automatyzację wschodu z zachodu słońca o ustalonej porze, przez określony czas.
Samo włącz/wyłącz o zadanej godzinie potrafię zrobić.
Ale nie wiem jak zrobić, aby przez określony czas, lampa pomału rozświetlała się do ustawionej na jej suwaku jasności, i podobnie gasła.

@MarCiu poszukaj na forum - lupka w prawym górnym rogu, do wyszukania słowo: akwarium.

Dzięki. Jakoś przeoczyłem.

Edit:

Proszę podpowiedzcie mi jeszcze jedno.
Mam w ESP skrypt z pętlą zwiększającą stopniowo jasność.

script:
  - id: light_on
    then:
      - repeat: 
          count: 10
          then:
            - light.dim_relative:
            id: lampa
            relative_brightness: 10%
            transition_length: 1s
        - delay: 1s

Czyli 10 literacji zwiększających jasność od 0 do 100% z krokiem 10% co 1sek.

A powiedzmy chciał bym aby pętla była: zwiększ do: X jasnośći
Jest pętla:

 then:
    - while: 
        condition:
          ....
        then:
          - light.dim_relative:
              id: lampa
              relative_brightness: 10%
              transition_length: 1s
          - delay: 1s

Jak ustawić warunek condition aby wykonywała się do zadanego X jasności?

Wiem, ze mogę dać od razu brightness X% i transition_length: Ys. Ale chciałbym zrozumieć tę pętle.
A i tak ładniej jak pasek nie skacze od razu do 100% a lampa dopiero z czasem się rozjaśnia/ściemnia.


Edit 2:

Jak by ktoś szukał podobnego rozwiązania, to zrobiłem to, tak dla warunku condition:

- lambda: |- 
      int val = int(id(lampa)->current_values.get_brightness() * 100); # pobierz obecną jasność
      int max = int(id(max_brig)); # pobierz wartość max ze zmiennej
      if ( val >= max - 1 ) { # porównaj czy już równe obie wartości
        return false; 
      } else { 
        return true; 
      }

A tak obliczam ile ma trwać długość przejścia i delay, aby uzyskać rozświetlenie przez wyznaczony czas:

- lambda: |-
          id(time_przejscia) = (int(id(sun_time)) * 60 * 1000) / int(id(max_brig)); # czas / ilość potrzebnych kroków wynik w ms
          ESP_LOGD("custom", "Value: %d", id(time_przejscia));  # daj wynik na konsolę dla kontroli