MM100 flow and pressure

This commit is contained in:
MichaelDvP
2025-08-02 13:08:09 +02:00
parent a318f34988
commit 83987b71e0
3 changed files with 20 additions and 1 deletions

View File

@@ -37,6 +37,9 @@ Mixer::Mixer(uint8_t device_type, uint8_t device_id, uint8_t product_id, const c
register_device_value(tag, &flowSetTemp_, DeviceValueType::UINT8, FL_(flowSetTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_flowSetTemp));
register_device_value(tag, &pumpStatus_, DeviceValueType::BOOL, FL_(pumpStatus), DeviceValueUOM::NONE, MAKE_CF_CB(set_pump));
register_device_value(tag, &activated_, DeviceValueType::BOOL, FL_(activated), DeviceValueUOM::NONE, MAKE_CF_CB(set_activated));
register_device_value(tag, &flowRate_, DeviceValueType::UINT16, FL_(flow), DeviceValueUOM::LH);
register_device_value(
tag, &pressure_, DeviceValueType::UINT8, DeviceValueNumOp::DV_NUMOP_MUL50, FL_(setDiffPress), DeviceValueUOM::MBAR, MAKE_CF_CB(set_pressure));
register_device_value(tag,
&setValveTime_,
DeviceValueType::UINT8,
@@ -91,7 +94,8 @@ void Mixer::process_MMPLUSStatusMessage_HC(std::shared_ptr<const Telegram> teleg
has_update(telegram, flowTempHc_, 3); // is * 10
has_update(telegram, flowSetTemp_, 5);
has_bitupdate(telegram, pumpStatus_, 0, 0);
has_update(telegram, status_, 2); // valve status
has_update(telegram, status_, 2); // valve status
has_update(telegram, flowRate_, 9); // l/h
}
// Mixer IPM - 0x010C
@@ -153,6 +157,7 @@ void Mixer::process_MMPLUSConfigMessage_HC(std::shared_ptr<const Telegram> teleg
has_update(telegram, activated_, 0); // on = 0xFF
has_update(telegram, setValveTime_, 1); // valve runtime in 10 sec, default 120 s, max 600 s
has_update(telegram, flowTempOffset_, 2); // Mixer increase [0-20 K]
has_update(telegram, pressure_, 9);
}
// Thermostat(0x10) -> Mixer(0x20), ?(0x2E1), data: 01 1C 64 00 01
@@ -271,4 +276,14 @@ bool Mixer::set_flowTempOffset(const char * value, const int8_t id) {
return false;
}
bool Mixer::set_pressure(const char * value, const int8_t id) {
int v;
if (!Helpers::value2number(value, v)) {
return false;
}
uint8_t hc = device_id() - 0x20;
write_command(0x2CD + hc, 9, v / 50, 0x2CD + hc);
return true;
}
} // namespace emsesp