mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 00:09:51 +03:00
merge with upstream/dev
This commit is contained in:
46
README.md
46
README.md
@@ -1,4 +1,4 @@
|
||||

|
||||

|
||||
|
||||
[](https://github.com/proddy/EMS-ESP/blob/master/CHANGELOG.md)
|
||||
[](https://github.com/proddy/EMS-ESP/commits/master)
|
||||
@@ -10,42 +10,28 @@
|
||||
<br />
|
||||
[](https://gitter.im/EMS-ESP/community)
|
||||
<br>
|
||||
-------------
|
||||
|
||||
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
|
||||
|
||||
|  |  |
|
||||
| -------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
|
||||
#### MQTT support for Home Assistant and Domoticz
|
||||
|
||||

|
||||
|
||||
#### Telnet for advanced configuration and verbose traffic logging
|
||||
|
||||
|  |  |
|
||||
| ------------------------------------------------------------ | -------------------------------------------------------- |
|
||||
|
||||
## 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**
|
||||
|  |  |
|
||||
| - | - |
|
||||

|
||||
|
||||
All firmware versions fully support BBQKees' [EMS Gateway](https://bbqkees-electronics.nl/) board with integrated Wemos D1 ESP8266.
|
||||
|  |  |
|
||||
| - | - |
|
||||
|
||||
|  |  |  |
|
||||
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- |
|
||||
|  |  |  |
|
||||
| - | - | - |
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#ifndef MyESP_h
|
||||
#define MyESP_h
|
||||
|
||||
#define MYESP_VERSION "1.2.23"
|
||||
#define MYESP_VERSION "1.2.24"
|
||||
|
||||
#include <ArduinoJson.h>
|
||||
#include <ArduinoOTA.h>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user