Added TOP143, SET43, SET44, SET45, SET46
This commit is contained in:
parent
652fb1b31f
commit
ef0cbc6447
|
|
@ -344,8 +344,6 @@ sensor:
|
||||||
name: "Bivalent Advanced DHW Delay"
|
name: "Bivalent Advanced DHW Delay"
|
||||||
top142:
|
top142:
|
||||||
name: "Expansion Valve"
|
name: "Expansion Valve"
|
||||||
top143:
|
|
||||||
name: ""DHW Sensor Selection"
|
|
||||||
|
|
||||||
xtop0:
|
xtop0:
|
||||||
name: "Heat Power Consumption Extra"
|
name: "Heat Power Consumption Extra"
|
||||||
|
|
@ -475,6 +473,8 @@ text_sensor:
|
||||||
name: "SmartDHW"
|
name: "SmartDHW"
|
||||||
top141:
|
top141:
|
||||||
name: "Quiet Mode Priority"
|
name: "Quiet Mode Priority"
|
||||||
|
top143:
|
||||||
|
name: "DHW Sensor Selection"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Numbers
|
### Numbers
|
||||||
|
|
@ -554,7 +554,7 @@ number:
|
||||||
set38:
|
set38:
|
||||||
name: "Set Bivalent AP Stop Temp"
|
name: "Set Bivalent AP Stop Temp"
|
||||||
set46:
|
set46:
|
||||||
name: ""Set Heater On Outdoor Temp"
|
name: "Set Heater On Outdoor Temp"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Switches
|
### Switches
|
||||||
|
|
@ -629,11 +629,11 @@ select:
|
||||||
set42:
|
set42:
|
||||||
name: "Set Pump Flow Rate Mode"
|
name: "Set Pump Flow Rate Mode"
|
||||||
set43:
|
set43:
|
||||||
name: ""Set DHW Sensor Selection"
|
name: "Set DHW Sensor Selection"
|
||||||
set44:
|
set44:
|
||||||
name: ""Set DHW Heater State"
|
name: "Set DHW Heater State"
|
||||||
set45:
|
set45:
|
||||||
name: ""Set Room Heater State"
|
name: "Set Room Heater State"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Climates
|
### Climates
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,9 @@ class PanasonicDecode {
|
||||||
static const constexpr char* const HeatingControl[] = {"2", "Comfort", "Efficiency"};
|
static const constexpr char* const HeatingControl[] = {"2", "Comfort", "Efficiency"};
|
||||||
static const constexpr char* const SmartDHW[] = {"2", "Variable", "Standard"};
|
static const constexpr char* const SmartDHW[] = {"2", "Variable", "Standard"};
|
||||||
static const constexpr char* const QuietModePriority[] = {"2", "Sound", "Capacity"};
|
static const constexpr char* const QuietModePriority[] = {"2", "Sound", "Capacity"};
|
||||||
|
static const constexpr char* const DHWSensorSelection[] = {"2", "Top", "Center"};
|
||||||
static const constexpr char* const ModelNames[] = {
|
static const constexpr char* const ModelNames[] = {
|
||||||
"58", // string representation of number of known models (last model number + 1)
|
"67", // string representation of number of known models (last model number + 1)
|
||||||
"WH-MDC05H3E5", // 0
|
"WH-MDC05H3E5", // 0
|
||||||
"WH-MDC07H3E5", // 1
|
"WH-MDC07H3E5", // 1
|
||||||
"IDU:WH-SXC09H3E5, ODU:WH-UX09HE5", // 2
|
"IDU:WH-SXC09H3E5, ODU:WH-UX09HE5", // 2
|
||||||
|
|
@ -130,16 +131,15 @@ class PanasonicDecode {
|
||||||
"IDU:WH-ADC0316M9E8AN2, ODU:WH-WXG09ME8", // 55
|
"IDU:WH-ADC0316M9E8AN2, ODU:WH-WXG09ME8", // 55
|
||||||
"IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 56
|
"IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 56
|
||||||
"IDU:WH-ADC0309K3E5AN, ODU:WH-UDZ05KE5", // 57
|
"IDU:WH-ADC0309K3E5AN, ODU:WH-UDZ05KE5", // 57
|
||||||
"IDU:WH-SQC16H9E8, ODU:WH-UQ16HE8", // 58
|
"IDU:WH-ADC0309K3E5, ODU:WH-UDZ09KE5", // 58
|
||||||
"IDU:WH-ADC0509L3E5AN, ODU:WH-WDG07LE5", // 59
|
"IDU:WH-ADC0509L3E5AN, ODU:WH-WDG07LE5", // 59
|
||||||
"IDU:WH-ADC0509L3E5AN, ODU:WH-WDG09LE5", // 60
|
"IDU:WH-SXC12H9E8, ODU:WH-UX12HE8", // 60
|
||||||
"IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 61
|
"IDU:WH-SDC0316M9E8, ODU:WH-WXG09ME8", // 61
|
||||||
"IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 62
|
"IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 62
|
||||||
"IDU:WH-SDC0309K3E5, ODU:WH-UDZ07KE5", // 63
|
"WH-MDC09J3E5-1", // 63
|
||||||
"IDU:WH-SDC0309K3E5, ODU:WH-UDZ05KE5", // 64
|
"IDU:WH-ADC0509L3E5, ODU:WH-WDG09LE5", // 64
|
||||||
"IDU:WH-SDC0309K3E5, ODU:WH-UDZ09KE5", // 65
|
"IDU:WH-ADC0309J3E5, ODU:WH-UD09JE5-1", // 65
|
||||||
"IDU:WH-SDC09H3E8, ODU:WH-UD09HE8", // 66
|
"IDU:WH-SDC12H6E5, ODU:WH-UD12HE5", // 66
|
||||||
"WH-WXG12ME8", // 67
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -297,8 +297,8 @@ void PanasonicHeatpumpNumber::publish_new_state(const std::vector<uint8_t>& data
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case NumberIds::CONF_SET43:
|
case NumberIds::CONF_SET46:
|
||||||
new_state = PanasonicDecode::getBit7and8(data[11]);
|
new_state = PanasonicDecode::getByteMinus128(data[85]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -50,13 +50,13 @@ void PanasonicHeatpumpSelect::control(const std::string& value) {
|
||||||
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(index), 29);
|
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(index), 29);
|
||||||
break;
|
break;
|
||||||
case SelectIds::CONF_SET43:
|
case SelectIds::CONF_SET43:
|
||||||
this->parent_->set_command_byte(PanasonicCommand::setPlus1(value), 11);
|
this->parent_->set_command_byte(PanasonicCommand::setPlus1(index), 11);
|
||||||
break;
|
break;
|
||||||
case SelectIds::CONF_SET44:
|
case SelectIds::CONF_SET44:
|
||||||
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 9);
|
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply4(index), 9);
|
||||||
break;
|
break;
|
||||||
case SelectIds::CONF_SET45:
|
case SelectIds::CONF_SET45:
|
||||||
this->parent_->set_command_byte(PanasonicCommand::setPlus1(value), 9);
|
this->parent_->set_command_byte(PanasonicCommand::setPlus1(index), 9);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
|
|
@ -135,6 +135,22 @@ void PanasonicHeatpumpSelect::publish_new_state(const std::vector<uint8_t>& data
|
||||||
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_SET43:
|
||||||
|
new_state =
|
||||||
|
PanasonicDecode::getTextState(PanasonicDecode::DHWSensorSelection, PanasonicDecode::getBit7and8(data[11]));
|
||||||
|
if (this->has_state() && this->current_option() == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case SelectIds::CONF_SET44:
|
||||||
|
new_state = PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit5and6(data[9]));
|
||||||
|
if (this->has_state() && this->current_option() == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case SelectIds::CONF_SET45:
|
||||||
|
new_state = PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit7and8(data[9]));
|
||||||
|
if (this->has_state() && this->current_option() == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,6 @@ CONF_TOP136 = "top136" # Bivalent Advanced Start Delay
|
||||||
CONF_TOP137 = "top137" # Bivalent Advanced Stop Delay
|
CONF_TOP137 = "top137" # Bivalent Advanced Stop Delay
|
||||||
CONF_TOP138 = "top138" # Bivalent Advanced DHW Delay
|
CONF_TOP138 = "top138" # Bivalent Advanced DHW Delay
|
||||||
CONF_TOP142 = "top142" # Expansion Valve
|
CONF_TOP142 = "top142" # Expansion Valve
|
||||||
CONF_TOP143 = "top143" # DHW Sensor Selection
|
|
||||||
CONF_XTOP0 = "xtop0" # Heat Power Consumption Extra
|
CONF_XTOP0 = "xtop0" # Heat Power Consumption Extra
|
||||||
CONF_XTOP1 = "xtop1" # Cool Power Consumption Extra
|
CONF_XTOP1 = "xtop1" # Cool Power Consumption Extra
|
||||||
CONF_XTOP2 = "xtop2" # DHW Power Consumption Extra
|
CONF_XTOP2 = "xtop2" # DHW Power Consumption Extra
|
||||||
|
|
@ -239,7 +238,6 @@ TYPES = [
|
||||||
CONF_TOP137,
|
CONF_TOP137,
|
||||||
CONF_TOP138,
|
CONF_TOP138,
|
||||||
CONF_TOP142,
|
CONF_TOP142,
|
||||||
CONF_TOP143,
|
|
||||||
CONF_XTOP0,
|
CONF_XTOP0,
|
||||||
CONF_XTOP1,
|
CONF_XTOP1,
|
||||||
CONF_XTOP2,
|
CONF_XTOP2,
|
||||||
|
|
@ -590,16 +588,16 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
cv.Optional(CONF_TOP62): sensor.sensor_schema(
|
cv.Optional(CONF_TOP62): sensor.sensor_schema(
|
||||||
PanasonicHeatpumpSensor,
|
PanasonicHeatpumpSensor,
|
||||||
accuracy_decimals=2,
|
accuracy_decimals=2,
|
||||||
icon=ICON_FAN,
|
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
unit_of_measurement=UNIT_ROTATIONS_PER_MINUTE,
|
unit_of_measurement=UNIT_ROTATIONS_PER_MINUTE,
|
||||||
|
icon=ICON_FAN,
|
||||||
),
|
),
|
||||||
cv.Optional(CONF_TOP63): sensor.sensor_schema(
|
cv.Optional(CONF_TOP63): sensor.sensor_schema(
|
||||||
PanasonicHeatpumpSensor,
|
PanasonicHeatpumpSensor,
|
||||||
accuracy_decimals=2,
|
accuracy_decimals=2,
|
||||||
icon=ICON_FAN,
|
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
unit_of_measurement=UNIT_ROTATIONS_PER_MINUTE,
|
unit_of_measurement=UNIT_ROTATIONS_PER_MINUTE,
|
||||||
|
icon=ICON_FAN,
|
||||||
),
|
),
|
||||||
cv.Optional(CONF_TOP64): sensor.sensor_schema(
|
cv.Optional(CONF_TOP64): sensor.sensor_schema(
|
||||||
PanasonicHeatpumpSensor,
|
PanasonicHeatpumpSensor,
|
||||||
|
|
@ -926,16 +924,9 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
cv.Optional(CONF_TOP142): sensor.sensor_schema(
|
cv.Optional(CONF_TOP142): sensor.sensor_schema(
|
||||||
PanasonicHeatpumpSensor,
|
PanasonicHeatpumpSensor,
|
||||||
accuracy_decimals=0,
|
accuracy_decimals=0,
|
||||||
icon=ICON_VALVE,
|
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
),
|
icon=ICON_VALVE,
|
||||||
cv.Optional(CONF_TOP143): sensor.sensor_schema(
|
|
||||||
PanasonicHeatpumpSensor,
|
|
||||||
accuracy_decimals=1,
|
|
||||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
|
||||||
unit_of_measurement=UNIT_CELSIUS,
|
|
||||||
),
|
),
|
||||||
cv.Optional(CONF_XTOP0): sensor.sensor_schema(
|
cv.Optional(CONF_XTOP0): sensor.sensor_schema(
|
||||||
PanasonicHeatpumpSensor,
|
PanasonicHeatpumpSensor,
|
||||||
|
|
|
||||||
|
|
@ -495,11 +495,6 @@ void PanasonicHeatpumpSensor::publish_new_state(const std::vector<uint8_t>& data
|
||||||
if (this->has_state() && this->get_state() == new_state)
|
if (this->has_state() && this->get_state() == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case SensorIds::CONF_TOP143:
|
|
||||||
new_state = PanasonicDecode::getBit7and8(data[11]);
|
|
||||||
if (this->has_state() && this->get_state() == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SensorIds::CONF_XTOP0:
|
case SensorIds::CONF_XTOP0:
|
||||||
new_state = PanasonicDecode::getWordMinus1(data, 14);
|
new_state = PanasonicDecode::getWordMinus1(data, 14);
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,6 @@ enum SensorIds : uint8_t {
|
||||||
CONF_TOP137,
|
CONF_TOP137,
|
||||||
CONF_TOP138,
|
CONF_TOP138,
|
||||||
CONF_TOP142,
|
CONF_TOP142,
|
||||||
CONF_TOP143,
|
|
||||||
|
|
||||||
CONF_XTOP0,
|
CONF_XTOP0,
|
||||||
CONF_XTOP1,
|
CONF_XTOP1,
|
||||||
|
|
|
||||||
|
|
@ -83,11 +83,6 @@ void PanasonicHeatpumpSwitch::publish_new_state(const std::vector<uint8_t>& data
|
||||||
if (this->state == new_state)
|
if (this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case SwitchIds::CONF_SET24:
|
|
||||||
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[5]));
|
|
||||||
if (this->state == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case SwitchIds::CONF_SET12:
|
case SwitchIds::CONF_SET12:
|
||||||
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[111]));
|
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[111]));
|
||||||
if (this->state == new_state)
|
if (this->state == new_state)
|
||||||
|
|
@ -98,8 +93,8 @@ void PanasonicHeatpumpSwitch::publish_new_state(const std::vector<uint8_t>& data
|
||||||
if (this->state == new_state)
|
if (this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case SwitchIds::CONF_SET28:
|
case SwitchIds::CONF_SET24:
|
||||||
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[24]));
|
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit1and2(data[5]));
|
||||||
if (this->state == new_state)
|
if (this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
@ -108,13 +103,13 @@ void PanasonicHeatpumpSwitch::publish_new_state(const std::vector<uint8_t>& data
|
||||||
if (this->state == new_state)
|
if (this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case SwitchIds::CONF_SET30:
|
case SwitchIds::CONF_SET28:
|
||||||
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[23]));
|
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[24]));
|
||||||
if (this->state == new_state)
|
if (this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case SwitchIds::CONF_SET33:
|
case SwitchIds::CONF_SET30:
|
||||||
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23]));
|
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[23]));
|
||||||
if (this->state == new_state)
|
if (this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
@ -128,6 +123,11 @@ void PanasonicHeatpumpSwitch::publish_new_state(const std::vector<uint8_t>& data
|
||||||
if (this->state == new_state)
|
if (this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
case SwitchIds::CONF_SET33:
|
||||||
|
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit5and6(data[23]));
|
||||||
|
if (this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
case SwitchIds::CONF_SET34:
|
case SwitchIds::CONF_SET34:
|
||||||
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[26]));
|
new_state = PanasonicDecode::getBinaryState(PanasonicDecode::getBit7and8(data[26]));
|
||||||
if (this->state == new_state)
|
if (this->state == new_state)
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ ICON_THERMOMETER = "mdi:thermometer"
|
||||||
ICON_BIVALENT = "mdi:vector-combine"
|
ICON_BIVALENT = "mdi:vector-combine"
|
||||||
ICON_HEATING_CONTROL = "mdi:thermostat-auto"
|
ICON_HEATING_CONTROL = "mdi:thermostat-auto"
|
||||||
ICON_SMART_DHW = "mdi:water-boiler-auto"
|
ICON_SMART_DHW = "mdi:water-boiler-auto"
|
||||||
|
ICON_DHW = "mdi:water-boiler"
|
||||||
|
|
||||||
CONF_TOP4 = "top4" # Operation Mode
|
CONF_TOP4 = "top4" # Operation Mode
|
||||||
# TODO: Split up top4 into top4_1 (Heating Mode State) and top4_2 (DHW Mode State)
|
# TODO: Split up top4 into top4_1 (Heating Mode State) and top4_2 (DHW Mode State)
|
||||||
|
|
@ -52,6 +53,7 @@ CONF_TOP130 = "top130" # Bivalent Mode
|
||||||
CONF_TOP139 = "top139" # HeatingControl
|
CONF_TOP139 = "top139" # HeatingControl
|
||||||
CONF_TOP140 = "top140" # SmartDHW
|
CONF_TOP140 = "top140" # SmartDHW
|
||||||
CONF_TOP141 = "top141" # Quiet Mode Priority
|
CONF_TOP141 = "top141" # Quiet Mode Priority
|
||||||
|
CONF_TOP143 = "top143" # DHW Sensor Selection
|
||||||
|
|
||||||
TYPES = [
|
TYPES = [
|
||||||
CONF_TOP4,
|
CONF_TOP4,
|
||||||
|
|
@ -78,6 +80,7 @@ TYPES = [
|
||||||
CONF_TOP139,
|
CONF_TOP139,
|
||||||
CONF_TOP140,
|
CONF_TOP140,
|
||||||
CONF_TOP141,
|
CONF_TOP141,
|
||||||
|
CONF_TOP143,
|
||||||
]
|
]
|
||||||
|
|
||||||
PanasonicHeatpumpTextSensor = panasonic_heatpump_ns.class_(
|
PanasonicHeatpumpTextSensor = panasonic_heatpump_ns.class_(
|
||||||
|
|
@ -185,6 +188,10 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
PanasonicHeatpumpTextSensor,
|
PanasonicHeatpumpTextSensor,
|
||||||
icon=ICON_QUIET_MODE,
|
icon=ICON_QUIET_MODE,
|
||||||
),
|
),
|
||||||
|
cv.Optional(CONF_TOP143): text_sensor.text_sensor_schema(
|
||||||
|
PanasonicHeatpumpTextSensor,
|
||||||
|
icon=ICON_DHW,
|
||||||
|
),
|
||||||
}
|
}
|
||||||
).extend(cv.COMPONENT_SCHEMA)
|
).extend(cv.COMPONENT_SCHEMA)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -143,6 +143,11 @@ void PanasonicHeatpumpTextSensor::publish_new_state(const std::vector<uint8_t>&
|
||||||
if (this->has_state() && this->get_state() == new_state)
|
if (this->has_state() && this->get_state() == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
case TextSensorIds::CONF_TOP143:
|
||||||
|
new_state = PanasonicDecode::getTextState(PanasonicDecode::DHWSensorSelection, PanasonicDecode::getBit7and8(data[11]));
|
||||||
|
if (this->has_state() && this->get_state() == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ enum TextSensorIds : uint8_t {
|
||||||
CONF_TOP139,
|
CONF_TOP139,
|
||||||
CONF_TOP140,
|
CONF_TOP140,
|
||||||
CONF_TOP141,
|
CONF_TOP141,
|
||||||
|
CONF_TOP143,
|
||||||
};
|
};
|
||||||
|
|
||||||
class PanasonicHeatpumpTextSensor : public text_sensor::TextSensor,
|
class PanasonicHeatpumpTextSensor : public text_sensor::TextSensor,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue