From 176a8e0735ef0e4afd5847a87d3e8a72e47250e9 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 1 Mar 2023 17:28:56 +0100 Subject: [PATCH] Add device id of Truma Combi 6 D --- components/truma_inetbox/TrumaiNetBoxApp.cpp | 24 ++++++++++++-------- components/truma_inetbox/TrumaiNetBoxApp.h | 13 +++++++++-- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/components/truma_inetbox/TrumaiNetBoxApp.cpp b/components/truma_inetbox/TrumaiNetBoxApp.cpp index 21490de..1e5583e 100644 --- a/components/truma_inetbox/TrumaiNetBoxApp.cpp +++ b/components/truma_inetbox/TrumaiNetBoxApp.cpp @@ -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; - } else if (truma_device == TRUMA_DEVICE::HEATER_VARIO) { - this->heater_device_ = TRUMA_DEVICE::HEATER_VARIO; - } + 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; diff --git a/components/truma_inetbox/TrumaiNetBoxApp.h b/components/truma_inetbox/TrumaiNetBoxApp.h index 2a3e29b..bee513b 100644 --- a/components/truma_inetbox/TrumaiNetBoxApp.h +++ b/components/truma_inetbox/TrumaiNetBoxApp.h @@ -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 listeners_heater_; CallbackManager state_heater_callback_{};