Added TOP143, SET43, SET44, SET45, SET46
This commit is contained in:
parent
fce772ff76
commit
cc606ed195
|
|
@ -344,6 +344,8 @@ 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"
|
||||||
|
|
@ -551,6 +553,8 @@ number:
|
||||||
name: "Set Bivalent AP Start Temp"
|
name: "Set Bivalent AP Start Temp"
|
||||||
set38:
|
set38:
|
||||||
name: "Set Bivalent AP Stop Temp"
|
name: "Set Bivalent AP Stop Temp"
|
||||||
|
set46:
|
||||||
|
name: ""Set Heater On Outdoor Temp"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Switches
|
### Switches
|
||||||
|
|
@ -624,6 +628,12 @@ select:
|
||||||
name: "Set Quiet Mode Priority"
|
name: "Set Quiet Mode Priority"
|
||||||
set42:
|
set42:
|
||||||
name: "Set Pump Flow Rate Mode"
|
name: "Set Pump Flow Rate Mode"
|
||||||
|
set43:
|
||||||
|
name: ""Set DHW Sensor Selection"
|
||||||
|
set44:
|
||||||
|
name: ""Set DHW Heater State"
|
||||||
|
set45:
|
||||||
|
name: ""Set Room Heater State"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Climates
|
### Climates
|
||||||
|
|
@ -714,8 +724,8 @@ the heatpump may not respond to any request messages.
|
||||||
If the CZ-TAW1 is also connected to the ESP controller you will probably see some requests like 0x31 05 10 01 ...
|
If the CZ-TAW1 is also connected to the ESP controller you will probably see some requests like 0x31 05 10 01 ...
|
||||||
These are initial request messages.
|
These are initial request messages.
|
||||||
To fix this problem you can try:
|
To fix this problem you can try:
|
||||||
- enable the switch `error_reset`
|
* enable the switch `error_reset`
|
||||||
- turn off and on the power of the heatpump (switching the heatpump off is not enough)
|
* turn off and on the power of the heatpump (switching the heatpump off is not enough)
|
||||||
|
|
||||||
The heatpump will restart and should respond to the requests.
|
The heatpump will restart and should respond to the requests.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ CONF_SET29 = "set29" # Set Heating Off Outdoor Temp
|
||||||
CONF_SET36 = "set36" # Set Bivalent Start Temp
|
CONF_SET36 = "set36" # Set Bivalent Start Temp
|
||||||
CONF_SET37 = "set37" # Set Bivalent AP Start Temp
|
CONF_SET37 = "set37" # Set Bivalent AP Start Temp
|
||||||
CONF_SET38 = "set38" # Set Bivalent AP Stop Temp
|
CONF_SET38 = "set38" # Set Bivalent AP Stop Temp
|
||||||
|
CONF_SET46 = "set46" # Set Heater On Outdoor Temp
|
||||||
|
|
||||||
TYPES = [
|
TYPES = [
|
||||||
CONF_SET5,
|
CONF_SET5,
|
||||||
|
|
@ -84,6 +85,7 @@ TYPES = [
|
||||||
CONF_SET36,
|
CONF_SET36,
|
||||||
CONF_SET37,
|
CONF_SET37,
|
||||||
CONF_SET38,
|
CONF_SET38,
|
||||||
|
CONF_SET46,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -254,6 +256,10 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
PanasonicHeatpumpNumber,
|
PanasonicHeatpumpNumber,
|
||||||
unit_of_measurement=UNIT_CELSIUS,
|
unit_of_measurement=UNIT_CELSIUS,
|
||||||
).extend(number_options(-10.0, 0.0, 1.0)),
|
).extend(number_options(-10.0, 0.0, 1.0)),
|
||||||
|
cv.Optional(CONF_SET46): number.number_schema(
|
||||||
|
PanasonicHeatpumpNumber,
|
||||||
|
unit_of_measurement=UNIT_CELSIUS,
|
||||||
|
).extend(number_options(-15.0, 20.0, 1.0)),
|
||||||
}
|
}
|
||||||
).extend(cv.COMPONENT_SCHEMA)
|
).extend(cv.COMPONENT_SCHEMA)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,9 @@ void PanasonicHeatpumpNumber::control(float value) {
|
||||||
case NumberIds::CONF_SET38:
|
case NumberIds::CONF_SET38:
|
||||||
this->parent_->set_command_byte(PanasonicCommand::setPlus128(value_int), 68);
|
this->parent_->set_command_byte(PanasonicCommand::setPlus128(value_int), 68);
|
||||||
break;
|
break;
|
||||||
|
case NumberIds::CONF_SET46:
|
||||||
|
this->parent_->set_command_byte(PanasonicCommand::setPlus128(value_int), 85);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
@ -129,26 +132,6 @@ void PanasonicHeatpumpNumber::publish_new_state(const std::vector<uint8_t>& data
|
||||||
|
|
||||||
float new_state;
|
float new_state;
|
||||||
switch (this->id_) {
|
switch (this->id_) {
|
||||||
case NumberIds::CONF_SET11:
|
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[42]);
|
|
||||||
if (this->has_state() && this->state == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case NumberIds::CONF_SET20:
|
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[99]);
|
|
||||||
if (this->has_state() && this->state == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case NumberIds::CONF_SET18:
|
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[84]);
|
|
||||||
if (this->has_state() && this->state == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case NumberIds::CONF_SET19:
|
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[94]);
|
|
||||||
if (this->has_state() && this->state == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case NumberIds::CONF_SET5:
|
case NumberIds::CONF_SET5:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[38]);
|
new_state = PanasonicDecode::getByteMinus128(data[38]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
|
|
@ -159,26 +142,6 @@ 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_SET16_01:
|
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[75]);
|
|
||||||
if (this->has_state() && this->state == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case NumberIds::CONF_SET16_02:
|
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[76]);
|
|
||||||
if (this->has_state() && this->state == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case NumberIds::CONF_SET16_04:
|
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[78]);
|
|
||||||
if (this->has_state() && this->state == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case NumberIds::CONF_SET16_03:
|
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[77]);
|
|
||||||
if (this->has_state() && this->state == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case NumberIds::CONF_SET7:
|
case NumberIds::CONF_SET7:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[40]);
|
new_state = PanasonicDecode::getByteMinus128(data[40]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
|
|
@ -189,28 +152,33 @@ 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_SET16_09:
|
case NumberIds::CONF_SET11:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[86]);
|
new_state = PanasonicDecode::getByteMinus128(data[42]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case NumberIds::CONF_SET16_10:
|
case NumberIds::CONF_SET15:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[87]);
|
new_state = PanasonicDecode::getByteMinus1(data[45]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case NumberIds::CONF_SET16_12:
|
case NumberIds::CONF_SET16_01:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[89]);
|
new_state = PanasonicDecode::getByteMinus128(data[75]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case NumberIds::CONF_SET16_11:
|
case NumberIds::CONF_SET16_02:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[88]);
|
new_state = PanasonicDecode::getByteMinus128(data[76]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case NumberIds::CONF_SET29:
|
case NumberIds::CONF_SET16_03:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[83]);
|
new_state = PanasonicDecode::getByteMinus128(data[77]);
|
||||||
|
if (this->has_state() && this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case NumberIds::CONF_SET16_04:
|
||||||
|
new_state = PanasonicDecode::getByteMinus128(data[78]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
@ -224,13 +192,33 @@ 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_SET16_07:
|
||||||
|
new_state = PanasonicDecode::getByteMinus128(data[81]);
|
||||||
|
if (this->has_state() && this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
case NumberIds::CONF_SET16_08:
|
case NumberIds::CONF_SET16_08:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[82]);
|
new_state = PanasonicDecode::getByteMinus128(data[82]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case NumberIds::CONF_SET16_07:
|
case NumberIds::CONF_SET16_09:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[81]);
|
new_state = PanasonicDecode::getByteMinus128(data[86]);
|
||||||
|
if (this->has_state() && this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case NumberIds::CONF_SET16_10:
|
||||||
|
new_state = PanasonicDecode::getByteMinus128(data[87]);
|
||||||
|
if (this->has_state() && this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case NumberIds::CONF_SET16_11:
|
||||||
|
new_state = PanasonicDecode::getByteMinus128(data[88]);
|
||||||
|
if (this->has_state() && this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case NumberIds::CONF_SET16_12:
|
||||||
|
new_state = PanasonicDecode::getByteMinus128(data[89]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
@ -244,18 +232,28 @@ 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_SET16_16:
|
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[93]);
|
|
||||||
if (this->has_state() && this->state == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case NumberIds::CONF_SET16_15:
|
case NumberIds::CONF_SET16_15:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[92]);
|
new_state = PanasonicDecode::getByteMinus128(data[92]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
case NumberIds::CONF_SET15:
|
case NumberIds::CONF_SET16_16:
|
||||||
new_state = PanasonicDecode::getByteMinus1(data[45]);
|
new_state = PanasonicDecode::getByteMinus128(data[93]);
|
||||||
|
if (this->has_state() && this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case NumberIds::CONF_SET18:
|
||||||
|
new_state = PanasonicDecode::getByteMinus128(data[84]);
|
||||||
|
if (this->has_state() && this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case NumberIds::CONF_SET19:
|
||||||
|
new_state = PanasonicDecode::getByteMinus128(data[94]);
|
||||||
|
if (this->has_state() && this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case NumberIds::CONF_SET20:
|
||||||
|
new_state = PanasonicDecode::getByteMinus128(data[99]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
@ -279,6 +277,11 @@ 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_SET29:
|
||||||
|
new_state = PanasonicDecode::getByteMinus128(data[83]);
|
||||||
|
if (this->has_state() && this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
case NumberIds::CONF_SET36:
|
case NumberIds::CONF_SET36:
|
||||||
new_state = PanasonicDecode::getByteMinus128(data[65]);
|
new_state = PanasonicDecode::getByteMinus128(data[65]);
|
||||||
if (this->has_state() && this->state == new_state)
|
if (this->has_state() && this->state == new_state)
|
||||||
|
|
@ -294,6 +297,11 @@ 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:
|
||||||
|
new_state = PanasonicDecode::getBit7and8(data[11]);
|
||||||
|
if (this->has_state() && this->state == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ enum NumberIds : uint8_t {
|
||||||
CONF_SET36,
|
CONF_SET36,
|
||||||
CONF_SET37,
|
CONF_SET37,
|
||||||
CONF_SET38,
|
CONF_SET38,
|
||||||
|
CONF_SET46,
|
||||||
};
|
};
|
||||||
|
|
||||||
class PanasonicHeatpumpNumber : public number::Number,
|
class PanasonicHeatpumpNumber : public number::Number,
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
#include "commands.h"
|
#include "commands.h"
|
||||||
|
|
||||||
#ifndef PANASONIC_HEATPUMP_VERSION
|
#ifndef PANASONIC_HEATPUMP_VERSION
|
||||||
#define PANASONIC_HEATPUMP_VERSION "0.0.8"
|
#define PANASONIC_HEATPUMP_VERSION "0.0.9-beta.1"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef KEEP_STATE
|
#ifndef KEEP_STATE
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,9 @@ CONF_SET39 = "set39" # Set Heating Control
|
||||||
CONF_SET40 = "set40" # Set Smart DHW
|
CONF_SET40 = "set40" # Set Smart DHW
|
||||||
CONF_SET41 = "set41" # Set Quiet Mode Priority
|
CONF_SET41 = "set41" # Set Quiet Mode Priority
|
||||||
CONF_SET42 = "set42" # Set Pump Flow Rate Mode
|
CONF_SET42 = "set42" # Set Pump Flow Rate Mode
|
||||||
|
CONF_SET43 = "set43" # Set DHW Sensor Selection
|
||||||
|
CONF_SET44 = "set44" # Set DHW Heater State
|
||||||
|
CONF_SET45 = "set45" # Set Room Heater State
|
||||||
|
|
||||||
TYPES = [
|
TYPES = [
|
||||||
CONF_SET2,
|
CONF_SET2,
|
||||||
|
|
@ -33,6 +36,9 @@ TYPES = [
|
||||||
CONF_SET40,
|
CONF_SET40,
|
||||||
CONF_SET41,
|
CONF_SET41,
|
||||||
CONF_SET42,
|
CONF_SET42,
|
||||||
|
CONF_SET43,
|
||||||
|
CONF_SET44,
|
||||||
|
CONF_SET45,
|
||||||
]
|
]
|
||||||
|
|
||||||
CONF_SELECTS = [
|
CONF_SELECTS = [
|
||||||
|
|
@ -81,6 +87,18 @@ CONF_SELECTS = [
|
||||||
"DeltaT",
|
"DeltaT",
|
||||||
"Max. Duty",
|
"Max. Duty",
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
"Top",
|
||||||
|
"Center",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Blocked",
|
||||||
|
"Free",
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Blocked",
|
||||||
|
"Free",
|
||||||
|
],
|
||||||
]
|
]
|
||||||
|
|
||||||
CONF_SELECT_COOL_MODE = [
|
CONF_SELECT_COOL_MODE = [
|
||||||
|
|
@ -136,6 +154,15 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
cv.Optional(CONF_SET42): select.select_schema(
|
cv.Optional(CONF_SET42): select.select_schema(
|
||||||
PanasonicHeatpumpSelect,
|
PanasonicHeatpumpSelect,
|
||||||
),
|
),
|
||||||
|
cv.Optional(CONF_SET43): select.select_schema(
|
||||||
|
PanasonicHeatpumpSelect,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_SET44): select.select_schema(
|
||||||
|
PanasonicHeatpumpSelect,
|
||||||
|
),
|
||||||
|
cv.Optional(CONF_SET45): select.select_schema(
|
||||||
|
PanasonicHeatpumpSelect,
|
||||||
|
),
|
||||||
}
|
}
|
||||||
).extend(cv.COMPONENT_SCHEMA)
|
).extend(cv.COMPONENT_SCHEMA)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,15 @@ void PanasonicHeatpumpSelect::control(const std::string& value) {
|
||||||
case SelectIds::CONF_SET42:
|
case SelectIds::CONF_SET42:
|
||||||
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(index), 29);
|
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply16(index), 29);
|
||||||
break;
|
break;
|
||||||
|
case SelectIds::CONF_SET43:
|
||||||
|
this->parent_->set_command_byte(PanasonicCommand::setPlus1(value), 11);
|
||||||
|
break;
|
||||||
|
case SelectIds::CONF_SET44:
|
||||||
|
this->parent_->set_command_byte(PanasonicCommand::setPlus1Multiply4(value), 9);
|
||||||
|
break;
|
||||||
|
case SelectIds::CONF_SET45:
|
||||||
|
this->parent_->set_command_byte(PanasonicCommand::setPlus1(value), 9);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
@ -67,14 +76,8 @@ void PanasonicHeatpumpSelect::publish_new_state(const std::vector<uint8_t>& data
|
||||||
|
|
||||||
std::string new_state;
|
std::string new_state;
|
||||||
switch (this->id_) {
|
switch (this->id_) {
|
||||||
case SelectIds::CONF_SET9:
|
case SelectIds::CONF_SET2:
|
||||||
new_state =
|
new_state = PanasonicDecode::getTextState(PanasonicDecode::HolidayState, PanasonicDecode::getBit3and4(data[5]));
|
||||||
PanasonicDecode::getTextState(PanasonicDecode::OperationMode, PanasonicDecode::getOperationMode(data[6]));
|
|
||||||
if (this->has_state() && this->current_option() == new_state)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
case SelectIds::CONF_SET4:
|
|
||||||
new_state = PanasonicDecode::getTextState(PanasonicDecode::PowerfulMode, PanasonicDecode::getBit6and7and8(data[7]));
|
|
||||||
if (this->has_state() && this->current_option() == new_state)
|
if (this->has_state() && this->current_option() == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
@ -83,8 +86,14 @@ 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_SET2:
|
case SelectIds::CONF_SET4:
|
||||||
new_state = PanasonicDecode::getTextState(PanasonicDecode::HolidayState, PanasonicDecode::getBit3and4(data[5]));
|
new_state = PanasonicDecode::getTextState(PanasonicDecode::PowerfulMode, PanasonicDecode::getBit6and7and8(data[7]));
|
||||||
|
if (this->has_state() && this->current_option() == new_state)
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case SelectIds::CONF_SET9:
|
||||||
|
new_state =
|
||||||
|
PanasonicDecode::getTextState(PanasonicDecode::OperationMode, PanasonicDecode::getOperationMode(data[6]));
|
||||||
if (this->has_state() && this->current_option() == new_state)
|
if (this->has_state() && this->current_option() == new_state)
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,9 @@ enum SelectIds : uint8_t {
|
||||||
CONF_SET40,
|
CONF_SET40,
|
||||||
CONF_SET41,
|
CONF_SET41,
|
||||||
CONF_SET42,
|
CONF_SET42,
|
||||||
|
CONF_SET43,
|
||||||
|
CONF_SET44,
|
||||||
|
CONF_SET45,
|
||||||
};
|
};
|
||||||
|
|
||||||
class PanasonicHeatpumpSelect : public select::Select,
|
class PanasonicHeatpumpSelect : public select::Select,
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,7 @@ 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
|
||||||
|
|
@ -238,6 +239,7 @@ 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,
|
||||||
|
|
@ -928,6 +930,13 @@ CONFIG_SCHEMA = cv.Schema(
|
||||||
state_class=STATE_CLASS_MEASUREMENT,
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
unit_of_measurement=UNIT_EMPTY,
|
unit_of_measurement=UNIT_EMPTY,
|
||||||
),
|
),
|
||||||
|
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,
|
||||||
accuracy_decimals=0,
|
accuracy_decimals=0,
|
||||||
|
|
|
||||||
|
|
@ -495,6 +495,11 @@ 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,6 +103,7 @@ 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,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue