Witam,
mam problem z jednym zdarzeniem. Utworzyłem zmienną "Brama-licznik", która, jeżeli brama zostanie otwarta, zmienia swój stan na 1 po upływie 30min.
Niestety z jakiegoś powodu zdarzenie to nie nadpisuje z powrotem zmiennej na 0. O dziwo pierwsza część warunku tj. wysłanie wiadomości email działa bez zarzutu.
Dodałem dodatkowo warunek (pierwszy od góry), który, jeżeli brama jest zamknięta, powinien nadpisać stan zmiennej na 0. Niestety tak się nie dzieje.
Zdarzenie działa tylko pierwszy raz, to znaczy jak ręcznie zmienię stan zmiennej na 0 i otworzę bramę na dłużej niż 30min to po upływie tego czasu dostaję wiadomość email. Następne otworzenie bramy powoduje wysłanie wiadomości natychmiast - zmienna "Brama-licznik" ma cały czas wartość 1.
Co mogę zmienić dodatkowo aby skrypt działał taj jakbym tego chciał, bądź dlaczego domoticz nie aktualizuje zmiennej?
Juz nie bede wnikal co skrypt ma robic ale tak sie blocly nie uklada. Ma byc tylko jeden kafelek z trybkiem. Nie dwa tak jak ty to masz.
@leckimarcin nawet poprawiając to co słusznie zasugerował @krzysztofch , to nie ma prawa działać poprawnie.
Wydajesz polecenie zmiany wartości zmiennej po czasie 30 min od momentu otwarcia bramy i to polecenie czy chcesz czy nie po tym czasie się wykona, nawet jak wcześniej ta brama zostanie zamknięta, a to dlatego, że w warunku o zmianie tej zmiennej nie ma mowy o tym co ma się stać gdy brama się zamknie przed upływem tego czasu.
Isom tu ma racje nie chcialo mi sie juz wnikac ze sama regula koliduje sie sama. Jedna czesc zmienia zmienna na taka , a druga na inna. I to chyba nie dokonca zamierzony koncowy cel
Jak napisalem w pierwszym poscie, pierwszy warunek zostal dodany pozniej, nie ma on znaczenia.
Proponujecie dodac druga zmienna? Tak zeby dopiero to ona resetowala ta pierwsza po zmianie stanu bramy?
@leckimarcin druga zmienna tylko zagmatwa sprawę , ta co jest wystarczy tylko trzeba kilka razy ją zmienić zanim się rozkaże wysłać powiadomienie, masz tu przykład jak to można zrobić.
ok co twoje blokly mowi
pierwsza czesc mowi
jak brama zostanie otworzona to ustawi sie zmienna na jeden po pol godziny.
Nawet jak cos ja zmieni ta akcja po tym czasie sie wykona.
druga czesc mowi
Jak ktos ponownie ta brame otworzy a minelo juz pol godz, i jest juz ta zmienna 1, to wysle ci wiadomosc i ustawi zmienna na 0
A jak jeszce jej nie ma to nie wysle, tu prawie ok
Znow jak otworzysz brame to po pol godziny zmienna sie ustawi na jeden
A teraz zamkniesz brame ,zmienna bedzie po pol godz 1
Otworzysz ponownie a juz zmienna sie zmienila i brama caly czas bedzie zamknietai, znow ja otworzysz od razu ci wysle wiadomosc i ustawi na z 0
i od nowa.
Jest to jakies sensowne?
tak sie zastanawiam czy w tych bloky w dwuch przypadkach , domoticz bedzie sprawdzal co minute np jaki jest stan , czy
sprawdzi ten stan wtedy kiedy zmienna bedzie taka jaka potrzebujemy i ktos kub cos wlaczymy przycisk otworz .
@krzysztofch sorki ale nie bardzo kumam o co Ci chodzi . Po otwarciu bramy zmienna z 0 dostanie 1 po 10 sek, blockly musi na to zareagować i sprawdzić stan czyli wykonać kolejny warunek . w dowolnym momencie możesz zamknąć bramę co spowoduje że zmienna po sekundzie musi ustawić się znowu na 0 , a jak nie zamkniesz i zmienna osiągnie wartość 4 to wyśle powiadomienie
@isom masz racje. Po kazdym uplywie 10 sek domoticz bedzie sprawdzal tez stan i zmieni na kolejna zmienna
@isom Wielkie dzięki, skrypt w blockly, który wrzuciłeś działa wyśmienicie 😀