Jeszcze jeden termo...
 
Powiadomienia
Wyczyść wszystko

Jeszcze jeden termostat z histerezą i różnymi trybami pracy

Strona 2 / 3
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@abulec W Shelly 1 między I O są tylko styki przekaźnika. Korzystałem i korzystam z tych modułów przy przeróbkach unifonów domofonowych ( zdalne otwieranie ) , kilka sterowników bram garażowych też na tym działa . Nie polecał bym koledze @maniek_ gdybym nie był pewny 🙂 

W tym temacie https://www.smartnydom.pl/forum/shelly/wlacznik-wifi-shelly-1/   znajdziesz fotki ścieżek z obu stron , te od styków są zaznaczone na pomarańczowo 

OdpowiedzCytuj
Autor tematu Dodane : 14/12/2019 8:02 pm
abulec
(@abulec)
Stażysta Donator 2019

Rozumiem. Mam pierwszą wersje shelly 1, a wiem że kolejne miały lepiej rozwiązaną separację obwodów, dlatego wolałem dopytać.

OdpowiedzCytuj
Dodane : 15/12/2019 10:39 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@abulec chcesz ostatnią wersję z wgraną aktualizacją softu i sprawdzoną na 100% to dla użytkowników forum mam po 45 zł + kw.

 

OdpowiedzCytuj
Autor tematu Dodane : 15/12/2019 10:46 am
Qedro
(@qedro)
Nowy

Powoli szukam rozwiązania dla siebie i natknąłem się na ten wątek. Jednak do końca nie wiem jak rozwiązać to u siebie

Z tego co tutaj widzę skrypt steruje jednym przekaźnikiem na podstawie wskazań dwóch termometrów.

W moim przypadku w każdym pomieszczeniu mam termometr i każde pomieszczenie jest sterowane oddzielną pętlą. Ogólnie około 12 par termometr-zawór. Chciałbym sterować globalnie dla wszystkich pomieszczeń tak jak jest to zastosowane w tym skrypcie  jednak zbierać dane z 12 termometrów i sterować 12 zaworami + włączaniem/wyłączaniem pieca na pelet. Czy muszę ten skrypt duplikować dla każdego pomieszczenia czy da się to jakoś inaczej rozwiązać?

OdpowiedzCytuj
Dodane : 21/12/2019 8:37 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@qedro generalnie skrypt wykorzystuje jeden termometr , drugi jest tylko na wypadek awarii pierwszego , żeby niezależnie sterować każdą pętlą trzeba powielać skrypt zmieniając w każdym nazwę przekaźnika i termometru , można minimalizować ilość skryptów dobierając pomieszczenia o podobnych wymogach temperaturowych i łączyć je w grupy , tak jak opisałem to wcześniej. Można też i tak mam u siebie tyle że grzejniki a nie podłoga pobierając temperaturę z kilku pomieszczeń użyć skryptu do wyliczenia średniej i na podstawie tej średniej sterować kotłem na pellet. Ile instalacji grzewczych tyle pomysłów.

OdpowiedzCytuj
Autor tematu Dodane : 22/12/2019 10:37 pm
Qedro
(@qedro)
Nowy

Ok czyli wszystko jasne. Mam już pewien zarys. Powtórzyć termostaty a potem to pogrupować i sterować globalnie grupami . Przy użyciu dzvents ładnie można to ogarnac jak wcześniej pisałeś.

OdpowiedzCytuj
Dodane : 23/12/2019 12:08 pm
abulec
(@abulec)
Stażysta Donator 2019
Dodane przez: @isom

@abulec chcesz ostatnią wersję z wgraną aktualizacją softu i sprawdzoną na 100% to dla użytkowników forum mam po 45 zł + kw.

 

Póki co pobawię się tym co mam. Dzięki.

OdpowiedzCytuj
Dodane : 23/12/2019 1:55 pm
mihu
 mihu
(@mihu)
Nowy

Witam wszystkich.

Na wstępie chciałem podziękować isom za skrypt termostatu.

Używam go od jakiegoś czasu i jak na razie dobrze się sprawuje. Dodałem do tego sterowania licznik pracy kotła CO ale nie za dobrze funkcjonuje ten mój licznik. Mały licznik zlicza od razu a większy z opóźnieniem po jakiś 6 minutach.

 

Utworzyłem dodatkowy skrypt licznika który przesyła dane do urządzenia licznika w Domoticzu.

return {

on = { timer = {'every 1 minutes'} },

execute = function(domoticz, _)
local myDevice = domoticz.devices('Reg-Pokojowy')
local aktlicznik = domoticz.devices('Czas pracy kotla CO').counter

if myDevice.state == "On" then
aktlicznik = aktlicznik + 1
domoticz.devices('Czas pracy kotla CO').updateCounter(aktlicznik)
end

end
}

Gdzieś jest jakiś błąd ale nie za bardzo wiem gdzie.

OdpowiedzCytuj
Dodane : 12/10/2020 3:02 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@mihu jakiej - której wersji domoticz używasz ? Wprowadziłem kosmetyczne zmiany w ustawieniu timera  i dodałem trochę debugowania dla sprawdzenia i skrypt śmiga bez problemu

return {
on = { timer = {'every minute'} 
},
logging =
{
level = domoticz.LOG_DEBUG, -- zmien na LOG_ERROR, jak skrypt bedzie Ok
marker = 'Licznik',
}, execute = function(domoticz, _ )
local myDevice = domoticz.devices('Reg-Pokojowy')
local aktlicznik = domoticz.devices('Czas pracy CO').counter if myDevice.state == "On" then
aktlicznik = aktlicznik + 1
domoticz.devices('Czas pracy CO').updateCounter(aktlicznik)
end end
}

Poniżej fotka działającego licznika 

 licznik
OdpowiedzCytuj
Autor tematu Dodane : 12/10/2020 6:13 pm
adrian polubień
mihu
 mihu
(@mihu)
Nowy

Dziękuję za szybką odpowiedź.

Używam Domoticza 2020.2.

Po poprawkach w skrypcie wszystko działa jak powinno.

Dzięki za wskazanie błędu 😀 

Mam jeszcze jedno pytanie. Gdzie wyzerować logi liczników?

OdpowiedzCytuj
Dodane : 12/10/2020 7:17 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@mihu możesz do tego użyć json 

http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=XX&svalue=0

po zmianie portu jeżeli używasz innego niż 8080 i wstawieniu zamiast xx IDX swojego licznika , możesz to wstawić w akcji dowolnego przełącznika, któremu ustawisz harmonogram wł/wył .

Można też żeby nie tworzyć dodatkowego urządzenia wykorzystać dzVents. Poniższy skrypt wykasuje licznik o wskazanej porze w poniedziałek 

-- Kasowanie licznika zmien port i zamien xx na IDX swojego licznika w domoticz
return { 

on = {
timer = {'at 00:01 on mon' },

},
execute = function ( domoticz, item ) if item . isTimer then

domoticz . openURL {
url = 'http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=XX&svalue=0'}
domoticz.log ('Licznik wyzerowany')
end
end
}
OdpowiedzCytuj
Autor tematu Dodane : 12/10/2020 8:51 pm
mihu
 mihu
(@mihu)
Nowy

Działa 😀 . Dziękuję za pomoc.

OdpowiedzCytuj
Dodane : 13/10/2020 8:29 am
wojtek_gtx
(@wojtek_gtx)
Ekspert Patron Strony Donator 2019, Donator 2K20, Donator 2K21

Witam ponownie

Skrypt działa u mnie już dłuższy czas ale w tym roku zobaczyłem że wywala mi błędy w logu .
parę miesięcy temu robiłem upgrade do 2020.2

 

2020-12-08 14:18:56.182 Error: dzVents: Error: (3.0.2) > 24. Target temperature reached, Status => off
2020-12-08 14:28:56.233 Error: dzVents: Error: (3.0.2) > 25. Heating is needed, Status => on
OdpowiedzCytuj
Dodane : 08/12/2020 3:01 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@wojtek_gtx to są mało  znaczące błędy wynikające ze zmian wersji dzVents . Jak masz skrypt w oryginale to zamień końcówkę skryptu na to co poniżej . Oczywiście bez mojego opisu dotyczącego wiersza 412

OdpowiedzCytuj
Autor tematu Dodane : 08/12/2020 6:18 pm
wojtek_gtx polubień
wojtek_gtx
(@wojtek_gtx)
Ekspert Patron Strony Donator 2019, Donator 2K20, Donator 2K21

Zmieniłem

Póki co błędów brak

Dzięki

OdpowiedzCytuj
Dodane : 08/12/2020 10:51 pm
mihu
 mihu
(@mihu)
Nowy

Idąc za ciosem to w tych liniach oryginalnego kodu także robimy poprawki usuwając ",true"?

213--> log(domoticz,' > 3. SETTING MODE: [' .. text_content .. ']',true)

320--> log(domoticz,' >11. ' .. devHEAT .. ' On because the current temperature '.. tostring(temp_current)..' lower than required '..tostring(temp_set),true)

323--> log(domoticz,' > 11a. '.. devHEAT .. ' OFF because the current temperature '..tostring(temp_current)..' it is not lower than required '..tostring(temp_set),true)

358--> log(domoticz,text_content,true);

383--> log(domoticz,text_content,true);
OdpowiedzCytuj
Dodane : 10/12/2020 10:11 am
jaro kid
(@jarokid)
Młodzik

ja zaimplementowałem obydwa skrypty , pozmieniałem co trzeba ale mam błędy

2021-03-03 09:32:00.126 Error: dzVents: Error: (3.0.2) Licznik: ...z/scripts/dzVents/generated_scripts/Licznik pracy CO.lua:11: attempt to index a nil value
2021-03-03 09:32:00.126 Error: dzVents: Error: (3.0.2) There is no device with that name or id: Reg-Pokojowy
2021-03-03 09:32:00.126 Error: dzVents: Error: (3.0.2) An error occurred when calling event handler pellet
2021-03-03 09:32:00.126 Error: dzVents: Error: (3.0.2) ...pi/domoticz/scripts/dzVents/generated_scripts/pellet.lua:182: attempt to index a nil value
2021-03-03 09:32:04.998 (thermostat piec) Light/Switch (heating)
2021-03-03 09:32:04.994 Status: User: Admin initiated a switch command (38/heating/Off)
 
jakis pomysł?
OdpowiedzCytuj
Dodane : 03/03/2021 9:36 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

Skrypt licznika Nie masz takiego urządzenia jak Reg-Pokojowy , błąd pisowni , albo jakaś spacja .

Skrypt termostatu błąd dotyczy próby porównania indeksu z zerem czyli zła składnia skryptu, ale bez szklanej kuli , albo zobaczenia tego skryptu nic nie można powiedzieć 

OdpowiedzCytuj
Autor tematu Dodane : 03/03/2021 10:13 am
jaro kid
(@jarokid)
Młodzik

niby działa ale mi sie wlacza i wylacza reg-pokojowy

2021-03-03 23:43:42.283 Status: dzVents: Info: Handling events for: "Tryb", value: "Off"
2021-03-03 23:43:42.284 Status: dzVents: Info: ------ Start internal script: pellet: Device: "Tryb (thermostat piec)", Index: 58
2021-03-03 23:43:42.284 Status: dzVents: !Info:
2021-03-03 23:43:42.284 Status: dzVents: !Info: **************************************************************************
2021-03-03 23:43:42.284 Status: dzVents: !Info: 1. Heating control - start debug ver -> 2.4
2021-03-03 23:43:42.284 Status: dzVents: !Info: **************************************************************************
2021-03-03 23:43:42.284 Status: dzVents: !Info: On moment start script:
2021-03-03 23:43:42.284 Status: dzVents: !Info: --------------------------------------------------------------------------
2021-03-03 23:43:42.285 Status: dzVents: !Info: > Reg-Pokojowy -> Off
2021-03-03 23:43:42.286 Status: dzVents: !Info: > ignas bt xiaomi -> 22.0
2021-03-03 23:43:42.286 Status: dzVents: !Info: > Status CO -> >Manualny< temp. 24.0 C.
2021-03-03 23:43:42.287 Status: dzVents: !Info: > Normal -> 22.00
2021-03-03 23:43:42.288 Status: dzVents: !Info: > Ekonom -> 21.00
2021-03-03 23:43:42.289 Status: dzVents: !Info: > Manual -> 24.00
2021-03-03 23:43:42.290 Status: dzVents: !Info: > Wyjazd -> 20.50
2021-03-03 23:43:42.291 Status: dzVents: !Info: > Robocze -> 5-9/13-23
2021-03-03 23:43:42.291 Status: dzVents: !Info: > Weekend -> 8-23.30
2021-03-03 23:43:42.292 Status: dzVents: !Info: > HISTERESIS -> 0.2
2021-03-03 23:43:42.292 Status: dzVents: !Info: --------------------------------------------------------------------------
2021-03-03 23:43:42.293 Status: dzVents: !Info: --------------------------------------------------------------------------
2021-03-03 23:43:42.293 Status: dzVents: Info: ------ Finished pellet
2021-03-03 23:43:42.294 Status: EventSystem: Script event triggered: /home/pi/domoticz/dzVents/runtime/dzVents.lua
2021-03-03 23:43:42.319 Status: Set UserVariable CO Status = SYSTEM OFF
2021-03-03 23:43:42.320 Status: Set UserVariable komunikatCO = Change of mode: SYSTEM OFF
2021-03-03 23:43:42.293 Error: dzVents: Error: (3.0.2) > 3. SETTING MODE: [SYSTEM OFF]
2021-03-03 23:43:59.248 InfluxLink: value Percentage,idx=1,name=CPU_Usage value=3.89
2021-03-03 23:44:00.178 Status: dzVents: Info: ------ Start internal script: pellet:, trigger: "every 2 min
OdpowiedzCytuj
Dodane : 03/03/2021 11:46 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

There is no device with that name or id: Reg-Pokojowy, wpisz to do translatora a dostaniesz takie tłumaczenie

Nie ma urządzenia o takiej nazwie lub identyfikatorze: Reg-Pokojowy

To znaczy że w samym skrypcie jest literówka , albo niepotrzebnie gdzieś zrobiona spacja 

OdpowiedzCytuj
Autor tematu Dodane : 04/03/2021 7:00 am
Strona 2 / 3
Udostępnij: