Add device id of Truma Combi 6 D

This commit is contained in:
Your Name 2023-03-01 17:28:56 +01:00
parent fd7806885b
commit 176a8e0735
2 changed files with 25 additions and 12 deletions

View File

@ -384,7 +384,7 @@ const u_int8_t *TrumaiNetBoxApp::lin_multiframe_recieved(const u_int8_t *message
ESP_LOGI(TAG, "StatusFrameDevice");
// This message is special. I recieve one response per registered (at CP plus) device.
// Example:
// SID<---------PREAMBLE---------->|<---MSG_HEAD---->|
// SID<---------PREAMBLE---------->|<---MSG_HEAD---->|count|??|??|Hardware|Software|??|??
// Combi4
// BB.00.1F.00.1E.00.00.22.FF.FF.FF.54.01.0C.0B.00.79.02.00.01.00.50.00.00.04.03.02.AD.10 - C4.03.02 0050.00
// BB.00.1F.00.1E.00.00.22.FF.FF.FF.54.01.0C.0B.00.27.02.01.01.00.40.03.22.02.00.01.00.00 - H2.00.01 0340.22
@ -405,21 +405,25 @@ const u_int8_t *TrumaiNetBoxApp::lin_multiframe_recieved(const u_int8_t *message
bool found_unkown_value = false;
if (device.unkown_0 != 0x01 || device.unkown_1 != 0x00)
found_unkown_value = true;
if (truma_device != TRUMA_DEVICE::HEATER_COMBI && truma_device != TRUMA_DEVICE::HEATER_VARIO &&
truma_device != TRUMA_DEVICE::CPPLUS_COMBI && truma_device != TRUMA_DEVICE::CPPLUS_VARIO)
if (truma_device != TRUMA_DEVICE::AIRCON_DEVICE && truma_device != TRUMA_DEVICE::HEATER_COMBI4 &&
truma_device != TRUMA_DEVICE::HEATER_VARIO && truma_device != TRUMA_DEVICE::CPPLUS_COMBI &&
truma_device != TRUMA_DEVICE::CPPLUS_VARIO && truma_device != TRUMA_DEVICE::HEATER_COMBI6D)
found_unkown_value = true;
if (found_unkown_value)
ESP_LOGW(TAG, "Unkown information in StatusFrameDevice found. Please report.");
}
// Assumption device id one is always the heater.
if (device.device_id == 1) {
if (truma_device == TRUMA_DEVICE::HEATER_COMBI) {
this->heater_device_ = TRUMA_DEVICE::HEATER_COMBI;
if (truma_device == TRUMA_DEVICE::HEATER_COMBI4) {
this->heater_device_ = TRUMA_DEVICE::HEATER_COMBI4;
} else if (truma_device == TRUMA_DEVICE::HEATER_COMBI6D) {
this->heater_device_ = TRUMA_DEVICE::HEATER_COMBI6D;
} else if (truma_device == TRUMA_DEVICE::HEATER_VARIO) {
this->heater_device_ = TRUMA_DEVICE::HEATER_VARIO;
}
if (truma_device == TRUMA_DEVICE::AIRCON_DEVICE) {
this->aircon_device_ = TRUMA_DEVICE::AIRCON_DEVICE;
}
return response;

View File

@ -306,10 +306,18 @@ struct StatusFrameConfig { // NOLINT(altera-struct-pack-align)
enum class TRUMA_DEVICE : u_int8_t {
UNKOWN = 0x00,
HEATER_COMBI = 0x02,
// Saphir Compact AC
AIRCON_DEVICE = 0x01,
// Combi 4
HEATER_COMBI4 = 0x02,
// Vario Heat Comfort (non E)
HEATER_VARIO = 0x03,
// CP Plus for Combi
CPPLUS_COMBI = 0x04,
// CP Plus for Vario Heat
CPPLUS_VARIO = 0x05,
// Combi 6 D
HEATER_COMBI6D = 0x06,
};
// Length 12 (0x0C)
@ -434,7 +442,8 @@ class TrumaiNetBoxApp : public LinBusProtocol {
u_int8_t message_counter = 1;
// Truma heater conected to CP Plus.
TRUMA_DEVICE heater_device_ = TRUMA_DEVICE::HEATER_COMBI;
TRUMA_DEVICE heater_device_ = TRUMA_DEVICE::HEATER_COMBI4;
TRUMA_DEVICE aircon_device_ = TRUMA_DEVICE::UNKOWN;
std::vector<StatusFrameListener> listeners_heater_;
CallbackManager<void(const StatusFrameHeater *)> state_heater_callback_{};