diff --git a/README.md b/README.md index ad79ab171..774b1a468 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![logo](docs/_media/logo/EMS-ESP_logo_dark.png) +![logo](https://emsesp.github.io/docs/_media/logo/EMS-ESP_logo_dark.png) [![version](https://img.shields.io/github/release/proddy/EMS-ESP.svg?label=Latest%20Release)](https://github.com/proddy/EMS-ESP/blob/master/CHANGELOG.md) [![release-date](https://img.shields.io/github/release-date/proddy/EMS-ESP.svg?label=Released)](https://github.com/proddy/EMS-ESP/commits/master) @@ -10,42 +10,28 @@
[![gitter](https://img.shields.io/gitter/room/EMS-ESP/EMS-ESP.svg)](https://gitter.im/EMS-ESP/community)
-------------- -EMS-ESP is a open-source system to communicate with **EMS** (Energy Management System) based boilers, thermostats and other modules from manufacturers like Bosch, Buderus, Nefit, Junkers and Sieger. - -The code is written for the Espressif **ESP8266** microcontroller and supports a telnet console for real-time monitoring and configuration and customizable MQTT support for publishing the information to a home automation system such as Home Assistant or Domoticz. - -#### Please reference the [Wiki](https://emsesp.github.io/docs) for further details and instructions on how to build and configure the firmware. - ---- +EMS-ESP is a open-source system built for the Espressif ESP8266 microcontroller to communicate with **EMS** (Energy Management System) based boilers, thermostats and other modules from manufacturers like Bosch, Buderus, Nefit, Junkers and Sieger. ## Features -#### A web interface for easy configuration and real-time monitoring of the EMS bus - -| ![web menu](docs/_media/web/system_status.PNG) | ![web menu](docs/_media/web/ems_dashboard.PNG) | -| -------------------------------------------------------- | ---------------------------------------------------------- | - -#### MQTT support for Home Assistant and Domoticz - -![ha](docs/_media/home%20assistant/ha.png) - -#### Telnet for advanced configuration and verbose traffic logging - -| ![telnet menu](docs/_media/telnet/telnet_menu.jpg) | ![telnet menu](docs/_media/telnet/telnet_stats.PNG) | -| ------------------------------------------------------------ | -------------------------------------------------------- | - -## Supported EMS devices - -More than **50** EMS 1.0 and 2.0 devices are currently supported. See the [complete list](https://proddy.github.io/EMS-ESP/#/Supported-EMS-Devices). +* Supporting more than [50 EMS devices](https://proddy.github.io/EMS-ESP/#/Supported-EMS-Devices) (EMS 1.0, 2.0 and Heatronics). +* A web interface for easy configuration and real-time monitoring of the EMS bus. +* Telnet for advanced configuration and verbose traffic logging. +* Configurable MQTT, with templates for Home Assistant and Domoticz. +* Includes an simple schematic for a test breadboard interface board. +* Native compatibility with bbqkees' [EMS Gateway](https://bbqkees-electronics.nl/) interface board. +Please reference the [Wiki](https://emsesp.github.io/docs) for further details and instructions on how to build and configure the firmware. --- -## Native compatibility with bbqkees' **EMS Gateway** +| ![web menu](https://emsesp.github.io/docs/_media/web/system_status.PNG) | ![web menu](https://emsesp.github.io/docs/_media/web/ems_dashboard.PNG) | +| - | - | +![ha](https://emsesp.github.io/docs/_media/home%20assistant/ha.png) -All firmware versions fully support BBQKees' [EMS Gateway](https://bbqkees-electronics.nl/) board with integrated Wemos D1 ESP8266. +| ![telnet menu](https://emsesp.github.io/docs/_media/telnet/telnet_menu.jpg) | ![telnet menu](https://emsesp.github.io/docs/_media/telnet/telnet_stats.PNG) | +| - | - | -| ![on boiler](docs/_media/ems%20gateway/on-boiler.jpg) | ![kit](docs/_media/ems%20gateway/ems-kit-2.jpg) | ![basic circuit](docs/_media/ems%20gateway/ems-board-white.jpg) | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | +| ![on boiler](https://emsesp.github.io/docs/_media/ems%20gateway/on-boiler.jpg) | ![kit](https://emsesp.github.io/docs/_media/ems%20gateway/ems-kit-2.jpg) | ![basic circuit](https://emsesp.github.io/docs/_media/ems%20gateway/ems-board-white.jpg) | +| - | - | - | diff --git a/src/MyESP.cpp b/src/MyESP.cpp index 8ce0e816d..98ae302c7 100644 --- a/src/MyESP.cpp +++ b/src/MyESP.cpp @@ -452,7 +452,7 @@ void MyESP::_mqttOnConnect() { mqttPublish(MQTT_TOPIC_START, MQTT_TOPIC_START_PAYLOAD, false); // send heartbeat if enabled - _heartbeatCheck(); + _heartbeatCheck(true); // call custom function to handle mqtt receives (_mqtt_callback_f)(MQTT_CONNECT_EVENT, nullptr, nullptr); @@ -1455,11 +1455,6 @@ void MyESP::_heartbeatCheck(bool force) { if ((millis() - last_heartbeat > MYESP_HEARTBEAT_INTERVAL) || force) { last_heartbeat = millis(); - // print to log if force is set, so at bootup - if (force) { - _printHeap("[SYSTEM]"); - } - #ifdef MYESP_DEBUG _printHeap("[HEARTBEAT] "); #endif @@ -1467,6 +1462,11 @@ void MyESP::_heartbeatCheck(bool force) { return; } + // print to log if force is set + if (force) { + _printHeap("[SYSTEM]"); + } + uint32_t total_memory = _getInitialFreeHeap(); uint32_t free_memory = ESP.getFreeHeap(); uint8_t mem_available = 100 * free_memory / total_memory; // as a % @@ -2870,7 +2870,6 @@ void MyESP::begin(const char * app_hostname, const char * app_name, const char * _webserver_setup(); // init web server _setSystemCheck(false); // reset system check - _heartbeatCheck(true); // force heartbeat, will send out message to log too _setSystemDropoutCounter(0); // reset # TCP dropouts diff --git a/src/MyESP.h b/src/MyESP.h index fb6a98570..d6df5ccc1 100644 --- a/src/MyESP.h +++ b/src/MyESP.h @@ -9,7 +9,7 @@ #ifndef MyESP_h #define MyESP_h -#define MYESP_VERSION "1.2.23" +#define MYESP_VERSION "1.2.24" #include #include diff --git a/src/ems-esp.cpp b/src/ems-esp.cpp index 9068152df..0032ad4bf 100644 --- a/src/ems-esp.cpp +++ b/src/ems-esp.cpp @@ -778,7 +778,11 @@ void publishEMSValues(bool force) { strlcat(hc, _int_to_char(s, mixing->hc), sizeof(hc)); JsonObject dataMixing = rootMixing.createNestedObject(hc); +<<<<<<< HEAD if (mixing->flowTemp > EMS_VALUE_SHORT_NOTSET) +======= + if (mixing->flowTemp != EMS_VALUE_USHORT_NOTSET) +>>>>>>> upstream/dev dataMixing["flowTemp"] = (float)mixing->flowTemp / 10; if (mixing->flowSetTemp != EMS_VALUE_INT_NOTSET) dataMixing["setflowTemp"] = mixing->flowSetTemp; diff --git a/src/ems.cpp b/src/ems.cpp index 959bb29aa..e42de13fb 100644 --- a/src/ems.cpp +++ b/src/ems.cpp @@ -1258,7 +1258,7 @@ void _process_EasyStatusMessage(_EMS_RxTelegram * EMS_RxTelegram) { _setValue(EMS_RxTelegram, &EMS_Thermostat.hc[hc].setpoint_roomTemp, EMS_OFFSET_EasyStatusMessage_setpoint); // is * 100 } -// 0x01D7, 0x01D8 +// Mixer - 0x01D7, 0x01D8 void _process_MMPLUSStatusMessage(_EMS_RxTelegram * EMS_RxTelegram) { uint8_t hc = (EMS_RxTelegram->type - EMS_TYPE_MMPLUSStatusMessage_HC1); // 0 to 3 if (hc >= EMS_THERMOSTAT_MAXHC) { @@ -1271,9 +1271,13 @@ void _process_MMPLUSStatusMessage(_EMS_RxTelegram * EMS_RxTelegram) { _setValue(EMS_RxTelegram, &EMS_Mixing.hc[hc].valveStatus, EMS_OFFSET_MMPLUSStatusMessage_valve_status); } -// 0xAB +// Mixer - 0xAB void _process_MMStatusMessage(_EMS_RxTelegram * EMS_RxTelegram) { +<<<<<<< HEAD uint8_t hc = 1; // fixed, for 0xAB +======= + uint8_t hc = 0; // fixed, for 0xAB (HC1 only +>>>>>>> upstream/dev EMS_Mixing.hc[hc].active = true; _setValue(EMS_RxTelegram, &EMS_Mixing.hc[hc].flowTemp, EMS_OFFSET_MMStatusMessage_flow_temp);