Giter VIP home page Giter VIP logo

otgateway's People

Contributors

blitzu avatar laxilef avatar mennodegraaf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

otgateway's Issues

'L/min' is not a valid unit for the device class ('volume')

In every start, HA reporting there two warnings:

Firmware compiled few days ago.

Logger: homeassistant.components.sensor
Source: components/sensor/init.py:551
Integration: Jutiklis (documentation, issues)
First occurred: 17:38:04 (1 occurrences)
Last logged: 17:38:04
Entity sensor.opentherm_dhw_flow_rate (<class 'homeassistant.components.mqtt.sensor.MqttSensor'>) is using state class 'measurement' which is impossible considering device class ('volume') it is using; expected None or one of 'total', 'total_increasing'; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+mqtt%22

and

Logger: homeassistant.components.sensor
Source: components/sensor/init.py:714
Integration: Jutiklis (documentation, issues)
First occurred: 17:38:04 (1 occurrences)
Last logged: 17:38:04

Entity sensor.opentherm_dhw_flow_rate (<class 'homeassistant.components.mqtt.sensor.MqttSensor'>) is using native unit of measurement 'L/min' which is not a valid unit for the device class ('volume') it is using; expected one of ['gal', 'mL', 'fl. oz.', 'm³', 'L', 'ft³', 'CCF']; Please update your configuration if your entity is manually configured, otherwise create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+mqtt%22

Opentherm Gateway Heating

Подскажите как установить на термостате Heating целевую температуру 23,0 °C?
На термостате можно установить минимальную температуру 35°C.
Термостат контролирует температуру теплоносителя (heating temperature), а не температуру в доме (indoor)?

(https://github.com/Laxilef/OTGateway/assets/119970190/9fda951b-f219-4945-a931-cf3f69fa9acc)

Diyless Thermostat with Wemos D1 Mini ESP32

Great project! I would love to make it run on my Diyless Thermostat, which uses a Wemos D1 Mini ESP32. After adjusting the platformio.ini file to use wemos_d1_mini32 it compiles. I have adjusted the pin mapping to use OT_IN_PIN_DEFAULT=21, OT_OUT_PIN_DEFAULT=22 and SENSOR_INDOOR_PIN_DEFAULT=18, which should be correct as I have tested it with https://github.com/diyless/esp32-wifi-thermostat.

I noticed some issues however:

  • OpenTherm does not work, it times out, although it is connected and configured correctly
  • The DS18B20 temp sensor does not give output
  • Settings USE_TELNET=1 does not work at all (exception after startup)

Can you point me in some direction what I can try to get it to work?

sensor.opentherm_dhw_flow_rate unavailable

Newest firmware: 1.4.0-rc.13

Logger: homeassistant.components.mqtt.mixins
Source: components/mqtt/mixins.py:324
Integration: MQTT (documentation, issues)
First occurred: 16:06:20 (4 occurrences)
Last logged: 16:10:24

Error 'expected SensorDeviceClass or one of 'date', 'enum', 'timestamp', 'apparent_power', 'aqi', 'atmospheric_pressure', 'battery', 'carbon_monoxide', 'carbon_dioxide', 'current', 'data_rate', 'data_size', 'distance', 'duration', 'energy', 'energy_storage', 'frequency', 'gas', 'humidity', 'illuminance', 'irradiance', 'moisture', 'monetary', 'nitrogen_dioxide', 'nitrogen_monoxide', 'nitrous_oxide', 'ozone', 'ph', 'pm1', 'pm10', 'pm25', 'power_factor', 'power', 'precipitation', 'precipitation_intensity', 'pressure', 'reactive_power', 'signal_strength', 'sound_pressure', 'speed', 'sulphur_dioxide', 'temperature', 'volatile_organic_compounds', 'volatile_organic_compounds_parts', 'voltage', 'volume', 'volume_storage', 'water', 'weight', 'wind_speed' for dictionary value @ data['device_class']' when processing MQTT discovery message topic: 'homeassistant/sensor/opentherm/dhw_flow_rate/config', message: '{'availability': {'topic': 'opentherm/status'}, 'enabled_by_default': False, 'unique_id': 'opentherm_dhw_flow_rate', 'object_id': 'opentherm_dhw_flow_rate', 'entity_category': 'diagnostic', 'device_class': 'volume_flow_rate', 'state_class': 'measurement', 'unit_of_measurement': 'L/min', 'name': 'DHW flow rate', 'icon': 'mdi:water-pump', 'state_topic': 'opentherm/state', 'value_template': '{{ value_json.sensors.dhwFlowRate|float(0)|round(2) }}', 'expire_after': 120, 'device': {'identifiers': ['opentherm'], 'sw_version': '1.4.0-rc.13', 'model': 'OpenTherm Gateway', 'name': 'OpenTherm Gateway', 'configuration_url': 'http://xxx.xxx.x.xxx/'}, 'platform': 'mqtt'}'

delfis ctfs 24" nova florida no heating control

Приветствую. Мой котел "delfis ctfs 24" nova florida, фирмы "findital". Плата esp32 прошивка 1.4.0-rc.12 PlatformIO.
При подключении почти все параметры получаю. Управление ГВС работает, а управление отоплением нет. Т.е. не работает термостат. Пробовал играться с настройками, как рекомендовано https://github.com/Laxilef/OTGateway/wiki/FAQ-&-Troubleshooting#how-can-i-activate-deactivated-sensors-and-settings-in-my-home-assistant. Ни каких результатов
Снимок
Снимок2
Снимок1
При подключении к котлу ESP32, на самом котле регулировка ГВС не регулируется , а температура в помещении поддается регулированию в ручную.
Что можете посоветовать для исправления

navien NCB700 конденсатный

Спасибо за проделанную работу.
Собрал плату, прошил, подключил к котлу, подключил к HA. Наблюдаю работу в Grafana.
Данные которые получаю с котла в приложении.
Скриншот от 2024-01-31 22-00-16
Котел регулирует температуру по обратке.
Панель Opentherm Gateway Heating - при изменении настроек температуры, на дисплее котла ничего не меняется.
Панель Opentherm Gateway DHW - при изменении настроек температуры, на дисплее котла ничего не меняется.
Так и должно быть?
Задача: управлять температурой горячей воды через HA. Стоит планшет в ванной, для себя хочу налить погорячее, для детей похолоднее. Не хочется бегать в котельную.
Вопрос 2: отображение температуры обратки можно реализовать?

Master branch doesn't compile for ESP8266

I'm trying to compile the master branch for esp8266 d1 mini but it is failing. Do you have any idea what i'm doing wrong ?

Building in release mode
Compiling .pio/build/d1_mini/src/main.cpp.o
Generating LD script .pio/build/d1_mini/ld/local.eagle.app.v6.common.ld
Compiling .pio/build/d1_mini/libbfb/OpenTherm Library/OpenTherm.cpp.o
Compiling .pio/build/d1_mini/libe72/PubSubClient/PubSubClient.cpp.o
Compiling .pio/build/d1_mini/lib469/ESP8266WiFi/BearSSLHelpers.cpp.o
Compiling .pio/build/d1_mini/lib469/ESP8266WiFi/CertStoreBearSSL.cpp.o
Compiling .pio/build/d1_mini/lib469/ESP8266WiFi/ESP8266WiFi.cpp.o
Compiling .pio/build/d1_mini/lib469/ESP8266WiFi/ESP8266WiFiAP.cpp.o
Compiling .pio/build/d1_mini/lib469/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o
src/main.cpp:16:6: error: #elif with no expression
#elif
^
In file included from src/main.cpp:27:0:
src/MainTask.h:68:10: error: #elif with no expression
#elif
^
.pio/libdeps/d1_mini/PubSubClient/src/PubSubClient.cpp: In member function 'boolean PubSubClient::publish_P(const char*, const uint8_t*, unsigned int, boolean)':
.pio/libdeps/d1_mini/PubSubClient/src/PubSubClient.cpp:523:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return (rc == expectedLength);
^
In file included from .pio/libdeps/d1_mini/ArduinoJson/src/ArduinoJson.hpp:33:0,
from .pio/libdeps/d1_mini/ArduinoJson/src/ArduinoJson.h:9,
from src/main.cpp:3:
.pio/libdeps/d1_mini/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp: In constructor 'ArduinoJson::V700PB2::JsonDocument::JsonDocument(ArduinoJson::V700PB2::JsonDocument&&)':
.pio/libdeps/d1_mini/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:33:51: error: no matching function for call to 'ArduinoJson::V700PB2::JsonDocument::JsonDocument()'
JsonDocument(JsonDocument&& src) : JsonDocument() {

Screenshot 2023-12-17 at 21 25 22

Set maximum supply temperature

Is there a way to control the maximum central heating supply temperature.

It might be an artificial cap on the heating setpoint.
All commercially available thermostats have this feature.

OpenTherm documentatio v.2.2 states this:
The master decides the actual range over which the control setpoint is defined. The default range is assumed to be 0 to 100.

I think I found it in the Settings.h, heatingMaxTemp (currently set to 90).

It would be perfect if it were able to be set using Home Assistant.

Gas Consumption over OpenTherme

I have Vitodens 100W gas heater and just have set up OTGateway. Great work and thank you for that. I have both gas heater and heat-water pump and now i'm able to automate between them so i can head my house most cost effective way.

Opening my gas heater to smart world made me think that is there a way to get gas consumption information from Vitodens over opentherm?

Request: Send MSG ID24 Room Temperature and ID27 Outside Temperature

Hello,
Do you think is possible to send Room Temperature and Outside Temperature from HA to opentherm ? I'm running nodoshop's opentherm gateway in conjuction with your OTGateway and it supports ID24 and 27 from master device.
Also MsgID 57 Max CH water Setpoint that i set in OTGateway it is not sent to boiler, i had to set it manualy.
Thanks.
otg

Domusa Bioclass HM 16

I have assembled a DIYLESS Thermostat shield with a D1 Mini and installed version 1.3.3

It works with my Domusa Bioclass HM 16 pellet boiler. I have left the master ID with value 0 (default)

Almost everything works, DHW, correct. Diagnostics, fault messages, etc. ok. But I don't see the % modulation, my old Tado showed me that value. Is there any way to see it? I'm interested to see if the modulation works well. I don't see the value of pressure either.

On the other hand, wouldn't it be more correct to show the HW controller in HA as water_heater entity and not as climate?

Originally posted by @MikelillOi in #3 (comment)

Your "flame" is always on, even when heating = off. I don't know why this could be, but it's not right. The request for get modulation is standard. If it is always 0, then the boiler does not support this request.

I can confirm that the boiler continues to work even though it appears as off in the integration.

The comercial Tado thermostat showed the modulation percentage correctly. Can we read any log or something to investigate it?

Baxi Ampera не включается

Прошивка: v1.4.0-rc.16

Установил согласно документации ID 4
сущности в HA прокинулись, вижу температуру теплоносителя, могу через HA изменять уставку, но котел всегда на паузе.

OpenTherm settings:
V - Sync modulation with heating
все остальное выключено, поигрался с другими флагами, но результат такой же.

Сенсор в HA OpenTherm Gateway Diagnostic показывает проблему.
image

Не подскажите какие еще настройки нужно произвести и как на котле правильно выбрать термостат?

Wifi Watchdog

Hello, is possible to implement an watchdog for wifi or maybe for mqtt connection? If it cant't connect to mqtt for some time the board should reboot.

Можно ли использовать как замену термостату?

В данный момент на котле Baxi Luna-3 Comfort стоит панель (штатная на котле) и HomeAssistant через умную розетку и реле с сухим контактом управляет термостатом в котле.
Логика простая - если никакая батарея не греет в текущий момент - терморегулятор выключается, если какая-либо включена - терморегулятор включается.
Есть несколько вопросов:

  1. Возможно ли управлять термостатом оборудованием с данной прошивкой?
  2. Если поставить OTGGateway будет ли работать штатная панель или ее необходимо будет отключить?
  3. Будет ли работать OTGGateway совместно с терморегулятором (как сейчас, только информация по работе котла будет в НА)

Intergrating TRV's

At the moment i'm looking at replacing my Tado thermostat with the OTGateway mainly as i want to be able to intergrate heating a bit more with zigbee TRV's, do you have some idea's on how to do this or i can just make a heating call using home assistant but ignore the temp sensor?

delay() в библиотеках DallasTemperature и OpenTherm

В библиотеках DallasTemperature и OpenTherm присутствуют вызовы функции delay(), которые подвешивают исполнение всего кода. В DallasTemperature функция delay() вызывается в blockTillConversionComplete() для ожидания выполнения расчетов датчиком и, в зависимости от bitResolution, составляет от 94 до 750 миллисекунд. В OpenTherm функция delay() вызывается в activateBoiler() на 1 секунду. Не знаю насколько это критично в Вашем проекте, но я при использовании библиотеки DallasTemperature избавлялся от этого прописав в функции millisToWaitForConversion() нули во всех return и используя библиотеку SimpleTimer для задания периодичности чтения данных с датчика. Хотя, можно тоже самое сделать установив waitForConversion = false и checkForConversion = false в функции setOneWire() и использовать таймер для считывания показаний с датчика.

Report temperature from forecast doesn't work

Use this instruction:
https://github.com/Laxilef/OTGateway/wiki#reporting-outdoor-temperature-from-home-assistant-weather-integration

On saving integration get error:
"Message malformed: Entity {{ source_entity }} is neither a valid entity ID nor a valid UUID for dictionary value @ data['entity_id'"

Attributes is present:
изображение

Делаю по инструкции и после копирования и редактирования скрипта автоматизации получаю ошибку:
"Message malformed: Entity {{ source_entity }} is neither a valid entity ID nor a valid UUID for dictionary value @ data['entity_id'"

При этом атрибуты в объекте weather.home есть.

Версия HA core 2023.2.2

telegram: @simply_kot

Request: exhaust temperature

My gas boiler: Viessmann Vitodens W-100 B1KC 26 kW has exhaust temperature sensor. Would be great to see this information in opentherm gateway...

noob request

I can't set the indoor temperature with mqtt. I paste the report_temp_to_controller.yaml in config file like this, but doesn't work:
Schermata 2024-02-09 alle 18 36 31
thanks

Request: Multiple PID based Climates for multi-room purposes?

I currently heat all my rooms seperately with often different set temps. Having a single climate entity would cause OpenTherm to sometimes throw my heater at 100% because the living room temperature is low, but the room i'm actually heating is only 0.5c off from where it needs to be. Having multiple climates that check each room individually together with their assigned temperature sensors would solve this issue. Is this something that could be implemented? So far i have not seen a single solution that makes it possible.

Проблемы с настройками.

С моим котлом AEG GBA124 прошивка не работает. Хотя другие (тасмота+опентерм и пр.) видят мой котел и регулируют.
Тут использована какая-то урезанная библиотека ?

Вот ниже прилагаю лог из работающей Tasmota+opentherm

16:10:29.055 MQT: Подписаться на cmnd/tasmota_FD7A71/#
16:10:29.056 MQT: Подписаться на cmnd/tasmotas/#
16:10:29.058 MQT: Подписаться на cmnd/DVES_FD7A71_fb/#
16:10:29.061 MQT: tele/tasmota_FD7A71/INFO1 = {"Info1":{"Module":"Generic","Version":"13.1.0(TasmoCompiler-esp82664M)","FallbackTopic":"cmnd/DVES_FD7A71_fb/","GroupTopic":"cmnd/tasmotas/"}}
16:10:29.070 MQT: tele/tasmota_FD7A71/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota-FD7A71-6769","IPAddress":"192.168.1.4"}}
16:10:29.084 MQT: tele/tasmota_FD7A71/INFO3 = {"Info3":{"RestartReason":"Software/System restart","BootCount":5}}
16:10:29.096 TFS: File 'autoexec.bat' not found
16:10:29.222 [OTH]: perform handshake
16:10:29.665 [OTH]: Processing response. Status=SUCCESS, Response=0xC0030129
16:10:29.666 [OTH]: getLastResponseStatus SUCCESS. Slave Cfg: C0030129
16:10:30.122 SRC: MQTT
16:10:30.124 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 1, Pld 1, Data '1'
16:10:30.130 MQT: stat/tasmota_FD7A71/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"","RestartReason":"Software/System restart","Uptime":"0T00:00:08","StartupUTC":"2023-10-13T15:10:22","Sleep":50,"CfgHolder":4617,"BootCount":4,"BCResetTime":"2023-10-13T15:52:54","SaveCount":14,"SaveAddress":"1000"}}
16:10:30.172 SRC: MQTT
16:10:30.175 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 11, Data '11'
16:10:30.181 MQT: stat/tasmota_FD7A71/STATUS11 = {"StatusSTS":{"Time":"2023-10-13T16:10:30","Uptime":"0T00:00:08","UptimeSec":8,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":28,"MqttCount":1,"Wifi":{"AP":1,"SSId":"MiHome","BSSId":"74:4D:28:BF:88:1C","Channel":11,"Mode":"11n","RSSI":54,"Signal":-73,"LinkCount":1,"Downtime":"0T00:00:05"}}}
16:10:30.316 QPC: Reset
16:10:30.351 [OTH]: Processing response. Status=SUCCESS, Response=0x40000200
16:10:30.354 SRC: MQTT
16:10:30.357 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 2, Pld 10, Data '10'
16:10:30.365 MQT: stat/tasmota_FD7A71/STATUS10 = {"StatusSNS":{"Time":"2023-10-13T16:10:30","DS18B20":{"Id":"00000215ECB7","Temperature":24.9},"OPENTHERM":{"conn":"READY","settings":3,"SLAVE":{"FAULT":0,"CH":0,"DHW":0,"FL":0,"COOL":0,"CH2":0,"DIAG":0,"RAW":1073742336}},"TempUnit":"C"}}
16:10:30.452 [OTH]: Setting Boiler Temp. Old: 0, New: 85, Force: N
16:10:30.903 [OTH]: Processing response. Status=SUCCESS, Response=0xD0015500
16:10:31.005 [OTH]: Setting Hot Water Temp. Old: 0, New: 36
16:10:31.489 [OTH]: Processing response. Status=SUCCESS, Response=0xD0382400
16:10:32.095 [OTH]: Processing response. Status=SUCCESS, Response=0xC0050000
16:10:32.195 APP: Количество загрузок 5
16:10:32.952 CFG: Сохранено во флэш-память 3FB, Подсчет 15, Байт 4096
16:10:32.959 [OTH]: Processing response. Status=INVALID, Response=0x70730000
16:10:33.165 MQT: tele/tasmota_FD7A71/STATE = {"Time":"2023-10-13T16:10:33","Uptime":"0T00:00:11","UptimeSec":11,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":55,"MqttCount":1,"Wifi":{"AP":1,"SSId":"MiHome","BSSId":"74:4D:28:BF:88:1C","Channel":11,"Mode":"11n","RSSI":58,"Signal":-71,"LinkCount":1,"Downtime":"0T00:00:05"}}
16:10:33.196 MQT: tele/tasmota_FD7A71/SENSOR = {"Time":"2023-10-13T16:10:33","DS18B20":{"Id":"00000215ECB7","Temperature":24.9},"OPENTHERM":{"conn":"BUSY","settings":3,"SLAVE":{"FAULT":0,"CH":0,"DHW":0,"FL":0,"COOL":0,"CH2":0,"DIAG":0,"RAW":1073742336},"BTMP":{"FAULT":0,"REQ":85.0,"ACT": 85.0},"HWTMP":{"REQ":36.0,"ACT": 36.0},"ASFF":{"FC":0,"OFC":0}},"TempUnit":"C"}
16:10:33.583 [OTH]: Processing response. Status=SUCCESS, Response=0xC0110000
16:10:33.640 HTP: Управление
16:10:34.135 [OTH]: Processing response. Status=SUCCESS, Response=0x40191800
16:10:34.736 [OTH]: Processing response. Status=SUCCESS, Response=0x401A1700
16:10:35.340 [OTH]: Processing response. Status=INVALID, Response=0x601B0000
16:10:35.748 HTP: Консоль
16:10:35.971 [OTH]: Processing response. Status=INVALID, Response=0x701C0000
16:10:36.521 [OTH]: Processing response. Status=SUCCESS, Response=0x40382400
16:10:37.126 [OTH]: Processing response. Status=SUCCESS, Response=0xC0390000
16:10:37.734 [OTH]: Processing response. Status=SUCCESS, Response=0xC00A0C00
16:10:38.204 MQT: tasmota/discovery/3C6105FD7A71/config = {"ip":"192.168.1.4","dn":"Tasmota","fn":["Tasmota",null,null,null,null,null,null,null],"hn":"tasmota-FD7A71-6769","mac":"3C6105FD7A71","md":"Generic","ty":0,"if":0,"ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"13.1.0","t":"tasmota_FD7A71","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],"swn":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"btn":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"so":{"4":0,"11":0,"13":0,"17":0,"20":0,"30":0,"68":0,"73":0,"82":0,"114":0,"117":0},"lk":0,"lt_st":0,"bat":0,"dslp":0,"sho":[],"sht":[],"ver":1} (нераспред.)
16:10:38.218 MQT: tasmota/discovery/3C6105FD7A71/sensors = {"sn":{"Time":"2023-10-13T16:10:38","DS18B20":{"Id":"00000215ECB7","Temperature":24.9},"OPENTHERM":{"conn":"BUSY","settings":3,"SLAVE":{"FAULT":0,"CH":0,"DHW":0,"FL":0,"COOL":0,"CH2":0,"DIAG":0,"RAW":1073742336},"BTMP":{"FAULT":0,"REQ":85.0,"ACT": 85.0},"HWTMP":{"REQ":36.0,"ACT": 36.0},"ASFF":{"FC":0,"OFC":0},"FLM":0.0,"TB":24.0,"TDHW":23.0,"DHWS":36.0,"TMAX":0.0,"OT10":{"lo":0,"hi":0}},"TempUnit":"C"},"ver":1} (нераспред.)
16:10:38.336 [OTH]: Processing response. Status=INVALID, Response=0xF00C0000
16:10:38.942 [OTH]: Processing response. Status=INVALID, Response=0x700E0000
16:10:39.545 [OTH]: Processing response. Status=INVALID, Response=0xF00F0000
16:10:40.149 [OTH]: Processing response. Status=INVALID, Response=0xF0120000
16:10:40.753 [OTH]: Processing response. Status=INVALID, Response=0x70130000
16:10:41.359 [OTH]: Processing response. Status=INVALID, Response=0xF0210000
16:10:41.972 [OTH]: Processing response. Status=INVALID, Response=0xF0740000
16:10:42.533 [OTH]: Processing response. Status=INVALID, Response=0x70750000
16:10:43.139 [OTH]: Processing response. Status=INVALID, Response=0xF0780000
16:10:43.744 [OTH]: Processing response. Status=INVALID, Response=0x70790000
16:10:44.416 [OTH]: Processing response. Status=SUCCESS, Response=0x40000200
16:10:45.253 [OTH]: Processing response. Status=SUCCESS, Response=0xC0050000
16:10:45.864 [OTH]: Processing response. Status=INVALID, Response=0x70730000
16:10:46.415 [OTH]: Processing response. Status=SUCCESS, Response=0xC0110000
16:10:47.020 [OTH]: Processing response. Status=SUCCESS, Response=0x40191800
16:10:47.623 [OTH]: Processing response. Status=SUCCESS, Response=0xC01A1600
16:10:47.811 WIF: Проверка соединения...
16:10:48.227 [OTH]: Processing response. Status=INVALID, Response=0x601B0000
16:10:48.835 [OTH]: Processing response. Status=INVALID, Response=0x701C0000
16:10:49.423 [OTH]: Processing response. Status=SUCCESS, Response=0x40382400
16:10:50.054 [OTH]: Processing response. Status=SUCCESS, Response=0xC0390000

Я правильно понял - можно по-русски?

Start/stop heating with HA automation instead of temp control

I hav now used OTGetaway for few weeks with equitherm logic and it works well.

However I have floor heating and using Uponor Smatrix collector control solution which is quite smart and can predict thermal inertia etc.

When collectors are in closed state it’s does not have a point for gas heater to be on as the hot water is not flowing in the under floor heating.

So I would like to turn on gas heater only when any of the floor heating contours are in open state. I have this information in Home Assitant. For example one:
IMG_1866

Idle means off and heating means on. I can group all contours together so that if any of them is on I can make automation to turn on the gas heater.

But now I need some idea for a solution to turn gas heater on/off but at same time retain the heating temp vs outside temp logic. So basically use only heating curve and gas heater on/off will be controlled by automation.

Baxi eco 4s + WeMos D1 sheld. [OT][WARN] Invalid response after setBoilerStatus: TIMEOUT

Добрый день!
Связка Baxi eco 4s + WeMos D1 sheld.
Нет связи с котлом. [OT][WARN] Invalid response after setBoilerStatus: TIMEOUT
Меняли местами OT PIN без результатно

Часть Log
Основной в аттаче
Log_BaxiEco4s+WenosD1 Shield .txt

00:00:00][NETWORK][TRACE] Set hostname 'zelenay19': success
[00:00:05][SENSORS][OUTDOOR][INFO] Starting on gpio 12...
[00:00:05][SENSORS][OUTDOOR][TRACE] Devices on bus: 1, DS18* devices: 1
[00:00:05][SENSORS][OUTDOOR][INFO] Started
[00:00:06][PORTAL][WEBSERVER][TRACE] Started: AP up or STA connected
[00:00:06][MQTT][INFO] Enabled
[00:00:06][MQTT][INFO] Started
[00:00:06][OT][INFO] Started. GPIO IN: 4, GPIO OUT: 5
[00:00:07][MAIN][VERB] Free heap size: 27440 of 81920 bytes (min: 27440, diff: 4294939856), max free block: 27144 (min: 27144, diff: 4294940152, frag: 1%)
[00:00:07][NETWORK][INFO] Connected, downtime: 7 s., IP: 192.168.0.107, RSSI: -73
[00:00:08][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 1 Status: TIMEOUT
[00:00:09][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 2 Status: TIMEOUT
[00:00:10][REGULATOR][INFO] New target: 25.00
[00:00:10][REGULATOR][EQUITHERM][INFO] New result: 59 (59.38)
[00:00:10][MAIN][VERB] Free heap size: 27216 of 81920 bytes (min: 27216, diff: 224), max free block: 27144 (min: 27144, diff: 0, frag: 0%)
[00:00:10][SENSORS][OUTDOOR][TRACE] Raw temp: 27.437500
[00:00:10][SENSORS][OUTDOOR][INFO] New temp: 27.430000
[00:00:10][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 3 Status: TIMEOUT
[00:00:12][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 4 Status: TIMEOUT
[00:00:13][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 5 Status: TIMEOUT
[00:00:13][OT][WARN] Invalid response after setBoilerStatus: TIMEOUT
[00:00:15][SENSORS][OUTDOOR][TRACE] Raw temp: 27.687500
[00:00:15][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 1 Status: TIMEOUT
[00:00:15][MQTT][INFO] Connecting to 91.203.125.214:1883...
[00:00:15][MAIN][VERB] Free heap size: 26944 of 81920 bytes (min: 26944, diff: 272), max free block: 26752 (min: 26752, diff: 392, frag: 0%)
[00:00:16][MQTT][INFO] Connected (downtime: 16 s.)
[00:00:16][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 2 Status: TIMEOUT
[00:00:17][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 3 Status: TIMEOUT
[00:00:18][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 4 Status: TIMEOUT
[00:00:19][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 5 Status: TIMEOUT
[00:00:19][OT][WARN] Invalid response after setBoilerStatus: TIMEOUT
[00:00:20][REGULATOR][EQUITHERM][INFO] New result: 40 (40.00)
[00:00:20][SENSORS][OUTDOOR][TRACE] Raw temp: 27.437500
[00:00:21][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 1 Status: TIMEOUT
[00:00:22][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 2 Status: TIMEOUT
[00:00:24][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 3 Status: TIMEOUT
[00:00:25][SENSORS][OUTDOOR][TRACE] Raw temp: 27.500000
[00:00:25][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 4 Status: TIMEOUT
[00:00:26][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 5 Status: TIMEOUT
[00:00:26][OT][WARN] Invalid response after setBoilerStatus: TIMEOUT
[00:00:28][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 1 Status: TIMEOUT
[00:00:29][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 2 Status: TIMEOUT
[00:00:30][SENSORS][OUTDOOR][TRACE] Raw temp: 27.562500
[00:00:30][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 3 Status: TIMEOUT
[00:00:31][MQTT][TRACE] Successfully publish 6 of 6 bytes to topic: zelenay19/status
[00:00:31][MAIN][VERB] Free heap size: 26784 of 81920 bytes (min: 26784, diff: 160), max free block: 25368 (min: 25368, diff: 1384, frag: 5%)
[00:00:31][MQTT][TRACE] Successfully publish 471 of 471 bytes to topic: zelenay19/state
[00:00:31][MAIN][VERB] Free heap size: 26296 of 81920 bytes (min: 26296, diff: 488), max free block: 24864 (min: 24864, diff: 504, frag: 5%)
[00:00:31][MQTT][TRACE] Successfully publish 553 of 553 bytes to topic: zelenay19/settings
[00:00:31][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 4 Status: TIMEOUT
[00:00:32][MAIN][VERB] Free heap size: 26088 of 81920 bytes (min: 26088, diff: 208), max free block: 24704 (min: 24704, diff: 160, frag: 5%)
[00:00:32][MQTT][TRACE] Successfully publish 633 of 633 bytes to topic: homeassistant/switch/zelenay19/emergency/config
[00:00:32][MAIN][VERB] Free heap size: 24640 of 81920 bytes (min: 24640, diff: 1448), max free block: 24104 (min: 24104, diff: 600, frag: 2%)
[00:00:32][MQTT][TRACE] Successfully publish 692 of 692 bytes to topic: homeassistant/number/zelenay19/emergency_target/config
[00:00:32][MAIN][VERB] Free heap size: 24448 of 81920 bytes (min: 24448, diff: 192), max free block: 23848 (min: 23848, diff: 256, frag: 2%)
[00:00:32][MQTT][TRACE] Successfully publish 820 of 820 bytes to topic: homeassistant/switch/zelenay19/emergency_use_equitherm/config
[00:00:32][MAIN][VERB] Free heap size: 24376 of 81920 bytes (min: 24376, diff: 72), max free block: 24056 (min: 23848, diff: 0, frag: 1%)
[00:00:33][MQTT][TRACE] Successfully publish 783 of 783 bytes to topic: homeassistant/switch/zelenay19/emergency_use_pid/config
[00:00:33][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 5 Status: TIMEOUT
[00:00:33][OT][WARN] Invalid response after setBoilerStatus: TIMEOUT
[00:00:33][MQTT][TRACE] Successfully publish 649 of 649 bytes to topic: homeassistant/switch/zelenay19/heating/config
[00:00:33][MQTT][TRACE] Successfully publish 676 of 676 bytes to topic: homeassistant/switch/zelenay19/heating_turbo/config
[00:00:34][MQTT][TRACE] Successfully publish 688 of 688 bytes to topic: homeassistant/number/zelenay19/heating_hysteresis/config
[00:00:34][MQTT][TRACE] Successfully publish 615 of 615 bytes to topic: homeassistant/sensor/zelenay19/heating_setpoint/config
[00:00:34][MQTT][TRACE] Successfully publish 774 of 774 bytes to topic: homeassistant/sensor/zelenay19/boiler_heating_min_temp/config
[00:00:35][MQTT][TRACE] Successfully publish 772 of 772 bytes to topic: homeassistant/sensor/zelenay19/boiler_heating_max_temp/config
[00:00:35][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 1 Status: TIMEOUT
[00:00:35][SENSORS][OUTDOOR][TRACE] Raw temp: 27.437500
[00:00:35][MQTT][TRACE] Successfully publish 691 of 691 bytes to topic: homeassistant/number/zelenay19/heating_min_temp/config
[00:00:35][MQTT][TRACE] Successfully publish 690 of 690 bytes to topic: homeassistant/number/zelenay19/heating_max_temp/config
[00:00:36][MQTT][TRACE] Successfully publish 689 of 689 bytes to topic: homeassistant/number/zelenay19/heating_max_modulation/config
[00:00:36][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 2 Status: TIMEOUT
[00:00:36][MQTT][TRACE] Successfully publish 589 of 589 bytes to topic: homeassistant/switch/zelenay19/pid/config
[00:00:37][MQTT][TRACE] Successfully publish 579 of 579 bytes to topic: homeassistant/number/zelenay19/pid_p_factor/config
[00:00:37][MQTT][TRACE] Successfully publish 578 of 578 bytes to topic: homeassistant/number/zelenay19/pid_i_factor/config
[00:00:37][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 3 Status: TIMEOUT
[00:00:37][MQTT][TRACE] Successfully publish 577 of 577 bytes to topic: homeassistant/number/zelenay19/pid_d_factor/config
[00:00:38][MQTT][TRACE] Successfully publish 595 of 595 bytes to topic: homeassistant/number/zelenay19/pid_dt/config
[00:00:38][MQTT][TRACE] Successfully publish 671 of 671 bytes to topic: homeassistant/number/zelenay19/pid_min_temp/config
[00:00:38][MQTT][TRACE] Successfully publish 670 of 670 bytes to topic: homeassistant/number/zelenay19/pid_max_temp/config
[00:00:38][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 4 Status: TIMEOUT
[00:00:39][MQTT][TRACE] Successfully publish 629 of 629 bytes to topic: homeassistant/switch/zelenay19/equitherm/config
[00:00:39][MQTT][TRACE] Successfully publish 611 of 611 bytes to topic: homeassistant/number/zelenay19/equitherm_n_factor/config
[00:00:39][MAIN][VERB] Free heap size: 24280 of 81920 bytes (min: 24280, diff: 96), max free block: 24104 (min: 23848, diff: 0, frag: 0%)
[00:00:39][MQTT][TRACE] Successfully publish 606 of 606 bytes to topic: homeassistant/number/zelenay19/equitherm_k_factor/config
[00:00:39][PORTAL][WEBSERVER][TRACE] Request /api/settings 216 bytes: {"opentherm":{"inPin":4,"outPin":5,"memberIdCode":0,"dhwPresent":true,"modulationSyncWithHeating":true,"summerWinterMode":false,"heatingCh2Enabled":false,"heatingCh1ToCh2":false,"dhwToCh2":false,"dhwBlocking":false}}
[00:00:39][MAIN][VERB] Free heap size: 23296 of 81920 bytes (min: 23296, diff: 984), max free block: 22728 (min: 22728, diff: 1120, frag: 2%)
[00:00:39][OT][TRACE] ID: 0 Request: 2200 Response: 0 Attempt: 5 Status: TIMEOUT
[00:00:39][OT][WARN] Invalid response after setBoilerStatus: TIMEOUT

Boilers compatibility

Please write here the name of your boiler and its compatibility features (what works, what doesn’t work).
I will add to the table in README.

This will be very useful for other people. Thanks!

Please do not ask questions in this issue; to do this, you can open a new issue or ask a question in telegram chat.
This issue is ONLY for reports on the work of boilers with firmware.

Heating max temp is not set

Hi!

I have set the heating max temp to 45 degrees, as i have under floor heating and more is not recommenced.

Screenshot 2023-12-22 at 10 10 44

But in the diagnostic section it's still 80 degrees
Screenshot 2023-12-22 at 10 10 53

Using the latest 1.4.0-rc.5

Losing connection with boiler

Im using 1.4.0-rc.15 on Wemos D1 mini with Termet Ecocondens 25 Integra II boiler. The connection works well but after couple hours, the connection with boiler is lost.

Manually restart OTGateway - no results
Manually power cycle OTGateway - no results
Manually power cycle boiler - connection established again

How can I check the connection logs? Any advice to resolve this problem?

obraz

Invalid values for number.opentherm_pid_p and number.opentherm_pid_d

Logger: homeassistant.components.mqtt.number
Source: components/mqtt/number.py:194
Integration: MQTT (documentation, issues)
First occurred: 07:38:02 (382 occurrences)
Last logged: 10:07:49

Invalid value for number.opentherm_pid_p: 50.0 (range 0.001 - 10.0)
Invalid value for number.opentherm_pid_d: 10000.0 (range 0.0 - 10.0)

Device: https://diyless.com/product/opentherm-thermostat
Firmware: firmware_nodemcu_32s_1.4.0-rc.5
Boiler Wiessmann Vitodens 100-W B1KC 26 kW

I use 1.4.0 firmware because 1.3.3 firmware does not have Summer/winter mode, Heating CH1 to CH2 and Modulation sync with heating options. Without these options my boiler does not respond to setting the heating temperature.

FAQ

  1. Какая логика в подключении датчиков,
  • Экспериментально я выяснил так:
    External - это датчик непосредственно подключенный к ESP
    Boiler - ??
    Manual - это внешний датчик, привязываемый через автоматизацию Home Assistant. Не совсем понят смыл ручной регулировки. Зачем это сделано? Ведь при просмотре со смартфона можно нечаянно установить неверную температуру и нарушить логику работы.

Я правильно понял или где-то можно подробнее прочитать?

Request: Ethernet connection support

Thank you for your project. Now I'm using Wemos D1 Mini32 board (& Tindie Opentherm master shield).

It will be great if your gateway could support Ethernet connection instead of wi-fi. It is more reliable and especially with PoE it can be used for power supply. I think (when you don't use Wifi-Manager for configuration) it could be maybe simpler now.

I like more complex Ethernet board with LAN8720 as WT32-ETH01, Olimex ESP32-POE or simple module with SPI as Wiznet W5500.

What do you thinkin about it? Unfortunately my skills aren't to high to fork your project and modify it for Ethernet. Maybe someone else...

CPL file for PCB order

Hello.

Can I ask for CPL file to share? I was not able to find it unfortunately. It is not possible to order PCB assembly without this file.

Thanks in advance for sharing.

Begginer's frustration...

Hi,
I very recently started using the Home assistant and bought Igor's wemos hat, assembled it and was about to install it and then it clicked that I don't even know how to set the desired room temperature using OpenTherm.
I can't find any quides online for OpenTherm in particular. I was looking at DYILESS guide, but they assume I have an MQQT sensor.
My current setup is a Shelly relay inside of my boiler and Sonoff zigbee thermometer in my living room working in ZHA mode .
From my understanding generic_thermostat isn't suitable for the OpenTherm as it's just a relay controller.

Apologies if this is something obvious :)

Wishes

У платы Wemos / ESP осталось много свободных портов. В связи с этим есть такое пожелание на будущее.

  1. Подключить по IC2 OLED дисплей на который вывести хотя-бы основные 4цифры - заданные температуры ГВС и отопления и текущие данные. Библиотеки как я понимаю под это дело уже готовы. Ну и из фантастики поуправлять автономно этими цифрами спомощью кнопок ))
  2. Управлять насосами. Хотелось-бы отключать насосы во время остановки обогрева.

Работа в режиме PID

Если включен PID режим, то температура вычисляется, только когда котел набирает температуру
Функция getPidTemp() вызывается только в одну сторону.


    if (settings.pid.enable && vars.states.heating) {
      float pidResult = getPidTemp(....
 

По достижении температуры, котел просто отключается, и setpoint далее не меняется.

Потом когда температура в помещении упадет меньше заданной, то котел опять включается и начинает работать с предыдущей температуры - т.е .просто дискретный термостат on/off

И это еще не всё. После нескольких циклов что-то зависает и далее просто не включается отопление.

Установлено 21 градусов целевая температура.
Сегодня утром проснулся. Дома холодно - 20.4 градусов,

Перезагрузил openterm контроллер около 10 утра

В течении дня несколько раз набирало эту температур.
Сейчас до +20,8 уже упало.
Через telnet вижу, что
[INFO] Heating enabled: 1

Но отопление не включается

Все видно на графиках

Screenshot 2023-10-10 at 20-55-46 Обзор – Home Assistant
Screenshot 2023-10-10 at 20-55-26 Обзор – Home Assistant
Screenshot 2023-10-10 at 20-52-39 Обзор – Home Assistant

Скорее всего в коде openthermtask.h не работает ветка, так как heatingSetpoint постоянно один и тот же

// Температура отопления
if (heatingEnable && fabs(vars.parameters.heatingSetpoint - currentHeatingTemp) > 0.0001) {
  INFO_F("Setting heating temp = %u \n", vars.parameters.heatingSetpoint);

  // Записываем заданную температуру
  if (ot->setBoilerTemperature(vars.parameters.heatingSetpoint)) {
    currentHeatingTemp = vars.parameters.heatingSetpoint;

  } else {
    WARN("Failed set heating temp");
  }
}

После того как я поменял через температуру с +75 обогрева на 72 градуса, то сработала эта ветка и в телнете увидел:
[INFO] Setting heating temp = 72
[INFO] Heating enabled: 1

и обогрев начался.

Opentherm gateway Homeassistant parametars

It is not a bug, but i can't understant some parametrs in HomeAssistant:

  1. Emergency target tempetature - as i anderstand it is a temperature when the boilel starts heating if the Use Emergency slider is on?
    Like Frost Protection mode in Baxi???
  2. Turning slader - What this function is suppose to do?
  3. Turning regulator - What this function is suppose to do?
  4. Use equitherm in emergency - What this function is suppose to do?

Предложения по работе с PID

Здравствуйте

У меня включена работа по ПЗА и ПИД.

По ПЗА температура выставляется достаточно грубо в зависимости только от температуры внешней. Не учитывается ветер, влажность итд. Т.е. у меня в доме например при -25 градусах на улице и без ветра температура в СО может быть 60-65 градусов для температуры в комнате где стоит термосенсор.
А если с ветром - то и +75 можно загонять в батареи, чтобы было дома +21 градус. Поэтому более точная регулировка осуществляется через PID.

В ваш код добавил немного модификаций.

  1. Для того, чтобы PID не вычислялся каждые несколько секунд, нужно ввести задержку в несколько минут, так как процесс сильно инерционный и D коэффициент не отрабатывает, если вызывать слишком быстро расчет ПИД . Я у себя поставил раз в три минуты вызов вычисления пид .

В функции

  float getPidTemp(int minTemp, int maxTemp) {
    pidRegulator.Kp = settings.pid.p_factor;
    pidRegulator.Ki = settings.pid.i_factor;
    pidRegulator.Kd = settings.pid.d_factor;

// задержка для вычисления пид 3 минуты
    pidRegulator.setDt(180000);

......

//заменяем getResultNow на getResultTimer
    //return pidRegulator.getResultNow();
    return pidRegulator.getResultTimer();

И в src\MqttTask.h и в src\HomeAssistantHelper.h надо расширить диапазон возможных значений для P,I,D.
У меня например P=50, I=0.006, D=10000

Также установить гистерезис побольше например 1 градус - ПИД сам будет держать заданную температуру, без отключения котла по превышению гистерезиса.

Screenshot 2023-12-15 at 14-56-32 Обзор – Home Assistant

Screenshot 2023-12-15 at 14-18-15 Обзор – Home Assistant

Hot Water start and stop

I have set domestic hot water to 46 degrees. It stopped heating on 49.5 degrees
Screenshot 2023-12-23 at 13 19 03

In my heat pump i can set heating start and stop. For example start heating when it's under 42 and stop at 46.

What is the logic here with this? When I select 46 on the thermostat in HA, what are the start and stop degrees in OTGateway and Gas Heater?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.