Added icons and device classes. Added top92.
This commit is contained in:
parent
0a786e60a1
commit
5db8924b9d
|
|
@ -18,7 +18,7 @@ CONFIG_SCHEMA = (
|
|||
cv.Schema(
|
||||
{
|
||||
cv.GenerateID(): cv.declare_id(PanasonicHeatpumpComponent),
|
||||
|
||||
|
||||
cv.Required(CONF_UART_HP): cv.use_id(uart.UARTComponent),
|
||||
cv.Required(CONF_UART_WM): cv.use_id(uart.UARTComponent),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import esphome.codegen as cg
|
|||
import esphome.config_validation as cv
|
||||
from esphome.components import binary_sensor
|
||||
from esphome.const import (
|
||||
DEVICE_CLASS_HEAT,
|
||||
DEVICE_CLASS_RUNNING,
|
||||
)
|
||||
from . import PanasonicHeatpumpComponent, CONF_PANASONIC_HEATPUMP_ID
|
||||
|
||||
|
|
@ -43,20 +43,44 @@ CONFIG_SCHEMA = cv.All(
|
|||
{
|
||||
cv.GenerateID(CONF_PANASONIC_HEATPUMP_ID): cv.use_id(PanasonicHeatpumpComponent),
|
||||
|
||||
cv.Optional(CONF_BIN_SENS_TOP0): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP2): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP3): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP13): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP26): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP60): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP61): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP68): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP69): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP99): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP100): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP108): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP109): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP110): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_BIN_SENS_TOP0): binary_sensor.binary_sensor_schema(
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP2): binary_sensor.binary_sensor_schema(
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP3): binary_sensor.binary_sensor_schema(
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP13): binary_sensor.binary_sensor_schema(
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP26): binary_sensor.binary_sensor_schema(
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP60): binary_sensor.binary_sensor_schema(
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP61): binary_sensor.binary_sensor_schema(
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP68): binary_sensor.binary_sensor_schema(
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP69): binary_sensor.binary_sensor_schema(
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP99): binary_sensor.binary_sensor_schema(
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP100): binary_sensor.binary_sensor_schema(
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP108): binary_sensor.binary_sensor_schema(
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP109): binary_sensor.binary_sensor_schema(
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_BIN_SENS_TOP110): binary_sensor.binary_sensor_schema(
|
||||
),
|
||||
}
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -21,6 +21,61 @@ constexpr const char* const PanasonicDecode::ExtPadHeaterType[];
|
|||
constexpr const char* const PanasonicDecode::Bivalent[];
|
||||
constexpr const char* const PanasonicDecode::ModelNames[];
|
||||
|
||||
// stores the bytes #129 to #138 of known models in the same order as the ModelNames above
|
||||
static const uint8_t KnownModels[NUMBER_OF_MODELS][10] =
|
||||
{
|
||||
0xE2, 0xCF, 0x0B, 0x13, 0x33, 0x32, 0xD1, 0x0C, 0x16, 0x33, //0
|
||||
0xE2, 0xCF, 0x0B, 0x14, 0x33, 0x42, 0xD1, 0x0B, 0x17, 0x33, //1
|
||||
0xE2, 0xCF, 0x0D, 0x77, 0x09, 0x12, 0xD0, 0x0B, 0x05, 0x11, //2
|
||||
0xE2, 0xCF, 0x0C, 0x88, 0x05, 0x12, 0xD0, 0x0B, 0x97, 0x05, //3
|
||||
0xE2, 0xCF, 0x0D, 0x85, 0x05, 0x12, 0xD0, 0x0C, 0x94, 0x05, //4
|
||||
0xE2, 0xCF, 0x0D, 0x86, 0x05, 0x12, 0xD0, 0x0C, 0x95, 0x05, //5
|
||||
0xE2, 0xCF, 0x0D, 0x87, 0x05, 0x12, 0xD0, 0x0C, 0x96, 0x05, //6
|
||||
0xE2, 0xCE, 0x0D, 0x71, 0x81, 0x72, 0xCE, 0x0C, 0x92, 0x81, //7
|
||||
0x62, 0xD2, 0x0B, 0x43, 0x54, 0x42, 0xD2, 0x0B, 0x72, 0x66, //8
|
||||
0xC2, 0xD3, 0x0B, 0x33, 0x65, 0xB2, 0xD3, 0x0B, 0x94, 0x65, //9
|
||||
0xE2, 0xCF, 0x0B, 0x15, 0x33, 0x42, 0xD1, 0x0B, 0x18, 0x33, //10
|
||||
0xE2, 0xCF, 0x0B, 0x41, 0x34, 0x82, 0xD1, 0x0B, 0x31, 0x35, //11
|
||||
0x62, 0xD2, 0x0B, 0x45, 0x54, 0x42, 0xD2, 0x0B, 0x47, 0x55, //12
|
||||
0xE2, 0xCF, 0x0C, 0x74, 0x09, 0x12, 0xD0, 0x0D, 0x95, 0x05, //13
|
||||
0xE2, 0xCF, 0x0B, 0x82, 0x05, 0x12, 0xD0, 0x0C, 0x91, 0x05, //14
|
||||
0xE2, 0xCF, 0x0C, 0x55, 0x14, 0x12, 0xD0, 0x0B, 0x15, 0x08, //15
|
||||
0xE2, 0xCF, 0x0C, 0x43, 0x00, 0x12, 0xD0, 0x0B, 0x15, 0x08, //16
|
||||
0x62, 0xD2, 0x0B, 0x45, 0x54, 0x32, 0xD2, 0x0C, 0x45, 0x55, //17
|
||||
0x62, 0xD2, 0x0B, 0x43, 0x54, 0x42, 0xD2, 0x0C, 0x46, 0x55, //18
|
||||
0xE2, 0xCF, 0x0C, 0x54, 0x14, 0x12, 0xD0, 0x0B, 0x14, 0x08, //19
|
||||
0xC2, 0xD3, 0x0B, 0x34, 0x65, 0xB2, 0xD3, 0x0B, 0x95, 0x65, //20
|
||||
0xC2, 0xD3, 0x0B, 0x35, 0x65, 0xB2, 0xD3, 0x0B, 0x96, 0x65, //21
|
||||
0x62, 0xD2, 0x0B, 0x41, 0x54, 0x32, 0xD2, 0x0C, 0x45, 0x55, //22
|
||||
0x32, 0xD4, 0x0B, 0x87, 0x84, 0x73, 0x90, 0x0C, 0x84, 0x84, //23
|
||||
0x32, 0xD4, 0x0B, 0x88, 0x84, 0x73, 0x90, 0x0C, 0x85, 0x84, //24
|
||||
0xE2, 0xCF, 0x0B, 0x75, 0x09, 0x12, 0xD0, 0x0C, 0x06, 0x11, //25
|
||||
0x42, 0xD4, 0x0B, 0x83, 0x71, 0x42, 0xD2, 0x0C, 0x46, 0x55, //26
|
||||
0xC2, 0xD3, 0x0C, 0x34, 0x65, 0xB2, 0xD3, 0x0B, 0x95, 0x65, //27
|
||||
0xC2, 0xD3, 0x0C, 0x33, 0x65, 0xB2, 0xD3, 0x0B, 0x94, 0x65, //28
|
||||
0xE2, 0xCF, 0x0B, 0x83, 0x05, 0x12, 0xD0, 0x0D, 0x92, 0x05, //29
|
||||
0xE2, 0xCF, 0x0C, 0x78, 0x09, 0x12, 0xD0, 0x0B, 0x06, 0x11, //30
|
||||
0xC2, 0xD3, 0x0C, 0x35, 0x65, 0xB2, 0xD3, 0x0B, 0x96, 0x65, //31
|
||||
0x32, 0xD4, 0x0B, 0x99, 0x77, 0x62, 0x90, 0x0B, 0x01, 0x78, //32
|
||||
0x42, 0xD4, 0x0B, 0x15, 0x76, 0x12, 0xD0, 0x0B, 0x10, 0x11, //33
|
||||
0xE2, 0xD5, 0x0C, 0x29, 0x99, 0x83, 0x92, 0x0C, 0x28, 0x98, //34
|
||||
0xE2, 0xCF, 0x0D, 0x85, 0x05, 0x12, 0xD0, 0x0E, 0x94, 0x05, //35
|
||||
0xE2, 0xD5, 0x0D, 0x36, 0x99, 0x02, 0xD6, 0x0F, 0x67, 0x95, //36
|
||||
0xE2, 0xD5, 0x0B, 0x08, 0x95, 0x02, 0xD6, 0x0E, 0x66, 0x95, //37
|
||||
0xE2, 0xD5, 0x0B, 0x34, 0x99, 0x83, 0x92, 0x0C, 0x29, 0x98, //38
|
||||
0xE2, 0xCF, 0x0C, 0x89, 0x05, 0x12, 0xD0, 0x0C, 0x98, 0x05, //39
|
||||
0xE2, 0xD5, 0x0B, 0x08, 0x95, 0x02, 0xD6, 0x0E, 0x67, 0x95, //40
|
||||
0xE2, 0xCF, 0x0C, 0x74, 0x09, 0x12, 0xD0, 0x0C, 0x96, 0x05, //41
|
||||
0xE2, 0xCF, 0x0C, 0x74, 0x09, 0x12, 0xD0, 0x0E, 0x95, 0x05, //42
|
||||
0x32, 0xD4, 0x0B, 0x89, 0x84, 0x73, 0x90, 0x0C, 0x86, 0x84, //43
|
||||
0x32, 0xD4, 0x0B, 0x00, 0x78, 0x62, 0x90, 0x0B, 0x02, 0x78, //44
|
||||
0xE2, 0xCF, 0x0B, 0x82, 0x05, 0x12, 0xD0, 0x0D, 0x91, 0x05, //45
|
||||
0xE2, 0xD5, 0x0D, 0x99, 0x94, 0x02, 0xD6, 0x0D, 0x68, 0x95, //46
|
||||
0xE2, 0xCF, 0x0C, 0x74, 0x09, 0x12, 0xD0, 0x0C, 0x95, 0x05, //47
|
||||
0xE2, 0xD5, 0x0B, 0x34, 0x99, 0x83, 0x92, 0x0C, 0x28, 0x98, //48
|
||||
0xE2, 0xCF, 0x0D, 0x77, 0x09, 0x12, 0xD0, 0x0C, 0x05, 0x11, //49
|
||||
0xE2, 0xCF, 0x0D, 0x86, 0x05, 0x12, 0xD0, 0x0E, 0x95, 0x05, //50
|
||||
};
|
||||
|
||||
int PanasonicDecode::getBit1(uint8_t input)
|
||||
{
|
||||
|
|
@ -177,11 +232,14 @@ int PanasonicDecode::getBivalent(uint8_t input)
|
|||
// TOP92 //
|
||||
int PanasonicDecode::getModel(std::vector<uint8_t>& data, uint8_t index)
|
||||
{
|
||||
uint8_t model[10] = { data[index], data[index+1], data[index+2], data[index+3], data[index+4], data[index+5], data[index+6], data[index+7], data[index+8], data[index+9] };
|
||||
int result = -1;
|
||||
int size = sizeof(KnownModels) / sizeof(KnownModels[0]);
|
||||
uint8_t model[10] =
|
||||
{
|
||||
data[index], data[index+1], data[index+2], data[index+3], data[index+4],
|
||||
data[index+5], data[index+6], data[index+7], data[index+8], data[index+9]
|
||||
};
|
||||
|
||||
for (unsigned int i = 0 ; i < size; i++)
|
||||
for (size_t i = 0 ; i < NUMBER_OF_MODELS; i++)
|
||||
{
|
||||
if (memcmp(model, KnownModels[i], 10) == 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -66,7 +66,6 @@ public:
|
|||
static const constexpr char* const LiquidType[] = {"2", "Water", "Glycol"};
|
||||
static const constexpr char* const ExtPadHeaterType[] = {"3", "Disabled", "Type-A","Type-B"};
|
||||
static const constexpr char* const Bivalent[] = {"6", "Off", "Alternativ", "A-Off", "Parallel", "P-Off", "Parallel Advanced"};
|
||||
|
||||
static const constexpr char* const ModelNames[] =
|
||||
{
|
||||
"51", //string representation of number of known models (last model number + 1)
|
||||
|
|
@ -122,60 +121,4 @@ public:
|
|||
"IDU:WH-SXC09H3E5, ODU:WH-UX09HE5", //49
|
||||
"IDU:WH-SXC12H9E8, ODU:WH-UX12HE8", //50
|
||||
};
|
||||
|
||||
// stores the bytes #129 to #138 of known models in the same order as the ModelNames above
|
||||
static constexpr uint8_t KnownModels[NUMBER_OF_MODELS][10] =
|
||||
{
|
||||
0xE2, 0xCF, 0x0B, 0x13, 0x33, 0x32, 0xD1, 0x0C, 0x16, 0x33, //0
|
||||
0xE2, 0xCF, 0x0B, 0x14, 0x33, 0x42, 0xD1, 0x0B, 0x17, 0x33, //1
|
||||
0xE2, 0xCF, 0x0D, 0x77, 0x09, 0x12, 0xD0, 0x0B, 0x05, 0x11, //2
|
||||
0xE2, 0xCF, 0x0C, 0x88, 0x05, 0x12, 0xD0, 0x0B, 0x97, 0x05, //3
|
||||
0xE2, 0xCF, 0x0D, 0x85, 0x05, 0x12, 0xD0, 0x0C, 0x94, 0x05, //4
|
||||
0xE2, 0xCF, 0x0D, 0x86, 0x05, 0x12, 0xD0, 0x0C, 0x95, 0x05, //5
|
||||
0xE2, 0xCF, 0x0D, 0x87, 0x05, 0x12, 0xD0, 0x0C, 0x96, 0x05, //6
|
||||
0xE2, 0xCE, 0x0D, 0x71, 0x81, 0x72, 0xCE, 0x0C, 0x92, 0x81, //7
|
||||
0x62, 0xD2, 0x0B, 0x43, 0x54, 0x42, 0xD2, 0x0B, 0x72, 0x66, //8
|
||||
0xC2, 0xD3, 0x0B, 0x33, 0x65, 0xB2, 0xD3, 0x0B, 0x94, 0x65, //9
|
||||
0xE2, 0xCF, 0x0B, 0x15, 0x33, 0x42, 0xD1, 0x0B, 0x18, 0x33, //10
|
||||
0xE2, 0xCF, 0x0B, 0x41, 0x34, 0x82, 0xD1, 0x0B, 0x31, 0x35, //11
|
||||
0x62, 0xD2, 0x0B, 0x45, 0x54, 0x42, 0xD2, 0x0B, 0x47, 0x55, //12
|
||||
0xE2, 0xCF, 0x0C, 0x74, 0x09, 0x12, 0xD0, 0x0D, 0x95, 0x05, //13
|
||||
0xE2, 0xCF, 0x0B, 0x82, 0x05, 0x12, 0xD0, 0x0C, 0x91, 0x05, //14
|
||||
0xE2, 0xCF, 0x0C, 0x55, 0x14, 0x12, 0xD0, 0x0B, 0x15, 0x08, //15
|
||||
0xE2, 0xCF, 0x0C, 0x43, 0x00, 0x12, 0xD0, 0x0B, 0x15, 0x08, //16
|
||||
0x62, 0xD2, 0x0B, 0x45, 0x54, 0x32, 0xD2, 0x0C, 0x45, 0x55, //17
|
||||
0x62, 0xD2, 0x0B, 0x43, 0x54, 0x42, 0xD2, 0x0C, 0x46, 0x55, //18
|
||||
0xE2, 0xCF, 0x0C, 0x54, 0x14, 0x12, 0xD0, 0x0B, 0x14, 0x08, //19
|
||||
0xC2, 0xD3, 0x0B, 0x34, 0x65, 0xB2, 0xD3, 0x0B, 0x95, 0x65, //20
|
||||
0xC2, 0xD3, 0x0B, 0x35, 0x65, 0xB2, 0xD3, 0x0B, 0x96, 0x65, //21
|
||||
0x62, 0xD2, 0x0B, 0x41, 0x54, 0x32, 0xD2, 0x0C, 0x45, 0x55, //22
|
||||
0x32, 0xD4, 0x0B, 0x87, 0x84, 0x73, 0x90, 0x0C, 0x84, 0x84, //23
|
||||
0x32, 0xD4, 0x0B, 0x88, 0x84, 0x73, 0x90, 0x0C, 0x85, 0x84, //24
|
||||
0xE2, 0xCF, 0x0B, 0x75, 0x09, 0x12, 0xD0, 0x0C, 0x06, 0x11, //25
|
||||
0x42, 0xD4, 0x0B, 0x83, 0x71, 0x42, 0xD2, 0x0C, 0x46, 0x55, //26
|
||||
0xC2, 0xD3, 0x0C, 0x34, 0x65, 0xB2, 0xD3, 0x0B, 0x95, 0x65, //27
|
||||
0xC2, 0xD3, 0x0C, 0x33, 0x65, 0xB2, 0xD3, 0x0B, 0x94, 0x65, //28
|
||||
0xE2, 0xCF, 0x0B, 0x83, 0x05, 0x12, 0xD0, 0x0D, 0x92, 0x05, //29
|
||||
0xE2, 0xCF, 0x0C, 0x78, 0x09, 0x12, 0xD0, 0x0B, 0x06, 0x11, //30
|
||||
0xC2, 0xD3, 0x0C, 0x35, 0x65, 0xB2, 0xD3, 0x0B, 0x96, 0x65, //31
|
||||
0x32, 0xD4, 0x0B, 0x99, 0x77, 0x62, 0x90, 0x0B, 0x01, 0x78, //32
|
||||
0x42, 0xD4, 0x0B, 0x15, 0x76, 0x12, 0xD0, 0x0B, 0x10, 0x11, //33
|
||||
0xE2, 0xD5, 0x0C, 0x29, 0x99, 0x83, 0x92, 0x0C, 0x28, 0x98, //34
|
||||
0xE2, 0xCF, 0x0D, 0x85, 0x05, 0x12, 0xD0, 0x0E, 0x94, 0x05, //35
|
||||
0xE2, 0xD5, 0x0D, 0x36, 0x99, 0x02, 0xD6, 0x0F, 0x67, 0x95, //36
|
||||
0xE2, 0xD5, 0x0B, 0x08, 0x95, 0x02, 0xD6, 0x0E, 0x66, 0x95, //37
|
||||
0xE2, 0xD5, 0x0B, 0x34, 0x99, 0x83, 0x92, 0x0C, 0x29, 0x98, //38
|
||||
0xE2, 0xCF, 0x0C, 0x89, 0x05, 0x12, 0xD0, 0x0C, 0x98, 0x05, //39
|
||||
0xE2, 0xD5, 0x0B, 0x08, 0x95, 0x02, 0xD6, 0x0E, 0x67, 0x95, //40
|
||||
0xE2, 0xCF, 0x0C, 0x74, 0x09, 0x12, 0xD0, 0x0C, 0x96, 0x05, //41
|
||||
0xE2, 0xCF, 0x0C, 0x74, 0x09, 0x12, 0xD0, 0x0E, 0x95, 0x05, //42
|
||||
0x32, 0xD4, 0x0B, 0x89, 0x84, 0x73, 0x90, 0x0C, 0x86, 0x84, //43
|
||||
0x32, 0xD4, 0x0B, 0x00, 0x78, 0x62, 0x90, 0x0B, 0x02, 0x78, //44
|
||||
0xE2, 0xCF, 0x0B, 0x82, 0x05, 0x12, 0xD0, 0x0D, 0x91, 0x05, //45
|
||||
0xE2, 0xD5, 0x0D, 0x99, 0x94, 0x02, 0xD6, 0x0D, 0x68, 0x95, //46
|
||||
0xE2, 0xCF, 0x0C, 0x74, 0x09, 0x12, 0xD0, 0x0C, 0x95, 0x05, //47
|
||||
0xE2, 0xD5, 0x0B, 0x34, 0x99, 0x83, 0x92, 0x0C, 0x28, 0x98, //48
|
||||
0xE2, 0xCF, 0x0D, 0x77, 0x09, 0x12, 0xD0, 0x0C, 0x05, 0x11, //49
|
||||
0xE2, 0xCF, 0x0D, 0x86, 0x05, 0x12, 0xD0, 0x0E, 0x95, 0x05, //50
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -249,7 +249,7 @@ namespace esphome
|
|||
if (this->top59_text_sensor_) this->top59_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::BlockedFree, PanasonicDecode::getBit7and8(bytes[9])));
|
||||
if (this->top76_text_sensor_) this->top76_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::HeatCoolModeDesc, PanasonicDecode::getBit7and8(bytes[28])));
|
||||
if (this->top81_text_sensor_) this->top81_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::HeatCoolModeDesc, PanasonicDecode::getBit5and6(bytes[28])));
|
||||
// if (this->top92_text_sensor_) this->top92_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ModelNames, PanasonicDecode::getModel(bytes, 129)));
|
||||
if (this->top92_text_sensor_) this->top92_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ModelNames, PanasonicDecode::getModel(bytes, 129)));
|
||||
if (this->top94_text_sensor_) this->top94_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::ZonesState, PanasonicDecode::getBit1and2(bytes[6])));
|
||||
if (this->top101_text_sensor_) this->top101_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::SolarModeDesc, PanasonicDecode::getBit3and4(bytes[24])));
|
||||
if (this->top106_text_sensor_) this->top106_text_sensor_->publish_state(PanasonicDecode::getTextState(PanasonicDecode::PumpFlowRateMode, PanasonicDecode::getBit3and4(bytes[29])));
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ namespace esphome
|
|||
SUB_TEXT_SENSOR(top59);
|
||||
SUB_TEXT_SENSOR(top76);
|
||||
SUB_TEXT_SENSOR(top81);
|
||||
// SUB_TEXT_SENSOR(top92);
|
||||
SUB_TEXT_SENSOR(top92);
|
||||
SUB_TEXT_SENSOR(top94);
|
||||
SUB_TEXT_SENSOR(top101);
|
||||
SUB_TEXT_SENSOR(top106);
|
||||
|
|
|
|||
|
|
@ -16,17 +16,20 @@ from esphome.const import (
|
|||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_PRESSURE,
|
||||
DEVICE_CLASS_CURRENT,
|
||||
DEVICE_CLASS_VOLUME_FLOW_RATE,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
STATE_CLASS_TOTAL_INCREASING,
|
||||
ICON_COUNTER,
|
||||
)
|
||||
from . import PanasonicHeatpumpComponent, CONF_PANASONIC_HEATPUMP_ID
|
||||
|
||||
UNIT_LITRE_PER_MINUTE = "l/min"
|
||||
UNIT_LITRE_PER_MINUTE = "L/min"
|
||||
UNIT_ROTATIONS_PER_MINUTE = "r/min"
|
||||
UNIT_PRESSURE_KGFCM2 = "kgf/cm²"
|
||||
UNIT_BAR = "bar"
|
||||
|
||||
ICON_FAN_SPEED = "mdi:fan"
|
||||
|
||||
CONF_SENS_TOP1 = "top1"
|
||||
CONF_SENS_TOP5 = "top5"
|
||||
CONF_SENS_TOP6 = "top6"
|
||||
|
|
@ -225,6 +228,8 @@ CONFIG_SCHEMA = cv.All(
|
|||
cv.GenerateID(CONF_PANASONIC_HEATPUMP_ID): cv.use_id(PanasonicHeatpumpComponent),
|
||||
|
||||
cv.Optional(CONF_SENS_TOP1): sensor.sensor_schema(
|
||||
device_class=DEVICE_CLASS_VOLUME_FLOW_RATE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_LITRE_PER_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_SENS_TOP5): sensor.sensor_schema(
|
||||
|
|
@ -457,9 +462,11 @@ CONFIG_SCHEMA = cv.All(
|
|||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_SENS_TOP62): sensor.sensor_schema(
|
||||
icon=ICON_FAN_SPEED,
|
||||
unit_of_measurement = UNIT_ROTATIONS_PER_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_SENS_TOP63): sensor.sensor_schema(
|
||||
icon=ICON_FAN_SPEED,
|
||||
unit_of_measurement = UNIT_ROTATIONS_PER_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_SENS_TOP64): sensor.sensor_schema(
|
||||
|
|
|
|||
|
|
@ -6,6 +6,22 @@ from esphome.const import (
|
|||
)
|
||||
from . import PanasonicHeatpumpComponent, CONF_PANASONIC_HEATPUMP_ID
|
||||
|
||||
ICON_OPERATING_MODE = "mdi:thermostat"
|
||||
ICON_POWERFUL_MODE = "mdi:arm-flex"
|
||||
ICON_QUIET_MODE = "mdi:sleep"
|
||||
ICON_HOLIDAY_MODE = "mdi:palm-tree"
|
||||
ICON_ERROR = "mdi:close-circle"
|
||||
ICON_BLOCKED = "mdi:cancel"
|
||||
ICON_HEATING_MODE = "mdi:fire"
|
||||
ICON_COOLING_MODE = "mdi:snowflake"
|
||||
ICON_ZONE = "mdi:texture-box"
|
||||
ICON_MODEL = "mdi:heat-pump"
|
||||
ICON_SOLAR_MODE = "mdi:solar-power-variant"
|
||||
ICON_LIQUID = "mdi:water"
|
||||
ICON_VALVE = "mdi:pipe-valve"
|
||||
ICON_PUMP = "mdi:pump"
|
||||
ICON_EXTERNAL_PAD_HEATER = "mdi:radiator"
|
||||
|
||||
CONF_TEXT_SENS_TOP4 = "top4"
|
||||
CONF_TEXT_SENS_TOP17 = "top17"
|
||||
CONF_TEXT_SENS_TOP18 = "top18"
|
||||
|
|
@ -53,24 +69,56 @@ CONFIG_SCHEMA = cv.All(
|
|||
{
|
||||
cv.GenerateID(CONF_PANASONIC_HEATPUMP_ID): cv.use_id(PanasonicHeatpumpComponent),
|
||||
|
||||
cv.Optional(CONF_TEXT_SENS_TOP4): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP17): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP18): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP19): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP20): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP44): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP58): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP59): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP76): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP81): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP92): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP94): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP101): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP106): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP107): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP4): text_sensor.text_sensor_schema(
|
||||
icon=ICON_OPERATING_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP17): text_sensor.text_sensor_schema(
|
||||
icon=ICON_POWERFUL_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP18): text_sensor.text_sensor_schema(
|
||||
icon=ICON_QUIET_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP19): text_sensor.text_sensor_schema(
|
||||
icon=ICON_HOLIDAY_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP20): text_sensor.text_sensor_schema(
|
||||
icon=ICON_VALVE,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP44): text_sensor.text_sensor_schema(
|
||||
icon=ICON_ERROR,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP58): text_sensor.text_sensor_schema(
|
||||
icon=ICON_BLOCKED,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP59): text_sensor.text_sensor_schema(
|
||||
icon=ICON_BLOCKED,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP76): text_sensor.text_sensor_schema(
|
||||
icon=ICON_HEATING_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP81): text_sensor.text_sensor_schema(
|
||||
icon=ICON_COOLING_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP92): text_sensor.text_sensor_schema(
|
||||
icon=ICON_MODEL,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP94): text_sensor.text_sensor_schema(
|
||||
icon=ICON_ZONE,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP101): text_sensor.text_sensor_schema(
|
||||
icon=ICON_SOLAR_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP106): text_sensor.text_sensor_schema(
|
||||
icon=ICON_PUMP,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP107): text_sensor.text_sensor_schema(
|
||||
icon=ICON_LIQUID,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP111): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP112): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP114): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP114): text_sensor.text_sensor_schema(
|
||||
icon=ICON_EXTERNAL_PAD_HEATER,
|
||||
),
|
||||
cv.Optional(CONF_TEXT_SENS_TOP124): text_sensor.text_sensor_schema(),
|
||||
}
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
|
|
|
|||
|
|
@ -322,8 +322,8 @@ text_sensor:
|
|||
name: "Heating Mode"
|
||||
top81:
|
||||
name: "Cooling Mode"
|
||||
#top92:
|
||||
#name: "Heat Pump Model"
|
||||
top92:
|
||||
name: "Heat Pump Model"
|
||||
top94:
|
||||
name: "Zones State"
|
||||
top101:
|
||||
|
|
|
|||
Loading…
Reference in New Issue