Jeszcze jeden termo...
 
Powiadomienia
Wyczyść wszystko

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

51 Wpisów
10 Użytkownicy
3 Reactions
8,827 Wyświetleń
isom
 isom
(@isom)
Wpisów: 5166
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

@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 

 
Dodane : 14/12/2019 8:02 pm
abulec
(@abulec)
Wpisów: 68
Kontrybutor Donator 2K19
 

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

 
Dodane : 15/12/2019 10:39 am
isom
 isom
(@isom)
Wpisów: 5166
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

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

 

 
Dodane : 15/12/2019 10:46 am
(@qedro)
Wpisów: 2
Świeżak
 

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ć?

 
Dodane : 21/12/2019 8:37 pm
isom
 isom
(@isom)
Wpisów: 5166
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

@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.

 
Dodane : 22/12/2019 10:37 pm
(@qedro)
Wpisów: 2
Świeżak
 

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ś.

 
Dodane : 23/12/2019 12:08 pm
abulec
(@abulec)
Wpisów: 68
Kontrybutor Donator 2K19
 
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.

 
Dodane : 23/12/2019 1:55 pm
 mihu
(@mihu)
Wpisów: 4
Świeżak
 

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.

 
Dodane : 12/10/2020 2:02 pm
isom
 isom
(@isom)
Wpisów: 5166
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

@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
 
Dodane : 12/10/2020 5:13 pm
adrian reacted
 mihu
(@mihu)
Wpisów: 4
Świeżak
 

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?

 
Dodane : 12/10/2020 6:17 pm
isom
 isom
(@isom)
Wpisów: 5166
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

@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
}
 
Dodane : 12/10/2020 7:51 pm
 mihu
(@mihu)
Wpisów: 4
Świeżak
 

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

 
Dodane : 13/10/2020 7:29 am
wojtek_gtx
(@wojtek_gtx)
Wpisów: 540
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

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
 
Dodane : 08/12/2020 3:01 pm
isom
 isom
(@isom)
Wpisów: 5166
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

@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

 
Dodane : 08/12/2020 6:18 pm
wojtek_gtx reacted
wojtek_gtx
(@wojtek_gtx)
Wpisów: 540
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

Zmieniłem

Póki co błędów brak

Dzięki

 
Dodane : 08/12/2020 10:51 pm
 mihu
(@mihu)
Wpisów: 4
Świeżak
 

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);
 
Dodane : 10/12/2020 10:11 am
(@jarokid)
Wpisów: 17
Praktykant
 

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ł?
 
Dodane : 03/03/2021 9:36 am
isom
 isom
(@isom)
Wpisów: 5166
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

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ć 

 
Dodane : 03/03/2021 10:13 am
(@jarokid)
Wpisów: 17
Praktykant
 

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
 
Dodane : 03/03/2021 11:46 pm
isom
 isom
(@isom)
Wpisów: 5166
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

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 

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