diff --git a/components/truma_inetbox/TrumaiNetBoxApp.cpp b/components/truma_inetbox/TrumaiNetBoxApp.cpp index 832bc2e..9daa059 100644 --- a/components/truma_inetbox/TrumaiNetBoxApp.cpp +++ b/components/truma_inetbox/TrumaiNetBoxApp.cpp @@ -33,9 +33,23 @@ void TrumaiNetBoxApp::update() { // Master mode auto-discovery (start device discovery once) if (this->master_mode_ && !this->master_discovery_started_) { this->master_discovery_started_ = true; - // Start device discovery for typical Truma heater NAD range - this->master_scan_b2(0x7F, 0x00, 0xFF); // Broadcast scan, full identifier range - ESP_LOGI(TAG, "Master mode: Started automatic device discovery"); + + // Start targeted device discovery like CP Plus does + // Query known Truma device identifiers instead of full scan + + // Query identifier 0x23 - typical for Truma heaters + std::vector heater_query = {0xB2, 0x23, 0x17, 0x46, 0x01, 0x03}; + this->master_send_diag_single(0x7F, heater_query); + + // Query identifier 0x00 - LIN Product Identification + std::vector prod_id_query = {0xB2, 0x00, 0x17, 0x46, 0x00, 0x1F}; + this->master_send_diag_single(0x7F, prod_id_query); + + // Query identifier 0x00 with different device signatures + std::vector heater_prod_query = {0xB2, 0x00, 0x17, 0x46, 0x40, 0x03}; // Heater signature + this->master_send_diag_single(0x7F, heater_prod_query); + + ESP_LOGI(TAG, "Master mode: Started targeted device discovery (CP Plus style)"); } // Master TX scheduler (throttle to ~20ms spacing)