mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-08 08:49:52 +03:00
merge of Yves' "Added retrieving settings (0xA5)" feature
This commit is contained in:
@@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- MQTT publish messages are queued and gracefully published every second to avoid TCP blocks
|
- MQTT publish messages are queued and gracefully published every second to avoid TCP blocks
|
||||||
- Added features to WW messages (0x33, 0x34) to improve WW monitoring. (PR#338 by @ypaindaveine)
|
- Added features to WW messages (0x33, 0x34) to improve WW monitoring. (PR#338 by @ypaindaveine)
|
||||||
- Added mixing log and stub for EMS type 0xAC (PR#338 by @ypaindaveine)
|
- Added mixing log and stub for EMS type 0xAC (PR#338 by @ypaindaveine)
|
||||||
|
- Added Thermostat retrieving settings (0xA5) (validated on RC30N) with MQTT support (thanks Yves @ypaindaveine. See #352)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- set boiler warm water temp on Junkers/Bosch HT3
|
- set boiler warm water temp on Junkers/Bosch HT3
|
||||||
|
|||||||
@@ -476,7 +476,7 @@ void showInfo() {
|
|||||||
_renderIntValue("Offset int. temperature", "K", EMS_Thermostat.ibaCalIntTemperature, 10); // offset int. temperature sensor, by * 0.1 Kelvin
|
_renderIntValue("Offset int. temperature", "K", EMS_Thermostat.ibaCalIntTemperature, 10); // offset int. temperature sensor, by * 0.1 Kelvin
|
||||||
}
|
}
|
||||||
if (EMS_Thermostat.ibaMinExtTemperature != EMS_VALUE_SHORT_NOTSET) {
|
if (EMS_Thermostat.ibaMinExtTemperature != EMS_VALUE_SHORT_NOTSET) {
|
||||||
_renderShortValue("Min ext. temperature", "C", EMS_Thermostat.ibaMinExtTemperature, 0); // min ext temp for heating curve, in deg.
|
_renderShortValue("Min ext. temperature", "C", EMS_Thermostat.ibaMinExtTemperature, 0); // min ext temp for heating curve, in deg.
|
||||||
}
|
}
|
||||||
if (EMS_Thermostat.ibaBuildingType != EMS_VALUE_INT_NOTSET) {
|
if (EMS_Thermostat.ibaBuildingType != EMS_VALUE_INT_NOTSET) {
|
||||||
if (EMS_Thermostat.ibaBuildingType == EMS_VALUE_IBASettings_BUILDING_LIGHT) {
|
if (EMS_Thermostat.ibaBuildingType == EMS_VALUE_IBASettings_BUILDING_LIGHT) {
|
||||||
@@ -488,7 +488,7 @@ void showInfo() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (EMS_Thermostat.ibaClockOffset != EMS_VALUE_INT_NOTSET) {
|
if (EMS_Thermostat.ibaClockOffset != EMS_VALUE_INT_NOTSET) {
|
||||||
_renderIntValue("Offset clock", "s", EMS_Thermostat.ibaClockOffset); // offset (in sec) to clock, 0xff = -1 s, 0x02 = 2 s
|
_renderIntValue("Offset clock", "s", EMS_Thermostat.ibaClockOffset); // offset (in sec) to clock, 0xff = -1 s, 0x02 = 2 s
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t _m_setpoint, _m_curr;
|
uint8_t _m_setpoint, _m_curr;
|
||||||
@@ -1011,10 +1011,10 @@ bool publishEMSValues_settings() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (EMS_Thermostat.ibaCalIntTemperature != EMS_VALUE_INT_NOTSET) {
|
if (EMS_Thermostat.ibaCalIntTemperature != EMS_VALUE_INT_NOTSET) {
|
||||||
rootSettings["CalIntTemperature"] = (float)EMS_Thermostat.ibaCalIntTemperature / 10; // offset int. temperature sensor, by * 0.1 Kelvin
|
rootSettings["CalIntTemperature"] = (float)EMS_Thermostat.ibaCalIntTemperature / 10; // offset int. temperature sensor, by * 0.1 Kelvin
|
||||||
}
|
}
|
||||||
if (EMS_Thermostat.ibaMinExtTemperature != EMS_VALUE_SHORT_NOTSET) {
|
if (EMS_Thermostat.ibaMinExtTemperature != EMS_VALUE_SHORT_NOTSET) {
|
||||||
rootSettings["MinExtTemperature"] = EMS_Thermostat.ibaMinExtTemperature; // min ext temp for heating curve, in deg., 0xF6=-10, 0x0 = 0, 0xFF=-1
|
rootSettings["MinExtTemperature"] = EMS_Thermostat.ibaMinExtTemperature; // min ext temp for heating curve, in deg., 0xF6=-10, 0x0 = 0, 0xFF=-1
|
||||||
}
|
}
|
||||||
if (EMS_Thermostat.ibaBuildingType != EMS_VALUE_INT_NOTSET) {
|
if (EMS_Thermostat.ibaBuildingType != EMS_VALUE_INT_NOTSET) {
|
||||||
if (EMS_Thermostat.ibaBuildingType == EMS_VALUE_IBASettings_BUILDING_LIGHT) {
|
if (EMS_Thermostat.ibaBuildingType == EMS_VALUE_IBASettings_BUILDING_LIGHT) {
|
||||||
@@ -1026,7 +1026,7 @@ bool publishEMSValues_settings() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (EMS_Thermostat.ibaClockOffset != EMS_VALUE_INT_NOTSET) {
|
if (EMS_Thermostat.ibaClockOffset != EMS_VALUE_INT_NOTSET) {
|
||||||
rootSettings["clockOffset"] = EMS_Thermostat.ibaClockOffset; // offset (in sec) to clock, 0xff = -1 s, 0x02 = 2 s
|
rootSettings["clockOffset"] = EMS_Thermostat.ibaClockOffset; // offset (in sec) to clock, 0xff = -1 s, 0x02 = 2 s
|
||||||
}
|
}
|
||||||
return (myESP.mqttPublish(TOPIC_SETTINGS_DATA, doc));
|
return (myESP.mqttPublish(TOPIC_SETTINGS_DATA, doc));
|
||||||
}
|
}
|
||||||
@@ -2130,7 +2130,7 @@ void MQTTCallback(unsigned int type, const char * topic, const char * message) {
|
|||||||
}
|
}
|
||||||
uint8_t t = atoi((char *)data);
|
uint8_t t = atoi((char *)data);
|
||||||
if (t) {
|
if (t) {
|
||||||
ems_setSettingsDisplay(t-1);
|
ems_setSettingsDisplay(t - 1);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
96
src/ems.cpp
96
src/ems.cpp
@@ -104,12 +104,13 @@ void ems_init() {
|
|||||||
EMS_Thermostat.write_supported = false;
|
EMS_Thermostat.write_supported = false;
|
||||||
EMS_Thermostat.device_id = EMS_ID_NONE;
|
EMS_Thermostat.device_id = EMS_ID_NONE;
|
||||||
// settings
|
// settings
|
||||||
EMS_Thermostat.ibaMainDisplay = EMS_VALUE_INT_NOTSET; // display on Thermostat: 0 int. temp, 1 int. setpoint, 2 ext. temp., 3 boiler temp., 4 ww temp, 5 functioning mode, 6 time, 7 data, 9 smoke temp
|
EMS_Thermostat.ibaMainDisplay =
|
||||||
EMS_Thermostat.ibaLanguage = EMS_VALUE_INT_NOTSET; // language on Thermostat: 0 german, 1 dutch, 2 french, 3 italian
|
EMS_VALUE_INT_NOTSET; // display on Thermostat: 0 int. temp, 1 int. setpoint, 2 ext. temp., 3 boiler temp., 4 ww temp, 5 functioning mode, 6 time, 7 data, 9 smoke temp
|
||||||
EMS_Thermostat.ibaCalIntTemperature = EMS_VALUE_INT_NOTSET; // offset int. temperature sensor, by * 0.1 Kelvin
|
EMS_Thermostat.ibaLanguage = EMS_VALUE_INT_NOTSET; // language on Thermostat: 0 german, 1 dutch, 2 french, 3 italian
|
||||||
EMS_Thermostat.ibaMinExtTemperature = EMS_VALUE_SHORT_NOTSET; // min ext temp for heating curve, in deg., 0xF6=-10, 0x0 = 0, 0xFF=-1
|
EMS_Thermostat.ibaCalIntTemperature = EMS_VALUE_INT_NOTSET; // offset int. temperature sensor, by * 0.1 Kelvin
|
||||||
EMS_Thermostat.ibaBuildingType = EMS_VALUE_INT_NOTSET; // building type: 0 = light, 1 = medium, 2 = heavy
|
EMS_Thermostat.ibaMinExtTemperature = EMS_VALUE_SHORT_NOTSET; // min ext temp for heating curve, in deg., 0xF6=-10, 0x0 = 0, 0xFF=-1
|
||||||
EMS_Thermostat.ibaClockOffset = EMS_VALUE_INT_NOTSET; // offset (in sec) to clock, 0xff = -1 s, 0x02 = 2 s
|
EMS_Thermostat.ibaBuildingType = EMS_VALUE_INT_NOTSET; // building type: 0 = light, 1 = medium, 2 = heavy
|
||||||
|
EMS_Thermostat.ibaClockOffset = EMS_VALUE_INT_NOTSET; // offset (in sec) to clock, 0xff = -1 s, 0x02 = 2 s
|
||||||
|
|
||||||
// init all heating circuits
|
// init all heating circuits
|
||||||
for (uint8_t i = 0; i < EMS_THERMOSTAT_MAXHC; i++) {
|
for (uint8_t i = 0; i < EMS_THERMOSTAT_MAXHC; i++) {
|
||||||
@@ -960,7 +961,6 @@ void _checkActive() {
|
|||||||
if (EMS_Boiler.selFlowTemp != EMS_VALUE_INT_NOTSET && EMS_Boiler.burnGas != EMS_VALUE_INT_NOTSET) {
|
if (EMS_Boiler.selFlowTemp != EMS_VALUE_INT_NOTSET && EMS_Boiler.burnGas != EMS_VALUE_INT_NOTSET) {
|
||||||
EMS_Boiler.heatingActive = ((EMS_Boiler.selFlowTemp >= EMS_BOILER_SELFLOWTEMP_HEATING) && (EMS_Boiler.burnGas == EMS_VALUE_BOOL_ON));
|
EMS_Boiler.heatingActive = ((EMS_Boiler.selFlowTemp >= EMS_BOILER_SELFLOWTEMP_HEATING) && (EMS_Boiler.burnGas == EMS_VALUE_BOOL_ON));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1303,18 +1303,20 @@ void _process_IBASettingsMessage(_EMS_RxTelegram * EMS_RxTelegram) {
|
|||||||
// 00 01 02 03 04 05 06 07 08 09 10 11 12
|
// 00 01 02 03 04 05 06 07 08 09 10 11 12
|
||||||
|
|
||||||
// values validated for RC30N
|
// values validated for RC30N
|
||||||
uint8_t extTemp = 100; // Min. ext temperature is coded as int8, 0xF6=-10, 0x0 = 0, 0xFF=-1. 100 is out of permissible range
|
uint8_t extTemp = 100; // Min. ext temperature is coded as int8, 0xF6=-10, 0x0 = 0, 0xFF=-1. 100 is out of permissible range
|
||||||
|
|
||||||
_setValue(EMS_RxTelegram, &EMS_Thermostat.ibaMainDisplay, EMS_OFFSET_IBASettings_Display); // display on Thermostat: 0 int. temp, 1 int. setpoint, 2 ext. temp., 3 burner temp., 4 ww temp, 5 functioning mode, 6 time, 7 data, 9 smoke temp
|
_setValue(EMS_RxTelegram,
|
||||||
_setValue(EMS_RxTelegram, &EMS_Thermostat.ibaLanguage, EMS_OFFSET_IBASettings_Language); // language on Thermostat: 0 german, 1 dutch, 2 french, 3 italian
|
&EMS_Thermostat.ibaMainDisplay,
|
||||||
_setValue(EMS_RxTelegram, &EMS_Thermostat.ibaBuildingType, EMS_OFFSET_IBASettings_Building); // building type: 0 = light, 1 = medium, 2 = heavy
|
EMS_OFFSET_IBASettings_Display); // display on Thermostat: 0 int. temp, 1 int. setpoint, 2 ext. temp., 3 burner temp., 4 ww temp, 5 functioning mode, 6 time, 7 data, 9 smoke temp
|
||||||
|
_setValue(EMS_RxTelegram, &EMS_Thermostat.ibaLanguage, EMS_OFFSET_IBASettings_Language); // language on Thermostat: 0 german, 1 dutch, 2 french, 3 italian
|
||||||
|
_setValue(EMS_RxTelegram, &EMS_Thermostat.ibaBuildingType, EMS_OFFSET_IBASettings_Building); // building type: 0 = light, 1 = medium, 2 = heavy
|
||||||
_setValue(EMS_RxTelegram, &EMS_Thermostat.ibaCalIntTemperature, EMS_OFFSET_IBASettings_CalIntTemp); // offset int. temperature sensor, by * 0.1 Kelvin
|
_setValue(EMS_RxTelegram, &EMS_Thermostat.ibaCalIntTemperature, EMS_OFFSET_IBASettings_CalIntTemp); // offset int. temperature sensor, by * 0.1 Kelvin
|
||||||
_setValue(EMS_RxTelegram, &extTemp, EMS_OFFSET_IBASettings_MinExtTemp); // min ext temp for heating curve, in deg., 0xF6=-10, 0x0 = 0, 0xFF=-1
|
_setValue(EMS_RxTelegram, &extTemp, EMS_OFFSET_IBASettings_MinExtTemp); // min ext temp for heating curve, in deg., 0xF6=-10, 0x0 = 0, 0xFF=-1
|
||||||
if (extTemp != 100) {
|
if (extTemp != 100) {
|
||||||
// code as signed short, to benefit from negative value rendering
|
// code as signed short, to benefit from negative value rendering
|
||||||
EMS_Thermostat.ibaMinExtTemperature = (int16_t)(extTemp > 127) ? (extTemp-256) : extTemp;
|
EMS_Thermostat.ibaMinExtTemperature = (int16_t)(extTemp > 127) ? (extTemp - 256) : extTemp;
|
||||||
}
|
}
|
||||||
_setValue(EMS_RxTelegram, &EMS_Thermostat.ibaClockOffset, EMS_OFFSET_IBASettings_ClockOffset); // offset (in sec) to clock, 0xff = -1 s, 0x02 = 2 s
|
_setValue(EMS_RxTelegram, &EMS_Thermostat.ibaClockOffset, EMS_OFFSET_IBASettings_ClockOffset); // offset (in sec) to clock, 0xff = -1 s, 0x02 = 2 s
|
||||||
|
|
||||||
// publish settings to mqtt (assuming this is a very low frequency message), done in publishEMSValues_settings()
|
// publish settings to mqtt (assuming this is a very low frequency message), done in publishEMSValues_settings()
|
||||||
ems_Device_add_flags(EMS_DEVICE_UPDATE_FLAG_SETTINGS);
|
ems_Device_add_flags(EMS_DEVICE_UPDATE_FLAG_SETTINGS);
|
||||||
@@ -2814,16 +2816,16 @@ void ems_setSettingsLanguage(uint8_t lg) {
|
|||||||
EMS_TxTelegram.timestamp = millis(); // set timestamp
|
EMS_TxTelegram.timestamp = millis(); // set timestamp
|
||||||
EMS_Sys_Status.txRetryCount = 0; // reset retry counter
|
EMS_Sys_Status.txRetryCount = 0; // reset retry counter
|
||||||
|
|
||||||
switch(lg) {
|
switch (lg) {
|
||||||
case EMS_VALUE_IBASettings_LANG_FRENCH:
|
case EMS_VALUE_IBASettings_LANG_FRENCH:
|
||||||
case EMS_VALUE_IBASettings_LANG_GERMAN:
|
case EMS_VALUE_IBASettings_LANG_GERMAN:
|
||||||
case EMS_VALUE_IBASettings_LANG_DUTCH:
|
case EMS_VALUE_IBASettings_LANG_DUTCH:
|
||||||
case EMS_VALUE_IBASettings_LANG_ITALIAN:
|
case EMS_VALUE_IBASettings_LANG_ITALIAN:
|
||||||
myDebug_P(PSTR("Setting language to %d"),lg);
|
myDebug_P(PSTR("Setting language to %d"), lg);
|
||||||
EMS_TxTelegram.dataValue = lg;
|
EMS_TxTelegram.dataValue = lg;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return; // invalid value
|
return; // invalid value
|
||||||
}
|
}
|
||||||
|
|
||||||
EMS_TxTelegram.action = EMS_TX_TELEGRAM_WRITE;
|
EMS_TxTelegram.action = EMS_TX_TELEGRAM_WRITE;
|
||||||
@@ -2845,15 +2847,15 @@ void ems_setSettingsBuilding(uint8_t bg) {
|
|||||||
EMS_TxTelegram.timestamp = millis(); // set timestamp
|
EMS_TxTelegram.timestamp = millis(); // set timestamp
|
||||||
EMS_Sys_Status.txRetryCount = 0; // reset retry counter
|
EMS_Sys_Status.txRetryCount = 0; // reset retry counter
|
||||||
|
|
||||||
switch(bg) {
|
switch (bg) {
|
||||||
case EMS_VALUE_IBASettings_BUILDING_LIGHT:
|
case EMS_VALUE_IBASettings_BUILDING_LIGHT:
|
||||||
case EMS_VALUE_IBASettings_BUILDING_MEDIUM:
|
case EMS_VALUE_IBASettings_BUILDING_MEDIUM:
|
||||||
case EMS_VALUE_IBASettings_BUILDING_HEAVY:
|
case EMS_VALUE_IBASettings_BUILDING_HEAVY:
|
||||||
myDebug_P(PSTR("Setting building to %d"),bg);
|
myDebug_P(PSTR("Setting building to %d"), bg);
|
||||||
EMS_TxTelegram.dataValue = bg;
|
EMS_TxTelegram.dataValue = bg;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return; // invalid value
|
return; // invalid value
|
||||||
}
|
}
|
||||||
|
|
||||||
EMS_TxTelegram.action = EMS_TX_TELEGRAM_WRITE;
|
EMS_TxTelegram.action = EMS_TX_TELEGRAM_WRITE;
|
||||||
@@ -2875,21 +2877,21 @@ void ems_setSettingsDisplay(uint8_t ds) {
|
|||||||
EMS_TxTelegram.timestamp = millis(); // set timestamp
|
EMS_TxTelegram.timestamp = millis(); // set timestamp
|
||||||
EMS_Sys_Status.txRetryCount = 0; // reset retry counter
|
EMS_Sys_Status.txRetryCount = 0; // reset retry counter
|
||||||
|
|
||||||
switch(ds) {
|
switch (ds) {
|
||||||
case EMS_VALUE_IBASettings_DISPLAY_INTTEMP:
|
case EMS_VALUE_IBASettings_DISPLAY_INTTEMP:
|
||||||
case EMS_VALUE_IBASettings_DISPLAY_INTSETPOINT:
|
case EMS_VALUE_IBASettings_DISPLAY_INTSETPOINT:
|
||||||
case EMS_VALUE_IBASettings_DISPLAY_EXTTEMP:
|
case EMS_VALUE_IBASettings_DISPLAY_EXTTEMP:
|
||||||
case EMS_VALUE_IBASettings_DISPLAY_BURNERTEMP:
|
case EMS_VALUE_IBASettings_DISPLAY_BURNERTEMP:
|
||||||
case EMS_VALUE_IBASettings_DISPLAY_WWTEMP:
|
case EMS_VALUE_IBASettings_DISPLAY_WWTEMP:
|
||||||
case EMS_VALUE_IBASettings_DISPLAY_FUNCMODE:
|
case EMS_VALUE_IBASettings_DISPLAY_FUNCMODE:
|
||||||
case EMS_VALUE_IBASettings_DISPLAY_TIME:
|
case EMS_VALUE_IBASettings_DISPLAY_TIME:
|
||||||
case EMS_VALUE_IBASettings_DISPLAY_DATE:
|
case EMS_VALUE_IBASettings_DISPLAY_DATE:
|
||||||
case EMS_VALUE_IBASettings_DISPLAY_SMOKETEMP:
|
case EMS_VALUE_IBASettings_DISPLAY_SMOKETEMP:
|
||||||
myDebug_P(PSTR("Setting display to %d"),ds);
|
myDebug_P(PSTR("Setting display to %d"), ds);
|
||||||
EMS_TxTelegram.dataValue = ds;
|
EMS_TxTelegram.dataValue = ds;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return; // invalid value
|
return; // invalid value
|
||||||
}
|
}
|
||||||
|
|
||||||
EMS_TxTelegram.action = EMS_TX_TELEGRAM_WRITE;
|
EMS_TxTelegram.action = EMS_TX_TELEGRAM_WRITE;
|
||||||
|
|||||||
26
src/ems.h
26
src/ems.h
@@ -424,21 +424,21 @@ typedef struct {
|
|||||||
|
|
||||||
// Thermostat data
|
// Thermostat data
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t device_id; // the device ID of the thermostat
|
uint8_t device_id; // the device ID of the thermostat
|
||||||
uint8_t device_flags; // thermostat model flags
|
uint8_t device_flags; // thermostat model flags
|
||||||
const char * device_desc_p;
|
const char * device_desc_p;
|
||||||
uint8_t product_id;
|
uint8_t product_id;
|
||||||
char version[10];
|
char version[10];
|
||||||
char datetime[25]; // HH:MM:SS DD/MM/YYYY
|
char datetime[25]; // HH:MM:SS DD/MM/YYYY
|
||||||
bool write_supported;
|
bool write_supported;
|
||||||
|
|
||||||
// Installation parameters (tested on RC30)
|
// Installation parameters (tested on RC30)
|
||||||
uint8_t ibaMainDisplay; // 00, display on Thermostat: 0 int. temp, 1 int. setpoint, 2 ext. temp., 3 burner temp., 4 ww temp, 5 functioning mode, 6 time, 7 data, 9 smoke temp
|
uint8_t ibaMainDisplay; // 00, display on Thermostat: 0 int. temp, 1 int. setpoint, 2 ext. temp., 3 burner temp., 4 ww temp, 5 functioning mode, 6 time, 7 data, 9 smoke temp
|
||||||
uint8_t ibaLanguage; // 01, language on Thermostat: 0 german, 1 dutch, 2 french, 3 italian
|
uint8_t ibaLanguage; // 01, language on Thermostat: 0 german, 1 dutch, 2 french, 3 italian
|
||||||
uint8_t ibaCalIntTemperature; // 02, offset int. temperature sensor, by * 0.1 Kelvin
|
uint8_t ibaCalIntTemperature; // 02, offset int. temperature sensor, by * 0.1 Kelvin
|
||||||
int16_t ibaMinExtTemperature; // 05, min ext temp for heating curve, in deg., 0xF6=-10, 0x0 = 0, 0xFF=-1 (actually a int8_t, coded as int16_t to benefit from negative value rendering)
|
int16_t ibaMinExtTemperature; // 05, min ext temp for heating curve, in deg., 0xF6=-10, 0x0 = 0, 0xFF=-1 (actually a int8_t, coded as int16_t to benefit from negative value rendering)
|
||||||
uint8_t ibaBuildingType; // 06, building type: 0 = light, 1 = medium, 2 = heavy
|
uint8_t ibaBuildingType; // 06, building type: 0 = light, 1 = medium, 2 = heavy
|
||||||
uint8_t ibaClockOffset; // 12, offset (in sec) to clock, 0xff = -1 s, 0x02 = 2 s
|
uint8_t ibaClockOffset; // 12, offset (in sec) to clock, 0xff = -1 s, 0x02 = 2 s
|
||||||
|
|
||||||
_EMS_Thermostat_HC hc[EMS_THERMOSTAT_MAXHC]; // array for the 4 heating circuits
|
_EMS_Thermostat_HC hc[EMS_THERMOSTAT_MAXHC]; // array for the 4 heating circuits
|
||||||
} _EMS_Thermostat;
|
} _EMS_Thermostat;
|
||||||
|
|||||||
@@ -53,13 +53,13 @@
|
|||||||
#define EMS_OFFSET_UBASetPoints_flowtemp 0 // flow temp
|
#define EMS_OFFSET_UBASetPoints_flowtemp 0 // flow temp
|
||||||
|
|
||||||
// Installation settings
|
// Installation settings
|
||||||
#define EMS_TYPE_IBASettingsMessage 0xA5 // installation settings
|
#define EMS_TYPE_IBASettingsMessage 0xA5 // installation settings
|
||||||
#define EMS_OFFSET_IBASettings_Display 0 // display
|
#define EMS_OFFSET_IBASettings_Display 0 // display
|
||||||
#define EMS_OFFSET_IBASettings_Language 1 // language
|
#define EMS_OFFSET_IBASettings_Language 1 // language
|
||||||
#define EMS_OFFSET_IBASettings_MinExtTemp 5 // min. ext. temperature
|
#define EMS_OFFSET_IBASettings_MinExtTemp 5 // min. ext. temperature
|
||||||
#define EMS_OFFSET_IBASettings_Building 6 // building
|
#define EMS_OFFSET_IBASettings_Building 6 // building
|
||||||
#define EMS_OFFSET_IBASettings_CalIntTemp 2 // cal. int. temperature
|
#define EMS_OFFSET_IBASettings_CalIntTemp 2 // cal. int. temperature
|
||||||
#define EMS_OFFSET_IBASettings_ClockOffset 12 // clock offset
|
#define EMS_OFFSET_IBASettings_ClockOffset 12 // clock offset
|
||||||
|
|
||||||
#define EMS_VALUE_IBASettings_LANG_GERMAN 0
|
#define EMS_VALUE_IBASettings_LANG_GERMAN 0
|
||||||
#define EMS_VALUE_IBASettings_LANG_DUTCH 1
|
#define EMS_VALUE_IBASettings_LANG_DUTCH 1
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
#define APP_VERSION "1.9.5b57"
|
#define APP_VERSION "1.9.5b58"
|
||||||
|
|||||||
Reference in New Issue
Block a user