Я спрашивал про код скетча Blynk, но впрочем это не так важно. Главное, что у вас все получилось и работает.
Blynk хорошая, гибкая платформа для создания отдельных, точечных решений. Но она не предназначена для создания сложных комплексных решений, в которых у вас может быть не один десяток контроллеров, которые должны обмениваться информацией между собой.
Ещё раз, читать все читаю, а записать - срабатывает только установки температуры в ноль, отключается отопление, все остальные значения не воспринимаются, как и не воспринимается установка темп. горячей воды. Делаю всё, как в примере библиотеки. Прошу помощи, у кого есть опыт с этим котлом.
Это веб (пока), Проблема - я не могу установить температуру отопления (стр. 249), на все значения, кроме нуля, никакой реакции, а при установке ноль - отключается отопление (эта часть меня устраивает)
Это веб (пока), Проблема - я не могу установить температуру отопления (стр. 249), на все значения, кроме нуля, никакой реакции, а при установке ноль - отключается отопление (эта часть меня устраивает)
Это веб (пока), Проблема - я не могу установить температуру отопления (стр. 249), на все значения, кроме нуля, никакой реакции, а при установке ноль - отключается отопление (эта часть меня устраивает)
Для начала добавьте вывод в Serial значения Set_Temp_obr, которое вы передаете в ot.setBoilerTemperature(Set_Temp_obr).
Если установка значения не происходит, проверьте, что котел выдает в Max CH water setpoint (ID=57), там должно быть значение больше, чем вы устанавливаете.
Также возможно, что котел не принимает установку CH setpoint, т.к. вы не задали ему MemberID своего устройства (ID=2).
Кроме всего прочего, при использование синхронного режима запросов помимо необходимости обработки каждого ответа вы имеете большие задержки в работе вашего кода, т.к. каждый запрос-ответ занимает у вас около 300 мсек.
Предпочтительнее использовать асинхронный режим запросов, при котором вы можете сделать все проверки в одной процедуре обработки ответа и исключаете ненужные задержки в работе кода.
Я понимаю, что прошивка, в этом и вопрос
Прошивка, выводящая лог - не моя
Прошивка, выводящая лог - не моя
А вот записать - при установке температуры бойлера в НОЛЬ ( ot.setBoilerTemperature(0) ), нагрев отключается,
О чём тогда лог, если этого в нём не усматривается...
так и есть
да на МQTT у OldNavi много интересного но разсобрать я не мог
поэтому для своих задач использую blynk
делал для включения котла
1. в режиме автоматические
2. в режиме Термостат
Настройка
для контроля тем. и за ( утечки и угарный газ ) и т.д....
knt58dualtv, интересно, как вы прикрутили OpenTherm к Blynk, можете выложить код скетча?
knt58dualtv, интересно, как вы прикрутили OpenTherm к Blynk, можете выложить код скетча?
НИ ЧЕГО НОВОГО у скетчи
стандартные
1.пид
https://github.com/OldNavi/OpenThermController/blob/master/main.ino/OpenThermTask.ino
2.кривая
тут https://github.com/OldNavi/OpenThermController/tree/master/main.ino
3.считать и показать параметры своего котла
ваша ссылка Скачать можно по ссылке https://yadi.sk/d/tPupf8trkyye2w
и тут https://github.com/OldNavi/OpenThermController/blob/master/main.ino/OpenThermTask.ino
getBoilerTemp(),setDHWTemp(float val) .....
все остальные ваши фантазии
Я спрашивал про код скетча Blynk, но впрочем это не так важно. Главное, что у вас все получилось и работает.
Blynk хорошая, гибкая платформа для создания отдельных, точечных решений. Но она не предназначена для создания сложных комплексных решений, в которых у вас может быть не один десяток контроллеров, которые должны обмениваться информацией между собой.
У блинка нету скетчи
Там только элементы кнопки .....
из Arduino передаим значением которые нам нужные отрабражать в блинку
Так я и спросил как вы из OpenTherm передаете значения в Blynk и как обратно передаете команды?
Так я и спросил как вы из OpenTherm передаете значения в Blynk и как обратно передаете команды?
через сервер MQTT ели управлять удаленно , можно использовать и другие приложения и настраивать в них любые кнопки графики и т.д
Так я и спросил как вы из OpenTherm передаете значения в Blynk и как обратно передаете команды?
ESP8266
Мудрено, но выглядит красиво.
Мудрено, но выглядит красиво.
очень удобно для новичок и установки на телефон или планшете и т.д.... просто сканировать Q-код и сразу можно управлять на своем смартфоне!
Так я и спросил как вы из OpenTherm передаете значения в Blynk и как обратно передаете команды?
через сервер MQTT ели управлять удаленно , можно использовать и другие приложения и настраивать в них любые кнопки графики и т.д
пока нет времени разсобрать
но скажите сервер MQTT брокер- только платно ?
а свой локальний надо имеет комтьютер или роутер з прошивки openwrt ?
пока нет времени разсобрать
но скажите сервер MQTT брокер- только платно ?
а свой локальний надо имеет комтьютер или роутер з прошивки openwrt ?
https://mosquitto.org/
пока нет времени разсобрать
но скажите сервер MQTT брокер- только платно ?
а свой локальний надо имеет комтьютер или роутер з прошивки openwrt ?
https://mosquitto.org/
спасибо я понял про локальну Eclipse Mosquitto™
какие еще для работы з МQTT fix ?
я думаю что только на 10 виндос -работают !!!
можно сервер mqtt сделать на Raspberry Pi
#499
Так никого и нет, кто может/хочет/знает?
golosun, хотите то чего? Телепатов здесь нет.
Ещё раз, читать все читаю, а записать - срабатывает только установки температуры в ноль, отключается отопление, все остальные значения не воспринимаются, как и не воспринимается установка темп. горячей воды. Делаю всё, как в примере библиотеки. Прошу помощи, у кого есть опыт с этим котлом.
Делаю всё, как в примере библиотеки.
Так вставьте сюда свой код.
у кого есть опыт с этим котлом.
Моя прошивка с этим котлом работает.
А эта "Моя прошивка " отличается от примера к библиотеке, или библиотекой?
А эта "Моя прошивка " отличается от примера к библиотеке, или библиотекой?
Даже смотреть не буду, вставьте код как полагается.
Уважаемый golosun, http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
295
// получение установленной температуры ГВС.
296
float
getDHWSPTemp() {
297
unsigned
long
request56 = ot.buildRequest(OpenThermRequestType::READ, OpenThermMessageID::TdhwSet, 0);
298
unsigned
long
respons56 = ot.sendRequest(request56);
299
uint16_t dataValue56 = respons56 & 0xFFFF;
300
float
result56 = dataValue56 / 256;
301
return
result56;
302
}
Данные DHW setpoint (ID=56) задаются и возвращаются в формате f8.8, а вы почему-то используете только дробную часть...
Похоже косяк, я туда не дошёл, главное установить температуру отопления
Опишите вашу проблему еще раз
Похоже косяк, я туда не дошёл, главное установить температуру отопления
это MQTT или веб интерфейс ?
у меня ни как не получает связать з логальным сервером !
Это веб (пока), Проблема - я не могу установить температуру отопления (стр. 249), на все значения, кроме нуля, никакой реакции, а при установке ноль - отключается отопление (эта часть меня устраивает)
Это веб (пока), Проблема - я не могу установить температуру отопления (стр. 249), на все значения, кроме нуля, никакой реакции, а при установке ноль - отключается отопление (эта часть меня устраивает)
Это веб (пока), Проблема - я не могу установить температуру отопления (стр. 249), на все значения, кроме нуля, никакой реакции, а при установке ноль - отключается отопление (эта часть меня устраивает)
Для начала добавьте вывод в Serial значения Set_Temp_obr, которое вы передаете в ot.setBoilerTemperature(Set_Temp_obr).
Если установка значения не происходит, проверьте, что котел выдает в Max CH water setpoint (ID=57), там должно быть значение больше, чем вы устанавливаете.
Также возможно, что котел не принимает установку CH setpoint, т.к. вы не задали ему MemberID своего устройства (ID=2).
Я делал и явно - ot.setBoilerTemperature(77) (стр. 250), тот-же результат.
ID=57: Maximum allowable CH water setpoint (°C) - Data: 80.0 - и здесь всё нормально. (я кидал лог из OpenThermTestIDs http://arduino.ru/forum/programmirovanie/termostat-opentherm-na-esp8266?...)
А как задать ему MasterID ? (а читать значение может без MasterID)
А как задать ему MasterID ? (а читать значение может без MasterID)
request = ot.buildRequest(OpenThermRequestType::READ, OpenThermMessageID::SConfigSMemberIDcode, 0xFFFF);
response = ot.sendRequest(request);
uint16_t MemberIDcode = response & 0xFF;
request = ot.buildRequest(OpenThermRequestType::WRITE, OpenThermMessageID::MConfigMMemberIDcode, MemberIDcode);
response = ot.sendRequest(request);
Спасибо, проверить смогу только завтра
А как задать ему MasterID ? (а читать значение может без MasterID)
request = ot.buildRequest(OpenThermRequestType::READ, OpenThermMessageID::SConfigSMemberIDcode, 0xFFFF);
response = ot.sendRequest(request);
uint16_t MemberIDcode = response & 0xFF;
request = ot.buildRequest(OpenThermRequestType::WRITE, OpenThermMessageID::MConfigMMemberIDcode, MemberIDcode);
response = ot.sendRequest(request);
а если так ?
а если так ?
Я думаю можно и так
Я правильную использую библиотеку https://github.com/ihormelnyk/opentherm_library ?
Я правильную использую библиотеку https://github.com/ihormelnyk/opentherm_library ?
Ну да, а других и нету
А ведь 0 записывается (вернее выключает обогрев) и без MemberID
Для того чтобы найти ошибку в работе вашего кода, для начала надо сделать полноценную обработку ошибок.
Например, после запроса setBoilerStatus вы проверяете статус ответа, а после других запросов почему-то нет.
Строка 249:
if (!ot.setBoilerTemperature(Set_Temp_obr)) {
Serial.println("Set Boiler Temp Error");
Serial.println("Response status: "+String(ot.getLastResponseStatus()));
}
Строка 253:
response = sendRequest(ot.buildGetBoilerTemperatureRequest();
if (ot.isValidResponse(response))
Temp_obr = ot.getTemperature(response);
else {
Serial.println("Response status: "+String(ot.getLastResponseStatus()));
}
Ну как-то так...
Спасибо
Кроме всего прочего, при использование синхронного режима запросов помимо необходимости обработки каждого ответа вы имеете большие задержки в работе вашего кода, т.к. каждый запрос-ответ занимает у вас около 300 мсек.
Предпочтительнее использовать асинхронный режим запросов, при котором вы можете сделать все проверки в одной процедуре обработки ответа и исключаете ненужные задержки в работе кода.
Opentherm есть комманди которіе удалить рабочие ошибки ?
А что об этом пишут в протоколе?
Результат работы
Не совсем понял, что означает "19712", попробуйте добавить следующую строку, чтобы увидеть код ответа:
Serial.printf("Response: 0x%08X\r\n", response);