Forum użytkowników automatyki budynkowej
Z-wave => Fibaro - sceny => Wątek zaczęty przez: krystian w Styczeń 09, 2020, 11:13:09 am
-
Witam chciałbym odświerzyć wątek
Chciałbym maksymalnie zaoszczędzić energie na CWU.
Czy któryś z kolegów jest w stanie podpowiedzieć jak uzależnić uruchomienie pompy dodatkowo od czujnika temp. który jest zamontowany na obiegu CWU?
Np jeśli temp. CWU jest większa od 40°C to pompa się nie włącza.
Z góry dziękuję za cenne uwagi.
-
Ja zazwyczaj skrypt do tego piszę i pompą steruję ręcznie przez Fibaro.
-
Witam chciałbym odświerzyć wątek
Chciałbym maksymalnie zaoszczędzić energie na CWU.
Czy któryś z kolegów jest w stanie podpowiedzieć jak uzależnić uruchomienie pompy dodatkowo od czujnika temp. który jest zamontowany na obiegu CWU?
Np jeśli temp. CWU jest większa od 40°C to pompa się nie włącza.
Z góry dziękuję za cenne uwagi.
mozesz tez sprawdzac stan alarmu albo naruszenie czujek, nie pracuje moja pompa jak nikogo w domu,
Od razu powiem Ci ze uzaleznianie pompy CWU od naruszenia czujki w lazience jest bez sensu, chyba ze pompa ma 10kW i 5 sekund mieli cala wode :)
spotkalem sie tez z rozwiazaniami 30 min chodzi pompa, 30 min nie ... ile osob tyle pomyslow.
U mnie pompa chodzi caly czas za wyjatkiem harmonogramu urlopu.
-
Witam
Dzięki za cenne uwagi!
Nie wiem czemu wyrzuciło mnie z pierwotnego tematu forum.
Wykorzystuje już scenę jak poniżej i działa naprawdę ok
Nie znam się na lua na tyle aby dodać warunek temperatury.
Ten skrypt jest dosyć obszerny.
Mam ogrzewanie gazowe i piec z zasobnikiem nie widzę sensu aby pompa była włączona cały czas.( poza weekendem )
większą część dnia jestem poza domem i scena się sprawdza
chciałbym tylko jeszcze uzależnić uruchomienie pompy CWU od temperatury
chyba że przesadzam ...
--[[
%% properties
648 value
839 value
290 value
%% globals
--]]
-- Sprawdzenie czy nie jest uruchomiona więcej jak jedna scena -----------------------------------
if (fibaro:countScenes() > 1) then
fibaro:debug("Uruchomiono druga instancje sceny - zatrzymanie")
fibaro:abort();
end
-- Initial Values -----------------------------------------------------------
-- Nie zapomnij dodać ID czujek i sensorów drzwi w deklaracji na początku skryptu!!!
local switch = 648 -- Podaj ID switcha odpowiedzialnego za uruchamianie pompy CWU
local startTime1 = '06:40' -- czas startu pierwszego zakresu
local stopTime1 = '08:30' -- koniec czasu pierwszego zakresu
local startTime2 = '14:00' -- czas startu drugiego zakresu
local stopTime2 = '20:30' -- koneic czasu drugiego zakresu
local startTimeWe = '08:00' -- czas startu w weekend
local stopTimeWe = '21:00' -- koniec czasu w weekend
CWU_Time = 10-- Czas pracy CWU w minutach
CWU_Delay = 20 -- Przerwa pomiędzy kolejnymi możliwymi cyklami pompy, w minutach
-- Funkcje -----------------------------------------------------------------
-- funkcja zamienia czas w formacie tekstowym "HH:MM" lub os.date("*t")
-- na liczbę minut od północy
function toMinutes(czasHHMM)
local a
if type(czasHHMM) == "string" then
a = tonumber(string.sub(czasHHMM, 1, 2)) * 60 + tonumber(string.sub(czasHHMM, 4, 5))
else
a = tonumber(czasHHMM.hour) * 60 + tonumber(czasHHMM.min)
end
return a
end
-- funkcja sprawdza czy aktualny czas jest w określonej porze
function isTime(startHHMM, stopHHMM)
nowMin=toMinutes(os.date("*t"))
startMin=toMinutes(startHHMM)
stopMin=toMinutes(stopHHMM)
if (stopMin >= startMin) then
if (nowMin >= startMin) and (nowMin <= stopMin) then
isTme = true
else
isTme = false
end
elseif (stopMin <= startMin) then
if (nowMin <= startMin) and (nowMin >= stopMin) then
isTme = false
else
isTme = true
end
end
return isTme
end
---------------------------------------------------------------------------------------------------
-- Pokaż który sensor uruchomił scenę
-- isActiveTime - sprawdzenie czy to odpowiedni czas na uruchomienie pompy ---
local wD=os.date('*t').wday
isActiveTime = (wD==2 or wD==3 or wD==4 or wD==5 or wD==6) and (isTime(startTime1,stopTime1) or isTime(startTime2,stopTime2)) or (wD==7 or wD==1) and isTime(startTimeWe,stopTimeWe)
fibaro:debug("isActiveTime = "..tostring(isActiveTime))
-- Sterowanie CWU ------------------------------------------------------------------
if isActiveTime then
fibaro:call(switch, "turnOn")
fibaro:debug("CWU Start")
fibaro:setGlobal("CWU_lastrun", toMinutes(os.date("*t")))
fibaro:sleep(CWU_Time*1000*60)
fibaro:call(switch, "turnOff")
fibaro:debug("CWU Stop")
fibaro:sleep(CWU_Delay*1000*60)
else
fibaro:debug("CWU nie uruchomione - poza zakresem czasowym")
end
-----------------------------------------------------------------------------
fibaro:debug("-----------------------------------------------
-
ale pytasz czy ma to sens czy jak to zrobić? :)
-
Pompą CWU steruje piec gazowy. I to wg mnie najlepsze sterowanie.
Piec uruchamia pompę CWU wyłącznie podczas ładowania zasobnika CWU. Prościej - uruchamiam kocioł, grzeję i uruchamiam pompę CWU żeby nagrzać wodę w zbiorniku CWU.
Wg mnie wyłączanie tej pompy nie ma sensu. Zakłóci to pracę i automatykę pieca. Oszczędność również żadna gdyż izolacja zbiornika CWU powoduje minimalne straty "przechowywania" ciepłej wody.
Harmonogram tygodniowy podgrzewania CWU zazwyczaj jest dostępny w sterowniku pieca i to najczęściej wystarcza do optymalizacji.
Warto natomiast sterować pompą obiegu recyrkulacji! Niezależnie od tego co ją będzie wyzwalać, recyrkulacja powoduje istotne i "niepotrzebne" wychłodzenie zbiornika CWU.
Wypiąć z pieca i sterować przez Fibaro dowolnie wg fantazji scenariusza i dostępnych trigerów.