auxheaterdelay and hyst #803

This commit is contained in:
MichaelDvP
2022-12-16 15:11:56 +01:00
parent 4bd6db31c0
commit 137e047205
7 changed files with 40 additions and 15 deletions

View File

@@ -180,7 +180,8 @@ export enum DeviceValueUOM {
SQM, SQM,
M3, M3,
L, L,
K_MIN KxMIN,
KpMIN
} }
export const DeviceValueUOM_s = [ export const DeviceValueUOM_s = [
@@ -205,7 +206,8 @@ export const DeviceValueUOM_s = [
'm²', 'm²',
'm³', 'm³',
'l', 'l',
'K*min' 'K*min',
'K/min'
]; ];
export enum AnalogType { export enum AnalogType {

View File

@@ -575,11 +575,19 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
DeviceValueUOM::NONE, DeviceValueUOM::NONE,
MAKE_CF_CB(set_additionalHeater)); MAKE_CF_CB(set_additionalHeater));
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
&addHeaterDelay_, &auxHeaterDelay_,
DeviceValueType::USHORT, DeviceValueType::USHORT,
FL_(addHeaterDelay), DeviceValueNumOp::DV_NUMOP_MUL10,
DeviceValueUOM::K_MIN, FL_(auxHeaterDelay),
DeviceValueUOM::KxMIN,
MAKE_CF_CB(set_additionalHeaterDelay)); MAKE_CF_CB(set_additionalHeaterDelay));
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
&auxHeaterHyst_,
DeviceValueType::USHORT,
DeviceValueNumOp::DV_NUMOP_MUL5,
FL_(auxHeaterHyst),
DeviceValueUOM::KpMIN,
MAKE_CF_CB(set_additionalHeaterHyst));
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
&minTempSilent_, &minTempSilent_,
DeviceValueType::INT, DeviceValueType::INT,
@@ -1497,6 +1505,7 @@ void Boiler::process_amExtraMessage(std::shared_ptr<const Telegram> telegram) {
// Boiler(0x08) -> All(0x00), ?(0x0484), data: 01 90 00 F6 28 14 64 00 00 E1 00 1E 00 1E 01 64 01 64 54 20 00 00 (offset 25) // Boiler(0x08) -> All(0x00), ?(0x0484), data: 01 90 00 F6 28 14 64 00 00 E1 00 1E 00 1E 01 64 01 64 54 20 00 00 (offset 25)
void Boiler::process_HpSilentMode(std::shared_ptr<const Telegram> telegram) { void Boiler::process_HpSilentMode(std::shared_ptr<const Telegram> telegram) {
has_update(telegram, minTempSilent_, 11); has_update(telegram, minTempSilent_, 11);
has_update(telegram, auxHeaterHyst_, 37);
} }
// Boiler(0x08) -B-> All(0x00), ?(0x0488), data: 8E 00 00 00 00 00 01 03 // Boiler(0x08) -B-> All(0x00), ?(0x0488), data: 8E 00 00 00 00 00 01 03
@@ -1510,7 +1519,7 @@ void Boiler::process_HpAdditionalHeater(std::shared_ptr<const Telegram> telegram
has_update(telegram, auxHeaterOnly_, 1); has_update(telegram, auxHeaterOnly_, 1);
has_update(telegram, auxHeater_, 2); has_update(telegram, auxHeater_, 2);
has_update(telegram, tempParMode_, 5); has_update(telegram, tempParMode_, 5);
// has_update(telegram, addHeaterDelay_, ?); // unknown position has_update(telegram, auxHeaterDelay_, 16); // is / 10
} }
// Settings AM200 // Settings AM200
@@ -2493,11 +2502,20 @@ bool Boiler::set_tempParMode(const char * value, const int8_t id) {
bool Boiler::set_additionalHeaterDelay(const char * value, const int8_t id) { bool Boiler::set_additionalHeaterDelay(const char * value, const int8_t id) {
int v; int v;
if (Helpers::value2number(value, v)) { if (Helpers::value2number(value, v)) {
uint8_t data[2] = {(uint8_t)(v >> 8), (uint8_t)(v & 0xFF)}; uint8_t data[2] = {(uint8_t)(v >> 8), (uint8_t)v};
write_command(0x491, 10, data, 2, 0x491); write_command(0x491, 16, data, 2, 0x491);
return true; return true;
} }
return false; return false;
} }
bool Boiler::set_additionalHeaterHyst(const char * value, const int8_t id) {
int v;
if (Helpers::value2number(value, v)) {
uint8_t data[2] = {(uint8_t)(v >> 8), (uint8_t)v};
write_command(0x484, 37, data, 2, 0x484);
return true;
}
return false;
}
} // namespace emsesp } // namespace emsesp

View File

@@ -244,7 +244,8 @@ class Boiler : public EMSdevice {
uint8_t auxHeaterOnly_; uint8_t auxHeaterOnly_;
uint8_t auxHeater_; uint8_t auxHeater_;
uint16_t addHeaterDelay_; uint16_t auxHeaterDelay_;
uint16_t auxHeaterHyst_;
int8_t minTempSilent_; int8_t minTempSilent_;
int8_t tempParMode_; int8_t tempParMode_;
int8_t auxHeatMixValve_; int8_t auxHeatMixValve_;
@@ -392,6 +393,7 @@ class Boiler : public EMSdevice {
bool set_additionalHeaterOnly(const char * value, const int8_t id); bool set_additionalHeaterOnly(const char * value, const int8_t id);
bool set_additionalHeater(const char * value, const int8_t id); bool set_additionalHeater(const char * value, const int8_t id);
bool set_additionalHeaterDelay(const char * value, const int8_t id); bool set_additionalHeaterDelay(const char * value, const int8_t id);
bool set_additionalHeaterHyst(const char * value, const int8_t id);
bool set_tempParMode(const char * value, const int8_t id); bool set_tempParMode(const char * value, const int8_t id);
/* /*

View File

@@ -105,9 +105,9 @@ DeviceValue::DeviceValue(uint8_t device_type,
// must be an int of 4 bytes, 32bit aligned // must be an int of 4 bytes, 32bit aligned
const char * DeviceValue::DeviceValueUOM_s[] = { const char * DeviceValue::DeviceValueUOM_s[] = {
F_(uom_blank), F_(uom_degrees), F_(uom_degrees), F_(uom_percent), F_(uom_lmin), F_(uom_kwh), F_(uom_wh), FL_(hours)[0], F_(uom_blank), F_(uom_degrees), F_(uom_degrees), F_(uom_percent), F_(uom_lmin), F_(uom_kwh), F_(uom_wh), FL_(hours)[0],
FL_(minutes)[0], F_(uom_ua), F_(uom_bar), F_(uom_kw), F_(uom_w), F_(uom_kb), FL_(seconds)[0], F_(uom_dbm), FL_(minutes)[0], F_(uom_ua), F_(uom_bar), F_(uom_kw), F_(uom_w), F_(uom_kb), FL_(seconds)[0], F_(uom_dbm),
F_(uom_fahrenheit), F_(uom_mv), F_(uom_sqm), F_(uom_m3), F_(uom_l), F_(uom_kmin), F_(uom_blank) // connectivity F_(uom_fahrenheit), F_(uom_mv), F_(uom_sqm), F_(uom_m3), F_(uom_l), F_(uom_kxmin), F_(uom_kpmin), F_(uom_blank) // connectivity
}; };

View File

@@ -68,7 +68,8 @@ class DeviceValue {
SQM, // 18 square meter SQM, // 18 square meter
M3, // 19 cubic meter M3, // 19 cubic meter
L, // 20 L, // 20
K_MIN, // 21 - Kelvin * minutes KxMIN, // 21 - Kelvin * minutes
KpMIN, // 22 - Kelvin / minutes
CONNECTIVITY // 22 - used in HA CONNECTIVITY // 22 - used in HA
}; };

View File

@@ -215,7 +215,8 @@ MAKE_PSTR(uom_mv, "mV")
MAKE_PSTR(uom_sqm, "") MAKE_PSTR(uom_sqm, "")
MAKE_PSTR(uom_m3, "") MAKE_PSTR(uom_m3, "")
MAKE_PSTR(uom_l, "l") MAKE_PSTR(uom_l, "l")
MAKE_PSTR(uom_kmin, "K*min") MAKE_PSTR(uom_kxmin, "K*min")
MAKE_PSTR(uom_kpmin, "K/min")
// MQTT topics and prefixes // MQTT topics and prefixes
MAKE_PSTR(heating_active, "heating_active") MAKE_PSTR(heating_active, "heating_active")

View File

@@ -370,7 +370,8 @@ MAKE_PSTR_LIST(maxHeatDhw, "maxheatdhw", "heat limit dhw", "Heizgrenze Warmwasse
MAKE_PSTR_LIST(auxHeater, "auxheater", "enable auxilliary heater", "Erlaube Zusatzheizer") MAKE_PSTR_LIST(auxHeater, "auxheater", "enable auxilliary heater", "Erlaube Zusatzheizer")
MAKE_PSTR_LIST(auxHeaterOnly, "auxheateronly", "auxilliary heater only", "nur Zusatzheizer") MAKE_PSTR_LIST(auxHeaterOnly, "auxheateronly", "auxilliary heater only", "nur Zusatzheizer")
MAKE_PSTR_LIST(addHeaterDelay, "addheaterdelay", "additional heater on delay", "Zusatzheizer Einschaltverzögerung") MAKE_PSTR_LIST(auxHeaterDelay, "auxheaterdelay", "auxilliary heater on delay", "Zusatzheizer Einschaltverzögerung")
MAKE_PSTR_LIST(auxHeaterHyst, "auxheaterhyst", "auxilliary heater on/off hyst", "Zusatzheizer Schalthysterese")
MAKE_PSTR_LIST(minTempSilent, "mintempsilent", "min. outside temp. for silent mode", "Minimale Aussentemperatur Silentmodus") MAKE_PSTR_LIST(minTempSilent, "mintempsilent", "min. outside temp. for silent mode", "Minimale Aussentemperatur Silentmodus")
MAKE_PSTR_LIST(tempParMode, "tempparmode", "outside temp. parallel mode", "Aussentemperatur Parallelmodus") MAKE_PSTR_LIST(tempParMode, "tempparmode", "outside temp. parallel mode", "Aussentemperatur Parallelmodus")
MAKE_PSTR_LIST(auxHeatMixValve, "auxheatmix", "aux. heater mixing valve", "Mischer Zusatzheizer") MAKE_PSTR_LIST(auxHeatMixValve, "auxheatmix", "aux. heater mixing valve", "Mischer Zusatzheizer")