SUPLA SCRIPTS warunki w innej scenie

plnuker
Posts: 98
Joined: Sun Dec 30, 2018 10:11 pm

Post

zauważyłem ze gdy mamy stworzoną scenę np zamykanie garażu z gaszeniem światła , gdzie gaszenie światła to inna scena to wyglada na to ze jezeli dla innej sceny ustawiony jest dellay, np 60 sek. to jej warunki są pomijane i zawsze się wykonuje :)
Ta sama "inna scena" wywołana bez opóźnienia działa poprawnie.

warunek innej sceny:
{{state(jakassupla_swiatlo).on and time('now') >="23:00"}}
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Warunek działa "na już". Tj jeśli w momencie zlecania sceny warunek jest spełniony to wykonania opóźnione są planowane. W nich już warunki nie są sprawdzane. Skoro wykonanie sceny polega na akcji z opóźnieniem to można powiedzieć że wykonanie sceny trwa aż do ostatniej akcji.

Wyobraź sobie np scenę podlewanie ogródka na 10 min przy warunku że nie ma mrozu (może nie najmądrzejszy przykład, ale czujesz o co chodzi). Jak już się zaczęło podlewać i w międzyczasie przyszedł mróz to nie chciałbyś zeby opóźniona akcja zakończenia podlewania się z tego powodu nie wykonała.
plnuker
Posts: 98
Joined: Sun Dec 30, 2018 10:11 pm

Post

fracz wrote: Fri Feb 01, 2019 7:58 am Warunek działa "na już". Tj jeśli w momencie zlecania sceny warunek jest spełniony to wykonania opóźnione są planowane. W nich już warunki nie są sprawdzane. Skoro wykonanie sceny polega na akcji z opóźnieniem to można powiedzieć że wykonanie sceny trwa aż do ostatniej akcji.

Wyobraź sobie np scenę podlewanie ogródka na 10 min przy warunku że nie ma mrozu (może nie najmądrzejszy przykład, ale czujesz o co chodzi). Jak już się zaczęło podlewać i w międzyczasie przyszedł mróz to nie chciałbyś zeby opóźniona akcja zakończenia podlewania się z tego powodu nie wykonała.
Nie o to chodzi, rozumiem ze warunek działa na stan t0 czyli w momencie wywołania. Przykład Zamykam garaż, gaszę światło w garażu po 60 sek i dodatkowo po tych samych 60 sekundach chcę wywołać scenę gaszenia światła obok domu np żeby oświetlić sobie drogę. Scena która jest wywołana ma warunek
{{state(jakassupla_swiatlo).on and time('now') >="23:00"}}
sprawdza czy światło jest załączone i jeżeli jest po 23:00 ma je zgasić. Wcześniej nie musi bo działają czujniki zmierzchu ale na noc nie muszą działać żeby psy koty, wiewiórki itd.. nie włączały światła.

teraz załóżmy ze jest godzina 18:00, odpalam scene i zamykam garaż. Po zamknięciu drzwi 60 sekund i gaśnie światło w garażu. Oświetlenie obok domu powinno zostać włączone (warunek 23:00) a się wyłącza ;(
Ustawienie tej samej sceny gaszenia światła bez opóźnienia 60 sek, tylko od razu po wywołaniu akcji zamknij garaż, pozostawia poprawnie światło włączone a po 23:00 je wyłącza.
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

A. To źle zrozumiałem. Bug jak nic.
plnuker
Posts: 98
Joined: Sun Dec 30, 2018 10:11 pm

Post

fracz wrote: Fri Feb 01, 2019 4:29 pm A. To źle zrozumiałem. Bug jak nic.
trafiłem kolejnego, przy sprawdzaniu warunków. Wklejony w odpowiedz działa poprawnie (false) w warunku sceny błędnie ;/
You do not have the required permissions to view the files attached to this post.
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Wywal |json_encode|raw z tego. W ten sposób robisz string "false", który jest jak najbardziej "spełnionym warunkiem".
plnuker
Posts: 98
Joined: Sun Dec 30, 2018 10:11 pm

Post

fracz wrote: Tue Feb 05, 2019 2:49 pm Wywal |json_encode|raw z tego. W ten sposób robisz string "false", który jest jak najbardziej "spełnionym warunkiem".
mam wywalone, dalej warunek jest spełniony. tak to wyglada w aktualnie

{% set forecastTempToday = getUrl('http://api.wunderground.com/api/xxxxxxx ... owice.json', '#"temp_c":([0-9.]+)#s')|number_format%}
{{(state(xxxx).temperature >= forecastTempToday + 3)}}
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Spróbuj tak:

Code: Select all

{{(state(xxxx).temperature >= forecastTempToday + 3) ? 1 : 0}}
plnuker
Posts: 98
Joined: Sun Dec 30, 2018 10:11 pm

Post

fracz wrote: Tue Feb 05, 2019 7:30 pm Spróbuj tak:

Code: Select all

{{(state(xxxx).temperature >= forecastTempToday + 3) ? 1 : 0}}
Nic to nie dało ;/

ps w regexpie brakowalo "-" wyszło teraz bo jest mróz
You do not have the required permissions to view the files attached to this post.

Return to “Pomoc”