Asystent AI
Monitorowanie stanu...
 
Powiadomienia
Wyczyść wszystko

Monitorowanie stanu wejść z Satel integra

8 Wpisów
4 Użytkownicy
0 Reactions
2,059 Wyświetleń
(@piotras78)
Wpisów: 50
Kontrybutor
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#1921]

Cześć

Potrzebuje cyklicznie odpytywać integre która podaje stan wejścia na zasadzie 1 - brak naruszenia, 3 naruszone i przepisywac ten stan do wirtualnych włączników on/off

zacząłem robić coś takiego jak poniżej ale wiem że jest to źle zrobione więc nawet nie odpalam (nie znam dzvents - kombinowałem z przerabianiem innego skryptu).

Najlepiej byłoby żeby sprawdzał jeszcze stan uzbrojenia systemu czyli jak jest 1 na wyjściu satela to system rozbrojony i sprawdza stan tych wejśc jak jest 3 - uzbrojony to niczego nie robi

return {
on = { timer = { 'every 2 minutes' }},

execute = function(dz, item)

local kont1 = dz.devices('Kontaktron górny - balkon Wiktor').nValue
local kont2 = dz.devices('Kontaktron górny - balkon Michalina').nValue
local kont3 = dz.devices('Kontaktron górny - okno garderoba').nValue
local kont4 = dz.devices('Kontaktron górny - balkon sypialnia').nValue
dz.devices('Okno Wiktor k').updateSwitch(kont1)
dz.devices('Okno Michalina k').updateSwitch(kont2)
dz.devices('Okno garderoba k').updateSwitch(kont3)
dz.devices('Okno sypialnia k').updateSwitch(kont4)

end
}

 

I jeszcze jeden temat przy okazji - mam głowice i termostaty w których ustawia się czas - czy jest możliwość (i jak) odczytywania czasu z domoticza i ustawianiu go automatycznie raz na dobę na tych urządzeniach (coś jak serwer czasu) ?


 
Dodane : 28/09/2020 1:47 pm
(@steel_rat)
Wpisów: 646
Ekspert
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

A jak odpytujesz satela? Ma on moduł eth?


 
Dodane : 28/09/2020 2:18 pm
wojtek_gtx
(@wojtek_gtx)
Wpisów: 542
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24, Donator 2K25
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Do satela z tego co kojarzę jest dedykowana wtyczka pod Domoticz tyle że musi być moduł ETH 

Jak masz już taką wtyczkę to życie staje się prostsze


 
Dodane : 28/09/2020 2:22 pm
(@piotras78)
Wpisów: 50
Kontrybutor
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Mam moduł eth i wtyczkę - generalnie wszystko działa - steruje sobie nim różne rzeczy - wykorzystuje czujniki kontaktronowe i piry. 

Potrzebuje pytać o stan wejścia do sterowania głowicami. 

Mam napisany harmonogram ze zmianami temperatur w zależności od pory dnia i teraz jezeli mam otwarte okno np o 10:00 to stan tego wejścia zrealizował warunek o tej godzinie i temp. ustawiana jest na głowicy na np 10 stopni tak żeby nie grzał kaloryfer w danym pomieszczeniu. Jeżeli to okno jest długo otwarte a w tym czasie przyjdzie info o zmianie nastawy temp. z harmonogramu to temperatura ustawi się na np 22 stopnie i włączy się grzanie mimo że okno nadal jest otwarte (kontaktron zmienił swój stan tylko raz o 10 i wywołał realizacje obniżenia temp i dopóki jego stan się nie zmieni ponownie to zdarzenie zapisane w blokach nie zostanie powtórnie wykonane)


 
Dodane : 28/09/2020 3:22 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@piotras78 uważam, że tworzenie dodatkowych wirtualnych przełączników żeby widziały je klocki w blockly nie jest przyszłościowym pomysłem , ale skoro nie chcesz próbować przepisać blockly na dzVents to możesz próbować tego 

Nie testowałem tego bo nie mam jak za-symulować stanów 1 - 3 
jak byś chciał inną koncepcję np stan wszystkich okiem + selektor w domoticz 
to takie coś  
 
W obu przypadkach da się dodać stan samego alarmu w drugim rozbudowa selektora o dwa poziomy , w pierwszym przypadku powielasz skrypt i zmieniasz tylko  nazwy.
 

 
Dodane : 29/09/2020 9:22 pm
(@piotras78)
Wpisów: 50
Kontrybutor
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Wstępnie wydaje mi się że pierwszy skrypt działa prawidłowo (dokładnie sprawdze po powrocie do domu) - drugiego nie sprawdzałem.

Teraz jak się tak zastanowiłem to optymalnie byłoby żeby robił to w ten sposób:

Jeżeli okno jest otwarte powyżej 5 min (stan 3) i temperatura na termostacie jest wyższa niż 8 stopni to ustaw termostat na 8 stopni.

Uwzględniłoby to otwarcie chwilowe balkonu/tarasu (np żeby po coś wyjść) i wysyłałoby tylko informacje do termostatu do momentu ustawienia 8 stopni - w obecnej wersji wysyła to info co 2 min (wraz ze stanem okna).

Dzięki za pomoc


 
Dodane : 30/09/2020 2:47 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@piotras78 zmiany nastaw termostatu jak nie wiadomo jak masz poukładane klocki w tym swoim blockly , czarno trochę widzę . Wstaw fotkę tej układanki to może będzie łatwiej. Na tą chwilę mogę pomóc tak, że po otwarciu okna skrypt poczeka ponad 4 minuty zanim zmieni stan wirtualnego przełącznika "Stan okna".

Pierwsze odpalenie skryptu następuje po zmianie stanu faktycznego czujnika , załóżmy, że będzie to o godz 10:00:34 , o 10:01:00 skrypt  zostanie uruchomiony przez wyzwalacz czasowy  i zmieni stan wewnętrznej zmiennej z 0 na 1 , za dwie minuty kolejne wyzwolenie sprawdzi warunki czy zmienna się zgadza i kiedy aktualizował się czujnik , trzecie wyzwolenie  o 10:05:00 zmieni stan wirtualnego przełącznika "Stan okna". W tym przypadku od otwarcia okna do zmiany stanu wirtualnego przełącznika minie 4 min , 26 sek.

Zmiana czasu wyzwalania będzie regulowała długość tej pauzy .

 

 

Pamiętaj żeby dostosować nazwy urządzeń , jak w pierwszym skrypcie

 
Dodane : 30/09/2020 10:06 pm
(@piotras78)
Wpisów: 50
Kontrybutor
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Cześć

Postanowiłem się pozbyć zdarzeń blokach - duża część zajmuje mi konwersja stanów z satela integry (1/3) na on/off

Napisałem taki oto skrypt który niby działa ale tylko na trzech czujnikach (wejście 6,7,8)- dla czego reszta nie zmienia stanu ? Zmieniłem już nawet nazwy wejść na nr idx żeby pominąć błędy w pisowni. Dodatkowo przy naruszeniu jednego wejścia skryp odrazu odpytuje stany wszystkich czujników które się w nim znajdują - można to jakoś zrobić żeby wykonywał pętlę sprawdzająca tylko do danego naruszonego czujnika ?

 

return {
on = {
devices = {235, 332, 333, 334, 335, 336, 337, 338, 339, 340}
},
logging =
{
level = domoticz.LOG_DEBUG,
marker = 'Stan PIR satel',
},
execute = function(dz, device)

local wejscie1 = dz.devices (235)
local stan1 = dz.devices (648)

local wejscie2 = dz.devices (332)
local stan2 = dz.devices (642)

local wejscie3 = dz.devices (333)
local stan3 = dz.devices (643)

local wejscie4 = dz.devices (334)
local stan4 = dz.devices (641)

local wejscie5 = dz.devices (335)
local stan5 = dz.devices (645)

local wejscie6 = dz.devices (336)
local stan6 = dz.devices (644)

local wejscie7 = dz.devices (337)
local stan7 = dz.devices (639)

local wejscie8 = dz.devices (338)
local stan8 = dz.devices (640)

local wejscie9 = dz.devices (339)
local stan9 = dz.devices (647)

local wejscie10 = dz.devices (340)
local stan10 = dz.devices (646)

if wejscie1.state == '1' then
stan1.switchOff ()
elseif wejscie1.state == '3' then
stan1.switchOn ()
end

if wejscie2.state == '1' then
stan2.switchOff ()
elseif wejscie2.state == '3' then
stan2.switchOn ()
end

if wejscie3.state == '1' then
stan3.switchOff ()
elseif wejscie3.state == '3' then
stan3.switchOn ()
end

if wejscie4.state == '1' then
stan4.switchOff ()
elseif wejscie4.state == '3' then
stan4.switchOn ()
end

if wejscie5.state == '1' then
stan5.switchOff ()
elseif wejscie5.state == '3' then
stan5.switchOn ()
end

if wejscie6.state == '1' then
stan6.switchOff ()
elseif wejscie6.state == '3' then
stan6.switchOn ()
end

if wejscie7.state == '1' then
stan7.switchOff ()
elseif wejscie7.state == '3' then
stan7.switchOn ()
end

if wejscie8.state == '1' then
stan8.switchOff ()
elseif wejscie8.state == '3' then
stan8.switchOn ()
end
end
}


 
Dodane : 22/12/2020 11:40 pm
Udostępnij: