Notifications
Clear all

powiadomienie po czasie blockly  

  RSS
on6222
(@on6222)
Stażysta

witam

chciałbym sobie zrobić powiadomienie ze jeśli brama jest otwarta dłużej niz 20minut to dostaje maila

znalazłem jakieś wzorce tu na forum ale coś mi nie chce działać to znaczy w logach zmienna zmienia stan na 1 ale już o wiadomości nie ma nic w logach i jej nie wysyła natomiast jeśli zmienię bloczek (na scrennie drugim) to wiadomość dostaje od razu nie np po 20 minutach  jakbym chciał pytanie gdzie robię błąd

dzieki

Cytuj
Dodane : 03/04/2020 1:16 pm
steel_rat
(@steel_rat)
Brygadzista

120 sekund to chyba nie 20 minut nie 🙂

OdpowiedzCytuj
Dodane : 03/04/2020 2:50 pm
on6222
(@on6222)
Stażysta

@steel_rat ....na to, to bym nie wpadł 😉 .....jest 120 bo testuje a niechce mi sie czekac 20 minut przy testowaniu

OdpowiedzCytuj
Dodane : 03/04/2020 3:15 pm
steel_rat
(@steel_rat)
Brygadzista

No to powinieneś dostać maila po 2 minutach i nie przychodzi wtedy? Zmień też ustawienie stanu na zero, usuń cudzysłów. By domoticz ja traktował jak zmienną a nie string. Po za tym, która wersja Domoticza jest w użyciu? Ja bym zerowanie zmiennej przeniósł przed polecenie wysłania maila.

OdpowiedzCytuj
Dodane : 03/04/2020 4:23 pm
on6222
(@on6222)
Stażysta

@steel_rat

nie wiem czy dobrze zrozumiałem ale jak zrobiłem tak (jak na screenie)to email przychodzi jak tylko otworze brame a stan zmiennej zmienia po 2 minutach

OdpowiedzCytuj
Dodane : 03/04/2020 4:54 pm
mirmil99
(@mirmil99)
Brygadzista

w pierwszej linijce zamiast nierowne zero zmien na rowne zero

dodaj kolejny warunek elif. gdy brama zamknieta ustaw zmienna var na zero

OdpowiedzCytuj
Dodane : 03/04/2020 5:05 pm
on6222
(@on6222)
Stażysta

@mirmil99

niestety wiadomosc jest wysylana odrazu po otwarciu bramy

OdpowiedzCytuj
Dodane : 03/04/2020 5:14 pm
mirmil99
(@mirmil99)
Brygadzista

popatrz w logu, czy zmienna zmienia stan, dla testu zmien czas oczekiwania na kilka sekund

OdpowiedzCytuj
Dodane : 03/04/2020 5:20 pm
steel_rat
(@steel_rat)
Brygadzista

Pokaz jeszcze raz jak teraz wygląda twój blok. Bo same zmieniające się warunki if raz masz różny od 1 a raz różny od 0 wprowadza chaos.

OdpowiedzCytuj
Dodane : 03/04/2020 5:24 pm
on6222
(@on6222)
Stażysta

tak jak mam teraz to nie wysyla emaila ale po dwoch minutach zmienia zmienna na Status: Set UserVariable testowa = 1

OdpowiedzCytuj
Dodane : 03/04/2020 5:37 pm
steel_rat
(@steel_rat)
Brygadzista

No ok. To teraz która wersja Domoticza. Bo poprostu drugi raz skrypt się już nie wykonuje. Musiałbyś mieć najnowszego Domoticza by to działało. Tylko uwaga nowa wersja Domoticza wymaga Bustera.

OdpowiedzCytuj
Dodane : 03/04/2020 5:42 pm
on6222
(@on6222)
Stażysta

@steel_rat

mam najnowsza wersje beta dzisiaj robilem aktualizcje

OdpowiedzCytuj
Dodane : 03/04/2020 6:01 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@on6222  ja myślę że z tą zmienną to będzie porażka w tym układzie . Albo zamień zmienną na wirtualny przełącznik np "Brama open" i wtedy

IF Stan Bramy = Open and Brama open = Off

Set Brama open = On after 120 sek

ElseIf Brama open = On

Set Mail

Elseif  Stan Bramy = Closed

Set Brama open = Off

albo bez zabawy w bloczki i dodatkowe zmienne czy przełączniki użyj tego co poniżej

To jest skrypt dzVents  gdzie po 20 minutach dostaniesz powiadomienie na skonfigurowane w domoticz adresy e-mail
po 3 minutach dostaniesz drugie i po kolejnych trzech trzecie powiadomienie , chyba że wczesniej ta brama zostanie zamknięta to dostaniesz powiadomienie że została zamknięta
PS ten skrypt ma taką przewagę że możesz w przyszłości dołożyć do niego kilka bram , okien , czy drzwi . Wystarczy dodać w pierwszej tabeli kolejne urządzenie ustawić mu po jakim czasie ma krzyczeć i rozbudować tabele data o to urządzenie
Poniżej przykład dla Stan Bramy i furtki  gdzie brama krzyczy po 20 min a furtka po 10 min
OdpowiedzCytuj
Dodane : 03/04/2020 6:09 pm
on6222
(@on6222)
Stażysta

@isom

powiem ze wolalbym dzvents tylko troche ich nie ogarniam jeszcze (nie udalo mi sie nawet jeszcze zrobic tego rgb w dzvents co mi kiedy podsylales )

jak dobrze rozumiem wystarcze ze zmienie nazwy na swoje przełacziki zaraz na poczatku skryptu i powinno dzialac ale w logach takie cos wyskakuje

 Status: dzVents: Info: Wejścia kontrola: ------ Start internal script: Script #2:, trigger: "every 2 minutes"
2020-04-03 18:50:00.567 Status: dzVents: Info: Wejścia kontrola: Device Stan Bramy staat 0 minuten open.
2020-04-03 18:50:00.568 Status: dzVents: Info: Wejścia kontrola: ------ Finished Script #2
2020-04-03 18:50:00.568 Error: dzVents: Error: (3.0.2) Wejścia kontrola: An error occurred when calling event handler Script #2
2020-04-03 18:50:00.568 Error: dzVents: Error: (3.0.2) Wejścia kontrola: ...domoticz/scripts/dzVents/generated_scripts/Script #2.lua:39: attempt to compare number with nil
edit w momencie kiedy pisalem dostalem dwa maile ze brama otwata 2 minuty i kolejny ze otwarta 4minuty ale w logach takie cos
Status: dzVents: Info: Wejścia kontrola: ------ Start internal script: Script #2:, trigger: "every 2 minutes"
2020-04-03 18:56:00.156 Status: dzVents: Info: Wejścia kontrola: Device Stan Bramy staat 6 minuten open.
2020-04-03 18:56:00.156 Status: dzVents: Info: Wejścia kontrola: otwarta zbyt długo 1
2020-04-03 18:56:00.156 Status: dzVents: Info: Wejścia kontrola: ------ Finished Script #2
2020-04-03 18:56:00.157 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2020-04-03 18:56:00.179 Status: Notification: Przypominam Otwarta
2020-04-03 18:56:00.156 Error: dzVents: Error: (3.0.2) Wejścia kontrola: An error occurred when calling event handler Script #2
2020-04-03 18:56:00.156 Error: dzVents: Error: (3.0.2) Wejścia kontrola: ...domoticz/scripts/dzVents/generated_scripts/Script #2.lua:39: attempt to compare number with nil
OdpowiedzCytuj
Dodane : 03/04/2020 6:54 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

Jak to drugie to Drzwi Tył to będzie tak

local devicesToCheck = {
-- table with doors to check and the minutes before the first warning is given
{ ['name'] = 'Stan Bramy', ['threshold'] = 20 },
{ ['name'] = 'Drzwi Tył', ['threshold'] = 10 },
}
-- 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 = "Wejścia kontrola"
},
-- count per door of the number of alerts per door
data = {
['Stan Bramy'] = {initial=0},
['Drzwi Tył'] = {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
}

Zaznaczyłem kolorem to co zmieniasz na włąsne i na niebiesko ile ma być powiadomień w skrypcie 3 , czasy już widzę ogarniasz 
OdpowiedzCytuj
Dodane : 03/04/2020 7:01 pm
on6222
(@on6222)
Stażysta

super jest ten skrypt dziękuje bardzo i życzę miłego dnia

ps.dodalem sobie jeszcze drzwi wejsciowe

OdpowiedzCytuj
Dodane : 03/04/2020 7:35 pm
Udostępnij: