Приветствую!
Прошу помочь разобраться в следующей проблеме с котлом:
При уставке в 0 котел периодически включает горелку и практически сразу гасит ее.
Закономерности выявить не удалось, может раз в минуту это делать, может раз в 10 минут.
Может вообще не стоит тратить время, т.к. не факт что модуль правильно работает с данной моделью котла?
Прошивка модуля 1.74, шаблон устройства fw1.7.3.
P.S.
Кроме этой “фичи” есть и другие:
Например, котел не запускает контур отопления при положительной уставке (45), если флаг wbe2-i-opentherm_11/Auto Temp Switch = 0, смена данного флага на 1 запускает контур отопления.
В данный момент отключил котел от модуля и управляю “перемычкой” через реле.
Также пробовал через Ax_OUT имитировать работу сухого контакта - не получилось, котел все равно видит контакт несмотря на встроенный резистор в 100кОм.
У вас висит ошибка связи с котлом.
Не надо самостоятельно менять уставку в ноль. Модуль сам остановит нагрев теплоносителя при достижении уставки комнатной температуры.
Начните с простого.
Переведите в режим работы по теплоносителю. В этом режиме быстрее можно проверить как модуль работает с вашим котлом.
Добрый день, естественно висит ошибка связи, я его отключил чтобы не убить котел частыми включениями/ выключениями. Сейчас добрался до котла, снова соединил котел с модулем.
Выставил следующие настройки:
Добрый день!
В результате общения с техподдержкой в телеграм чате с @NevotonSupportBot удалось должным образом настроить логику для отключения контура отопления. Для отключения контура отопления не нужно менять настройки уставки, нужно изменить режим работы котла на ЛЕТО.
Приветствую!
В целом складывается впечатление что котел работает, если не принимать во внимание что периодически изменяются значения регистров Boiler Flame Status (хотя горелка фактически не менят своего состояния), Boiler CH mode, Boiler CH2, Boiler DHW mode, DHW Transfer, Boiler fault indication и т.п.
Приложу лог чтения топиков /devices/wbe2-i-opentherm_11/#. Во время записи лога котел работал в режиме отопления, также был перекрыт кран подачи ГВС для чистоты эксперимента. highlighted_log.html (97,7 КБ) boiler_log.txt (44,9 КБ)
Heating Return Water Temperature и Water Pressure также чушь выдает.
defineVirtualDevice("wb-rules-persist", {
cells: {
"CH Min Value": { type: "value", value: 30, readonly: true },
"CH Max Value": { type: "value", value: 80, readonly: true },
"CH Gest": { type: "value", value: 5, readonly: true },
"DHW Gest": { type: "value", value: 5, readonly: true },
"Room Temperature Setpoint": { type: "value", value: 20, readonly: true },
"Hot Water Setpoint": { type: "value", value: 0, readonly: true },
"Auto Temp Switch": { type: "value", value: 0, readonly: true, meta: { hidden: true }},
"Season reg": { type: "value", value: 0, readonly: true },
"OT MasterID": { type: "value", value: 0, readonly: true }
}
});
var persistParams = [
"CH Min Value",
"CH Max Value",
"CH Gest",
"DHW Gest",
"Room Temperature Setpoint",
"Hot Water Setpoint",
"Auto Temp Switch",
"Season reg",
"OT MasterID"
];
// Глобальная переменная для отслеживания состояния восстановления
var recoveryMode = true;
// Функция для сохранения параметров в долговременную память
function saveToPersistentStorage(param, newValue) {
if (!recoveryMode) { // Сохраняем только если не в режиме восстановления
var persistDevice = dev["wb-rules-persist"];
if (persistDevice && persistDevice[param] !== newValue) {
persistDevice[param] = newValue;
log("Сохранено в долговременную память: " + param + " = " + newValue);
}
}
}
// Функция для восстановления параметров из долговременной памяти
function restoreFromPersistentStorage(param) {
var persistDevice = dev["wb-rules-persist"];
return persistDevice ? persistDevice[param] : null;
}
// Функция для восстановления значений на устройстве
function restoreValues() {
persistParams.forEach(function (persistParam) {
var restoredValue = restoreFromPersistentStorage(persistParam);
if (restoredValue !== null) {
var device = dev["wbe2-i-opentherm_11"];
if (device && device[persistParam] !== restoredValue) {
log("Восстановлено из долговременной памяти: " + persistParam + " = " + restoredValue);
device[persistParam] = restoredValue;
} else if (device) {
log("Параметр " + persistParam + " уже восстановлен и не будет изменён.");
} else {
log("Ошибка: wbe2-i-opentherm_11 не найден");
}
} else {
log("Ошибка: Не найдено сохранённое значение для " + persistParam);
}
});
}
// Функция для восстановления режима сохранения
function startRecoveryMode() {
log("Режим восстановления активирован. Ожидание 15 секунд...");
// 15 секунд, когда только восстановление значений
setTimeout(function () {
recoveryMode = false; // После 15 секунд выключаем режим восстановления
log("Режим восстановления завершён. Сохранение значений теперь доступно.");
}, 15000); // 15 секунд задержки
}
// Дожидаемся 15 секунд перед выполнением всех операций
setTimeout(function () {
// Восстанавливаем сохраненные значения после перезапуска
restoreValues();
// Активируем режим восстановления сразу после перезапуска
startRecoveryMode();
}, 15000); // Задержка 15 секунд
// Создаем правила для сохранения параметров
persistParams.forEach(function (persistParam) {
defineRule({
whenChanged: "wbe2-i-opentherm_11/" + persistParam,
then: function (newValue) {
// Сохраняем значение только если не в режиме восстановления
saveToPersistentStorage(persistParam, newValue);
}
});