Cześć wszystkim.
Czy jest możliwość aby za pomocą Blockly wykonać poniższe założenie:
Jest czujnik PIR, włącznik światła,
Czujnik PIR po wykryciu ruchu, włącza światło na czas 5 minut. - i takie coś mam i działa.
Natomiast chciałem wprowadzić pewną modyfikację. Aby po 10 minutach, skrypt ponownie wyłączał światło, a dokładniej kolejny raz wysyłał sygnał wyłączenia, ale to 10 minut aby było odliczane od ostatniego wykrycia ruchu przez PIR i resetowało się przy wykryciu i liczyło od początku 10 minut.
Jest takie coś do zrobienia ?
Witam.
Dlaczego chcesz ponownie wyłączyć wyłączone światło?
Jeżeli chodzi Ci o to że PIR włącza światło i wyłącza po 5 min nawet wtedy jak jest naruszony przez cały czas to ja rozwiązałem to tak:
DzVents zamiast blocky. (nie ogarniam graficznych pomocy)
return { on = { devices = {'Toilet Presence'} }, execute = function(domoticz, item) if domoticz.devices('Toilet Presence').state == 'On' then domoticz.devices('Toilet Light').switchOn() domoticz.devices('Toilet Light').switchOff().afterMin(100) domoticz.log('Wlaczam swiatlo i opozniam wylaczenie o 100 min.') end if domoticz.devices('Toilet Presence').state == 'Off' then domoticz.devices('Toilet Light').switchOff().afterMin(10) domoticz.log('Wylaczam swiatlo po 10 min.') end end }
Działa to tak że w momencie zmiany stanu PIR (wykrycia ruchu przez czujnik) zostaje włączone światło i ustawiony timer na wyłączenie po 100 minutach. (Tą wartość możesz zmienić na większą, nawet 100 godzin).
Jeżeli czujnik przestanie wykrywać ruch, timer na wyłączenie zostanie nadpisany z wartością 10 minut.
Czyli nie wykrycie ruchu ustawia timer na 10 min tylko jego brak.
'Toilet Presence' - nazwa czujnika PIR w Domoticz.
'Toilet Light' - nazwa światła w Domoticz, które chcesz włączać.
Dzięki za odpowiedź.
Faktycznie może trochę zakręciłem w wyjaśnieniu.
Finalnie mam taki skrypt: (gdzieś znalezione w necie)
return { on = { devices = { 'PIR LAZIENKA' } }, logging = { level = domoticz.LOG_DEBUG, marker = 'PIR LAZIENKA', }, execute = function(domoticz, device) -- local variables local PIR = domoticz.devices('PIR LAZIENKA') local Lampa1 = domoticz.devices('ŚWIATŁO ŁAZIENKA K1') local Lampa2 = domoticz.devices('ŚWIATŁO ŁAZIENKA K2') -- local Movment = domoticz.devices('Wykrywanie Ruchu') local LightingTime = 5 if (domoticz.time.matchesRule('between 21:00 and 08:00')) then if (Lampa1.state == 'Off') then if (Lampa2.state == 'On') then Lampa2.switchOff().afterMin(LightingTime) else Lampa2.switchOn().forMin(LightingTime) end end end end }
Jest z tym jednak mały problem, gdyż włączając światło główne, wchodząc do łazienki, oświetlenie nocne nie zostaje załączone. Jednak po wyłączeniu oświetlenia głównego, oświetlenie nocne potrafi się włączyć pomimo iż w łazience nie ma nikogo. Nie za bardzo wiem jak wybrnąć z tego problemu.
Zauważyłem również że czujniki ruchu Aqara potrafią się same wzbudzić, bo nocą uruchamia się oświetlenie gdzie nikt nie chodzi.
Co jeszcze dziwne to te załączenia są jakby w podobnych odstępach czasu co ok. 1h i 50 minut na jednym czujniku PIR, na drugim co 1h .
Docelowo będę jeszcze próbował ogarnąć to na czujnikach natężenia światła, ale póki co jeszcze ich nie mam.
Konstruktywna krytyka mile widziana.
włączając światło główne,
Czy to jest Twoje światło główne ? -->
Lampa1 = domoticz.devices('ŚWIATŁO ŁAZIENKA K1')
jeśli tak, to źle to skopiowałeś, albo bezmyślnie zastosowałeś.
Każda zmiana stanu czujnika Pir uruchamia skrypt, który sprawdza czy czas się zgadza, potem sprawdza czy lampa1 jest wyłączona (a jeśli jest włączona to nic dalej nie robi). Potem wychodzisz (czujnik pir znów wykrywa ruch) ale, że wyłączyłeś światło główne i lampa1 jest OFF to uruchamia skrypt dalej i zapala lampę2 i po czasie
LightingTime
wyłącza.
Zauważyłem również że czujniki ruchu Aqara potrafią się same wzbudzić,
Mam ich kilka i nie zauważyłem takiego działania.
Natomiast faktem jest, że ma dość długi czas przejścia ze stanu on (wykrył ruch) do zgłoszenia stanu off (około 90sekund).
Jest z tym jednak mały problem, gdyż włączając światło główne,
Problem wynika z tego co napisał @mariusz-2, proponuję przejrzeć ten temat https://www.smartnydom.pl/forum/domoticz/wlaczanie-i-wylaczanie-zarowek/paged/2/
Jest mocno zbliżony do Twoich potrzeb.
Co do czujników Aqara, mam dwa i jestem z nich zadowolony, takie cykliczne załączenia, o których piszesz na 99% nie wynikają z winy czujników. Sprawdź co może je skutecznie zakłócać, albo inny skrypt wklejony bez zastanowienia robi takie cyrki.
@mariusz-2
Dzięki za odpowiedź.
W sumie masz trochę racji.
1) Tak, Oświetlenie główne to "ŚWIATŁO ŁAZIENKA K1" - (kanał 1 w sonoff 2ch z Tasmotą)
2) Nie znam się na programowaniu i staram się sobie jakoś radzić - ale, zawsze jest jakieś ale... 😉
W przyszłym tygodniu będę dalej z tym kombinował.
Sprawdzę tez skrypt od @rosomak , może lepiej zadziała.
@isom - dzięki za nakierowanie na wątek.
Domoticz rejestruje w logu iż czujnik zadziałał, więc chyba nie jest to wina skryptu... ( możliwe że jest to spowodowane przerobieniem czujnika, aby wyeliminować zwłokę w działaniu na samym czujniku.