МОДУЛЬ ТЕРМОСТАТ
Модератор: immortal
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: МОДУЛЬ ТЕРМОСТАТ
Фух, спасибо olehs ещё раз.
Вроде, добил ПИД, я извиняюсь, с ШИМом. Добился стабильности +-0,1 градуса (ну, иногда 0,2)
Чуть доработанный класс прилагаю.
Запуск из Крона каждые 3 минуты с помощью кода
sg('pid1.InputVal',gg('temp_00.value')); //передаем в инстанс значение температуры
Upd. Поправил код чуть-чуть во вложении (ограничил немного И-составляющую)
Вроде, добил ПИД, я извиняюсь, с ШИМом. Добился стабильности +-0,1 градуса (ну, иногда 0,2)
Чуть доработанный класс прилагаю.
Запуск из Крона каждые 3 минуты с помощью кода
sg('pid1.InputVal',gg('temp_00.value')); //передаем в инстанс значение температуры
Upd. Поправил код чуть-чуть во вложении (ограничил немного И-составляющую)
- Вложения
-
- PIDController (2).txt
- (7.48 КБ) 710 скачиваний
Последний раз редактировалось xor Пн янв 08, 2018 3:54 am, всего редактировалось 1 раз.
- Рейтинг: 1.16%
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 230
- Зарегистрирован: Чт фев 12, 2015 2:34 pm
- Благодарил (а): 36 раз
- Поблагодарили: 6 раз
Re: МОДУЛЬ ТЕРМОСТАТ
А данный термостат можно использовать в качестве термостата холодильника?
Но PID регулирование тут не прокатит так-как после постоянных частых остановок компрессора компрессор гарантированно вылетит.
Пытался делать через простые устройства
но чего то не пошло .. Почему то, нельзя выбрать в качестве исполнительного устройства, реле, которое стоит в группе.
Например есть броадлинковский удлинитель у него каждый вход с отдельным управлением. Так вот к одному выходу подключил холодильник, задал температуры, а выбрать реле управление не получается.
выбирает реле группы но все равно этой группой не управляет.
Второй момент, у реле должен быть тайм аут после выключения мин 10 мин.
должно быть какой то таймер
но почему то, если в других сценариях есть команда setTimeOut
предыдущий таймер обнуляется приходится вручную перезапускать
Еще момент связанный с таймером
Таймер более 20 мин не устанваливается.
пока делаю автономное реле с передачей данных на MD, мешают праздники.
На данный момерт использую два скрипта с такой задержкой на вкл. и выкл
которые перезапускают друг друга
Но 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);
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
php 7, AMS,broadlink rm2,rm3 mini.
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: МОДУЛЬ ТЕРМОСТАТ
В холодильниках ставят простое термореле, вроде. Это работает так, как сейчас в простых устройствах - просто по уровню.
А зачем холодильником управлять из МЖД? Там нужно оперативно рулить температурой?
По поводу таймеров в 20 минут, не сталкивался. У вас названия таймеров разные? А то при запуске одноименного таймера старый сбрасывается.
Для уникальности имени таймера можно использовать конструкцию:
"имя таймера".time()
Если использовать вместо SetTimeOut
AddScheduledJob("title","commands",$datetime, $expire=60);
там просто абсолютное время запуска надо использовать.
А зачем холодильником управлять из МЖД? Там нужно оперативно рулить температурой?
По поводу таймеров в 20 минут, не сталкивался. У вас названия таймеров разные? А то при запуске одноименного таймера старый сбрасывается.
Для уникальности имени таймера можно использовать конструкцию:
"имя таймера".time()
Если использовать вместо SetTimeOut
AddScheduledJob("title","commands",$datetime, $expire=60);
там просто абсолютное время запуска надо использовать.
win10 connect https://connect.smartliving.ru/profile/303
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: МОДУЛЬ ТЕРМОСТАТ
что тут не так, руками переключаешь +- (не слайдер а плюс минус кнопочки) температуру реакция реле вкл/откл всё гуть, а сам код как бы не работает, температура меняется по 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");
}
Raspberry Pi 3B+
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: МОДУЛЬ ТЕРМОСТАТ
А пробовали так написать: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
- Рейтинг: 1.16%
win10 connect https://connect.smartliving.ru/profile/303
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: МОДУЛЬ ТЕРМОСТАТ
Я взял из примера 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
Raspberry Pi 3B+
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: МОДУЛЬ ТЕРМОСТАТ
Функция getURL($url,0);woow писал(а):Я взял из примера 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
Нолик после урл попробуйте, это говорит о том, что не из кэша брать
Отправлено с моего Redmi 4X через Tapatalk
win10 connect https://connect.smartliving.ru/profile/303
- dioxin
- Сообщения: 175
- Зарегистрирован: Вт фев 14, 2017 4:43 pm
- Откуда: Иваново
- Благодарил (а): 15 раз
- Поблагодарили: 46 раз
Re: МОДУЛЬ ТЕРМОСТАТ
Код: Выделить всё
$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
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
-
- Сообщения: 315
- Зарегистрирован: Вс май 20, 2018 9:27 am
- Благодарил (а): 160 раз
- Поблагодарили: 29 раз
Re: МОДУЛЬ ТЕРМОСТАТ
Поделитесь пожалуйста схемой подключения "NewPIDController"? И куда подсовывать прикрепленный файл? очень нужная штука!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. Поправил код чуть-чуть во вложении (ограничил немного И-составляющую)
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: МОДУЛЬ ТЕРМОСТАТ
Эээ, этот файлик -- для импорта класса -- в объектах внизу после нажатия кнопки инструменты откроется возможность импорта класса из файла тхт. после импорта должен появиться класс. в нем создаете свои пид-регуляторы, привязываете к реле, которым будете пид-управлять. настраиваете цикличную подачу входного сигнала -- я это делал через модуль крон и начинаете играть с коэффициентами
- Вложения
-
- 2019-02-20_01-11-30.png (25.65 КБ) 4765 просмотров
- Рейтинг: 1.16%
win10 connect https://connect.smartliving.ru/profile/303