{"id":23468951,"url":"https://github.com/dewenni/esp_buderus_km271","last_synced_at":"2025-04-07T12:06:01.759Z","repository":{"id":65112745,"uuid":"569846302","full_name":"dewenni/ESP_Buderus_KM271","owner":"dewenni","description":"Control your Buderus Logamatic 2107 or HS-2105 with MQTT or Home Assistant","archived":false,"fork":false,"pushed_at":"2025-01-25T09:23:19.000Z","size":39691,"stargazers_count":78,"open_issues_count":7,"forks_count":12,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-06T01:58:38.475Z","etag":null,"topics":["3964r","arduino","buderus","esp32","fm244","home-assistant","hs-2105","km271","logamatic","mqtt","mqtt-discovery","r2107","w5500","webui"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dewenni.png","metadata":{"files":{"readme":"README.md","changelog":"changeNew.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"dewenni","custom":"https://paypal.me/toensjost"}},"created_at":"2022-11-23T18:45:17.000Z","updated_at":"2025-03-22T12:42:17.000Z","dependencies_parsed_at":"2023-02-15T16:21:04.417Z","dependency_job_id":"2c3e8616-9e9a-4485-89f5-a34131723447","html_url":"https://github.com/dewenni/ESP_Buderus_KM271","commit_stats":{"total_commits":349,"total_committers":3,"mean_commits":"116.33333333333333","dds":0.005730659025787954,"last_synced_commit":"e6c22d8691dabbf9250f5d585b7bd64378a6a789"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dewenni%2FESP_Buderus_KM271","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dewenni%2FESP_Buderus_KM271/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dewenni%2FESP_Buderus_KM271/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dewenni%2FESP_Buderus_KM271/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dewenni","download_url":"https://codeload.github.com/dewenni/ESP_Buderus_KM271/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247648976,"owners_count":20972945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3964r","arduino","buderus","esp32","fm244","home-assistant","hs-2105","km271","logamatic","mqtt","mqtt-discovery","r2107","w5500","webui"],"created_at":"2024-12-24T14:38:21.626Z","updated_at":"2025-04-07T12:06:01.737Z","avatar_url":"https://github.com/dewenni.png","language":"C++","funding_links":["https://github.com/sponsors/dewenni","https://paypal.me/toensjost"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg style=\"width: 100px;\" src=\"./Doc/ESP-Buderus-KM271-Logo.svg\"\u003e \n\n\u003ch3 style=\"text-align: center;\"\u003eESP-Buderus-KM271\u003c/h3\u003e\n\u003c/div\u003e\n\n-----\n\n**[🇩🇪 Deutsche Version der Beschreibung](README_DE.md)**\n\n-----\n\n\u003cdiv align=\"center\"\u003e\n\n[![Current Release](https://img.shields.io/github/release/dewenni/ESP_Buderus_KM271.svg)](https://github.com/dewenni/ESP_Buderus_KM271/releases/latest)\n![GitHub Release Date](https://img.shields.io/github/release-date/dewenni/ESP_Buderus_KM271)\n![GitHub last commit](https://img.shields.io/github/last-commit/dewenni/ESP_Buderus_KM271)\n![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/dewenni/ESP_Buderus_KM271/total?label=downloads%20total\u0026color=%23f0cc59)\n![GitHub Downloads (all assets, latest release)](https://img.shields.io/github/downloads/dewenni/ESP_Buderus_KM271/latest/total?label=downloads%20latest%20Release\u0026color=%23f0cc59)\n\n![GitHub watchers](https://img.shields.io/github/watchers/dewenni/ESP_Buderus_KM271?style=social)\n[![GitHub stars](https://img.shields.io/github/stars/dewenni/ESP_Buderus_KM271.svg?style=social\u0026label=Star)](https://github.com/dewenni/ESP_Buderus_KM271/stargazers/)\n\n\u003c/div\u003e\n\n-----\n\n\u003cdiv align=\"center\"\u003e\nIf you like this project, feel free to push the \u003cb\u003e[Star ⭐️]\u003c/b\u003e button and click \u003cb\u003e[Watch 👁]\u003c/b\u003e to stay updated.\n\u003cbr\u003e\u003cbr\u003e\nAnd if you'd like to support my work, you can also\u003cp\u003e\n\n[![Sponsor](https://img.shields.io/badge/Sponsor%20me%20on-GitHub-%23EA4AAA.svg?style=for-the-badge\u0026logo=github)](https://github.com/sponsors/dewenni)\n\n\n\u003c/div\u003e\n\n-----\n\nControl your Buderus Logamatic R2107 / HS 2105 with ESP and MQTT\n\nThe information from the heater provides a better understanding of how the heater works and offers opportunities for optimization.\n\nIn combination with influxDB and Grafana you can also create useful and impressive Dashboard of your heating system.\n\nBut there is also a build in WebUI to view and control your Logamatic without any other Software.\n\n\n![weubui_dash](Doc/weubui_dash.png)\n(Desktop Version)\n\nThe WebUI is responsive and also offers a mobile layout.\n\n\u003cimg style=\"display: inline;\n  margin-right: 50px;\n  width: 200px;\" src=\"./Doc/webui_mobile_1.png\"\u003e \n\u003cimg style=\"display: inline;\n  margin-right: 50px;\n  width: 200px;\" src=\"./Doc/webui_mobile_2.png\"\u003e \n\u003cimg style=\"display: inline;\n  margin-left: auto;\n  width: 200px;\" src=\"./Doc/webui_mobile_3.png\"\u003e   \n(Mobile Version)\n\n-----\n\n# Table of Contents\n\n- [Overview](#overview)\n- [Hardware](#hardware)\n  - [Option 1 - Board from the78mole](#option-1---board-from-the78mole)\n  - [Option 2 - ESP32 with original Buderus KM271](#option-2---esp32-with-original-buderus-km271)\n  - [Optional: Hardware Oil Meter](#optional-hardware-oil-meter)\n  - [Optional: OneWire Sensor](#optional-onewire-sensor)\n  - [Optional: Exhaust Sensor](#optional-exhaust-sensor)\n  - [Optional: Ethernet Module W5500](#optional-ethernet-module-w5500)\n\n\n- [Getting started](#getting-started)\n  - [Platform-IO](#platform-io)\n  - [ESP-Flash-Tool](#esp-flash-tool)\n  - [OTA-Updates](#ota-updates)\n  - [Setup-Mode](#setup-mode)\n  - [Configuration](#configuration)\n  - [Filemanager](#filemanager)\n- [MQTT](#mqtt)\n  - [Config and Status values](#config-and-status-values)\n  - [Commands](#commands)\n  - [Home Assistant](#home-assistant)\n- [Optional Messaging](#optional-messaging)\n  - [Pushover](#pushover)\n  - [WebUI-Logger](#webui-logger)\n  - [Telnet](#telnet)\n- [Optional Components](#optional-components)\n  - [node-red](#node-red)\n  - [grafana](#grafana)\n\n-----\n\n# Overview\n\nThe heart of the project is the reverse engineered Buderus interface, that is based on the 3964R Protocol.  \nThe main code is based on the work of **Michael Mayer** who has set a really good base for the communication.\nIt has been extended with the possibility not only to read values, but also to write some common values to the Logamatic.\n\nThe software has multi language support and there is already german, and english texts available. It is also possible to add more languages.\n\nFeel free to add more languages. The texts are located in: **[language.h](include/language.h)** and **[lang.js](web/js/lang.js)**\n\n## additional and optional Oilcounter / Oil Meter\n\nThe project includes also an additional and optional oilcounter implementation. I have installed a Braun HZ-5 Meter to measure the oil consumption.  \nThere are different models with (HZ 5R, HZ 5DR) and without pulse output (HZ 5).  \nI have used the normal one without pulse output and modified it with a small reed contact - that works fine and was simple to install.\n\n-----\n\n# Hardware\n\n## Option 1 - Board from the78mole\n\nthe easiest, smartest and even cheapest option is the DIY Interface that was build by Daniel Glaser. Big thanks for his engagement in this Topic!  \nYou can find more information here: \u003chttps://github.com/the78mole/km271-wifi\u003e  \nYou can order it here: \u003chttps://www.tindie.com/products/24664/\u003e  \n\nIn this case you only need this DIY interface and nothing more.\nIt includes the RS232/TTL Adapter and also an ESP32.  \n\n![KM217_mod](/Doc/KM271-WiFi.png)\n\n\n## Option 2 - ESP32 with original Buderus KM271\n\nThe other option is, to use the original Buderus KM271 Module that has a serial interface (RS232).\nIn combination with a RS232 TTL Adapter (MAX3232) it can be connected to the TX/RX Port of the ESP.\n\nLogamatic R2107 =\u003e KM271 =\u003e RS232/TTL Adapter =\u003e ESP\n\nExample configuration:\n\n```text\n(ESP32)GPIO17/TXD2  -\u003e (MAX3232)TXD -\u003e (serial cable) -\u003e (KM271-SUBD)PIN2:RXD\n(ESP32)GPIO16/RXD2 \u003c- (MAX3232)RXD \u003c- (serial cable) \u003c- (KM271-SUBD)PIN3:TXD\n(ESP32)GND \u003c-\u003e (MAX3232)GND \u003c-\u003e (serial cable) \u003c-\u003e (KM271-SUBD)PIN5:GND\n```\n\n![km271_orig](/Doc/esp32_with_km271.jpeg)\n\n## Optional: Ethernet Module W5500\n\n### Option 1 - single W5500 board\n\nIt is also possible to connect a W5500 Ethernet module to the Board or a generic ESP32. For the KM271 Board´s from Daniel you can connect the W5500 to the J7 Connector of the Board.\n\n\u003e [!IMPORTANT]\n\u003e The connection cable should be as short as possible (approx 10cm)\n\nBoard \u003e= 0.0.6\n\n| Signal | GPIO          | Pin (J7) |\n|--------|---------------|----------|\n| VCC    |               | J7.2     |\n| GND    |               | J7.10    |\n| CLK    |  18           | J7.9     |\n| MOSI   |  23           | J7.7     |\n| MISO   |  19           | J7.5     |\n| CS     |  15           | J7.3     |\n| INT    |  14           | J7.8     |\n| RST    |  13           | J7.6     |\n\n\nExample for generic ESP32-Mini\n\n| Signal| GPIO |\n|-------|------|\n| CLK   | 18   |\n| MOSI  | 23   |\n| MISO  | 19   |\n| CS    | 5    |\n| INT   | 16   |\n| RST   | 17   |\n\n![W5500](/Doc/w5500.png)\n\n### Option 2 - Board from the78mole\n\nThere is also an expansion module in the pipeline that fits perfectly on the KM271 WiFi board.  \n\nhttps://www.tindie.com/products/the78mole/km271-wifi-ethernet-extension\n\n![W5500-Extention](/Doc/w5500_extention.png)\n\n## Optional: Hardware Oil Meter\n\nThe software is also prepared to connect an Oil Meter. A well-known manufacturer of oil meters is Braun with the models HZ-5 or HZ6.\nThese are already available with a potential-free contact.  \nI have used one without potential-free contact and have subsequently attached a reed contact. This was also very simple and works very reliably.\n\n![braun_hz5](/Doc/oilmeter.jpeg)\n\n\u003e [!NOTE] \n\u003e but this is only optional and can be used additionally to the Information´s that the software will read from the Logamatic.\n\n\n## Optional: OneWire Sensor\n\nYou can also configure additional OneWire Sensors (e.g. DS18B20). In the configuration you can setup one or two sensors.\nThe Sensor value will shown on the Dashboard and will also be send by mqtt with Topic `sensor` and the name that you can configure.\nDepending on the hardware used, an additional resistor may need to be installed. Classically, the OneWire sensors are connected with a resistor of 4.7kOhm between VCC and the sensor cable and operated with 3.3V - 5V.\nOnly the GPIO to which the sensor cable is connected is specified in the configuration. The rest is hardware-dependent wiring.\n\n\u003e [!NOTE] \n\u003e The sensor must be connected when the ESP is started, otherwise it will not be found. Changes to the cabling or the GPIO settings require a restart.\n\n\n\u003cimg src=\"Doc/opt_sensor_dash.png\" alt=\"opt-sensor-dash1\" width=\"75%\"\u003e\n\n(dashboard controls)\n\n\u003cimg src=\"Doc/opt_sensor_cfg.png\" alt=\"opt-sensor-config\" width=\"75%\"\u003e\n\n(settings)\n\n\u003e [!NOTE] \n\u003e but this is only optional and can be used additionally to the Information´s that the software will read from the Logamatic.\n\n## Optional: Exhaust Sensor\n\nIt is also possible to connect a optional exhaust sensor (NTC 100K) to the Connector J5 of the Board. In some cases you have to add some missing components to the Board.\n\n\n| Component | Value        |\n|-----------|--------------|\n| D5        | BZX84C5V1    |\n| R17       | 3.3K         |\n| R11       | 100K         |\n| C11       | 100nF        |\n| C12       | 33nF         |\n| R35       | 0            |\n| R39       | 0            |\n \nThere is no need to configure the sensor in the software. The logamatic itself will automatically detect the sensor and send the value similar to the other values.\n\n![exhaust-sens](/Doc/exhaust_sens.png)\n\n-----\n\n# Getting started\n\n## Platform-IO\n\nThe software is created with [Visual Studio Code](https://code.visualstudio.com) and the [PlatformIO-Plugin](https://platformio.org).  \nAfter installing the software you can clone the project from GitHub or you can download it as zip and open it in PlatformIO.\nThen adapt the `upload_port` and corresponding settings in `platformio.ini` to your USB-to-serial Adapter and upload the code to the ESP.\n\n\u003e [!NOTE]\n\u003e Python must also be installed in order to fully compile the project. The scripts folder contains, for instance, scripts for creating the web pages that are called when the project is compiled.\n\n## ESP-Flash-Tool\n\nIn the releases, you can find also the binary of the Software. If you don´t want to use PlatformIO, you can also use the `buderus_km271_esp32_flash_vx.x.x.bin` file and flash it directly on the ESP. This bin-file is already a merge with bootloader.bin, partitions.bin and the application.bin. You can flash this image an the ESP at address 0x00.  \n\n**Windows**  \nThere are several tools available to flash binaries to the ESP.  \nOne of them is [espressif-flash-download-tool](https://www.espressif.com/en/support/download/other-tools)\n\n**macOS/Linux**  \nfor Mac it is hard to find a tool with a graphical UI, but you can simple use the esptool.py:\n\n1. open Terminal\n2. install esptool: `pip install esptool`  \n3. optional get the install path: `which esptool.py`  \n4. set path: `export PATH=\"$PATH:/\u003cpath\u003e/esptool.py\"` (\u003c- change \u003cpath\u003e with result from 3.)\n5. goto path where the bin file is located\n6. get Device String: `ls /dev/tty* | grep usb` (use this in next Step for \u003cUPLOAD-PORT\u003e)\n7. upload: `esptool.py -p \u003cUPLOAD-PORT\u003e write_flash 0x00 buderus_km271_esp32_flash_vx.x.x.bin`  \n\n## OTA-Updates\n\n### local Web OTA-Update\n\nThe first option is, to download the ota Update File from the latest release at GitHub.\nAfter you have downloaded this to your computer, you can perform a update with the embedded WebUI OTA-Update.\nYou can find the update function in the \"Tools\" Tab of the WebUI.\n\n![ota-1](Doc/tools.png)\n\n### GitHub OTA-Update\n\nsince Version 5.3.0 it is also possible to update the controller directly in the WebUI without downloading the .bin file before.\nIf you click on the Version info on the bottom left, a dialog will open. If there is a new version available, you can directly initiate the update here. It will then automatically download and install the latest release from github!\n\n![ota-2](Doc/github_ota.gif)\n\n### PlatformIO OTA-Update\n\nBut it is also possible to download the software wireless with platformio.\nYou only have to change the `upload_port` settings in `platformio.ini`\n\nThere are two predefined Options:\n\n- OPTION 1: direct cable upload\n- OPTION 2: wireless OTA Update\n\n## Setup Mode\n\nThere is a \"Setup Mode\" available. The \"Setup Mode\" is activated, when you press the \"reset-button\" of the ESP two times within 3 Seconds.\nThe \"Setup Mode\" will also activated if there is no (initial or wrong) wifi connection configured.\n\nIf the ESP goes into \"Setup Mode\", it will automatically create a own network access point with ssid  \n📶 `\"ESP-Buderus-KM271\"`  \nAfter you are connected to this network, you can open the webUI on ip-address  \n**\"http://192.168.4.1\"**\n\n## Configuration\n\nHere you can setup all the configuration that fits to your heating system and your infrastructure.\n\n- **WiFi**  \nenter your WiFi credentials to connect the ESP to your network\n\n- **Ethernet W5500**  \nuse Ethernet connection based on W5500 to connect the ESP to your network\n\n- **Authentication**  \nyou can activate the authentication feature and configure user and password.\n\n- **NTP Server**  \nthe ESP can connect to a NTP server to get the right Time information.\nThe default Time-Zone should fit if you are located in germany. Otherwise you can change it manually\n\n- **Date and Time**  \nHere you can write a new Date and Time to the Logamatic heating system. (manual or actual NTP-Server time)\n\n- **MQTT**  \nhere you can activate the MQTT communication and enter mandatory parameters\n\n- **Pushover**  \nParameters for Pushover notifications.  \n(API-Token and User-Key)  \nYou can also send a test message here.\n\n- **Logamatic**  \nhere you can select, which components of your Logamatic should be used.\n\n- **GPIO**  \nHere you can configure the GPIO of your ESP-Board. You can use the options in the dropdown to get default values depending of the selected type of board.\n\n- **Oil Meter**  \nhere you can enable the optional hardware or virtual Oil Meter.\nIf you use a hardware based Oil Meter, you have to configure also to regarding gpio´s.\nIf you want to calculate the consumption based on the runtime, you have to configure the additional calculation parameters.\n\n- **optional sensors**  \nActivation and configuration of optional DS18B20\n\n- **Simulation**  \nActivate Simulation-Mode to generate Logamatic values for testing purposes\n\n- **Language**  \nThere are two languages available. Choose what you prefer.\n\n\u003e [!NOTE]\n\u003e All settings are automatically saved when changes are made\n\n![weubui-settings](Doc/weubui_setting.png)\n\n## Filemanager\n\nthere is also a builtin file manager to open (show), download (export) and upload (import) the configuration file.\nThe configuration is stored in the ```config.json``` file. To backup and restore the configuration you can download and upload this file.\n\n![filemanager](/Doc/tools.png)\n\n-----\n\n# MQTT\n\n\u003e [!NOTE]\n\u003e You can set a separate language for the mqtt topics in the mqtt settings that is independent of the webUI language.\n\n## Config and Status values\n\nThe Software handles different kind of values:\n\n### config values (read only)\n\nthis are config values from the Logamatic. The values are read at startup or if you change them at the Logamatic. The payload of the values are integer or float.\n\nConfig values as single topics (see list in [param.txt](Doc/param.txt))\n\n```text\nexample:\nTopic: esp_heizung/config/frost_protection_threshold\nPayload:   -1.00 °C     (String)\n```\n\n### status values (read only)\n\nthis values will mostly change during runtime and will automatically send if changed. The payload of the values is a String.\n\nStatus values as single topics (see list in [param.txt](Doc/param.txt))\n\n```text\nexample:\nTopic: esp_heizung/status/hc1_ov1_automatic\nPayload:   1    (integer)\n```\n\n### additional information's (read only)\n\nstatus information about WiFi:\n\n```text\nTopic: esp_heizung/wifi = {  \n    \"status\":\"online\",  \n    \"rssi\":\"-50\",  \n    \"signal\":\"90\",  \n    \"ip\":\"192.168.1.1\",  \n    \"date-time\":\"01.01.2022 - 10:20:30\"  \n}\n```\n\ndebug information:\n\n```text\nTopic: esp_heizung/info = {  \n    \"logmode\":true,\n    \"send_cmd_busy\":false,\n    \"date-time\":\"01.01.2022 - 10:20:30\"  \n}\n```\n\n### alarm messages (read only)\n\nhere you get the information about the last 4 Errors/Faults that are registered by the Logamatic. The payload of the values is a String.\n\n\u003e [!NOTE]\n\u003eA complete List of supported values can be found in the **[param.txt](Doc/param.txt)**\n\nyou can also change the mqtt topics for your needs by editing: **[language.h](include/language.h)**\n\n## Commands\n\nTo change the values of your Logamatic, you can use several `setvalue` commands from the list below.\nA complete Topic could be `esp_heizung/setvalue/setdatetime`\n\n**You can control the Logamatic with commands like this:**\n\n```text\ncommand:    restart ESP\ntopic:      {cmd/restart\", cmd/restart\"}\npayload:    none\n\ncommand:    Service interface - only for Experts - use at your own risk!!!\ntopic:      {cmd/service\", cmd/service\"}\npayload:    8 hex values separated with \"_\" (example: 08_15_04_65_65_65_65_65)\n\ncommand:    debug function - on/off\ntopic:      {cmd/debug\", cmd/debug\"}\npayload:    0/1\n\ncommand:    debug function - set Filter\ntopic:      {cmd/setdebugflt\", cmd/setdebugflt\"}\npayload:    11 hex values separated with \"_\" (example: 08_15_XX_XX_XX_XX_XX_XX_XX_XX_XX)\n\ncommand:    debug function - get Filter\ntopic:      {cmd/getdebugflt\", cmd/getdebugflt\"}\npayload:    none (return value at message topic)\n\ncommand:    set date \u0026 time of Logamatic\ntopic:      {\"setvalue/setdatetime\", setvalue/setdatetime\"}\npayload:    none\n\ncommand:    set oilcounter to given value\ntopic:      {\"setvalue/oilcounter\", setvalue/oilcounter\"}\npayload:    counter value including decimals (123,45L = 1234) \n\ncommand:    heating circuit 1: operation mode \ntopic:      {\"setvalue/hk1_betriebsart\", setvalue/hc1_operation_mode\"}\npayload:    0=night / 1=day / 2=auto  \n\ncommand:    heating circuit 2: operation mode \ntopic:      {\"setvalue/hk2_betriebsart\", setvalue/hc2_operation_mode\"}\npayload:    (0=night / 1=day / 2=auto)\n\ncommand:    heating circuit 1: program\ntopic:      {\"setvalue/hk1_programm\", setvalue/hc1_program\"}\npayload:    (0=custom / 1=family / 2=early / 3=late / 4=AM / 5=PM / 6=noon / 7=single / 8=senior)\n\ncommand:    heating circuit 2: program\ntopic:      {\"setvalue/hk2_programm\", setvalue/hc2_program\"}\npayload:    (0=custom / 1=family / 2=early / 3=late / 4=AM / 5=PM / 6=noon / 7=single / 8=senior)\n\ncommand:    heating circuit 1: design temperature for heating curves\ntopic:      {\"setvalue/hk1_auslegung\", setvalue/hc1_interpretation\"}\npayload:    Resolution: 1 [°C] - Range: 30 ... 90 [°C]\n\ncommand:    heating circuit 2: design temperature for heating curves\ntopic:      {\"setvalue/hk2_auslegung\", setvalue/hc2_interpretation\"}\npayload:    Resolution: 1 [°C] - Range: 30 ... 90 [°C]\n\ncommand:    heating circuit 1: switch on temperature\ntopic:      {\"setvalue/hk1_aufschalttemperatur\", setvalue/hc1_switch_on_temperature\"}\npayload:    Resolution: 1 [°C] - Range: 0 ... +10 [°C]\n\ncommand:    heating circuit 2: switch on temperature\ntopic:      {\"setvalue/hk1_aufschalttemperatur\", setvalue/hc1_switch_on_temperature\"}\npayload:    Resolution: 1 [°C] - Range: 0 ... +10 [°C]\n\ncommand:    heating circuit 1: switch off threshold for reduction mode\ntopic:      {\"setvalue/hk1_aussenhalt_ab\", setvalue/hc1_switch_off_threshold\"}\npayload:    Resolution: 1 [°C] - Range: -20 ... +10 [°C]\n\ncommand:    heating circuit 2: switch off threshold for reduction mode\ntopic:      {\"setvalue/hk2_aussenhalt_ab\", setvalue/hc2_switch_off_threshold\"}\npayload:    Resolution: 1 [°C] - Range: -20 ... +10 [°C]\n\ncommand:    heating circuit 1: day temperature setpoint\ntopic:      {\"setvalue/hk1_tagtemperatur\", \"setvalue/hc1_day_temp\"}\npayload:    Resolution: 0.5 [°C] - Range: 10 .. 30 [°C] \n\ncommand:    heating circuit 2: day temperature setpoint\ntopic:      {\"setvalue/hk2_tagtemperatur\", \"setvalue/hc2_day_temp\"}\npayload:    Resolution: 0.5 [°C] - Range: 10 .. 30 [°C] \n\ncommand:    heating circuit 1: night temperature setpoint\ntopic:      {\"setvalue/hk1_nachttemperatur\", setvalue/hc1_night_temp\"}\npayload:    Resolution: 0.5 [°C] - Range: 10 .. 30 [°C] \n\ncommand:    heating circuit 2: night temperature setpoint\ntopic:      {\"setvalue/hk2_nachttemperatur\", setvalue/hc2_night_temp\"}\npayload:    Resolution: 0.5 [°C] - Range: 10 .. 30 [°C] \n\ncommand:    heating circuit 1: holiday temperature setpoint\ntopic:      {\"setvalue/hk1_urlaubtemperatur\", setvalue/hc1_holiday_temp\"}\npayload:    Resolution: 0.5 [°C] - Range: 10 .. 30 [°C] \n\ncommand:    heating circuit 2: holiday temperature setpoint\ntopic:      {\"setvalue/hk2_urlaubtemperatur\", setvalue/hc2_holiday_temp\"}\npayload:    Resolution: 0.5 [°C] - Range: 10 .. 30 [°C] \n\ncommand:    warm water: operation mode\ntopic:      {\"setvalue/ww_betriebsart\", setvalue/ww_operation_mode\"}\npayload:    0=night / 1=day / 2=auto\n\ncommand:    heating circuit 1: summer mode threshold Temperature\ntopic:      {\"setvalue/hk1_sommer_ab\", setvalue/hc1_summer_mode_threshold\"}\npayload:    Resolution: 1 [°C] - Range: 9:Summer | 10°..30° | 31:Winter\n\ncommand:    heating circuit 2: summer mode threshold Temperature\ntopic:      {\"setvalue/hk2_sommer_ab\", setvalue/hc2_summer_mode_threshold\"}\npayload:    Resolution: 1 [°C] - Range: 9:Summer | 10°..30° | 31:Winter\n\ncommand:    heating circuit 1: frost mode threshold Temperature\ntopic:      {\"setvalue/HK1_Frost_ab\", \"setvalue/hc1_frost_protection_threshold\"}\npayload:    Resolution: 1 [°C] - Range: -20 ... +10 [°C]\n\ncommand:    heating circuit 2: frost mode threshold Temperature\ntopic:      {\"setvalue/HK2_Frost_ab\", \"setvalue/hc2_frost_protection_threshold\"}\npayload:    Resolution: 1 [°C] - Range: -20 ... +10 [°C]\n\ncommand:    warm water: setpoint temperature\ntopic:      {\"setvalue/ww_temperatur\", setvalue/ww_temp\"}\npayload:    Resolution: 1 [°C] - Range: 30 ... 60 [°C]\n\ncommand:    heating circuit 1: count of days for holiday mode (Logamatic will decrement every day by one)\ntopic:      {\"setvalue/HK1_Ferien_Tage\", \"setvalue/hc1_holiday_days\"}\npayload:    count of days 0 .. 99\n\ncommand:    heating circuit 2: count of days for holiday mode (Logamatic will decrement every day by one)\ntopic:      {\"setvalue/HK2_Ferien_Tage\", \"setvalue/hc2_holiday_days\"}\npayload:    count of days 0 .. 99\n\ncommand:    warm water pump cycles\ntopic:      {\"setvalue/ww_zirkulation\", setvalue/ww_circulation\"}\npayload:    Resolution: 1 [cycles/hour] - Range: 0:OFF | 1..6 | 7:ON\n\ncommand:    heating circuit 1: reduction mode\ntopic:      {\"setvalue/hk1_absenkungsart\", setvalue/hc1_reduction_mode\"}\npayload:    Number 0..3 (Abschalt,Reduziert,Raumhalt,Aussenhalt) / {off,fixed,room,outdoors)\n\ncommand:    heating circuit 2: reduction mode\ntopic:      {\"setvalue/hk2_absenkungsart\", setvalue/hc2_reduction_mode\"}\npayload:    Number 0..3 (Abschalt,Reduziert,Raumhalt,Aussenhalt) / {off,fixed,room,outdoors)\n\n```\n\n## Home Assistant\n\nMQTT discovery for Home Assistant makes it easy to get all values in Home Assistant.\nThe Logamatic values will automatically visible as mqtt device in Home Assistant.\nThe config values and the status values are displayed. Some config values can also be changed as in the WebUI.\n\nsee also the official documentation: https://www.home-assistant.io/integrations/mqtt/#discovery-messages\n\n\u003cimg src=\"Doc/mqtt_ha_1.png\" alt=\"mqtt_ha1\" width=\"75%\"\u003e \u003cimg src=\"Doc/mqtt_ha_2.png\" alt=\"mqtt_ha2\" width=\"40%\"\u003e\n\nIn the mqtt settings you can activate the discovery function and also set the mqtt discovery topic and the device name for Home Assistant  \n\u003cimg src=\"Doc/mqtt_ha_3.png\" alt=\"mqtt_ha1\" width=\"50%\"\u003e\n\n-----\n\n# Optional Messaging\n\nin addition to mqtt there are more options for notification.\n\n## Pushover\n\nIn addition there is also a custom notification as Pushover client.\nDepending on the parameter \"Filter\", you can define what kind of messages you want to receive.\nIn the settings you can find all necessary parameters to setup the client.\n\nEach application, service, or utility that sends notifications through Pushover's API needs to have its own API token which uniquely identifies all of the API requests that it makes.\nAPI tokens are free and can be registered through [Pushover website](https://pushover.net/apps/build).\n\n\u003cimg src=\"./Doc/pushover.png\" width=\"75%\"\u003e\n\n## WebUI-Logger\n\nThere is also a log function with which you can record various messages depending on the filter and display them via the WebUI. This can be useful for your own debugging and also for the further development of the software.\n\n\u003cimg src=\"./Doc/logger.png\" width=\"75%\"\u003e\n\n## Telnet\n\nIn addition to the WebUI and MQTT, there is also a Telnet interface to communicate with the ESP.\nThe interface offers several commands to read out information and send commands.\nAn overview of the commands can be called up using the \"help\" command.\nTo connect, a simple Telnet connection can be started via the corresponding IP address of the ESP.\n\nExample: \n```\n\u003e telnet 192.168.178.135\n```\n\n\u003cimg src=\"./Doc/telnet.png\" width=\"75%\"\u003e\n\n-----\n\n# Optional Components\n\n## node-red\n\nI´m writing all information's that are transmitted over MQTT into a influxDB Database.  \nIn my case I'm using [node-red](https://nodered.org/) to receive the MQTT messages and to write it into the [influxDB](https://www.influxdata.com/m).  \nEverything runs in Docker on my Synology NAS.  \nBut there are a lot of other possibilities - use the one that fits you best.\n\n![node-red](/Doc/node-red.png)\n\nIf you are interested in my flows, you can use this export file:\n[node-red.json](/Doc/node-red.json)\n\n## grafana\n\nTo visualize the information's, I'm using [grafana](https://grafana.com) that gets the data out of the influxDB.  \nFor me this gets me more possibilities to analyze the behavior of the heating system compared to a static dashboard.  \n\nHere are some impressions of what I did with all the information's that comes out of the Logamatic:\n\n![grafana1](/Doc/grafana1.png)\n![grafana2](/Doc/grafana2.png)\n![grafana3](/Doc/grafana3.png)\n\nIf you are interested my dashboard, you can use this export file:\n[grafana.json](/Doc/grafana.json)\n\n\u003e [!NOTE]\n\u003e It is based on InfluxDB 2.0 with query languange \"Flux\" and uses the german mqtt topics! If you setup your system the same way, it should be more or less a plug and play solution to import my grafana.json\n\n-----\n\n# ❗️ use at own risk ❗️\n\n**feel free to use and adopt to your needs!**\n\n**If you have something to improve, let us all know about you ideas!**\n\n❓ If you have a question, use the [Discussions](https://github.com/dewenni/ESP_Buderus_KM271/discussions)  \n🐞 If there is a issue or bug, use the [Issues](https://github.com/dewenni/ESP_Buderus_KM271/issues)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdewenni%2Fesp_buderus_km271","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdewenni%2Fesp_buderus_km271","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdewenni%2Fesp_buderus_km271/lists"}