mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 08:19:52 +03:00
change command for WW-OneTime
This commit is contained in:
@@ -302,6 +302,7 @@ void showInfo() {
|
|||||||
|
|
||||||
_renderIntValue("Warm Water selected temperature", "C", EMS_Boiler.wWSelTemp);
|
_renderIntValue("Warm Water selected temperature", "C", EMS_Boiler.wWSelTemp);
|
||||||
_renderIntValue("Warm Water desinfection temperature", "C", EMS_Boiler.wWDesinfectTemp);
|
_renderIntValue("Warm Water desinfection temperature", "C", EMS_Boiler.wWDesinfectTemp);
|
||||||
|
_renderBoolValue("Warm Water Circulation active",EMS_Boiler.wWCirc);
|
||||||
|
|
||||||
// UBAMonitorWWMessage
|
// UBAMonitorWWMessage
|
||||||
_renderUShortValue("Warm Water current temperature", "C", EMS_Boiler.wWCurTmp);
|
_renderUShortValue("Warm Water current temperature", "C", EMS_Boiler.wWCurTmp);
|
||||||
@@ -340,7 +341,7 @@ void showInfo() {
|
|||||||
_renderIntValue("Boiler circuit pump modulation min power", "%", EMS_Boiler.pump_mod_min);
|
_renderIntValue("Boiler circuit pump modulation min power", "%", EMS_Boiler.pump_mod_min);
|
||||||
|
|
||||||
// UBAMonitorSlow
|
// UBAMonitorSlow
|
||||||
if (EMS_Boiler.extTemp != EMS_VALUE_SHORT_NOTSET) {
|
if (EMS_Boiler.extTemp > EMS_VALUE_SHORT_NOTSET) {
|
||||||
_renderShortValue("Outside temperature", "C", EMS_Boiler.extTemp);
|
_renderShortValue("Outside temperature", "C", EMS_Boiler.extTemp);
|
||||||
}
|
}
|
||||||
_renderUShortValue("Boiler temperature", "C", EMS_Boiler.boilTemp);
|
_renderUShortValue("Boiler temperature", "C", EMS_Boiler.boilTemp);
|
||||||
@@ -445,7 +446,7 @@ void showInfo() {
|
|||||||
_renderIntValue(" Night temperature", "C", EMS_Thermostat.hc[hc_num - 1].nighttemp, 2); // convert to a single byte * 2
|
_renderIntValue(" Night temperature", "C", EMS_Thermostat.hc[hc_num - 1].nighttemp, 2); // convert to a single byte * 2
|
||||||
_renderIntValue(" Vacation temperature", "C", EMS_Thermostat.hc[hc_num - 1].holidaytemp, 2); // convert to a single byte * 2
|
_renderIntValue(" Vacation temperature", "C", EMS_Thermostat.hc[hc_num - 1].holidaytemp, 2); // convert to a single byte * 2
|
||||||
}
|
}
|
||||||
if (EMS_Thermostat.hc[hc_num - 1].circuitcalctemp != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_Thermostat.hc[hc_num - 1].circuitcalctemp < EMS_VALUE_USHORT_NOTSET)
|
||||||
_renderIntValue(" Calculatet flow temperature", "C",EMS_Thermostat.hc[hc_num - 1].circuitcalctemp);
|
_renderIntValue(" Calculatet flow temperature", "C",EMS_Thermostat.hc[hc_num - 1].circuitcalctemp);
|
||||||
|
|
||||||
// Render Thermostat Mode
|
// Render Thermostat Mode
|
||||||
@@ -479,13 +480,13 @@ void showInfo() {
|
|||||||
myDebug_P(PSTR("")); // newline
|
myDebug_P(PSTR("")); // newline
|
||||||
myDebug_P(PSTR("%sMixing module stats:%s"), COLOR_BOLD_ON, COLOR_BOLD_OFF);
|
myDebug_P(PSTR("%sMixing module stats:%s"), COLOR_BOLD_ON, COLOR_BOLD_OFF);
|
||||||
myDebug_P(PSTR(" Mixing: %s"), ems_getDeviceDescription(EMS_DEVICE_TYPE_MIXING, buffer_type,false));
|
myDebug_P(PSTR(" Mixing: %s"), ems_getDeviceDescription(EMS_DEVICE_TYPE_MIXING, buffer_type,false));
|
||||||
//if (EMS_Boiler.switchTemp != EMS_VALUE_SHORT_NOTSET)
|
//if (EMS_Boiler.switchTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
_renderShortValue("Switch temperature", "C", EMS_Boiler.switchTemp);
|
_renderShortValue("Switch temperature", "C", EMS_Boiler.switchTemp);
|
||||||
|
|
||||||
for (uint8_t hc_num = 1; hc_num <= EMS_THERMOSTAT_MAXHC; hc_num++) {
|
for (uint8_t hc_num = 1; hc_num <= EMS_THERMOSTAT_MAXHC; hc_num++) {
|
||||||
if (EMS_Mixing.hc[hc_num - 1].active) {
|
if (EMS_Mixing.hc[hc_num - 1].active) {
|
||||||
myDebug_P(PSTR(" Mixing Circuit %d"), hc_num);
|
myDebug_P(PSTR(" Mixing Circuit %d"), hc_num);
|
||||||
//if (EMS_Mixing.hc[hc_num - 1].flowTemp != EMS_VALUE_SHORT_NOTSET)
|
//if (EMS_Mixing.hc[hc_num - 1].flowTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
_renderShortValue(" Current flow temperature", "C", EMS_Mixing.hc[hc_num - 1].flowTemp);
|
_renderShortValue(" Current flow temperature", "C", EMS_Mixing.hc[hc_num - 1].flowTemp);
|
||||||
//if (EMS_Mixing.hc[hc_num - 1].flowSetTemp != EMS_VALUE_INT_NOTSET)
|
//if (EMS_Mixing.hc[hc_num - 1].flowSetTemp != EMS_VALUE_INT_NOTSET)
|
||||||
_renderIntValue(" Setpoint flow temperature", "C", EMS_Mixing.hc[hc_num - 1].flowSetTemp);
|
_renderIntValue(" Setpoint flow temperature", "C", EMS_Mixing.hc[hc_num - 1].flowSetTemp);
|
||||||
@@ -588,23 +589,23 @@ void publishEMSValues(bool force) {
|
|||||||
if (EMS_Boiler.wWCircPump != EMS_VALUE_BOOL_NOTSET)
|
if (EMS_Boiler.wWCircPump != EMS_VALUE_BOOL_NOTSET)
|
||||||
rootBoiler["wWCircPump"] = EMS_Boiler.wWCircPump;
|
rootBoiler["wWCircPump"] = EMS_Boiler.wWCircPump;
|
||||||
|
|
||||||
if (EMS_Boiler.extTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_Boiler.extTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
rootBoiler["outdoorTemp"] = (float)EMS_Boiler.extTemp / 10;
|
rootBoiler["outdoorTemp"] = (float)EMS_Boiler.extTemp / 10;
|
||||||
if (EMS_Boiler.wWCurTmp != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_Boiler.wWCurTmp < EMS_VALUE_USHORT_NOTSET)
|
||||||
rootBoiler["wWCurTmp"] = (float)EMS_Boiler.wWCurTmp / 10;
|
rootBoiler["wWCurTmp"] = (float)EMS_Boiler.wWCurTmp / 10;
|
||||||
if (EMS_Boiler.wWCurFlow != EMS_VALUE_INT_NOTSET)
|
if (EMS_Boiler.wWCurFlow != EMS_VALUE_INT_NOTSET)
|
||||||
rootBoiler["wWCurFlow"] = (float)EMS_Boiler.wWCurFlow / 10;
|
rootBoiler["wWCurFlow"] = (float)EMS_Boiler.wWCurFlow / 10;
|
||||||
if (EMS_Boiler.curFlowTemp != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_Boiler.curFlowTemp < EMS_VALUE_USHORT_NOTSET)
|
||||||
rootBoiler["curFlowTemp"] = (float)EMS_Boiler.curFlowTemp / 10;
|
rootBoiler["curFlowTemp"] = (float)EMS_Boiler.curFlowTemp / 10;
|
||||||
if (EMS_Boiler.retTemp != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_Boiler.retTemp < EMS_VALUE_USHORT_NOTSET)
|
||||||
rootBoiler["retTemp"] = (float)EMS_Boiler.retTemp / 10;
|
rootBoiler["retTemp"] = (float)EMS_Boiler.retTemp / 10;
|
||||||
if (EMS_Boiler.switchTemp != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_Boiler.switchTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
rootBoiler["switchTemp"] = (float)EMS_Boiler.switchTemp / 10;
|
rootBoiler["switchTemp"] = (float)EMS_Boiler.switchTemp / 10;
|
||||||
if (EMS_Boiler.sysPress != EMS_VALUE_INT_NOTSET)
|
if (EMS_Boiler.sysPress != EMS_VALUE_INT_NOTSET)
|
||||||
rootBoiler["sysPress"] = (float)EMS_Boiler.sysPress / 10;
|
rootBoiler["sysPress"] = (float)EMS_Boiler.sysPress / 10;
|
||||||
if (EMS_Boiler.boilTemp != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_Boiler.boilTemp < EMS_VALUE_USHORT_NOTSET)
|
||||||
rootBoiler["boilTemp"] = (float)EMS_Boiler.boilTemp / 10;
|
rootBoiler["boilTemp"] = (float)EMS_Boiler.boilTemp / 10;
|
||||||
if (EMS_Boiler.exhaustTemp != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_Boiler.exhaustTemp < EMS_VALUE_USHORT_NOTSET)
|
||||||
rootBoiler["exhaustTemp"] = (float)EMS_Boiler.exhaustTemp / 10;
|
rootBoiler["exhaustTemp"] = (float)EMS_Boiler.exhaustTemp / 10;
|
||||||
if (EMS_Boiler.wWActivated != EMS_VALUE_BOOL_NOTSET)
|
if (EMS_Boiler.wWActivated != EMS_VALUE_BOOL_NOTSET)
|
||||||
rootBoiler["wWActivated"] = _bool_to_char(s, EMS_Boiler.wWActivated);
|
rootBoiler["wWActivated"] = _bool_to_char(s, EMS_Boiler.wWActivated);
|
||||||
@@ -612,10 +613,13 @@ void publishEMSValues(bool force) {
|
|||||||
if (EMS_Boiler.wWActivated != EMS_VALUE_BOOL_NOTSET)
|
if (EMS_Boiler.wWActivated != EMS_VALUE_BOOL_NOTSET)
|
||||||
rootBoiler["wWOnetime"] = _bool_to_char(s, EMS_Boiler.wWOneTime);
|
rootBoiler["wWOnetime"] = _bool_to_char(s, EMS_Boiler.wWOneTime);
|
||||||
|
|
||||||
|
if (EMS_Boiler.wWCirc != EMS_VALUE_BOOL_NOTSET)
|
||||||
|
rootBoiler["wWCirc"] = _bool_to_char(s, EMS_Boiler.wWCirc);
|
||||||
|
|
||||||
if (EMS_Boiler.burnGas != EMS_VALUE_BOOL_NOTSET)
|
if (EMS_Boiler.burnGas != EMS_VALUE_BOOL_NOTSET)
|
||||||
rootBoiler["burnGas"] = _bool_to_char(s, EMS_Boiler.burnGas);
|
rootBoiler["burnGas"] = _bool_to_char(s, EMS_Boiler.burnGas);
|
||||||
|
|
||||||
if (EMS_Boiler.flameCurr != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_Boiler.flameCurr < EMS_VALUE_USHORT_NOTSET)
|
||||||
rootBoiler["flameCurr"] = (float)(int16_t)EMS_Boiler.flameCurr / 10;
|
rootBoiler["flameCurr"] = (float)(int16_t)EMS_Boiler.flameCurr / 10;
|
||||||
|
|
||||||
if (EMS_Boiler.heatPmp != EMS_VALUE_BOOL_NOTSET)
|
if (EMS_Boiler.heatPmp != EMS_VALUE_BOOL_NOTSET)
|
||||||
@@ -627,9 +631,6 @@ void publishEMSValues(bool force) {
|
|||||||
if (EMS_Boiler.ignWork != EMS_VALUE_BOOL_NOTSET)
|
if (EMS_Boiler.ignWork != EMS_VALUE_BOOL_NOTSET)
|
||||||
rootBoiler["ignWork"] = _bool_to_char(s, EMS_Boiler.ignWork);
|
rootBoiler["ignWork"] = _bool_to_char(s, EMS_Boiler.ignWork);
|
||||||
|
|
||||||
if (EMS_Boiler.wWCirc != EMS_VALUE_BOOL_NOTSET)
|
|
||||||
rootBoiler["wWCirc"] = _bool_to_char(s, EMS_Boiler.wWCirc);
|
|
||||||
|
|
||||||
if (EMS_Boiler.heating_temp != EMS_VALUE_INT_NOTSET)
|
if (EMS_Boiler.heating_temp != EMS_VALUE_INT_NOTSET)
|
||||||
rootBoiler["heating_temp"] = EMS_Boiler.heating_temp;
|
rootBoiler["heating_temp"] = EMS_Boiler.heating_temp;
|
||||||
if (EMS_Boiler.pump_mod_max != EMS_VALUE_INT_NOTSET)
|
if (EMS_Boiler.pump_mod_max != EMS_VALUE_INT_NOTSET)
|
||||||
@@ -654,7 +655,7 @@ void publishEMSValues(bool force) {
|
|||||||
if (abs(EMS_Boiler.heatWorkMin) != EMS_VALUE_LONG_NOTSET)
|
if (abs(EMS_Boiler.heatWorkMin) != EMS_VALUE_LONG_NOTSET)
|
||||||
rootBoiler["heatWorkMin"] = (float)EMS_Boiler.heatWorkMin;
|
rootBoiler["heatWorkMin"] = (float)EMS_Boiler.heatWorkMin;
|
||||||
|
|
||||||
if (EMS_Boiler.serviceCode != EMS_VALUE_USHORT_NOTSET) {
|
if (EMS_Boiler.serviceCode < EMS_VALUE_USHORT_NOTSET) {
|
||||||
rootBoiler["ServiceCode"] = EMS_Boiler.serviceCodeChar;
|
rootBoiler["ServiceCode"] = EMS_Boiler.serviceCodeChar;
|
||||||
rootBoiler["ServiceCodeNumber"] = EMS_Boiler.serviceCode;
|
rootBoiler["ServiceCodeNumber"] = EMS_Boiler.serviceCode;
|
||||||
}
|
}
|
||||||
@@ -696,19 +697,19 @@ void publishEMSValues(bool force) {
|
|||||||
|
|
||||||
// different logic depending on thermostat types
|
// different logic depending on thermostat types
|
||||||
if (model == EMS_DEVICE_FLAG_EASY) {
|
if (model == EMS_DEVICE_FLAG_EASY) {
|
||||||
if (thermostat->setpoint_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (thermostat->setpoint_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
dataThermostat[THERMOSTAT_SELTEMP] = (float)thermostat->setpoint_roomTemp / 100;
|
dataThermostat[THERMOSTAT_SELTEMP] = (float)thermostat->setpoint_roomTemp / 100;
|
||||||
if (thermostat->curr_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (thermostat->curr_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
dataThermostat[THERMOSTAT_CURRTEMP] = (float)thermostat->curr_roomTemp / 100;
|
dataThermostat[THERMOSTAT_CURRTEMP] = (float)thermostat->curr_roomTemp / 100;
|
||||||
} else if (model == EMS_DEVICE_FLAG_JUNKERS) {
|
} else if (model == EMS_DEVICE_FLAG_JUNKERS) {
|
||||||
if (thermostat->setpoint_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (thermostat->setpoint_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
dataThermostat[THERMOSTAT_SELTEMP] = (float)thermostat->setpoint_roomTemp / 10;
|
dataThermostat[THERMOSTAT_SELTEMP] = (float)thermostat->setpoint_roomTemp / 10;
|
||||||
if (thermostat->curr_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (thermostat->curr_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
dataThermostat[THERMOSTAT_CURRTEMP] = (float)thermostat->curr_roomTemp / 10;
|
dataThermostat[THERMOSTAT_CURRTEMP] = (float)thermostat->curr_roomTemp / 10;
|
||||||
} else {
|
} else {
|
||||||
if (thermostat->setpoint_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (thermostat->setpoint_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
dataThermostat[THERMOSTAT_SELTEMP] = (float)thermostat->setpoint_roomTemp / 2;
|
dataThermostat[THERMOSTAT_SELTEMP] = (float)thermostat->setpoint_roomTemp / 2;
|
||||||
if (thermostat->curr_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (thermostat->curr_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
dataThermostat[THERMOSTAT_CURRTEMP] = (float)thermostat->curr_roomTemp / 10;
|
dataThermostat[THERMOSTAT_CURRTEMP] = (float)thermostat->curr_roomTemp / 10;
|
||||||
|
|
||||||
if (thermostat->daytemp != EMS_VALUE_INT_NOTSET)
|
if (thermostat->daytemp != EMS_VALUE_INT_NOTSET)
|
||||||
@@ -764,7 +765,7 @@ void publishEMSValues(bool force) {
|
|||||||
strlcat(hc, _int_to_char(s, mixing->hc), sizeof(hc));
|
strlcat(hc, _int_to_char(s, mixing->hc), sizeof(hc));
|
||||||
JsonObject dataMixing = rootMixing.createNestedObject(hc);
|
JsonObject dataMixing = rootMixing.createNestedObject(hc);
|
||||||
|
|
||||||
if (mixing->flowTemp != EMS_VALUE_SHORT_NOTSET)
|
if (mixing->flowTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
dataMixing["flowTemp"] = (float)mixing->flowTemp / 10;
|
dataMixing["flowTemp"] = (float)mixing->flowTemp / 10;
|
||||||
if (mixing->flowSetTemp != EMS_VALUE_INT_NOTSET)
|
if (mixing->flowSetTemp != EMS_VALUE_INT_NOTSET)
|
||||||
dataMixing["setflowTemp"] = mixing->flowSetTemp;
|
dataMixing["setflowTemp"] = mixing->flowSetTemp;
|
||||||
@@ -788,10 +789,10 @@ void publishEMSValues(bool force) {
|
|||||||
doc.clear();
|
doc.clear();
|
||||||
JsonObject rootSM = doc.to<JsonObject>();
|
JsonObject rootSM = doc.to<JsonObject>();
|
||||||
|
|
||||||
if (EMS_SolarModule.collectorTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_SolarModule.collectorTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
rootSM[SM_COLLECTORTEMP] = (float)EMS_SolarModule.collectorTemp / 10;
|
rootSM[SM_COLLECTORTEMP] = (float)EMS_SolarModule.collectorTemp / 10;
|
||||||
|
|
||||||
if (EMS_SolarModule.bottomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_SolarModule.bottomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
rootSM[SM_BOTTOMTEMP] = (float)EMS_SolarModule.bottomTemp / 10;
|
rootSM[SM_BOTTOMTEMP] = (float)EMS_SolarModule.bottomTemp / 10;
|
||||||
|
|
||||||
if (EMS_SolarModule.pumpModulation != EMS_VALUE_INT_NOTSET)
|
if (EMS_SolarModule.pumpModulation != EMS_VALUE_INT_NOTSET)
|
||||||
@@ -805,13 +806,13 @@ void publishEMSValues(bool force) {
|
|||||||
rootSM[SM_PUMPWORKMIN] = (float)EMS_SolarModule.pumpWorkMin;
|
rootSM[SM_PUMPWORKMIN] = (float)EMS_SolarModule.pumpWorkMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EMS_SolarModule.EnergyLastHour != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_SolarModule.EnergyLastHour < EMS_VALUE_USHORT_NOTSET)
|
||||||
rootSM[SM_ENERGYLASTHOUR] = (float)EMS_SolarModule.EnergyLastHour / 10;
|
rootSM[SM_ENERGYLASTHOUR] = (float)EMS_SolarModule.EnergyLastHour / 10;
|
||||||
|
|
||||||
if (EMS_SolarModule.EnergyToday != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_SolarModule.EnergyToday < EMS_VALUE_USHORT_NOTSET)
|
||||||
rootSM[SM_ENERGYTODAY] = EMS_SolarModule.EnergyToday;
|
rootSM[SM_ENERGYTODAY] = EMS_SolarModule.EnergyToday;
|
||||||
|
|
||||||
if (EMS_SolarModule.EnergyTotal != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_SolarModule.EnergyTotal < EMS_VALUE_USHORT_NOTSET)
|
||||||
rootSM[SM_ENERGYTOTAL] = (float)EMS_SolarModule.EnergyTotal / 10;
|
rootSM[SM_ENERGYTOTAL] = (float)EMS_SolarModule.EnergyTotal / 10;
|
||||||
|
|
||||||
data[0] = '\0'; // reset data for next package
|
data[0] = '\0'; // reset data for next package
|
||||||
@@ -1694,24 +1695,24 @@ void WebCallback(JsonObject root) {
|
|||||||
char buffer[200];
|
char buffer[200];
|
||||||
thermostat["tm"] = ems_getDeviceDescription(EMS_DEVICE_TYPE_THERMOSTAT, buffer, true);
|
thermostat["tm"] = ems_getDeviceDescription(EMS_DEVICE_TYPE_THERMOSTAT, buffer, true);
|
||||||
|
|
||||||
uint8_t hc_num = EMS_THERMOSTAT_DEFAULTHC; // default to HC1
|
uint8_t hc_num = 1; // default to HC1
|
||||||
uint8_t model = ems_getThermostatModel();
|
uint8_t model = ems_getThermostatModel();
|
||||||
|
while (hc_num <= EMS_THERMOSTAT_MAXHC && !EMS_Thermostat.hc[hc_num - 1].active) hc_num++;
|
||||||
// Render Current & Setpoint Room Temperature
|
// Render Current & Setpoint Room Temperature
|
||||||
if (model == EMS_DEVICE_FLAG_EASY) {
|
if (model == EMS_DEVICE_FLAG_EASY) {
|
||||||
if (EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
thermostat["ts"] = (float)EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp / 100;
|
thermostat["ts"] = (float)EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp / 100;
|
||||||
if (EMS_Thermostat.hc[hc_num - 1].curr_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_Thermostat.hc[hc_num - 1].curr_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
thermostat["tc"] = (float)EMS_Thermostat.hc[hc_num - 1].curr_roomTemp / 100;
|
thermostat["tc"] = (float)EMS_Thermostat.hc[hc_num - 1].curr_roomTemp / 100;
|
||||||
} else if (model == EMS_DEVICE_FLAG_JUNKERS) {
|
} else if (model == EMS_DEVICE_FLAG_JUNKERS) {
|
||||||
if (EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
thermostat["ts"] = (float)EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp / 10;
|
thermostat["ts"] = (float)EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp / 10;
|
||||||
if (EMS_Thermostat.hc[hc_num - 1].curr_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_Thermostat.hc[hc_num - 1].curr_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
thermostat["tc"] = (float)EMS_Thermostat.hc[hc_num - 1].curr_roomTemp / 10;
|
thermostat["tc"] = (float)EMS_Thermostat.hc[hc_num - 1].curr_roomTemp / 10;
|
||||||
} else {
|
} else {
|
||||||
if (EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
thermostat["ts"] = (float)EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp / 2;
|
thermostat["ts"] = (float)EMS_Thermostat.hc[hc_num - 1].setpoint_roomTemp / 2;
|
||||||
if (EMS_Thermostat.hc[hc_num - 1].curr_roomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_Thermostat.hc[hc_num - 1].curr_roomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
thermostat["tc"] = (float)EMS_Thermostat.hc[hc_num - 1].curr_roomTemp / 10;
|
thermostat["tc"] = (float)EMS_Thermostat.hc[hc_num - 1].curr_roomTemp / 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1744,10 +1745,10 @@ void WebCallback(JsonObject root) {
|
|||||||
if (EMS_Boiler.curFlowTemp != EMS_VALUE_INT_NOTSET)
|
if (EMS_Boiler.curFlowTemp != EMS_VALUE_INT_NOTSET)
|
||||||
boiler["b4"] = EMS_Boiler.curFlowTemp / 10;
|
boiler["b4"] = EMS_Boiler.curFlowTemp / 10;
|
||||||
|
|
||||||
if (EMS_Boiler.boilTemp != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_Boiler.boilTemp < EMS_VALUE_USHORT_NOTSET)
|
||||||
boiler["b5"] = (float)EMS_Boiler.boilTemp / 10;
|
boiler["b5"] = (float)EMS_Boiler.boilTemp / 10;
|
||||||
|
|
||||||
if (EMS_Boiler.retTemp != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_Boiler.retTemp < EMS_VALUE_USHORT_NOTSET)
|
||||||
boiler["b6"] = (float)EMS_Boiler.retTemp / 10;
|
boiler["b6"] = (float)EMS_Boiler.retTemp / 10;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@@ -1762,10 +1763,10 @@ void WebCallback(JsonObject root) {
|
|||||||
char buffer[200];
|
char buffer[200];
|
||||||
sm["sm"] = ems_getDeviceDescription(EMS_DEVICE_TYPE_SOLAR, buffer, true);
|
sm["sm"] = ems_getDeviceDescription(EMS_DEVICE_TYPE_SOLAR, buffer, true);
|
||||||
|
|
||||||
if (EMS_SolarModule.collectorTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_SolarModule.collectorTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
sm["sm1"] = (float)EMS_SolarModule.collectorTemp / 10; // Collector temperature oC
|
sm["sm1"] = (float)EMS_SolarModule.collectorTemp / 10; // Collector temperature oC
|
||||||
|
|
||||||
if (EMS_SolarModule.bottomTemp != EMS_VALUE_SHORT_NOTSET)
|
if (EMS_SolarModule.bottomTemp > EMS_VALUE_SHORT_NOTSET)
|
||||||
sm["sm2"] = (float)EMS_SolarModule.bottomTemp / 10; // Bottom temperature oC
|
sm["sm2"] = (float)EMS_SolarModule.bottomTemp / 10; // Bottom temperature oC
|
||||||
|
|
||||||
if (EMS_SolarModule.pumpModulation != EMS_VALUE_INT_NOTSET)
|
if (EMS_SolarModule.pumpModulation != EMS_VALUE_INT_NOTSET)
|
||||||
@@ -1776,13 +1777,13 @@ void WebCallback(JsonObject root) {
|
|||||||
sm["sm4"] = _bool_to_char(s, EMS_SolarModule.pump); // Pump active on/off
|
sm["sm4"] = _bool_to_char(s, EMS_SolarModule.pump); // Pump active on/off
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EMS_SolarModule.EnergyLastHour != EMS_VALUE_USHORT_NOTSET)
|
if (EMS_SolarModule.EnergyLastHour < EMS_VALUE_USHORT_NOTSET)
|
||||||
sm["sm5"] = (float)EMS_SolarModule.EnergyLastHour / 10; // Energy last hour Wh
|
sm["sm5"] = (float)EMS_SolarModule.EnergyLastHour / 10; // Energy last hour Wh
|
||||||
|
|
||||||
if (EMS_SolarModule.EnergyToday != EMS_VALUE_USHORT_NOTSET) // Energy today Wh
|
if (EMS_SolarModule.EnergyToday < EMS_VALUE_USHORT_NOTSET) // Energy today Wh
|
||||||
sm["sm6"] = EMS_SolarModule.EnergyToday;
|
sm["sm6"] = EMS_SolarModule.EnergyToday;
|
||||||
|
|
||||||
if (EMS_SolarModule.EnergyTotal != EMS_VALUE_USHORT_NOTSET) // Energy total KWh
|
if (EMS_SolarModule.EnergyTotal < EMS_VALUE_USHORT_NOTSET) // Energy total KWh
|
||||||
sm["sm7"] = (float)EMS_SolarModule.EnergyTotal / 10;
|
sm["sm7"] = (float)EMS_SolarModule.EnergyTotal / 10;
|
||||||
} else {
|
} else {
|
||||||
sm["ok"] = false;
|
sm["ok"] = false;
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ void ems_init() {
|
|||||||
// init all mixing modules
|
// init all mixing modules
|
||||||
for (uint8_t i = 0; i < EMS_THERMOSTAT_MAXHC; i++) {
|
for (uint8_t i = 0; i < EMS_THERMOSTAT_MAXHC; i++) {
|
||||||
EMS_Mixing.hc[i].hc = i + 1;
|
EMS_Mixing.hc[i].hc = i + 1;
|
||||||
EMS_Mixing.hc[i].flowTemp = EMS_VALUE_USHORT_NOTSET;
|
EMS_Mixing.hc[i].flowTemp = EMS_VALUE_SHORT_NOTSET;
|
||||||
EMS_Mixing.hc[i].pumpMod = EMS_VALUE_INT_NOTSET;
|
EMS_Mixing.hc[i].pumpMod = EMS_VALUE_INT_NOTSET;
|
||||||
EMS_Mixing.hc[i].valveStatus = EMS_VALUE_INT_NOTSET;
|
EMS_Mixing.hc[i].valveStatus = EMS_VALUE_INT_NOTSET;
|
||||||
EMS_Mixing.hc[i].flowSetTemp = EMS_VALUE_INT_NOTSET;
|
EMS_Mixing.hc[i].flowSetTemp = EMS_VALUE_INT_NOTSET;
|
||||||
@@ -1011,9 +1011,11 @@ void ems_setWarmWaterOnetime(bool activated) {
|
|||||||
EMS_TxTelegram.dest = EMS_Boiler.device_id;
|
EMS_TxTelegram.dest = EMS_Boiler.device_id;
|
||||||
EMS_TxTelegram.type = EMS_TYPE_UBAFlags;
|
EMS_TxTelegram.type = EMS_TYPE_UBAFlags;
|
||||||
EMS_TxTelegram.offset = EMS_OFFSET_UBAParameterWW_wwOneTime;
|
EMS_TxTelegram.offset = EMS_OFFSET_UBAParameterWW_wwOneTime;
|
||||||
EMS_TxTelegram.length = EMS_MIN_TELEGRAM_LENGTH;
|
EMS_TxTelegram.length = EMS_MIN_TELEGRAM_LENGTH+1;
|
||||||
EMS_TxTelegram.type_validate = EMS_ID_NONE; // don't validate
|
EMS_TxTelegram.type_validate = EMS_ID_NONE; // don't validate
|
||||||
EMS_TxTelegram.dataValue = (activated ? 0x22 : 0x02); // 0x22 is on, 0x02 is off for RC20RF
|
// EMS_TxTelegram.dataValue = (activated ? 0x22 : 0x02); // 0x22 is on, 0x02 is off for RC20RF
|
||||||
|
EMS_TxTelegram.data[4] = 0x11;
|
||||||
|
EMS_TxTelegram.data[5] = (activated ? 0x33 : 0x11);
|
||||||
|
|
||||||
EMS_TxQueue.push(EMS_TxTelegram);
|
EMS_TxQueue.push(EMS_TxTelegram);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user