SUPLA SCRIPTS warunki w innej scenie

Post Reply
plnuker
Posts: 40
Joined: Sun Dec 30, 2018 10:11 pm

Thu Jan 31, 2019 10:14 pm

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: 1357
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

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.
plnuker
Posts: 40
Joined: Sun Dec 30, 2018 10:11 pm

Fri Feb 01, 2019 1:01 pm

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: 1357
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

Fri Feb 01, 2019 4:29 pm

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

Tue Feb 05, 2019 1:22 pm

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 ;/
Attachments
BUG.png
BUG.png (47.44 KiB) Viewed 363 times
User avatar
fracz
Posts: 1357
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

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".
plnuker
Posts: 40
Joined: Sun Dec 30, 2018 10:11 pm

Tue Feb 05, 2019 4:03 pm

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: 1357
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

Tue Feb 05, 2019 7:30 pm

Spróbuj tak:

Code: Select all

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

Tue Feb 05, 2019 9:38 pm

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
Attachments
supla.jpg
supla.jpg (112.18 KiB) Viewed 272 times
Post Reply