From c3e9f30b1fccd09f0314618b4eb5246de60476bd Mon Sep 17 00:00:00 2001 From: ElVit Date: Thu, 13 Feb 2025 19:27:40 +0100 Subject: [PATCH] renamed some functions, splitted decode_response in multiple functions --- components/panasonic_heatpump/commands.cpp | 22 ++- components/panasonic_heatpump/decode.cpp | 36 ++-- .../panasonic_heatpump/number/__init__.py | 7 +- .../number/panasonic_heatpump_number.cpp | 2 +- .../panasonic_heatpump/panasonic_heatpump.cpp | 187 ++++++++++-------- .../panasonic_heatpump/panasonic_heatpump.h | 16 +- .../select/panasonic_heatpump_select.cpp | 2 +- .../switch/panasonic_heatpump_switch.cpp | 4 +- 8 files changed, 154 insertions(+), 122 deletions(-) diff --git a/components/panasonic_heatpump/commands.cpp b/components/panasonic_heatpump/commands.cpp index 6ce90e4..35e077d 100644 --- a/components/panasonic_heatpump/commands.cpp +++ b/components/panasonic_heatpump/commands.cpp @@ -89,15 +89,19 @@ namespace esphome { switch (input) { - case 0: return 18; - case 1: return 19; - case 2: return 24; - case 3: return 33; - case 4: return 34; - case 5: return 35; - case 6: return 40; + case 0: return 18; // heat-only + case 1: return 19; // cool-only + case 2: return 24; // auto + case 3: return 25; // auto-heat + case 4: return 26; // auto-cool + case 5: return 33; // dhw-only + case 6: return 34; // heat+dhw + case 7: return 35; // cool+dhw + case 8: return 40; // auto-dhw + case 9: return 41; // auto-heat+dhw + case 10: return 42; // auto-cool+dhw + default: return 0; // do nothing } - return 0; } //start of optional pcb commands @@ -142,8 +146,8 @@ namespace esphome case 2: return 0x85; case 3: return 0x52; case 4: return 0x2B; + default: return 0; // do nothing } - return 0; } } // namespace panasonic_heatpump } // namespace esphome \ No newline at end of file diff --git a/components/panasonic_heatpump/decode.cpp b/components/panasonic_heatpump/decode.cpp index c0cdb07..0e93d3f 100644 --- a/components/panasonic_heatpump/decode.cpp +++ b/components/panasonic_heatpump/decode.cpp @@ -183,30 +183,18 @@ namespace esphome { switch ((int)(input & 0b111111)) { - case 18: // heat-only - return 0; - case 19: // cool-only - return 1; - case 24: // auto - return 2; - case 25: // auto-heat - return 3; - case 26: // auto-cool - return 4; - case 33: // dhw-only - return 5; - case 34: // heat+dhw - return 6; - case 35: // cool+dhw - return 7; - case 40: // auto-dhw - return 8; - case 41: // auto-heat+dhw - return 9; - case 42: // auto-cool+dhw - return 10; - default: // unknown - return -1; + case 18: return 0; // heat-only + case 19: return 1; // cool-only + case 24: return 2; // auto + case 25: return 3; // auto-heat + case 26: return 4; // auto-cool + case 33: return 5; // dhw-only + case 34: return 6; // heat+dhw + case 35: return 7; // cool+dhw + case 40: return 8; // auto-dhw + case 41: return 9; // auto-heat+dhw + case 42: return 10; // auto-cool+dhw + default: return -1; // unknown } } diff --git a/components/panasonic_heatpump/number/__init__.py b/components/panasonic_heatpump/number/__init__.py index ad3ec06..548c478 100644 --- a/components/panasonic_heatpump/number/__init__.py +++ b/components/panasonic_heatpump/number/__init__.py @@ -277,7 +277,12 @@ async def to_code(config): hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID]) for index, key in enumerate(TYPES): if child_config := config.get(key): - var = await number.new_number(child_config, min_value=CONF_NUMBERS[index][0], max_value=CONF_NUMBERS[index][1], step=CONF_NUMBERS[index][2]) + var = await number.new_number( + child_config, + min_value=CONF_NUMBERS[index][0], + max_value=CONF_NUMBERS[index][1], + step=CONF_NUMBERS[index][2] + ) await cg.register_component(var, child_config) await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID]) cg.add(getattr(hub, f"set_{key}_number")(var)) diff --git a/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp b/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp index 124c318..1f17697 100644 --- a/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp +++ b/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp @@ -16,7 +16,7 @@ namespace esphome void PanasonicHeatpumpNumber::control(float value) { this->publish_state(value); - this->parent_->number_control(this, value); + this->parent_->control_number(this, value); } } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/panasonic_heatpump.cpp b/components/panasonic_heatpump/panasonic_heatpump.cpp index 800f498..bf6751b 100644 --- a/components/panasonic_heatpump/panasonic_heatpump.cpp +++ b/components/panasonic_heatpump/panasonic_heatpump.cpp @@ -30,8 +30,6 @@ namespace esphome void PanasonicHeatpumpComponent::loop() { - // ToDo: if response timeout then send init again - this->read_response(); this->send_request(); this->read_request(); @@ -46,6 +44,7 @@ namespace esphome uint8_t byte; while (this->available()) { + // Read byte from heatpump and forward it directly to the client (CZ-TAW1) this->read_byte(&byte); if (this->uart_client_ != nullptr) this->uart_client_->write_byte(byte); @@ -122,10 +121,11 @@ namespace esphome uint8_t byte; while (this->uart_client_->available()) { + // Read byte from client and forward it directly to the heatpump this->uart_client_->read_byte(&byte); this->write_byte(byte); - // Message shall start with 0x71, if not skip this byte + // Message shall start with 0x71 or 0xF1, if not skip this byte if (!this->request_receiving_) { if (byte != 0x71 && byte != 0xF1) @@ -214,6 +214,35 @@ namespace esphome return; } + this->publish_sensor(bytes); + this->publish_binary_sensor(bytes); + this->publish_text_sensor(bytes); + this->publish_number(bytes); + this->publish_select(bytes); + this->publish_switch(bytes); + } + + void PanasonicHeatpumpComponent::set_command_byte(uint8_t value, uint8_t index) + { + if (this->next_request_ == 1) + { + // initialize the command + command_message_.clear(); + command_message_.insert(this->command_message_.end(), PanasonicCommand::CommandMessage, + PanasonicCommand::CommandMessage + REQUEST_DATA_MSG_SIZE); + } + // set command byte + command_message_[index] = value; + // calculate and set set checksum (last element) + command_message_.back() = PanasonicCommand::calcChecksum(command_message_, command_message_.size() - 1); + + // command will be send on next loop + this->next_request_ = 2; + this->trigger_request_ = true; + } + + void PanasonicHeatpumpComponent::publish_sensor(std::vector bytes) + { #ifdef USE_SENSOR if (this->top1_sensor_) this->top1_sensor_->publish_state(PanasonicDecode::getPumpFlow(bytes[169], bytes[170])); if (this->top5_sensor_) this->top5_sensor_->publish_state(PanasonicDecode::getByteMinus128(bytes[143]) + PanasonicDecode::getFractional(bytes[118], 0)); @@ -311,6 +340,10 @@ namespace esphome if (this->top137_sensor_) this->top137_sensor_->publish_state(PanasonicDecode::getByteMinus1(bytes[69])); if (this->top138_sensor_) this->top138_sensor_->publish_state(PanasonicDecode::getByteMinus1(bytes[70])); #endif + } + + void PanasonicHeatpumpComponent::publish_binary_sensor(std::vector bytes) + { #ifdef USE_BINARY_SENSOR if (this->top0_binary_sensor_) this->top0_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(bytes[4]))); if (this->top2_binary_sensor_) this->top2_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(bytes[4]))); @@ -336,6 +369,10 @@ namespace esphome if (this->top132_binary_sensor_) this->top132_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit3and4(bytes[26]))); if (this->top133_binary_sensor_) this->top133_binary_sensor_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(bytes[26]))); #endif + } + + void PanasonicHeatpumpComponent::publish_text_sensor(std::vector bytes) + { #ifdef USE_TEXT_SENSOR if (this->top4_text_sensor_) this->top4_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::OpModeDesc, PanasonicDecode::getOpMode(bytes[6]))); if (this->top17_text_sensor_) this->top17_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Powerfulmode, PanasonicDecode::getBit6and7and8(bytes[7]))); @@ -359,6 +396,10 @@ namespace esphome if (this->top126_text_sensor_) this->top126_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Valve, PanasonicDecode::getBit7and8(bytes[116]))); if (this->top130_text_sensor_) this->top130_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Bivalent, PanasonicDecode::getBit5and6(bytes[26]))); #endif + } + + void PanasonicHeatpumpComponent::publish_number(std::vector bytes) + { #ifdef USE_NUMBER if (this->set11_number_) this->set11_number_->publish_state(PanasonicDecode::getByteMinus128(bytes[42])); if (this->set20_number_) this->set20_number_->publish_state(PanasonicDecode::getByteMinus128(bytes[99])); @@ -394,6 +435,10 @@ namespace esphome if (this->set37_number_) this->set37_number_->publish_state(PanasonicDecode::getByteMinus128(bytes[66])); if (this->set38_number_) this->set38_number_->publish_state(PanasonicDecode::getByteMinus128(bytes[68])); #endif + } + + void PanasonicHeatpumpComponent::publish_select(std::vector bytes) + { #ifdef USE_SELECT if (this->set9_select_) this->set9_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::OpModeDesc, PanasonicDecode::getOpMode(bytes[6]))); if (this->set4_select_) this->set4_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Powerfulmode, PanasonicDecode::getBit6and7and8(bytes[7]))); @@ -403,6 +448,10 @@ namespace esphome if (this->set26_select_) this->set26_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ExtPadHeaterType, PanasonicDecode::getBit3and4(bytes[25]))); if (this->set35_select_) this->set35_select_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::Bivalent, PanasonicDecode::getBit5and6(bytes[26]))); #endif + } + + void PanasonicHeatpumpComponent::publish_switch(std::vector bytes) + { #ifdef USE_SWITCH if (this->set1_switch_) this->set1_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(bytes[4]))); if (this->set10_switch_) this->set10_switch_->publish_state(PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(bytes[4]))); @@ -418,91 +467,75 @@ namespace esphome #endif } - void PanasonicHeatpumpComponent::set_command_message(uint8_t value, uint8_t index) - { - if (this->next_request_ == 1) - { - // initialize the command - command_message_.clear(); - command_message_.insert(this->command_message_.end(), PanasonicCommand::CommandMessage, - PanasonicCommand::CommandMessage + REQUEST_DATA_MSG_SIZE); - } - // set command byte - command_message_[index] = value; - // calculate and set set checksum (last element) - command_message_.back() = PanasonicCommand::calcChecksum(command_message_, command_message_.size() - 1); - - // command will be send on next loop - this->next_request_ = 2; - this->trigger_request_ = true; - } #ifdef USE_NUMBER - void PanasonicHeatpumpComponent::number_control(number::Number* object, float value) + void PanasonicHeatpumpComponent::control_number(number::Number* object, float value) { - if (object == this->set5_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 38); - else if (object == this->set6_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 39); - else if (object == this->set7_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 40); - else if (object == this->set8_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 41); - else if (object == this->set11_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 42); - else if (object == this->set15_number_) this->set_command_message(PanasonicCommand::setPlus1(value), 45); - else if (object == this->set16_1_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 75); - else if (object == this->set16_2_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 76); - else if (object == this->set16_3_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 77); - else if (object == this->set16_4_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 78); - else if (object == this->set16_5_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 79); - else if (object == this->set16_6_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 80); - else if (object == this->set16_7_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 81); - else if (object == this->set16_8_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 82); - else if (object == this->set16_9_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 86); - else if (object == this->set16_10_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 87); - else if (object == this->set16_11_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 88); - else if (object == this->set16_12_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 89); - else if (object == this->set16_13_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 90); - else if (object == this->set16_14_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 91); - else if (object == this->set16_15_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 92); - else if (object == this->set16_16_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 93); - else if (object == this->set18_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 84); - else if (object == this->set19_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 94); - else if (object == this->set20_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 99); - else if (object == this->set21_number_) this->set_command_message(PanasonicCommand::setPlus1(value), 104); - else if (object == this->set22_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 105); - else if (object == this->set23_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 106); - else if (object == this->set27_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 59); - else if (object == this->set29_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 83); - else if (object == this->set36_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 65); - else if (object == this->set37_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 66); - else if (object == this->set38_number_) this->set_command_message(PanasonicCommand::setPlus128(value), 68); + if (object == this->set5_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 38); + else if (object == this->set6_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 39); + else if (object == this->set7_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 40); + else if (object == this->set8_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 41); + else if (object == this->set11_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 42); + else if (object == this->set15_number_) this->set_command_byte(PanasonicCommand::setPlus1(value), 45); + else if (object == this->set16_1_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 75); + else if (object == this->set16_2_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 76); + else if (object == this->set16_3_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 77); + else if (object == this->set16_4_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 78); + else if (object == this->set16_5_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 79); + else if (object == this->set16_6_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 80); + else if (object == this->set16_7_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 81); + else if (object == this->set16_8_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 82); + else if (object == this->set16_9_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 86); + else if (object == this->set16_10_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 87); + else if (object == this->set16_11_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 88); + else if (object == this->set16_12_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 89); + else if (object == this->set16_13_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 90); + else if (object == this->set16_14_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 91); + else if (object == this->set16_15_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 92); + else if (object == this->set16_16_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 93); + else if (object == this->set18_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 84); + else if (object == this->set19_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 94); + else if (object == this->set20_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 99); + else if (object == this->set21_number_) this->set_command_byte(PanasonicCommand::setPlus1(value), 104); + else if (object == this->set22_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 105); + else if (object == this->set23_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 106); + else if (object == this->set27_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 59); + else if (object == this->set29_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 83); + else if (object == this->set36_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 65); + else if (object == this->set37_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 66); + else if (object == this->set38_number_) this->set_command_byte(PanasonicCommand::setPlus128(value), 68); } #endif + #ifdef USE_SELECT - void PanasonicHeatpumpComponent::select_control(select::Select* object, size_t value) + void PanasonicHeatpumpComponent::control_select(select::Select* object, size_t value) { - if (object == this->set2_select_) this->set_command_message(PanasonicCommand::setPlus1Multiply16(value), 5); - else if (object == this->set3_select_) this->set_command_message(PanasonicCommand::setPlus1Multiply8(value), 7); - else if (object == this->set4_select_) this->set_command_message(PanasonicCommand::setPlus73(value), 7); - else if (object == this->set9_select_) this->set_command_message(PanasonicCommand::setOperationMode(value), 6); - else if (object == this->set17_select_) this->set_command_message(PanasonicCommand::setPlus1Multiply64(value), 6); - else if (object == this->set26_select_) this->set_command_message(PanasonicCommand::setPlus1Multiply16(value), 25); - else if (object == this->set35_select_) this->set_command_message(PanasonicCommand::setPlus1Multiply4(value), 26); + if (object == this->set2_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 5); + else if (object == this->set3_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply8(value), 7); + else if (object == this->set4_select_) this->set_command_byte(PanasonicCommand::setPlus73(value), 7); + else if (object == this->set9_select_) this->set_command_byte(PanasonicCommand::setOperationMode(value), 6); + else if (object == this->set17_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 6); + else if (object == this->set26_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 25); + else if (object == this->set35_select_) this->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 26); } #endif + #ifdef USE_SWITCH - void PanasonicHeatpumpComponent::switch_control(switch_::Switch* object, size_t value) + void PanasonicHeatpumpComponent::control_switch(switch_::Switch* object, size_t value) { - if (object == this->set1_switch_) this->set_command_message(PanasonicCommand::setPlus1(value), 4); - else if (object == this->set10_switch_) this->set_command_message(PanasonicCommand::setPlus1Multiply64(value), 4); - else if (object == this->set12_switch_) this->set_command_message(PanasonicCommand::setMultiply2(value), 8); - else if (object == this->set13_switch_) this->set_command_message(PanasonicCommand::setMultiply4(value), 8); - else if (object == this->set14_switch_) this->set_command_message(PanasonicCommand::setPlus1Multiply16(value), 4); - else if (object == this->set24_switch_) this->set_command_message(PanasonicCommand::setPlus1Multiply64(value), 5); - else if (object == this->set25_switch_) this->set_command_message(PanasonicCommand::setPlus1Multiply16(value), 20); - else if (object == this->set28_switch_) this->set_command_message(PanasonicCommand::setPlus1Multiply4(value), 24); - else if (object == this->set30_switch_) this->set_command_message(PanasonicCommand::setPlus1(value), 23); - else if (object == this->set31_switch_) this->set_command_message(PanasonicCommand::setPlus1Multiply16(value), 23); - else if (object == this->set32_switch_) this->set_command_message(PanasonicCommand::setPlus1Multiply64(value), 23); - else if (object == this->set33_switch_) this->set_command_message(PanasonicCommand::setPlus1Multiply4(value), 23); - else if (object == this->set34_switch_) this->set_command_message(PanasonicCommand::setPlus1(value), 26); + if (object == this->set1_switch_) this->set_command_byte(PanasonicCommand::setPlus1(value), 4); + else if (object == this->set10_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 4); + else if (object == this->set12_switch_) this->set_command_byte(PanasonicCommand::setMultiply2(value), 8); + else if (object == this->set13_switch_) this->set_command_byte(PanasonicCommand::setMultiply4(value), 8); + else if (object == this->set14_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 4); + else if (object == this->set24_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 5); + else if (object == this->set25_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 20); + else if (object == this->set28_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 24); + else if (object == this->set30_switch_) this->set_command_byte(PanasonicCommand::setPlus1(value), 23); + else if (object == this->set31_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 23); + else if (object == this->set32_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 23); + else if (object == this->set33_switch_) this->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 23); + else if (object == this->set34_switch_) this->set_command_byte(PanasonicCommand::setPlus1(value), 26); } #endif } // namespace panasonic_heatpump diff --git a/components/panasonic_heatpump/panasonic_heatpump.h b/components/panasonic_heatpump/panasonic_heatpump.h index ceb8278..0c097cf 100644 --- a/components/panasonic_heatpump/panasonic_heatpump.h +++ b/components/panasonic_heatpump/panasonic_heatpump.h @@ -216,7 +216,7 @@ namespace esphome SUB_NUMBER(set37); SUB_NUMBER(set38); - void number_control(number::Number* object, float value); + void control_number(number::Number* object, float value); #endif #ifdef USE_SELECT SUB_SELECT(set2); @@ -227,7 +227,7 @@ namespace esphome SUB_SELECT(set26); SUB_SELECT(set35); - void select_control(select::Select* object, size_t value); + void control_select(select::Select* object, size_t value); #endif #ifdef USE_SWITCH SUB_SWITCH(set1); @@ -254,15 +254,11 @@ namespace esphome void update() override; void loop() override; - //void set_uart_hp(uart::UARTComponent *uart) { this->uart_hp_ = uart; } - //void set_uart_wm(uart::UARTComponent *uart) { this->uart_wm_ = uart; } void set_uart_client(uart::UARTComponent *uart) { this->uart_client_ = uart; } void set_log_uart_msg(bool enable) { this->log_uart_msg_ = enable; } void set_polling_time(uint32_t time_sec) { this->polling_time_ = time_sec; } protected: - //uart::UARTComponent* uart_hp_; - //uart::UARTComponent* uart_wm_; uart::UARTComponent* uart_client_{nullptr}; bool log_uart_msg_{false}; uint32_t polling_time_{1}; @@ -281,7 +277,13 @@ namespace esphome void send_request(); void read_request(); void decode_response(std::vector data); - void set_command_message(uint8_t value, uint8_t index); + void set_command_byte(uint8_t value, uint8_t index); + void publish_sensor(std::vector bytes); + void publish_binary_sensor(std::vector bytes); + void publish_text_sensor(std::vector bytes); + void publish_number(std::vector bytes); + void publish_select(std::vector bytes); + void publish_switch(std::vector bytes); void log_uart_hex(std::string prefix, const std::vector &data, uint8_t separator) { this->log_uart_hex(prefix, &data[0], data.size(), separator); } void log_uart_hex(std::string prefix, const uint8_t *data, size_t length, uint8_t separator); }; diff --git a/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp b/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp index f2129f7..b44ffc7 100644 --- a/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp +++ b/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp @@ -18,7 +18,7 @@ namespace esphome this->publish_state(value); auto index = this->active_index(); if (index.has_value()) - this->parent_->select_control(this, index.value()); + this->parent_->control_select(this, index.value()); } } // namespace panasonic_heatpump } // namespace esphome diff --git a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp index f6d5281..1b698c4 100644 --- a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp +++ b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp @@ -12,12 +12,12 @@ namespace esphome { LOG_SWITCH("", "Panasonic Heatpump Switch", this); } - + void PanasonicHeatpumpSwitch::write_state(bool state) { this->publish_state(state); size_t value = state ? 1 : 0; - this->parent_->switch_control(this, value); + this->parent_->control_switch(this, value); } } // namespace panasonic_heatpump } // namespace esphome