Forum Smart'ny Dom

Uniwersalny Termost...
 

Uniwersalny Termostat z Histereza na bazie Domoticza  

  RSS
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019

Jak w tytule prosty, ale funkcjonalny termostat, który tworzymy wykorzystując możliwości samego Domoticza.

Co potrzebujemy :

Czujnik temperatury – wykorzystany może być dowolny już działający czujnik, ważne żeby nie był to czujnik zespolony np. z wilgotnością , czyli wybieramy np. DS18B20

Przełącznik , który będzie załączał grzejnik lub piec

Wirtualny termostat , który dodajemy do systemu.

Skrypt LUA który będzie nadzorował pracę termostatu.

Pierwsze dwa tworzymy dodając do systemu np. moduł sonoff z czujnikiem więc opis sobie daruję.

Wirtualny termostat tworzymy tak samo jak każdy wirtualny czujnik tylko jako typ wybieramy tak jak na poniższym foto.

Cały zestaw termostatu wygląda tak jak na foto poniżej.

Motyw AURORA , którego używam ma od razu kursory do ustawiania temperatury , ale jeżeli nie używacie tego motywu wystarczy kliknąć w ikonę PŁOMIENIA termostatu żeby pojawił się panel regulacyjny poniżej foto.

Kolejną rzeczą jaką można zrobić to ustawienie sobie kiedy do jakiej temperatury ogrzewanie ma działać , to ustawiamy w przełączniku termostatu przykładowe ustawienia na foto poniżej.

4.JPG

Ostatni etap to utworzenie zdarzenia w DomoticzuWchodzimy w Konfiguracja, Zdarzenia i tworzymy nowe zdarzenie LUA , które ma wyglądać jak poniżej.

5.JPG

Pamiętajcie wejść w  Ustawienia , Inne i włączyć obsługę LUA jeżeli nie jest aktywna.Poniżej skrypt , który należy zmodyfikować do własnych potrzeb , zmieniając nazwy czujnika, termostatu i przełącznika , oraz ustawienia sobie histerezy według własnego uznania.

 

-- Skrypt termostat zaczerpnąłem z sieci więc nie jest mojego autorstwa
local heating_probe = 'Nazwa czujnika' 
local thermostat_setpoint = 'Nazwa termostatu'
local heating_unit = 'Nazwa przełącznika' -- Use when a combined sensor (e.g. temperature and humidity) is used
-- Replace in "otherdevices[heating_probe]" to "otherdevices[heating_probe]" by "temp_only" (in the 2nd "if" and in the "elseif".
-- Remove the -- in the next two lines: --local naartekst = (tostring (otherdevices[heating_probe]))
--local temp_only = (string.sub(naartekst,1,4)) -- the digits (1,4) do point out what characters of the string are needed. local hysteresis = 0.1 commandArray = {} -- loop through all the devices
for deviceName,deviceValue in pairs(otherdevices) do
if (deviceName== thermostat_setpoint ) then if tonumber(deviceValue) < tonumber(otherdevices[heating_probe]-hysteresis) then if (otherdevices[heating_unit] == "On") then
-- commandArray['SendNotification']='Heating is off'
commandArray[heating_unit]='Off'
print("Heating is Off")
end elseif tonumber(deviceValue) > tonumber(otherdevices[heating_probe]+hysteresis) then
if (otherdevices[heating_unit] == "Off") then
commandArray[heating_unit]='On'
-- commandArray['SendNotification']='Heating is on'
print("Heating is On")
end
end
end
end -- loop through all the variables
for variableName,variableValue in pairs(uservariables) do end           
return commandArray

Cytuj
Dodane : 02/12/2018 7:12 pm
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019

Zapomniałem dodać .

Histereza działa w górę i w dół więc jak ustawicie np. 0,4 to tak naprawdę będzie to 1 stopień.

Ogrzewanie włączy się jak temperatura spadnie do zadanej wartości minus histereza 0,4 stopnia, a wyłączy dopiero jak zadana zostanie przekroczona o 0,4 stopnia.

Przykład: Zadana 21 , Histereza 0,2

Ogrzewanie OFF = 21,3 stopnia

Ogrzewanie ON=  20,7 stopnia

Oczywiście takich termostatów można utworzyć sobie kilka i kontrolować temperaturę np. każdego pomieszczenia oddzielnie , terrarium, akwarium  itp.

W samym skrypcie można oczywiście pozmieniać na własne opisy "Ogrzewanie On, Off" , oraz po od komentowaniu wierszy, które odpowiadają za powiadomienia można je aktywować ( przydatne przy testach działania) poniżej foto

  

Aktualnie testuję wtyczkę do Domoticza, która pozwala na dodanie kilku czujników do jednego termostatu i wyliczanie z nich średniej temperatury, oraz uwzględnia temperaturę zewnętrzną i na tej podstawie uczy się charakterystyki cieplnej mieszkania czy domu ale jestem z tym tematem w powijakach więc go nie opublikuję .

 

OdpowiedzCytuj
Dodane : 02/12/2018 7:38 pm
adrian polubień
Krzysztofch
(@krzysztofch)
Brygadzista Zasłużony dla Forum, Donator 2019

O ten motyw mi chodzi jak go ustawic? Tylko ja uzywam wer beta a ty stable. I u mnie jej w konfiguracja, ustawieniach, motyw takiego nie ma. Czy dobrze zrozumialem , to tam sie ustawia? 

OdpowiedzCytuj
Dodane : 03/12/2018 1:38 am
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019

@krzysztofch wszystko masz przecież tu  https://www.smartnydom.pl/forum/domoticz/motyw-aurora-nieszablonowy-wyglad-domoticza/

OdpowiedzCytuj
Dodane : 03/12/2018 7:30 am
Krzysztofch i adrian polubień
Przemasd
(@przemasd)
Nowy

Witam wielkie dzieki za udostępnienie tego termostatu.

Od jakiegoś czasu używam domoticz między innymi do sterowania pieca gazowego. Wcześniej używałem wtyczki Smart Virtual Thermostat ale nie sprawdziła się umnie. Pieca gazowy jest drugim źródłem ogrzewania i zazwyczaj tylko podtrzymuje temperaturę. Więc ta wtyczka można powiedzieć że glupiala.

Aktualnie używam tego termostatu z histeza i sprawdza się bardzo dobrze.

Proszę kolegi o podpowiedź czy można to jakoś zmodyfikować aby usrednic temp z 2 lub 3 czujników temperatury. Myślałem otym aby wykorzystać termostat z Smart V.. Ther... Ale tamta wtyczka pracuje tylko jak jest sieć. Jeśli sieci nie działa to nie działa też termostat który usrednia tem. 

Z góry dziękuję 

Pozdrawiam Przemek 

OdpowiedzCytuj
Dodane : 22/12/2018 11:01 pm
rad3k
(@rad3k)
Nowy

Witam

Mam drobne pytanie. Ponieważ mam czujnik temperatury i wilgotności muszę przerobić skrypt aby pobierał mi temperaturę. Może ktoś mi podpowie co zmień w kodzie w/w skryptu.

OdpowiedzCytuj
Dodane : 21/02/2019 3:03 pm
wojtek_gtx
(@wojtek_gtx)
Brygadzista Donator 2019

A czy jest jakiś sprawdzony skrypt/termostat  przeznaczony pod podłogówkę, mam czujnik temperatury na powrocie wody z obiegu do pieca no i pompka elektryczna na niej mam założonego sonofa basic-a. W zeszłym roku miałem tak że pompa obiegowa od podłogówki załączała się w danych godzinach dnia i mieliła, pomyślałem że można by to jakoś zautomatyzować na takim prostszym termostacie ??

OdpowiedzCytuj
Dodane : 23/09/2019 5:29 pm
piotras78
(@piotras78)
Początkujący

Witam wszystkich na forum.

Zrobiłem sobie termostat jak w opisie. Steruje grzejnikami głowicami systemu Eq3 MAX.

Jako czujnik temp. podałem wartości odczytywane z głowicy, termostat - nastawy na głowicy i zrobiłem przełącznik wirtualny wskazujący stan ogrzewania. Niestety nic mi nie działa - nawet jak stworze osobny termostat (nie ten z głowic) - przełącznik nie zmienia stanu. W czym może tkwić problem ?. Pracuję na najnowszej wersji beta domoticza.

OdpowiedzCytuj
Dodane : 15/10/2019 10:09 am
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019

@piotras78 problem jest w typie urządzenia jakim jest czujnik , nie wiem co przekazuje wartości odczytane z głowicy, ale jeżeli to jest jakiś przełącznik typu tekst to nie zadziała na bank . Trzeba by utworzyć wirtualny czujnik temperatury i aktualizować go przez JSON co jakiś interwał czasowy , ale to już zupełnie inny skrypt się z tego robi 

OdpowiedzCytuj
Dodane : 15/10/2019 2:44 pm
piotras78
(@piotras78)
Początkujący

@isom

Nie jest to przełącznik typu tekst. Znajduje się normalnie w grupie przełączników temperatura - na liście widnieje jako podtyp LaCrosse TX3 czyli dokładnie to samo co tworząc wirtualny. Próbowałem jeszcze z czujnikiem wbudowanym w Broadlinka RM2 i też nie działa. Myślałem że może jest jakiś problem w nazwie - czy zamiast wpisywać ją tekstowo można jakoś podać idx urządzenia ?

Tak na marginesie to dobrze byłoby odczytywać tą temperature z głowic np z-wave (one sobie otwierają % zawory pod odczytane dane). Jak damy czujnik zewnętrzny to zawór będzie chodził wg głowicy a uruchomienie pieca wg zmierzonej temp z innego czujnika

OdpowiedzCytuj
Dodane : 15/10/2019 3:06 pm
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019

Sprawdzałeś czy działa u ciebie ten skrypt na dowolnym wirtualnym termometrze ? Utwórz termometr zaktualizuj go dowolną wartością    /json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP zamiast IDX poprawna wartość i zamiast TEMP np 35

OdpowiedzCytuj
Dodane : 15/10/2019 3:25 pm
piotras78
(@piotras78)
Początkujący

@isom

Zwraca mi taki komunikat

{
   "status" : "ERR"
}
OdpowiedzCytuj
Dodane : 15/10/2019 9:37 pm
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019

@piotras78 a możesz napisać co zrobiłeś, że json zwraca błąd ? Chciałem żebyś sprawdził skrypt na fikcyjnym czujniku , który sam zaktualizujesz . Tworzysz czujnik temp , sprawdzasz jego IDX i podstawiasz do 

http://192.168.x.xxx:8080/json.htm?type=command&param=udevice&idx= 25&nvalue=0&svalue=35

wklejasz to do przeglądarki zmieniając dane na swoje

gdzie adres IP to adres domoticza razem z prawidłowym portem i dalej prawidłowy IDX - u mnie 25 i na końcu wartość temperatury u mnie 35 stopni 

OdpowiedzCytuj
Dodane : 15/10/2019 10:09 pm
wojtek_gtx polubień
piotras78
(@piotras78)
Początkujący

@isom

Dokładnie tak właśnie zrobiłem - tylko zamiast idx podałem ID - mój błąd. Teraz zadziałało - temp. się zmieniła ale wł. grzania nadal nie reaguje. Zrobiłem tez wirtualny termostat i tez bez zmian

OdpowiedzCytuj
Dodane : 16/10/2019 9:36 am
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019

@piotras78 w takim razie napisz co dostajesz w logach domoticza , albo najlepiej wklej fotkę, sprawdzałem i ten skrypt działa bez zastrzeżeń na sztucznym czujniku temp 

OdpowiedzCytuj
Dodane : 16/10/2019 11:10 am
piotras78
(@piotras78)
Początkujący

@isom

w logach nie dostaje nic

 

 
 
Może coś nie tak jest z moim Domoticzem ? - wieczorem wgram obraz z forum i sprawdzę na nim
OdpowiedzCytuj
Dodane : 16/10/2019 11:29 am
Przemasd
(@przemasd)
Nowy

Może to banalne ale warto sprawdzić. Czy nie powtarzają ci się nazdy urządzeń. 

Np.czy nie masz czujnika o tej samej nazwie co przekaźnik bądź termostat o tej samej nazwie. Porostu idzie to po nazwach a nie po idx. 

OdpowiedzCytuj
Dodane : 16/10/2019 11:41 am
isom
 isom
(@isom)
Dyrektor Moderator Zasłużony dla Forum, Donator 2019

Zanim zaczniesz zmieniać domoticza sprawdź czy masz aktywne skrypty LUA w Ustawieniach - Inne, bo dziwne powinny w logach być chociaż błędy jak skrypt jest zapisany i włączony

OdpowiedzCytuj
Dodane : 16/10/2019 11:42 am
piotras78
(@piotras78)
Początkujący

@isom

Skrypty mam włączone, nazwy są różne. Próbowałem już bez polskich liter i bez spacji ale bez zmian.

 

EDIT:

 

Znalazłem rozwiązanie - po wejściu w skrypt z prawej strony jest pozycja Trigger. Miałem wybraną pozycje "User variable". Po zmianie na "All" zaczęło wszystko działać. Dzięki za wskazówki

OdpowiedzCytuj
Dodane : 16/10/2019 11:59 am
Udostępnij:



Udostępnij
  • 1
    Share

Proszę Zaloguj Się lub Zarejestruj