Powiadomienia
Wyczyść wszystko

Kontaktron, dzvents

19 Wpisów
4 Użytkownicy
0 Reactions
1,546 Wyświetleń
(@piotrbanasik)
Wpisów: 25
Praktykant
Autor tematu
 

Witam. Forum przeglądam dość często, ale moje piewsze pytanie bo nie mogę znaleźć sensownej odpowiedzi.

Mam problem z blockly ale może uda się rozwiązać temat za pośrednictwem dzvents.

Do rzeczy.

Mam kontaktron w drzwiach by sygnalizował jak zamek jest nie zamknięty po 22 czyli zmienna NOC.

W blockly ustawiłem powiadomienie na pushover bo z tego korzystam i jest super, ale tylko w momencie jak zmienna noc wskoczy na 1 i tylko raz. Nie potrafię poskładać kafelek aby powiadomienie przychodziło co np 60sekund tak bym nie przegapił powiadomienia, oraz powiadomienie że już zamknięte.

Pomyślałem o dzvents i skrypcie, ale nie ogarniam jeszcze tego na tyle by samemu skonstruować skrypt.

Czy będzie ktoś tak dobry i pomoże. 

Rzeczy z których korzystam. 

Skonfigurowany i działający pushover

Zmienna NOC

Przełącznik kontaktron o nazwie Drzwi zew góra

 

Pozdrawiam.

 
Dodane : 09/01/2021 5:58 pm
(@dzidzi20)
Wpisów: 51
Kontrybutor
(@piotrbanasik)
Wpisów: 25
Praktykant
Autor tematu
 

@dzidzi20

Widziałem ten temat, niestety nie wiem jak go za bardzo edytować, potrzebuję coś na "zaczepkę". Chciałem powiadomienia pushover i zmienną noc dodać. tam tego nie ma.

 
Dodane : 09/01/2021 7:44 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@piotrbanasik w tym skrypcie do którego link wstawił @dzidzi20 nie potrzeba deklarować powiadomienia pushover , bo domyślnie wysyła na wszystko co jest skonfigurowane w Domoticz .

Jedno co trzeba zmienić to timer , żeby wysyłał tylko w nocy i do tego nie potrzebna jest zmienna noc.

Masz tu na szybko przerobiony skrypt pod Twoje potrzeby 

threshold - tu ustawiasz po jakim czasie ( minuty) ma zostać wysłane pierwsze powiadomienie, reszta w komentarzach 
Popraw sobie nazwę na góra i potem 
marker = "Kontrola wejść"
i
 data = {
        ['Drzwi zew góra'] = {initial=0},
 
 
Dodane : 09/01/2021 9:04 pm
(@piotrbanasik)
Wpisów: 25
Praktykant
Autor tematu
 

@isom dzieki wielkie, skrypt działa super. Poprawiłem te "krzaki w literówkach" troche teks powiadomień by był lepiej czytelny 

Dzięki wielkie.

 
Dodane : 09/01/2021 10:13 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@piotrbanasik tekst w powiadomieniu był taki dlatego, że do ten skrypt pozwala na obsługę wszystkich wejść czy okien w domu i po rozbudowaniu tabeli urządzeń może być np Brama wjazd , brama garaż , Okno taras itd . Przy jednych drzwiach rzeczywiście ten tekst jest trochę do bani . Fajnie że działa 

 
Dodane : 09/01/2021 10:27 pm
(@piotrbanasik)
Wpisów: 25
Praktykant
Autor tematu
 

@isom wiem że cię męczę ostatnio, ale czy możesz mi zmodyfikować ten skrypt by działał z drugim dodanym kontaktronem? Np jeśli zamek 1 i 2 jest otwarty wyślij powiadomienie. Jeśli zamek 1 lub 2 jest zamknięty nie wysyłaj. 

 
Dodane : 03/03/2021 1:08 pm
(@jacekk)
Wpisów: 30
Praktykant
 

Proszę o pomoc w tym samym temacie. Do tej pory bawiłem się tylko bloczkami. I chciałem jak koledzy ustawić powiadomienia mail o otwartej bramie garażowej. Niestety na bloczkach poległem, a na dzVents się nie znam.

Zmieniłem w skrypcie nazwę na nazwę swojego kontraktonu, a także zmieniłem

"data = {
['nazwa mojego kontraktonu'] = {initial=0}

ale i tak nie otrzymuję maili.

Co jeszcze mam zmienić aby zadziałało?

Maile skonfigurowane za pomocą bloczków typu send mail otrzymuję.

 

 
Dodane : 21/01/2022 8:29 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@jacekk nie widzę twoich zmian , ale przypuszczam że skoro nie masz błędów w logach to wszystko zrobiłeś ok . Co do wysyłania wiadomości e-mail to ponieważ skrypt wysyła powiadomienia na wszystko co zostało skonfigurowane w Ustawienia , Powiadomienia , to polecam skonfigurować zakładkę e-mail w tych ustawieniach . Można tam wpisać adresy e-mail jednego lub kilku odbiorców 

 
Dodane : 21/01/2022 10:35 pm
(@jacekk)
Wpisów: 30
Praktykant
 

Jak mogę wysłać zrzut ekranu? Próbowałem wysłać ale nie mogłem załączyć pliku. Żaden format pliku nie chciał mi się załadować. 
jak wcześniej pisałem maila ma skonfigurowanego w Domoticzu Ok bo dochodzą do mnie maile proste typu „Garaż otwarty” skonfigurowane w „klockach”.

 
Dodane : 21/01/2022 11:16 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@jacekk który skrypt używasz ? Jeśli ten kilka postów wyżej to on działa tylko w nocy , jak dodałeś ten skrypt do domoticz ? , wstaw logi z domoticz gdy otwierasz lub zamykasz tą bramę . 

 
Dodane : 22/01/2022 2:59 pm
(@jacekk)
Wpisów: 30
Praktykant
 

Dodałem poniższy skrypt w user variable poprzez kopiuj wklej

local devicesToCheck = {
--  table with doors to check and the minutes before the first warning is given
	{ ['name'] = 'Stan Bramy', ['threshold'] = 20 },
}
-- number of times you are warned about an open door
local alertCount = 3

return {
	
    on = {
        timer = {'every 2 minutes'},
    },
    logging = {
       level = domoticz.LOG_INFO,ERROR,
        marker = "kontrola"
    },    
--  count per door of the number of alerts per door
    data = {
        ['Brama Garaż'] = {initial=0},
        },

	execute = function(domoticz)
		for i, deviceToCheck in pairs(devicesToCheck) do
			local name = deviceToCheck['name']
			local threshold = deviceToCheck['threshold']
			local state = domoticz.devices(name).state
			local minutes = domoticz.devices(name).lastUpdate.minutesAgo
			if ( state == 'Open') then 
                domoticz.log('Device ' .. name .. ' staat  ' .. minutes .. ' minuten open.')
			    if (minutes > threshold) and (domoticz.data[name] < alertCount) then
                    domoticz.data[name] = domoticz.data[name] + 1
                    domoticz.notify('Przypominam Otwarta ',
                                     name .. ' jest ' .. minutes .. ' minut otwarta.',
                                     domoticz.PRIORITY_HIGH)
                    domoticz.log(' otwarta zbyt długo ' .. tostring(domoticz.data[name]))
                end
            elseif (domoticz.data[name] > 0) then
                domoticz.notify('InformujÄ™ ',
                                 name .. ' już zamknięta.', 
                                 domoticz.PRIORITY_HIGH)
                domoticz.log('Device ' .. name .. ' jest  ' .. minutes .. ' zamknięta')
			    domoticz.data[name] = 0
			end
		end
	end
}
 
Dodane : 22/01/2022 4:11 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@jacekk W skrypcie nazwa czujnika i data muszą być takie same czyli jeśli tu jest "Stan Bramy "

local devicesToCheck = {
--  table with doors to check and the minutes before the first warning is given
	{ ['name'] = 'Stan Bramy', ['threshold'] = 20 },
}

To i Data czyli zmienna musi się tak nazywać 

--  count per door of the number of alerts per door
    data = {
        ['Stan Bramy'] = {initial=0},
        },

W innym przypadku nigdy nie dojdzie do spełnienia warunku jak poniżej gdyż korzysta on z nazwy 

  if (minutes > threshold) and (domoticz.data[name] < alertCount) then
                    domoticz.data[name] = domoticz.data[name] + 1

Druga sprawa to lokalizacja skryptu , trzeba wkleić ten kod w domoticz , zdarzenia , dzvents , czyli wchodzimy w zdarzenia (tak jak w blockly) wybieramy dzVents minimal , kasujemy zawartość tego przykładu i w to wolne okno wklejamy ten kod i zapisujemy pod dowolną nazwą 

 
Dodane : 22/01/2022 7:10 pm
(@jacekk)
Wpisów: 30
Praktykant
 

Czy tak jest ok?

Wkleiłem tak jak pisałeś w zdarzenia  wybierałem dzVents minimal wymazałem co było i wkleiłem poniższy kod i zapisałem 

Bo nadal nie otrzymuje maili

local devicesToCheck = {
-- table with doors to check and the minutes before the first warning is given
{ ['name'] = 'Kontaktron Garaż', ['threshold'] = 1 },
}
-- number of times you are warned about an open door
local alertCount = 3

return {

on = {
timer = {'every 2 minutes'},
},
logging = {
level = domoticz.LOG_INFO,ERROR,
marker = "Kontrola wejść"
},
-- count per door of the number of alerts per door
data = {
['Kontaktron Garaż'] = {initial=0},
},

execute = function(domoticz)
for i, deviceToCheck in pairs(devicesToCheck) do
local name = deviceToCheck['name']
local threshold = deviceToCheck['threshold']
local state = domoticz.devices(name).state
local minutes = domoticz.devices(name).lastUpdate.minutesAgo
if ( state == 'Open') then
domoticz.log('Device ' .. name .. ' staat ' .. minutes .. ' minuten open.')
if (minutes > threshold) and (domoticz.data[name] < alertCount) then
domoticz.data[name] = domoticz.data[name] + 1
domoticz.notify('Przypominam Otwarta ',
name .. ' jest ' .. minutes .. ' minut otwarta.',
domoticz.PRIORITY_HIGH)
domoticz.log(' otwarta zbyt długo ' .. tostring(domoticz.data[name]))
end
elseif (domoticz.data[name] > 0) then
domoticz.notify('Informuję ',
name .. ' już zamknięta.',
domoticz.PRIORITY_HIGH)
domoticz.log('Device ' .. name .. ' jest ' .. minutes .. ' zamknięta')
domoticz.data[name] = 0
end
end
end
}

 
Dodane : 22/01/2022 7:38 pm
(@jacekk)
Wpisów: 30
Praktykant
 

@isom co 2 minuty w logach pojawia mi sie to

2022-01-22 19:50:00.376 Status: dzVents: Info: Kontrola wejść: ------ Start internal script: Garaż powiadomienia:, trigger: "every 2 minutes"
2022-01-22 19:50:00.397 Status: dzVents: Info: Kontrola wejść: ------ Finished Garaż powiadomienia
 
Dodane : 22/01/2022 7:51 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@jacekk w logach jest super , a ile czasu czekasz na to powiadomienie , zostaw otwarty garaż na 10 minut i zobacz co się stanie albo wstaw logi po dwóch minutach od otwarcia tego garażu 

 
Dodane : 22/01/2022 9:22 pm
(@jacekk)
Wpisów: 30
Praktykant
 

W którym miejscu mam zmienić na 2 minuty?

 
Dodane : 22/01/2022 9:42 pm
(@jacekk)
Wpisów: 30
Praktykant
 

Otworzyłem garaż na 2 h i żadnego maila nie otrzymałem. Co może być nie tak?

 
Dodane : 23/01/2022 3:43 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Nie mam szklanej kuli, logi przy otwartej bramie i konfiguracja e-mail to wtedy można coś powiedzieć 

 
Dodane : 23/01/2022 5:05 pm
Udostępnij: