Uniwersalny Termost...
 
Powiadomienia
Wyczyść wszystko

Uniwersalny Termostat z Histereza na bazie Domoticza

79 Wpisów
17 Użytkownicy
11 Reactions
16.4 K Wyświetleń
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

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.

1

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

2

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.

3

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

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

5

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

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

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

 

5
 
Dodane : 02/12/2018 7:38 pm
adrian reacted
(@krzysztofch)
Wpisów: 489
Ekspert Donator 2K20 Zasłużony dla Forum, Donator 2K19
 

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? 

 
Dodane : 03/12/2018 1:38 am
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

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

 
Dodane : 03/12/2018 7:30 am
Krzysztofch and adrian reacted
(@przemasd)
Wpisów: 2
Świeżak
 

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 

 
Dodane : 22/12/2018 11:01 pm
(@rad3k)
Wpisów: 1
Świeżak
 

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.

 
Dodane : 21/02/2019 3:03 pm
wojtek_gtx
(@wojtek_gtx)
Wpisów: 540
Ekspert Patron Strony Donator 2K19, Donator 2K20, Donator 2K21, Donator 2K22, Donator 2K24
 

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

 
Dodane : 23/09/2019 4:29 pm
(@piotras78)
Wpisów: 50
Kontrybutor
 

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.

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

@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 

 
Dodane : 15/10/2019 1:44 pm
(@piotras78)
Wpisów: 50
Kontrybutor
 

@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

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

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

 
Dodane : 15/10/2019 2:25 pm
(@piotras78)
Wpisów: 50
Kontrybutor
 

@isom

Zwraca mi taki komunikat

{
   "status" : "ERR"
}
 
Dodane : 15/10/2019 8:37 pm
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

@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 

 
Dodane : 15/10/2019 9:09 pm
wojtek_gtx reacted
(@piotras78)
Wpisów: 50
Kontrybutor
 

@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

 
Dodane : 16/10/2019 8:36 am
isom
 isom
(@isom)
Wpisów: 5178
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
 

@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 

logi
skrypt
termostat 1
 termostat2
 
Dodane : 16/10/2019 10:10 am
(@piotras78)
Wpisów: 50
Kontrybutor
 

@isom

w logach nie dostaje nic

 

logi
 
skrypt
 
Może coś nie tak jest z moim Domoticzem ? - wieczorem wgram obraz z forum i sprawdzę na nim
 
Dodane : 16/10/2019 10:29 am
(@przemasd)
Wpisów: 2
Świeżak
 

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. 

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

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

 
Dodane : 16/10/2019 10:42 am
(@piotras78)
Wpisów: 50
Kontrybutor
 

@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

 
Dodane : 16/10/2019 10:59 am
(@bartolomeo)
Wpisów: 210
Pomocny Donator 2K22
 

Hej, a ja mam pytanie co do działania tego skryptu w Domoticzu. Poki co to w sumie pierwszy i jedyny jakiego uzywam. W logach wyglada to tak jakby uruchamiał się każdorazowo 2x... Ktoś mi podpowie co i gdzie powinienem sprawdzić, czy to po prostu parametr "Trigger=all" skutkuje takim działaniem, że po zmianie stanu przekaźnika skrypt uruchamia się ponownie i stąd podwojne zapisy w logach? Jeśli tak, to jak to najmądrzej poprawić, żeby nie było zbędnego zapętlania skryptu.

 Screenshot 2020 01 04 12 57 15 463 com.android.chrome
 
Dodane : 04/01/2020 1:14 pm
Strona 1 / 4
Udostępnij: