mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 16:29:51 +03:00
use ems/ems+ telegrams for forceheatingoff, add fanspd #2702
This commit is contained in:
@@ -547,6 +547,7 @@ MAKE_TRANSLATION(heatondelay, "heatondelay", "heat-on delay", "Einschaltverzöge
|
|||||||
MAKE_TRANSLATION(heatoffdelay, "heatoffdelay", "heat-off delay", "Ausschaltverzögerung Heizen", "", "Frånkopplingsfördröjning värme", "opóźnienie włączania ogrzewania", "", "", "", "", "Oneskorenie vypnutia kúrenia", "zpoždění vypnutí topení") // TODO translate
|
MAKE_TRANSLATION(heatoffdelay, "heatoffdelay", "heat-off delay", "Ausschaltverzögerung Heizen", "", "Frånkopplingsfördröjning värme", "opóźnienie włączania ogrzewania", "", "", "", "", "Oneskorenie vypnutia kúrenia", "zpoždění vypnutí topení") // TODO translate
|
||||||
MAKE_TRANSLATION(hpSetDiffPress, "hpsetdiffpress", "set differential pressure", "Pumpensolldruck", "", "VP Tryckskillnad", "różnica ciśnień", "", "", "", "", "nastaviť diferenčný tlak", "nastavení rozdílového tlaku") // TODO translate
|
MAKE_TRANSLATION(hpSetDiffPress, "hpsetdiffpress", "set differential pressure", "Pumpensolldruck", "", "VP Tryckskillnad", "różnica ciśnień", "", "", "", "", "nastaviť diferenčný tlak", "nastavení rozdílového tlaku") // TODO translate
|
||||||
MAKE_TRANSLATION(hpFan, "fan", "fan", "Lüfter", "", "Fläkt", "wentylator", "", "", "", "", "ventilátor", "ventilátor") // TODO translate
|
MAKE_TRANSLATION(hpFan, "fan", "fan", "Lüfter", "", "Fläkt", "wentylator", "", "", "", "", "ventilátor", "ventilátor") // TODO translate
|
||||||
|
MAKE_TRANSLATION(fanSpd, "fanspd", "fan speed", "Lüfter Geschw.", "", "Fläkt", "wentylator", "", "", "", "", "ventilátor", "ventilátor") // TODO translate
|
||||||
MAKE_TRANSLATION(hpShutdown, "shutdown", "shutdown", "Abschalten", "", "Stäng av", "wyłączenie", "", "", "", "", "vypnutie", "vypnutí") // TODO translate
|
MAKE_TRANSLATION(hpShutdown, "shutdown", "shutdown", "Abschalten", "", "Stäng av", "wyłączenie", "", "", "", "", "vypnutie", "vypnutí") // TODO translate
|
||||||
MAKE_TRANSLATION(pc0Flow, "pc0flow", "Flow PC0", "Durchfluss PC0", "", "Flöde värmebärarpump", "", "", "", "", "", "prietok PC0", "průtok PC0") // TODO translate
|
MAKE_TRANSLATION(pc0Flow, "pc0flow", "Flow PC0", "Durchfluss PC0", "", "Flöde värmebärarpump", "", "", "", "", "", "prietok PC0", "průtok PC0") // TODO translate
|
||||||
MAKE_TRANSLATION(pc1Flow, "pc1flow", "Flow PC1", "Durchfluss PC1", "", "Flöde cirkulationspump", "", "", "", "", "", "prietok PC1", "průtok PC1") // TODO translate
|
MAKE_TRANSLATION(pc1Flow, "pc1flow", "Flow PC1", "Durchfluss PC1", "", "Flöde cirkulationspump", "", "", "", "", "", "prietok PC1", "průtok PC1") // TODO translate
|
||||||
|
|||||||
@@ -887,6 +887,7 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
|
|||||||
DeviceValueUOM::NONE,
|
DeviceValueUOM::NONE,
|
||||||
MAKE_CF_CB(set_hpPumpMode));
|
MAKE_CF_CB(set_hpPumpMode));
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &fan_, DeviceValueType::UINT8, FL_(hpFan), DeviceValueUOM::PERCENT, MAKE_CF_CB(set_fan), 20, 100);
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &fan_, DeviceValueType::UINT8, FL_(hpFan), DeviceValueUOM::PERCENT, MAKE_CF_CB(set_fan), 20, 100);
|
||||||
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &fanspd_, DeviceValueType::UINT8, FL_(fanSpd), DeviceValueUOM::PERCENT);
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
&hpshutdown_,
|
&hpshutdown_,
|
||||||
DeviceValueType::CMD,
|
DeviceValueType::CMD,
|
||||||
@@ -1215,10 +1216,9 @@ void Boiler::check_active() {
|
|||||||
if (has_telegram_id(0xE4)) {
|
if (has_telegram_id(0xE4)) {
|
||||||
uint8_t data[] = {1, 0, 0, 1, 1};
|
uint8_t data[] = {1, 0, 0, 1, 1};
|
||||||
write_command(EMS_TYPE_UBASetPoints2, 0, data, sizeof(data), 0);
|
write_command(EMS_TYPE_UBASetPoints2, 0, data, sizeof(data), 0);
|
||||||
} else {
|
|
||||||
uint8_t data[] = {0, 0, 0, 0};
|
|
||||||
write_command(EMS_TYPE_UBASetPoints, 0, data, sizeof(data), 0);
|
|
||||||
}
|
}
|
||||||
|
uint8_t data[] = {0, 0, 0, 0};
|
||||||
|
write_command(EMS_TYPE_UBASetPoints, 0, data, sizeof(data), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// calculate energy for boiler 0x08 from stored modulation an time in units of 0.01 Wh
|
// calculate energy for boiler 0x08 from stored modulation an time in units of 0.01 Wh
|
||||||
@@ -1733,6 +1733,7 @@ void Boiler::process_HpPower(std::shared_ptr<const Telegram> telegram) {
|
|||||||
has_update(telegram, hpTargetSpd_, 22);
|
has_update(telegram, hpTargetSpd_, 22);
|
||||||
has_update(telegram, receiverValveVr0_, 15);
|
has_update(telegram, receiverValveVr0_, 15);
|
||||||
has_update(telegram, expansionValveVr1_, 16);
|
has_update(telegram, expansionValveVr1_, 16);
|
||||||
|
has_update(telegram, fanspd_, 19);
|
||||||
|
|
||||||
// has_update(hpHeatingOn_, hpActivity_ == 1 ? 0xFF : 0);
|
// has_update(hpHeatingOn_, hpActivity_ == 1 ? 0xFF : 0);
|
||||||
// has_update(hpCoolingOn_, hpActivity_ == 2 ? 0xFF : 0);
|
// has_update(hpCoolingOn_, hpActivity_ == 2 ? 0xFF : 0);
|
||||||
@@ -2476,6 +2477,7 @@ bool Boiler::set_burn_power(const char * value, const int8_t id) {
|
|||||||
|
|
||||||
if (has_telegram_id(0xE4)) {
|
if (has_telegram_id(0xE4)) {
|
||||||
write_command(EMS_TYPE_UBASetPoints2, 2, v);
|
write_command(EMS_TYPE_UBASetPoints2, 2, v);
|
||||||
|
write_command(EMS_TYPE_UBASetPoints, 1, v);
|
||||||
} else {
|
} else {
|
||||||
write_command(EMS_TYPE_UBASetPoints, 1, v);
|
write_command(EMS_TYPE_UBASetPoints, 1, v);
|
||||||
}
|
}
|
||||||
@@ -3459,13 +3461,12 @@ bool Boiler::set_forceHeatingOff(const char * value, const int8_t id) {
|
|||||||
if (has_telegram_id(0xE4)) {
|
if (has_telegram_id(0xE4)) {
|
||||||
uint8_t data[] = {1, heatingTemp_, (Helpers::hasValue(burnMaxPower_) ? burnMaxPower_ : (uint8_t)100), 1, 1};
|
uint8_t data[] = {1, heatingTemp_, (Helpers::hasValue(burnMaxPower_) ? burnMaxPower_ : (uint8_t)100), 1, 1};
|
||||||
write_command(EMS_TYPE_UBASetPoints2, 0, data, sizeof(data), 0);
|
write_command(EMS_TYPE_UBASetPoints2, 0, data, sizeof(data), 0);
|
||||||
} else {
|
|
||||||
uint8_t data[] = {heatingTemp_,
|
|
||||||
(Helpers::hasValue(burnMaxPower_) ? burnMaxPower_ : (uint8_t)100),
|
|
||||||
(Helpers::hasValue(pumpModMax_) ? pumpModMax_ : (uint8_t)100),
|
|
||||||
0};
|
|
||||||
write_command(EMS_TYPE_UBASetPoints, 0, data, sizeof(data), 0);
|
|
||||||
}
|
}
|
||||||
|
uint8_t data[] = {heatingTemp_,
|
||||||
|
(Helpers::hasValue(burnMaxPower_) ? burnMaxPower_ : (uint8_t)100),
|
||||||
|
(Helpers::hasValue(pumpModMax_) ? pumpModMax_ : (uint8_t)100),
|
||||||
|
0};
|
||||||
|
write_command(EMS_TYPE_UBASetPoints, 0, data, sizeof(data), 0);
|
||||||
}
|
}
|
||||||
has_update(forceHeatingOff_, v);
|
has_update(forceHeatingOff_, v);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -245,6 +245,7 @@ class Boiler : public EMSdevice {
|
|||||||
uint8_t hpPumpMode_;
|
uint8_t hpPumpMode_;
|
||||||
uint8_t hpSetDiffPress_;
|
uint8_t hpSetDiffPress_;
|
||||||
uint8_t fan_;
|
uint8_t fan_;
|
||||||
|
uint8_t fanspd_;
|
||||||
uint8_t hpshutdown_;
|
uint8_t hpshutdown_;
|
||||||
uint8_t receiverValveVr0_;
|
uint8_t receiverValveVr0_;
|
||||||
uint8_t expansionValveVr1_;
|
uint8_t expansionValveVr1_;
|
||||||
|
|||||||
Reference in New Issue
Block a user