Witam
Potrzebuję sterować automatycznie ogrzewaniem w pokoju. Mam już układ włączający pompk i odpowiedni obieg podłogówki oraz czujnik temperatury. Lecz nie wie jak wykonać "termostat" tak by automatyka utrzymywała na zadanym poziomie temperaturę w pokoju. Czytałem wiele już tematów lecz nie wiem do teraz jak to wykonać.
Czy ja muszę własny skrypt napisać który będzie odczytywać aktualną temperaturę oraz temperaturę zadaną i na podstawie tego włącza i wyłączał odpowiedni obieg podłogówki ? Czy jest już w OH już jakiś gotowy moduł do tego ?
Cześć
Generalnie zwykle robi się tak, że termostat implementuje się w hardwarze (ESP8266+tasmota, PLC, Sonoff) a w OpenHABie zmienia się tylko nastawę temperatury, rysuje wykresy itp. U mnie akurat temperaturami steruje PLC, a w OH mam tylko nastawy dotyczące temperatur i prezentację odczytów.
Jeśli chcesz zrobić termostat na OH to najłatwiej użyć do tego profilu hysteresis ( https://www.openhab.org/docs/configuration/items.html). Minus jest taki, że jak zwiesi się OH to sterowanie temperaturą szlag trafi. Drugi problem to sterowanie podłogówką, która ma sporą bezwładność i proste sterowanie wł/wył średnio się tu sprawdza. U siebie zrobiłem sterowanie PID dla każdej pętli osobno i to się sprawdza, jednak trzeba wcześniej ten PID wyregulować.
Są dedykowane sterowniki do podłogówki, może warto się tym zainteresować. W razie wykrzaczenia OH sterowanie nadal będzie działać.
Do tworzenia nastaw temperatur używam
Natomiast samo sterowanie to już przez reguły. Nie używam histerezy. Mam piec gazowy z termometrem zewnętrznym, który dostosowuje się do warunków. A OH tylko czuwa aby nie było w pomieszczeniach za ciepło.
Hej,
Mam dodatkowe pytanie,
Ja mam bardzo dużą bezwładność podłogówki, po włączeniu pompy ciepła mija 2-3 godziny, zanim temperatura zacznie rosnąć.
Czy w takim przypadku warto bawić się w sterowanie temperaturą w poszczególnych pokojach ?
Na razie mam przepływy ustalone na rozdzielaczu i steruję 2 obiegami parter i piętro.
@raphpl Jedno drugiemu nie przeszkadza. Ja mam dla każdego pomieszczenia oddzielną regulację, ale w oparciu o regulator PID. Tzn wyjście regulatora jest wpięte do modułu PWM o okresie 30 minut. W zależności od zapotrzebowania na ciepło zawór jest otwierany na dłużej lub na krócej. Działa to całkiem nieźle. Działałoby pewnie lepiej i prościej, gdybym miał sensowną regulację temperatury wody w podłogówce - wtedy pewnie wystarczyłby zwykły regulator on/off z histerezą do utrzymywania stałej temperatury.
Natomiast z mojego doświadczenia zmiana nastawy temperatury np na dzień i na noc nie ma sensu - za długi czas rekacji.
Żeby był jasność: ja mam podłogówki zasilane kotłem gazowym przez mieszacz. Oczywiście zmiana nastaw temperatury przynosi u mnie efekt dopiero po ok. 5 godzinach.
OK, masz trochę inne warunki, ja grzeję pompą ciepła w taryfach nocnych i niskimi temperaturami (na powrocie z podłogówki mam około 29-30 stopni).
Muszę też wstrzelić się na odpowiednią taryfę, więc jak jest pogoda jak teraz to 6-7 godzin pracy pompy wystarcza.
Wahania temperatury mam około 0,5 stopnia w ciągu doby.
Przy gazie możesz uruchomić grzanie na żądanie, żeby skorygować zadaną temperaturę, więc sterowanie ma większy sens.
@raphpl ja bym nie powiedział że grzejesz niskimi temperaturami skoro na powrocie masz 30 st , przy obecnych temp to raczej mocno grzejesz tą podłogę . Długie przerwy w pracy pompy przy podłogówce to też zły pomysł , bo jak wiadomo bezwładność tego typu ogrzewania jest duża i tak samo jak długo trwa wychłodzenie tej podłogi równie długo trwa jej dogrzanie co się przekłada na większy pobór prądu przez pompę. Zachęcam do sprawdzenia sobie empirycznie co będzie jak pompa będzie pracowała całą dobę z obniżaniem temp zasilania w godzinach szczytu i porównanie tego z tym jak teraz robisz .
1. Tylko że PC ma moc 16kW (a pewnie 12kW lub nawet 9kW dała by radę) i jest przewymiarowana, więc grzejąc całą dobę, to bym się ugotował :). W PC nie ma możliwości sterowania mocą (nie mam żadnych mieszaczy), to jest prosty kompresor.
2. 30 stopni to wartości graniczne, bardziej powiedziałbym, że pracuje w przedziale 25-30, temperatura w pokojach jest ustawiona na 24 stopnie.
PS: jeszcze dodam, że mam dobrą taryfę na grzanie nocą było 0,7 pln/kWh -szczyt i 0,3 pln/kWh poza szczytem a po podwyżkach 0,85 pln/kWh -szczyt i 0,4 pln/kWh poza szczytem. Więc nie opłaca mi włączać PC poza szczytem. Rachunki za sezon grzania miałem w przedziale 1500-2000 pln na sezon
@raphpl no to zmienia postać rzeczy i kłania się duży bufor jak jest miejsce, a jak go nie ma to zostaje nierówna walka 🙂 . Obniżenie zadanej nic nie da bo zwiększy się taktowanie i tak w kółko. Nie zazdroszczę :))
Właśnie jest duży bufor = 15m3 betonu 🙂
Przy wyłączonym grzaniu mam spadek temperatury rzędu 1-2 stopnie na dobę, w zależności od wiatrów i temp zewnętrznej.
A nagrzanie domu z 18 stopni do 22 to 24h pracy pompy 🙁
@raphpl to nie forum o ogrzewaniu , ale nie o takim buforze myślałem :)) Bardziej magazynowanie energii i oddawanie w złych taryfach z niższą temp, ale skoro tak jak masz jest ok to szkoda prądu na dywagacje .
Dwa stopnie na 24/h to ja tracę przy grzejnikach a dogrzanie tego z powrotem trwa może trzy godziny a nie 12
Super za informacje dziękuję wam 🙂 teraz już wiem jak to zrobić. Czyli każdy "termostat" to osobny skrypt. Ja wolę to zrobić w samym OH bo nawet jak się zawiesi efekt będzie taki sam. ALbo będzie grzał nonstop albo wcale. A ja widzę jak narazie ani razu mi się to nie powiesiło.
Znalezione gdzieś na forum i zmodyfikowane:
rule "GF_Hallway_heat" when Item GF_Hallway_Temperature changed or Item GF_Hallway_Heating changed then var Number temp = GF_Hallway_Temperature.state as DecimalType if ( temp != NULL && temp != UNDEF && temp > 0 && C_Boiler_tryb.state == OFF) { var Number tempMax = 0 tempMax = GF_Hallway_Heating.state as DecimalType if (temp < (tempMax)) { if (C_Boiler_r3.state != ON) { C_Boiler_r3.sendCommand(ON) } } else { if (C_Boiler_r3.state != OFF) { C_Boiler_r3.sendCommand(OFF) } } } else { // this else belongs to the valid temp reading check if (C_Boiler_r3.state != ON) { C_Boiler_r3.sendCommand(ON) } } end
Myślę że histerezą nie ma się co przejmować.