Страница 5 из 6

Re: МОДУЛЬ ТЕРМОСТАТ

Добавлено: Вс янв 07, 2018 1:54 am
xor
Фух, спасибо olehs ещё раз.
Вроде, добил ПИД, я извиняюсь, с ШИМом.
2018-01-07_01-37-19.png
2018-01-07_01-37-19.png (138.53 КБ) 6808 просмотров
Добился стабильности +-0,1 градуса (ну, иногда 0,2)
Чуть доработанный класс прилагаю.
Запуск из Крона каждые 3 минуты с помощью кода
sg('pid1.InputVal',gg('temp_00.value')); //передаем в инстанс значение температуры

Upd. Поправил код чуть-чуть во вложении (ограничил немного И-составляющую)

Re: МОДУЛЬ ТЕРМОСТАТ

Добавлено: Вс янв 07, 2018 10:34 am
ученик
А данный термостат можно использовать в качестве термостата холодильника?
Но PID регулирование тут не прокатит так-как после постоянных частых остановок компрессора компрессор гарантированно вылетит.
Пытался делать через простые устройства
но чего то не пошло .. Почему то, нельзя выбрать в качестве исполнительного устройства, реле, которое стоит в группе.
Например есть броадлинковский удлинитель у него каждый вход с отдельным управлением. Так вот к одному выходу подключил холодильник, задал температуры, а выбрать реле управление не получается.
выбирает реле группы но все равно этой группой не управляет.
Второй момент, у реле должен быть тайм аут после выключения мин 10 мин.
должно быть какой то таймер
но почему то, если в других сценариях есть команда setTimeOut
предыдущий таймер обнуляется приходится вручную перезапускать
Еще момент связанный с таймером
Таймер более 20 мин не устанваливается.
пока делаю автономное реле с передачей данных на MD, мешают праздники.
На данный момерт использую два скрипта с такой задержкой на вкл. и выкл
которые перезапускают друг друга

Код: Выделить всё

sg('extension.status1',0);
setTimeOut('timer','runScript("timer_on");',1200);
 

Код: Выделить всё

sg('extension.status1',1);
setTimeOut('timer','runScript("timer_off");',900);
 

Re: МОДУЛЬ ТЕРМОСТАТ

Добавлено: Вс янв 07, 2018 3:27 pm
xor
В холодильниках ставят простое термореле, вроде. Это работает так, как сейчас в простых устройствах - просто по уровню.
А зачем холодильником управлять из МЖД? Там нужно оперативно рулить температурой?
По поводу таймеров в 20 минут, не сталкивался. У вас названия таймеров разные? А то при запуске одноименного таймера старый сбрасывается.
Для уникальности имени таймера можно использовать конструкцию:
"имя таймера".time()
Если использовать вместо SetTimeOut
AddScheduledJob("title","commands",$datetime, $expire=60);
там просто абсолютное время запуска надо использовать.

Re: МОДУЛЬ ТЕРМОСТАТ

Добавлено: Пн янв 15, 2018 4:57 pm
woow
что тут не так, руками переключаешь +- (не слайдер а плюс минус кнопочки) температуру реакция реле вкл/откл всё гуть, а сам код как бы не работает, температура меняется по MQTT приходит, но переключение не происходит.

Код: Выделить всё

if ($this->getProperty('tempr')>($this->getProperty('set_tempr')+1)){

getURL("http://192.168.1.179/cm?cmnd=Power%20Off");
}    

if ($this->getProperty('tempr')<($this->getProperty('set_tempr')-1)) {

getURL("http://192.168.1.179/cm?cmnd=Power%20On");
} 

Re: МОДУЛЬ ТЕРМОСТАТ

Добавлено: Пн янв 15, 2018 6:17 pm
xor
woow писал(а):что тут не так, руками переключаешь +- (не слайдер а плюс минус кнопочки) температуру реакция реле вкл/откл всё гуть, а сам код как бы не работает, температура меняется по MQTT приходит, но переключение не происходит.

Код: Выделить всё

if ($this->getProperty('tempr')>($this->getProperty('set_tempr')+1)){

getURL("http://192.168.1.179/cm?cmnd=Power%20Off");
}    

if ($this->getProperty('tempr')<($this->getProperty('set_tempr')-1)) {

getURL("http://192.168.1.179/cm?cmnd=Power%20On");
}
А пробовали так написать:
getURL("http://192.168.1.179/cm?cmnd=Power%20Off",0);
?

Отправлено с моего Redmi 4X через Tapatalk

Re: МОДУЛЬ ТЕРМОСТАТ

Добавлено: Пн янв 15, 2018 7:51 pm
woow
xor писал(а):А пробовали так написать:
getURL("http://192.168.1.179/cm?cmnd=Power%20Off",0);
?
Я взял из примера https://github.com/arendst/Sonoff-Tasmota/wiki/Commands :

Web
Commands can be executed via HTTP requests, for example:

Код: Выделить всё

http://sonoff/cm?cmnd=Power%20On
http://sonoff/cm?cmnd=Power%20off  

Re: МОДУЛЬ ТЕРМОСТАТ

Добавлено: Пн янв 15, 2018 8:12 pm
xor
woow писал(а):
xor писал(а):А пробовали так написать:
getURL("http://192.168.1.179/cm?cmnd=Power%20Off",0);
?
Я взял из примера https://github.com/arendst/Sonoff-Tasmota/wiki/Commands :

Web
Commands can be executed via HTTP requests, for example:

Код: Выделить всё

http://sonoff/cm?cmnd=Power%20On
http://sonoff/cm?cmnd=Power%20off   
Функция getURL($url,0);
Нолик после урл попробуйте, это говорит о том, что не из кэша брать


Отправлено с моего Redmi 4X через Tapatalk

Re: МОДУЛЬ ТЕРМОСТАТ

Добавлено: Вт апр 24, 2018 1:41 pm
dioxin
2018-04-24_13-31-37.png
2018-04-24_13-31-37.png (3.18 КБ) 6011 просмотров

Код: Выделить всё

$temp_vannay=gg('ESP82660014aa2b.dsw3');
$temp_zall=gg('ESP82660014aa2b.dsw4');
$temp_min_main_room=gg('ESP82660014aa2b.temp_min_main_room');
$temp_real=gg('ESP82660014aa2b.bmpt');
$status_reley=gg('ESP82660014aa2b.termostat_status');
$manual=gg('ESP82660014aa2b.termostat_manual_status');
$temp_kotla=gg('ESP82660014aa2b.dsw1');
if ($temp_real <= $temp_min_main_room && $status_reley==0 && $manual==0 && $temp_kotla<=70){getURL ("http://192.168.1.30/gpio?st=1&pin=5");sg('ESP82660014aa2b.termostat_status',1);}
if ($temp_real >= $temp_min_main_room+0.3 && $status_reley==1 && $manual==0 or $temp_kotla>=75){getURL ("http://192.168.1.30/gpio?st=0&pin=5");sg('ESP82660014aa2b.termostat_status',0);}
Как то так я сделал.
На случай падения сервера, в прошивке esp8266 есть условие, при >85 градусах котла, отключать его.
В самой прошивке wifi_iot есть модуль термостата, но он там не такой гибкий, поэтому написал для себя сам. Гистерезис = +0.3 градуса, мне так комфортнее :)
Вот тут видосик есть: https://www.youtube.com/watch?v=NBsTBjVXY54&t=1107s

Re: МОДУЛЬ ТЕРМОСТАТ

Добавлено: Вт фев 19, 2019 11:05 pm
Yashalta
xor писал(а):
Вс янв 07, 2018 1:54 am
Фух, спасибо olehs ещё раз.
Вроде, добил ПИД, я извиняюсь, с ШИМом.
2018-01-07_01-37-19.png
Добился стабильности +-0,1 градуса (ну, иногда 0,2)
Чуть доработанный класс прилагаю.
Запуск из Крона каждые 3 минуты с помощью кода
sg('pid1.InputVal',gg('temp_00.value')); //передаем в инстанс значение температуры

Upd. Поправил код чуть-чуть во вложении (ограничил немного И-составляющую)
Поделитесь пожалуйста схемой подключения "NewPIDController"? И куда подсовывать прикрепленный файл? очень нужная штука!

Re: МОДУЛЬ ТЕРМОСТАТ

Добавлено: Ср фев 20, 2019 1:16 am
xor
Yashalta писал(а):
Вт фев 19, 2019 11:05 pm
Поделитесь пожалуйста схемой подключения "NewPIDController"? И куда подсовывать прикрепленный файл? очень нужная штука!
Эээ, этот файлик -- для импорта класса -- в объектах внизу после нажатия кнопки инструменты откроется возможность импорта класса из файла тхт. после импорта должен появиться класс. в нем создаете свои пид-регуляторы, привязываете к реле, которым будете пид-управлять. настраиваете цикличную подачу входного сигнала -- я это делал через модуль крон и начинаете играть с коэффициентами
Вложение 2019-02-20_01-11-30.png больше недоступно