PIR, odliczanie , z...
 
Powiadomienia
Wyczyść wszystko

Pytanie PIR, odliczanie , zmienna

6 Wpisów
4 Użytkownicy
1 Reactions
547 Wyświetleń
(@kapsel2105)
Wpisów: 7
Bywalec
Autor tematu
 

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 ? 

 

 
Dodane : 28/12/2023 11:27 pm
ROSOMAK
(@rosomak)
Wpisów: 6
Bywalec
 

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ć.

 
Dodane : 31/01/2024 10:48 am
(@kapsel2105)
Wpisów: 7
Bywalec
Autor tematu
 

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.

 
Dodane : 31/01/2024 9:13 pm
Mariusz
(@mariusz-2)
Wpisów: 228
Weteran Donator 2K23
 

Dodane przez: @kapsel2105

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. 

 

Dodane przez: @kapsel2105

Zauważyłem również że czujniki ruchu Aqara potrafią się same wzbudzić,

Mam ich kilka i nie zauważyłem takiego działania. 

aqara

Natomiast faktem jest, że ma dość długi czas przejścia ze stanu on (wykrył ruch) do zgłoszenia stanu off (około 90sekund).

 

 
Dodane : 31/01/2024 10:40 pm
isom reacted
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Dodane przez: @kapsel2105

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.

 
Dodane : 01/02/2024 9:11 am
(@kapsel2105)
Wpisów: 7
Bywalec
Autor tematu
 

@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.

 
Dodane : 01/02/2024 11:23 am
Udostępnij: