merge with upstream/dev

This commit is contained in:
MichaelDvP
2020-01-12 13:50:57 +01:00
5 changed files with 33 additions and 40 deletions

View File

@@ -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 @@
<br />
[![gitter](https://img.shields.io/gitter/room/EMS-ESP/EMS-ESP.svg)](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
| ![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) |
| - | - | - |

View File

@@ -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

View File

@@ -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>

View File

@@ -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;

View File

@@ -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);