Контроллер теплового насоса
Открытый проект "Народный контроллер" для тепловых насосов.
Данное програмноое обеспечение предназначено для управления
различными типами тепловых насосов для отопления и ГВС.
В данном репозитории идет текущая работа, возможны ошибки и нестабильная работа.
Оттестированный релиз здесь: https://github.com/vad7/ControlHeatPump
Подробное обсуждение проекта на форуме:
https://www.forumhouse.ru/threads/352693/
https://www.forumhouse.ru/threads/437182/
https://www.forumhouse.ru/threads/492563/
// ВНИМАНИЕ
Январь 2023 года. Слил две ветки в одну. Из ветки master утеряны все изменения начиная с версии 1.099 и выше. Мне было лень разбираться что
там полезного для меня, а версия 1.098 у меня отработала на моем ТН более двух лет, безпроблемно. Для различия версий - версия ПО была поднята
до версии 2.01 (т.е версия после слияния веток 2 и выше).
На главной страницы сделан прогноз погоды.
Переделана отсылка данных на "Народный мониторинг", с декабря 2022 года отсылка данных на него через mqtt стала платной.
Доделаны 3 страницы описания настроек.
C марта 2021 проект разделился. К сожалению проект покинул vad711, он перешел на платное обновление прошивок и своих доработок.
По этому в ближайшее время я немного перестрою проект в следующих направлениях:
- По умолчанию будет веб морда для моего ТН (в первую очередь для омрона), отличные от моих страницы переедут в папку "варианты".
- Выкину из кода части которые точно мне не нужны типа ватроутера, возможно СК.
- Немного перестрою веб морду
Т. к. в настоящее время функционал меня полностью устраивает, то в основном буду заниматься исправлением ошибок.
Последняя общая версия это ветка master Commits on Dec 16, 2020.
При построении своей прошивки я взял версию ветки мастер Commits on 18.07.2021, это последняя версия которая использует совместные наработки версия проекта 1.088. Эту версия я перенес в отдельную ветку которую в дальнейшем буду поддерживать. Я планирую портировать все полезные для меня наработки с версии 1.088 до 1.11. После этого объединю ветки и продолжу работу. Такой план.
Готовая плата pav2000 версии 2.1
Выносной экран Nextion:
Изменения по версиям:
Версия 1.018-1.096
- Исправление ошибок, оптимизация, доработка библиотек
- Управления теплым полом (RPUMPFL), по выбранным датчикам температуры
- Опции по догреву бойлера
- Отправка SMS на smsc.ua, gate.smsclub.mobi
- Для дисплея Nextion - cтраница изменения профилей, отображение реле бойлера, работа от генератора
- Аналоговое или ШИМ управление частотником (используется класс VACON)
- Добавлен Serial4
- Загрузка веба на SD
- Инвертор Омрон - обновление программирования и описания
- Отладка через Native USB порт (#define DEBUG_NATIVE_USB)
- Ежесуточное включение реле по расписанию (в режиме отопления)
- Поддержка электросчетчика PZEM-004T v3 (#define USE_PZEM004T)
- Добавлен режим работы ТН от резервного источника питания (генератора)
- Управление краном солнечного коллектора
- Улучшение режима супербойлера
- Поддержка NTC датчиков температуры (например: NTC 10K, B3435, резистор к VCC 15к)
- Вывод расширенной инфы по датчикам DS18B20
- Усиление на АЦП канале (x1,x2,x4) - #define ADC_GAIN
- Настройка графиков вынесена в конфиг, возможность изменить графики по датчикам во время работы
- Сохранение/восстановление настроек в bin всех профилей
- Работа от генератора: ограничение частоты, авто-определение источника
- Настройка погодозависимости целевой температуры
- Автопереключение расписаний по месяцам, погодозависимость
- Страницы помощи в веб
- Информирование по HTTP других контроллеров дома о работе от генератора
- Автозапуск генератора, гистерезис при работе от генератора
- Ваттроутер (PWM, реле, HTTP реле)
Версия 0.967-1.017
- Оптимизирован и уточнен алгоритм расчета температуры фреона по давлению
- Фреон теперь задается через config.h (#define FREON)
- Изменен формат TRANsADC[ANUMBER] в config.h, теперь целое число в тысячных
- Отображение активного расписания
- Добавлено инвертирование реверсивного клапана (#define INVERT_TRV)
- Добавлен график переохлаждения
- Контроль потока с учетом супербойлера
- Настройка дельты включения СК
- Документация на частотник по кнопке "?"
- Переход на библиотеку SAM 1.6.12
- Шаги закрытия ЭРВ задаются через #define EEV_CLOSE_STEP
- Кнопка "подготовка к обновлению" - установка ЭРВ, сохранение буферов и т.д.
- Для конфигурации без датчика высокого давления (PCON) добавление графиков "Конденсации" и "Нагнетание-конденсация"
- Возврат масла для частотников Vacon
- Отключение принудительной циркуляции ГВС при нагреве ГВС в режиме супербойлера
- Очистка графиков при старте ТН (#define CLEAR_CHART_HP_ON)
- Алгоритм прямого управления ЭРВ без ПИДа, контроль перегрева на входе компрессора
- Защита от "заливания компресора"
- Добавлена опция NO_MIN_EEV_CONTROL - При работе ПИД ЭРВ не контролировать достижение минимального открытия
- График Нагнетание-Конденсация
- Режим нагрева бойлера вместе с отоплением
- Добавлено ограничение роста частоты ПИД регулятора
- Графики поминутной работы на SD карте
- Статистика по дням на SD карте, график с экспортом
- Алгоритм 2 для ПИД регулятора (#define PID_FORMULA2)
- Попытка восстановления соединений по модбасу перед пуском
- Контроль останова частотника Vacon, уменьшение лога диагностики W5500
- Проверка выключения инвертора ОМРОН через дискретный выход
- Добавлена проверка исправности ЭРВ
- Оптимизация задач RTOS
- Подстройка температуры без смены профиля в расписаниях
- Корректировка потребляемой мощности по включению реле
- Исправление ошибок, оптимизация, доработка библиотек
Версия 0.966
- Обновление текстовых файлов
- Добавлено описание ТН, исправлены ошибки для компиляции 1 конфига
- Работа над статистикой с записью ее на SD карту
- Фикс бага инициализации nextion если он находится в спящем режиме
- Мелкие уточнения в веб морде
- Обновление 2 конфига и уточнение типа ошибки при пуске компрессора
- Добавлен еще один алгоритм разморозки без датчика разморозки по температурам. Автор Pskovsat
Версия 0.965
- Реализована возможность загрузки и работы с веб мордой на чипе spi flash.В опциях есть флаг загрузки из него
- Оптимизация работы АЦП
Версия 0.964
- Исправления ошибок в алгоритме работы ТН
- Оптимизация работы АЦП
- Оптимизация функции прерывания АЦП
Версия 0.963
- Добавление spi диска
- Частично сделана загрузка файлов через веб в spi диск (еще нужно причесать код и контроль ошибок)
- Опция переключения места хранилища для веб-сервера
- Доделка загрузки веб морды через веб в spi диск Есть проблемы при загрузке множества файлов (потеря пакетов)
- Обновление дисплея Nextion, включая его прошивку
- bugsfixs, добавлен редактор Nextion
- Оптимизация длин неоторых запросов
- Оптимизация стека RTOS
Версия 0.962
- Изменены: структура сохранения, библиотека RTC, нумерация профилей в вебе, и др.
- Nextion code changed
- Nextion class rework
- Исправлена ошибка с выводом сообщений при ошибках в классе HeatPump
- Расписание теперь всегда компилится
- Начало работы над загрузкой веб морды в spi Сделано декодирование имени и размера загружаемого файла
- Сделан для post запросов разбор заголовка определение имени и длины файла и определение размеров первого (принятого) куска файла
- Nextion update
Версия 0.961
- Перенос SPI_RATE -> config.h
- Замена библиотеки SdFat, функция тестирование скорости SD карты (/TEST_SPEED:<имя файла>)
- Оптимизации библиотеки SdFat
- Установка скорости SD в МГц - #define SD_CLOCK 24
Версия 0.960
- Поддержка ИБП на контроллер
- На страницу "Файлы" добавлены элементы для выбора файлов для копирования в spi eeprom
- Исправлена ошибка с upload files
- Имена аналоговых датчиков перенесены в config
- Исправление ошибки вывода на график частотных датчиков
- Добавлена опция - СК регенерирует ГК в простое ТН
- Оптимизация закладки тест
- Оптимизация СК, конфиг vad7, дефайн DEBUG_MODWORK
- Настройки СК
Версия 0.959
- Оптимизация web, выложена схема платы Добрыни
- Замена в SDK DUE - добавлен класс UART
- Исправлена ошибка с RPUMPBH
- Исправлена ошибка с radio_sensor
- Добавлена схема K-Line адаптера, небольшие фиксы
- Исправлена ошибка с edit strings
Версия 0.958
- Солнечный коллектор на плане (картинка)
- Обновление первого конфига до текущей версии (cтарт-стоп компрессор с ТРВ переливная схема)
- Включенное реле вручную на странице тестирование можно выключить только на ней, в не зависимости от текущей или будующей работы ТН.
- Настройка через Config.h какие датчики температуры выводить на страницу "Схема", в const uint8_t SENSORTEMP[TNUMBER]={...} нужно поставить 2, у нужного датчика.
- Изменение целевых температур бойлера и отопления на дельту по часам, для эффективного использования ночного тарифа
- Условие расчета КОП (работа компрессора) определяется #define COP_ALL_CALC
- На github выложена информация по дисплею Nextion
- На github выложена информация по WiFi устройству (датчик температуры)
- Проверка состояния частотника только перед его непосредственным стартом.
- Добавлена опция "Однократный поиск "0" ЭРВ" Настройки ЭРВ из "Опций" перенесены в "Настройки ЭРВ"
- Оптимизация парсера для вывода графика
- "Причесывание" надписей на веб морде
- Фикс бага для датчиков Wifi (откат формата uptime к виду 00d 00h 00m) Обновление морды удаленного датчика wifi
- Оптимизация веб (датчики), температура
- Поддержка радиодатчиков ZONT МЛ‑703
Версия 0.957
- Опция "теплый пол" в профилях - управляет насосом RPUMPFL
- Опция - расписание ГВС только для ТЭНа бойлера
- Изменение режима турбо ГВС. Теперь при включении турбо+догрев ГВС греетеся ТН+ТЭН до температуры догрева далее только ТЭН
- Фикс работы насосов (в схеме без трехходового) для режима пауза
- Чтение настроек из файла (в новом формате)
- Фикс алгоритма Сальмоннеллы
- Фикс блокировки семафорора для 485 порта (уменьшена загрузка CPU при работе ТН)
- Фикс сброса сетевой карты
- Добавлена возможность работы с солнечным/воздушным коллектором (#define USE_SUN_COLLECTOR)
Версия 0.956
- Оптимизирована запись в журнал, радиодатчики - начало.
- max/min sensorADC
- Включение RPUMPO при переключение с бойлера на отопление
- Фикс ошибки при выходе из нагрева ГВС при срабатывании защиты
- Cохранение в файл в новом формате
- Опция логировать работу частотника
- Фикс при переходе нагрева бойлера на тэн
- Опциональное вычисление для TIN среднего и/или минимального значения среди других датчиков
- Фикс расчета перегрева при охлаждении, фикс работы бойлера (переключение на дом)
Версия 0.955
- Оптимизация работы oneWire
- Ускоренный поиск датчиков температуры
- Неограниченное кол-во DS18x20, исправление ошибки в DUE UART
Версия 0.954
- Оптимизация графиков
- Ethernet lib fix (зацикливание при передаче MQTT)
- Расчет графиков powerCO powerGEO на лету, фикс вывода графиков в файл
- Синхронизация времени по HTTP GET с esp8266 веб-сервера (отдельное устройство vad711),
- Изменен блок статусов, опция не проверять CRC у DS18B20, изменены единицы работы насосов в паузе на сек, изменены настройки датчиков протока, багфиксы.
- Индикация тэна и насоса бойлера на странице схема, багфиксы
- Возможность использовать 4 шины датчиков температуры, 3 из них могут быть двухпроводные.
- В файл настроек в текстовом виде, добавлен вывод новых (пропущеных) параметров
- Доработка по шинам температуры на DS2482, добавлен режим чтения аналоговых датчиков через модбас
- Фикс разморозки воздушника + описание в части датчиков температуры
- Сохранение без потери настроек при изменении структуры
- Поддержка датчиков ds18s20
Версия 0.953
- Веб морда добаление дополнительных параметров на схему ТН
- Возможность скрытия логирования ошибок чтения счетчика SDM120
- Оптимизация библиотеки Модбас в части работы с портом
- Дополнительные флаги для датчиков температуры (логирование и игнорирование ошибок)
- Оптимизация чтения датчиков и modbus, вывод частоты сети 220 в веб.
- Вывод мощности CO, доработка Vacon
- Доработка корректировки перегрева, исправление ошибок модбас, ваком
- Оптимизация парсера - удаление из парсеров параметров которые только на чтение
- Фикс восстановления настроек инвертора Омрон (флаги)
- Небольшие переделки страницы ЭРВ
- Добавлен график 20, 30 сек, небольшая оптимизация парсера
- Фикс для охлаждения датчик TCONOUT и фикс расчета мощностей и СОРов для охлаждения
- Доработка корректировки перегрева
- Оптимизации работы с ftoa itoa, удаление функции int2str
- В config настройка задержки после переключения насосов
- Оптимизация чтения счетчика SDM
- Оптимизация функций DecodeTimeDate и StatDate, фикс ошибок парсера реле
- Фикс ошибки старта насоса при догреве(только)
- Расчет мощностей и СОР всегда (раньше было только при работе)
- Vacon расчет номинальной мощности
- Доработка страницы ЭРВ, фикс ПИД эрв
- фикс передачи на MQTT сервер
- Мощность частотника в Вт
- Vacon - авто-очистка сбоя, очередь из 1 команды, оптимизация, раздельный останов насосов по дефайну и др.
- Возможность выключить ТН из отложенного запуска/рестарт по ошибке
- Для Омрона отдельная страница настроек (гц) - надо копировать
- Перенос флага включения ТН в счетчики, теперь профиль реже пишутся
- Дельта коррекции перегрева считается от стартового перегрева
Версия 0.952
- Добавлено в управление ЭРВ возможность корректировки перегерва в зависмости от разницы температур испарителя и конденсатора
- Оптимизация сохранения ЭРВ
- Фикс: DHСP, датчики температуры. Оптимизация веба.
- Опция - один датчик на 2-ой шине 1-Wire, для уменьшения влияния помех (измененен формат сохранения: 123)
- DNS по TCP (выбор автоматически), доработка сетевой либы, оптимизация журнала и др.
- Начало переделки парсера запросов с целью его оптимизации и увеличения скорости.
- В класс ЭРВ добавлы настройки (из дефайнов) и оптимизировано сохранение (единая структура настроек)
- В класс FC добавлы настройки (из дефайнов) и оптимизировано сохранение (единая структура настроек) (измененен формат сохранения: 125)
- В опции ТН добавлены настройки времен, парсер опций переделан
Версия 0.951
- Доработка веб, перенос настроек в config, исправление багов
- Доработка страницы тестирования
- Добавлен расчет переохлаждение на схеме ТН
Версия 0.950
- Доработка 1-Wire, багфиксы, новая ошибка ERR_ONEWIRE_RW - ошибка во время чтения/записи OneWire
- Фикс библиотеки DUE для доступности портов D53,D69
- Доработка I2C init
- Оптимизация Web-modbus
Версия 0.949
- Оптимизация использования стека в itoa, vsnprintf, ftoa cj,собсвенная функция printf
- Patch Arduino board SAM library for optimized itoa() function
- Добавлен насос нагрева ГВС RPUMPBH (не циркуляции ГВС)
- Фикс отображения включения ТН во время паузы
- Добавлена кнопка сброса статистики задач free RTOS
- Исправлена ошибка перехода в режим Ожидания по расписанию
- Для экономии памяти теперь графики расчета разности температур ПТО рассчитываются в момент запроса
- Добавлен насос теплых полов RPUMPFL (в режиме охлаждения не включается)
- Перевод FLOWPCON в не обязательный параметр
- Автоскрытие аналогового управления инвертером, насоса ТП
- Доработка по инвертору Vacon (режим тест)
Версия 0.948
- Уменьшение потребление стека RTOS
- Фикс ожидания DHCP, оптимизация сетевой либы
Версия 0.947
- При инициализации сетевого чипа добавлена проверка на соединение сетевым кабелем (link)
- Переделан код обслуживания ТЭНа бойлера, теперь он сосредоточен в одном месте
- Оптимизация и переименование кода для переключения между ГВС и отоплением/охлаждением (поддержка управления насосами для переключения)
- Исправлена ошибка с сохранением/восстановлением настроек в бинарный файл
- Доделана и протестирована страница Modbus (можно читать/сохранять регистры)
- Сделан алгоритм обеззараживания (сальмонелла) для ГВС
- Исправлена ошибка в расписании ГВС
Версия 0.946
- Исправлена ошибка отображения графика потока конденсатора
- Исправлена ошибка вывода в текстовый файл настроек (коэффициент для аналогового датчика)
- Исправлена ошибка управленем догревом бойлера - алгоритм перенесен в другое место
- Исправлена ошибка в режиме тест для датчиков потока
- Настройки догрева бойлера перенесены в раздел ГВС из опций (откорректированы имена параметров запросов)
- Сделан вывод специфических ошибок для Vacon 10 и пофиксены некоторые ошибки
- Добавлена возможность проверки потоков на минимальные значения перед включением компрессора (#define FLOW_CONTROL)
- Доработана морда для сканирования после изменения работы шины OneWire, в новой версии увеличилось время сканирования.
- Дмитрий обновил мобильную морду
- Добавлен функционал модификации имен запрашиваемых файлов, теперь в зависимости от конфига показываются на морде разные схемы.
- В работу ТН добавлены внутренние команды WAIT и RESUME для обеспечения функционала расписания, теперь если в расписании дырка (нет профайла) то ТН будет находится в сосоянии "Ожидание"
- ТЕСТ страничка с чтением/записью произвольных ячеек Modbus RTU
Версия 0.945
- R3WAY переведен в необязательный, теперь можно компилировать без него
- При переключениеи с ГВС сделано временное отключение (#define DELAY_BOILER_OFF) части защит, на время остывания ТН.
- Немного переделана функция вывода ошибок, теперь где актуально выводится имя функции в которой произошла ошибка
- В уведомлениях почты убран вывод устройство которых нет в текущей конфигурации (если стоит флаг выводить подробности)
- Исправлен и добавлен вывод настроек ТН в текстовом виде (дабавлены настроки тарифов)
- Проведено переименование констант, переменных и функция инвертора в нейтральные (без упоменния ОМРОН и МХ2)
- Добавлена поддержка трехфазного счетчика SDM630 (vad711) (определить #define USE_SDM630)
- Класс частотный преобразователь был стандартизован (все аппартано зависимые функции спрятаны внутрь класса) для возможности подключения других инверторв короме Omrona
- vad711 добавил поддержку инвертора Vacon 10 по модбасу.
- Исправлена ошибка подсчета общего числа ошибок чтения датчиков температуры
- Переделана блокировка задачи циркуляционного насоса отопления в паузах
- Исправлена ошибка вывода информации при старте ТН
- Переделан механизм работы с датчиками температуры. Теперь разрешено три вида шин OneWire и одновременно может присутвовать три вида шин в контроллере.
- Добавлено расписание работы (пока не до конца)
- Переделан вид расписания бойлера на веб морде
- Добавлена страница на вебморду для вывода информации по задачам операционной системы (главное - минимальный размер стека)
- Часть нагрузки из задачи "бездействия" перенесено в задачу чтения датчиков
- На морде в профилях сделано обновление данных при изменении параметров профиля
- В связи с работой над расписаниями, удален функционал тарифов день/ночь
- Исправена ошибка вывода числа ошибок чтения температурных датчиков.
- Добавлен ввод теплоемкости теплоносителя в контурах где стоят расходомеры (изменилась версия сохранения)
- Переделана размерность коэффициентов пересчета расходомеров, теперь она в имп/литр