Powiadomienia
Wyczyść wszystko

Blockly funkcjonalność w Domu

wojtek_gtx
(@wojtek_gtx)
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22

Witam

Potrzebuję pomocy w zrobieniu blockly w zadanym czasie :
Jeżeli w dniach od poniedziałku do piątku w zakresie czasowym od 08:05 do 15:55 pojawi się jakiś telefon domownika w sieci i domoticz po dodatku alive go wyszuka to zadziała blockly, sprawdzi sobie żeby załączyć w tym czasie pompę obiegową do ciepłej wody jeżeli natomiast w tym czasie któryś z telefonów zniknie wyłączy pompę .
Już kiedyś coś takiego robiłem ale nie mogę sobie przypomnieć bo chyba rozwiązałem temat jakimś innym sposobem .

Stworzyłem coś takiego ale nie działa .

pompa obiegowa
Cytuj
Autor tematu Dodane : 24/01/2022 9:59 pm
pawell32
(@pawell32)
Ekspert
Dodane przez: @wojtek_gtx

ja bym to rozdzielił 

- telefony osobno, tel1 lub tel2 = var1 (zmienna użytkownika)

- warunek czasowy i var1 = pompa (wł / wył)

np.

var1

zamiast "roboczy" użyj funkcji on  / off

OdpowiedzCytuj
Dodane : 24/01/2022 10:40 pm
wojtek_gtx
(@wojtek_gtx)
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22

@pawell32 

teraz tak myślę czy zamiast takiego blockly odnośnie dnia tyg i godzin (Roboczego) to nie lepiej to zrobić tak żeby stworzyć przełącznik, zrobić w nim harmonogram godzinno dniowy i Powiązać z nim blockly ?

OdpowiedzCytuj
Autor tematu Dodane : 24/01/2022 11:34 pm
pawell32
(@pawell32)
Ekspert

@wojtek_gtx też tak możesz

OdpowiedzCytuj
Dodane : 25/01/2022 12:08 am
wojtek_gtx
(@wojtek_gtx)
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22

@pawell32 

To zrobiłem tak jak napisałem na przełączniku i śmiga załącza i rozłącza tylko jak dodać większą ilość telefonów bo chcę doklepać wszystkich użytkowników w domu, czy pod każdego użytkownika oddzielny blockly - kurde dawno nic nie dłubałem i wszystko zapomniałem a teraz kwarantanna i omicron i trzeba trochę popoprawiać 😉

OdpowiedzCytuj
Autor tematu Dodane : 25/01/2022 1:01 am
pawell32
(@pawell32)
Ekspert

@wojtek_gtx powodzenia 🙂

OdpowiedzCytuj
Dodane : 25/01/2022 1:02 am
wojtek_gtx
(@wojtek_gtx)
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22

 

pompa2

Niby wczoraj na wymuszeniu funkcji zadziałało a jednak dziś rano byłem w domu, telefon połączony, czasówka się załączyła a pompa nie działała. Po wyłączeniu na 3 minuty wifi i włączeniu w telefonie pompa ruszyła.

OdpowiedzCytuj
Autor tematu Dodane : 25/01/2022 2:43 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@wojtek_gtx może lepiej tak

return 
{
on = 
{
timer = { 'between 8:05 and 15:55 on mon,tue,wed,thu,fri'},
devices = {'Tel 1','Tel 2', 'Tel 3'} -- nazwy przelacznikow telefony
 
}, 

logging = {
level = domoticz.LOG_DEBUG, -- zmien na domoticz.LOG_ERROR, gdy skrypt bedzie Ok
  marker = "Pompa Cyrkulacja"
}, 
execute = function(dz, item)
local t1 = dz.devices('Tel 1')
local t2 = dz.devices('Tel 2')
local t3 = dz.devices('Tel 3')
local p = dz.devices('Pompa')
if dz.time.matchesRule('between 8:05 and 15:55 on mon,tue,wed,thu,fri') and (t1.state == 'On' or t2.state == 'On' or t3.state == 'On') then
     p.switchOn().checkFirst()
 else
       p.switchOff()
   end
end
}

Telefonów możesz dodać więcej , tylko wpisz poprawne nazwy przełączników , pompy i telefonów . Skrypt to dzvents oczywiście 

OdpowiedzCytuj
Dodane : 25/01/2022 8:37 pm
wojtek_gtx polubień
wojtek_gtx
(@wojtek_gtx)
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22

@isom 

Bardzo dziękuję .
Skrypt wklejony, nazwy pozmieniane, błędami nie sadzi więc poczekam do jutra i sprawdzę czy zadziała .

 

Co trzeba by zmienić w tym skrypcie żeby załączał jakieś przełączniki po wykryciu telefonu ale z wykluczeniem opcji godzinowej i dni po prostu zawsze gdy widzi telefon ?

 

OdpowiedzCytuj
Autor tematu Dodane : 26/01/2022 12:53 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@wojtek_gtx usuwasz wszystko co dotyczy timera czyli będzie jeszcze prościej

return 
{
on = 
{
devices = {'Tel 1','Tel 2', 'Tel 3'} -- nazwy przelacznikow telefony
}, 

logging = {
level = domoticz.LOG_DEBUG, -- zmien na domoticz.LOG_ERROR, gdy skrypt bedzie Ok
  marker = "Pompa Cyrkulacja"
}, 
execute = function(dz, item)
local t1 = dz.devices('Tel 1')
local t2 = dz.devices('Tel 2')
local t3 = dz.devices('Tel 3')
local p = dz.devices('Pompa')
if t1.state == 'On' or t2.state == 'On' or t3.state == 'On' then
     p.switchOn().checkFirst()
 else
       p.switchOff()
   end
end
}

 

OdpowiedzCytuj
Dodane : 26/01/2022 11:09 am
wojtek_gtx polubień
wojtek_gtx
(@wojtek_gtx)
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22

@isom 

skrypt zadziałał wyśmienicie, bardzo dziękuję .

OdpowiedzCytuj
Autor tematu Dodane : 26/01/2022 11:17 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

Przy tym drugim skrypcie jak ktoś wyłączy pompę , przy obecnych telefonach w domu to dopiero zmiana statusu dowolnego telefonu zmieni stan pompy, żeby temu zapobiec można sprawdzać stan co minutę i aktualizować , czyli nawet jak wyłączysz pompę to po max minucie włączy się znowu gdy nawet jeden telefon będzie On

return 
{
on = 
{
timer = {'every minute'},    
    
devices = {'Tel 1','Tel 2', 'Tel 3'} -- nazwy przelacznikow telefony
}, 

logging = {
level = domoticz.LOG_DEBUG, -- zmien na domoticz.LOG_ERROR, gdy skrypt bedzie Ok
  marker = "Pompa Cyrkulacja"
}, 
execute = function(dz, item)
local t1 = dz.devices('Tel 1')
local t2 = dz.devices('Tel 2')
local t3 = dz.devices('Tel 3')
local p = dz.devices('Pompa')
if item.isTimer or item.isDevice then
if t1.state == 'On' or t2.state == 'On' or t3.state == 'On' then
     p.switchOn().checkFirst()
 else
       p.switchOff()
   end
end
end
}
OdpowiedzCytuj
Dodane : 26/01/2022 11:27 am
wojtek_gtx
(@wojtek_gtx)
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22

@isom 

Taka sytuacja że skrypt pięknie się załączył w zakresie czasowym ustawionym w skrypcie. 

Pompa cały czas załączona aż do 21 gdy rozłączyłem tel od wifi pompa się wyłączyła i po podłączeniu ponownym nie załączyła a mam ustawiony timer już nie zależny od telefnów na przełączniku od 16 do 23:30 cały czas załączona w tygodniu a w weekend od 08:00 do 23:30

 

OdpowiedzCytuj
Autor tematu Dodane : 26/01/2022 10:14 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20

@wojtek_gtx ok skoro masz timery w samym przełączniku pompy to zmień to na tak jak poniżej , wtedy skrypt będzie reagował na przełącznik pompy tylko w zakresie czasowym

return 
{
on = 
{
timer = { 'between 8:05 and 15:55 on mon,tue,wed,thu,fri'},
devices = {'Tel 1','Tel 2', 'Tel 3'} -- nazwy przelacznikow telefony
 
}, 

logging = {
level = domoticz.LOG_DEBUG, -- zmien na domoticz.LOG_ERROR, gdy skrypt bedzie Ok
  marker = "Pompa Cyrkulacja"
}, 
execute = function(dz, item)
local t1 = dz.devices('Tel 1')
local t2 = dz.devices('Tel 2')
local t3 = dz.devices('Tel 3')
local p = dz.devices('Pompa')
if dz.time.matchesRule('between 8:05 and 15:55 on mon,tue,wed,thu,fri') and (t1.state == 'On' or t2.state == 'On' or t3.state == 'On') then
     p.switchOn().checkFirst()
 elseif dz.time.matchesRule('between 8:05 and 15:55 on mon,tue,wed,thu,fri') and (t1.state == 'Off' and t2.state == 'Off' and t3.state == 'Off') then
       p.switchOff()
   end
end
}
OdpowiedzCytuj
Dodane : 26/01/2022 11:04 pm
wojtek_gtx polubień
Udostępnij: