Added TOP139-141 and SET39-42

This commit is contained in:
ElVit 2026-03-21 22:33:07 +01:00
parent b9affba2e1
commit 53f02c6e49
4 changed files with 16 additions and 10 deletions

View File

@ -38,16 +38,16 @@ void PanasonicHeatpumpSelect::control(const std::string& value) {
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply4(index), 26); this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply4(index), 26);
break; break;
case SelectIds::CONF_SET39: case SelectIds::CONF_SET39:
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 30); this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply4(index), 30);
break; break;
case SelectIds::CONF_SET40: case SelectIds::CONF_SET40:
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply64(value), 24); this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply64(index), 24);
break; break;
case SelectIds::CONF_SET41: case SelectIds::CONF_SET41:
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 11); this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(index), 11);
break; break;
case SelectIds::CONF_SET42: case SelectIds::CONF_SET42:
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(value), 29); this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(index), 29);
break; break;
default: default:
return; return;
@ -115,12 +115,14 @@ void PanasonicHeatpumpSelect::publish_new_state(const std::vector<uint8_t>& data
return; return;
break; break;
case SelectIds::CONF_SET41: case SelectIds::CONF_SET41:
new_state = PanasonicDecode::getTextState(PanasonicDecode::QuietModePriority, PanasonicDecode::getBit3and4(data[11])); new_state =
PanasonicDecode::getTextState(PanasonicDecode::QuietModePriority, PanasonicDecode::getBit3and4(data[11]));
if (this->has_state() && this->current_option() == new_state) if (this->has_state() && this->current_option() == new_state)
return; return;
break; break;
case SelectIds::CONF_SET42: case SelectIds::CONF_SET42:
new_state = PanasonicDecode::getTextState(PanasonicDecode::PumpFlowRateMode, PanasonicDecode::getBit3and4(data[29])); new_state =
PanasonicDecode::getTextState(PanasonicDecode::PumpFlowRateMode, PanasonicDecode::getBit3and4(data[29]));
if (this->has_state() && this->current_option() == new_state) if (this->has_state() && this->current_option() == new_state)
return; return;
break; break;

View File

@ -172,13 +172,13 @@ CONFIG_SCHEMA = cv.Schema(
icon=ICON_BIVALENT, icon=ICON_BIVALENT,
), ),
cv.Optional(CONF_TOP139): text_sensor.text_sensor_schema( cv.Optional(CONF_TOP139): text_sensor.text_sensor_schema(
PanasonicHeatpumpTextSensor, PanasonicHeatpumpTextSensor,
), ),
cv.Optional(CONF_TOP140): text_sensor.text_sensor_schema( cv.Optional(CONF_TOP140): text_sensor.text_sensor_schema(
PanasonicHeatpumpTextSensor, PanasonicHeatpumpTextSensor,
), ),
cv.Optional(CONF_TOP141): text_sensor.text_sensor_schema( cv.Optional(CONF_TOP141): text_sensor.text_sensor_schema(
PanasonicHeatpumpTextSensor, PanasonicHeatpumpTextSensor,
), ),
} }
).extend(cv.COMPONENT_SCHEMA) ).extend(cv.COMPONENT_SCHEMA)

View File

@ -138,7 +138,8 @@ void PanasonicHeatpumpTextSensor::publish_new_state(const std::vector<uint8_t>&
return; return;
break; break;
case TextSensorIds::CONF_TOP141: case TextSensorIds::CONF_TOP141:
new_state = PanasonicDecode::getTextState(PanasonicDecode::QuietModePriority, PanasonicDecode::getBit3and4(data[11])); new_state =
PanasonicDecode::getTextState(PanasonicDecode::QuietModePriority, PanasonicDecode::getBit3and4(data[11]));
if (this->has_state() && this->get_state() == new_state) if (this->has_state() && this->get_state() == new_state)
return; return;
break; break;

View File

@ -28,6 +28,9 @@ enum TextSensorIds : uint8_t {
CONF_TOP125, CONF_TOP125,
CONF_TOP126, CONF_TOP126,
CONF_TOP130, CONF_TOP130,
CONF_TOP139,
CONF_TOP140,
CONF_TOP141,
}; };
class PanasonicHeatpumpTextSensor : public text_sensor::TextSensor, class PanasonicHeatpumpTextSensor : public text_sensor::TextSensor,