From 21d5a4dd15858a67c5e8681e73d8f76134de0365 Mon Sep 17 00:00:00 2001 From: ElVit Date: Mon, 16 Feb 2026 17:07:12 +0100 Subject: [PATCH] Added new heatpump models --- components/panasonic_heatpump/decode.cpp | 12 +++- components/panasonic_heatpump/decode.h | 90 +++++++++++++----------- 2 files changed, 61 insertions(+), 41 deletions(-) diff --git a/components/panasonic_heatpump/decode.cpp b/components/panasonic_heatpump/decode.cpp index f2fb901..d9785a3 100644 --- a/components/panasonic_heatpump/decode.cpp +++ b/components/panasonic_heatpump/decode.cpp @@ -82,6 +82,16 @@ constexpr const uint8_t KnownModels[NUMBER_OF_MODELS][10] = { {0x12, 0xD7, 0x0D, 0x98, 0x11, 0x33, 0x94, 0x0C, 0x83, 0x10}, // 55 {0xE2, 0xD5, 0x0B, 0x08, 0x95, 0x02, 0xD6, 0x0F, 0x67, 0x95}, // 56 {0xE2, 0xD5, 0x0D, 0x36, 0x99, 0x02, 0xD6, 0x10, 0x66, 0x95}, // 57 + {0xE2, 0xCF, 0x0B, 0x84, 0x05, 0x12, 0xD0, 0x0B, 0x93, 0x05}, // 58 + {0xE2, 0xD5, 0x0C, 0x67, 0x00, 0x83, 0x92, 0x0C, 0x28, 0x98}, // 59 + {0xE2, 0xD5, 0x0C, 0x67, 0x00, 0x83, 0x92, 0x0D, 0x29, 0x98}, // 60 + {0xE2, 0xD5, 0x0D, 0x08, 0x95, 0x02, 0xD6, 0x10, 0x67, 0x95}, // 61 + {0xE2, 0xD5, 0x0C, 0x08, 0x95, 0x02, 0xD6, 0x0D, 0x67, 0x95}, // 62 + {0xE2, 0xD5, 0x0C, 0x08, 0x95, 0x02, 0xD6, 0x10, 0x67, 0x95}, // 63 + {0xE2, 0xD5, 0x0C, 0x08, 0x95, 0x02, 0xD6, 0x10, 0x66, 0x95}, // 64 + {0xE2, 0xD5, 0x0B, 0x08, 0x95, 0x02, 0xD6, 0x0E, 0x68, 0x95}, // 65 + {0xE2, 0xCF, 0x0C, 0x88, 0x05, 0x12, 0xD0, 0x0C, 0x97, 0x05}, // 66 + {0x12, 0xD7, 0x0D, 0x85, 0x11, 0x37, 0x94, 0x0E, 0x84, 0x10}, // 67 }; int PanasonicDecode::getBit1(uint8_t input) { @@ -185,7 +195,7 @@ int PanasonicDecode::getOperationMode(uint8_t input) { return 9; case 0b101010: // 0x2A = auto-cool+tank return 10; - default: // unknown + default: // unknown return -1; } } diff --git a/components/panasonic_heatpump/decode.h b/components/panasonic_heatpump/decode.h index b7d66ad..15aca96 100644 --- a/components/panasonic_heatpump/decode.h +++ b/components/panasonic_heatpump/decode.h @@ -7,7 +7,7 @@ #define RESPONSE_MSG_SIZE 203 #endif #ifndef NUMBER_OF_MODELS -#define NUMBER_OF_MODELS 58 +#define NUMBER_OF_MODELS 68 #endif namespace esphome { @@ -88,45 +88,55 @@ class PanasonicDecode { "IDU:WH-ADC0309H3E5, ODU:WH-UD09HE5", // 16 "IDU:WH-ADC0309J3E5, ODU:WH-UD05JE5", // 17 "IDU:WH-SDC0709J3E5, ODU:WH-UD07JE5", // 18 - "IDU:WH-SDC07H3E5-1, ODU:WH-UD07HE5-1", // 19 - "WH-MDC07J3E5", // 20 - "WH-MDC09J3E5", // 21 - "IDU:WH-SDC0305J3E5, ODU:WH-UD05JE5", // 22 - "WH-MXC09J3E8", // 23 - "WH-MXC12J9E8", // 24 - "IDU:WH-ADC1216H6E5, ODU:WH-UD12HE5", // 25 - "IDU:WH-ADC0309J3E5C, ODU:WH-UD07JE5", // 26 - "WH-MDC07J3E5", // 27 - "WH-MDC05J3E5", // 28 - "IDU:WH-SQC12H9E8, ODU:WH-UQ12HE8", // 29 - "IDU:WH-SXC12H6E5, ODU:WH-UX12HE5", // 30 - "WH-MDC09J3E5", // 31 - "WH-MXC09J3E5", // 32 - "IDU:WH-ADC1216H6E5C, ODU:WH-UD12HE5", // 33 - "IDU:WH-ADC0509L3E5, ODU:WH-WDG07LE5", // 34 - "IDU:WH-SXC09H3E8, ODU:WH-UX09HE8", // 35 - "IDU:WH-ADC0309K3E5AN, ODU:WH-UDZ07KE5", // 36 - "IDU:WH-SDC0309K3E5, ODU:WH-UDZ05KE5", // 37 - "IDU:WH-SDC0509L3E5, ODU:WH-WDG09LE5", // 38 - "IDU:WH-SDC12H9E8, ODU:WH-UD12HE8", // 39 - "IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 40 - "IDU:WH-ADC0916H9E8, ODU:WH-UX16HE8", // 41 - "IDU:WH-ADC0912H9E8, ODU:WH-UX12HE8", // 42 - "WH-MXC16J9E8", // 43 - "WH-MXC12J6E5", // 44 - "IDU:WH-SQC09H3E8, ODU:WH-UQ09HE8", // 45 - "IDU:WH-ADC0309K3E5, ODU:WH-UDZ09KE5", // 46 - "IDU:WH-ADC0916H9E8, ODU:WH-UX12HE8", // 47 - "IDU:WH-SDC0509L3E5, ODU:WH-WDG07LE5", // 48 - "IDU:WH-SXC09H3E5, ODU:WH-UX09HE5", // 49 - "WH-MXC12H9E8", // 50 - "IDU:WH-ADC0509L3E5AN, ODU:WH-WDG05LE5", // 51 - "IDU:WH-SDC0509L3E5, ODU:WH-WDG05LE5", // 52 - "IDU:WH-ADC0309J3E5C, ODU:WH-UD03JE5", // 53 - "IDU:WH-ADC0916H9E8, ODU:WH-UX09HE8", // 54 - "IDU:WH-ADC0316M9E8AN2, ODU:WH-WXG09ME8", // 55 - "IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 56 - "IDU:WH-ADC0309K3E5AN, ODU:WH-UDZ05KE5", // 57 + "IDU:WH-SDC07H3E5-1, ODU:WH-UD07HE5-1", // 19 + "WH-MDC07J3E5", // 20 + "WH-MDC09J3E5", // 21 + "IDU:WH-SDC0305J3E5, ODU:WH-UD05JE5", // 22 + "WH-MXC09J3E8", // 23 + "WH-MXC12J9E8", // 24 + "IDU:WH-ADC1216H6E5, ODU:WH-UD12HE5", // 25 + "IDU:WH-ADC0309J3E5C, ODU:WH-UD07JE5", // 26 + "WH-MDC07J3E5", // 27 + "WH-MDC05J3E5", // 28 + "IDU:WH-SQC12H9E8, ODU:WH-UQ12HE8", // 29 + "IDU:WH-SXC12H6E5, ODU:WH-UX12HE5", // 30 + "WH-MDC09J3E5", // 31 + "WH-MXC09J3E5", // 32 + "IDU:WH-ADC1216H6E5C, ODU:WH-UD12HE5", // 33 + "IDU:WH-ADC0509L3E5, ODU:WH-WDG07LE5", // 34 + "IDU:WH-SXC09H3E8, ODU:WH-UX09HE8", // 35 + "IDU:WH-ADC0309K3E5AN, ODU:WH-UDZ07KE5", // 36 + "IDU:WH-SDC0309K3E5, ODU:WH-UDZ05KE5", // 37 + "IDU:WH-SDC0509L3E5, ODU:WH-WDG09LE5", // 38 + "IDU:WH-SDC12H9E8, ODU:WH-UD12HE8", // 39 + "IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 40 + "IDU:WH-ADC0916H9E8, ODU:WH-UX16HE8", // 41 + "IDU:WH-ADC0912H9E8, ODU:WH-UX12HE8", // 42 + "WH-MXC16J9E8", // 43 + "WH-MXC12J6E5", // 44 + "IDU:WH-SQC09H3E8, ODU:WH-UQ09HE8", // 45 + "IDU:WH-ADC0309K3E5, ODU:WH-UDZ09KE5", // 46 + "IDU:WH-ADC0916H9E8, ODU:WH-UX12HE8", // 47 + "IDU:WH-SDC0509L3E5, ODU:WH-WDG07LE5", // 48 + "IDU:WH-SXC09H3E5, ODU:WH-UX09HE5", // 49 + "WH-MXC12H9E8", // 50 + "IDU:WH-ADC0509L3E5AN, ODU:WH-WDG05LE5", // 51 + "IDU:WH-SDC0509L3E5, ODU:WH-WDG05LE5", // 52 + "IDU:WH-ADC0309J3E5C, ODU:WH-UD03JE5", // 53 + "IDU:WH-ADC0916H9E8, ODU:WH-UX09HE8", // 54 + "IDU:WH-ADC0316M9E8AN2, ODU:WH-WXG09ME8", // 55 + "IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 56 + "IDU:WH-ADC0309K3E5AN, ODU:WH-UDZ05KE5", // 57 + "IDU:WH-SQC16H9E8, ODU:WH-UQ16HE8", // 58 + "IDU:WH-ADC0509L3E5AN, ODU:WH-WDG07LE5", // 59 + "IDU:WH-ADC0509L3E5AN, ODU:WH-WDG09LE5", // 60 + "IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 61 + "IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 62 + "IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 63 + "IDU:WH-SDC0309K3E5, ODU:WH-UDZ05KE5", // 64 + "IDU:WH-SDC0309K3E5, ODU:WH-UDZ09KE5", // 65 + "IDU:WH-SDC09H3E8, ODU:WH-UD09HE8", // 66 + "WH-WXG12ME8", // 67 }; };