Added custom classes vor sensor, binary_sensor and text_sensor. Added dump_config function to number, select and switch classes.
This commit is contained in:
parent
c25b2a4281
commit
7df9370631
|
|
@ -4,7 +4,7 @@ from esphome.components import binary_sensor
|
|||
from esphome.const import (
|
||||
DEVICE_CLASS_RUNNING,
|
||||
)
|
||||
from . import PanasonicHeatpumpComponent, CONF_PANASONIC_HEATPUMP_ID
|
||||
from .. import CONF_PANASONIC_HEATPUMP_ID, PanasonicHeatpumpComponent, panasonic_heatpump_ns
|
||||
|
||||
|
||||
CONF_TOP0 = "top0" # Heatpump State
|
||||
|
|
@ -57,68 +57,99 @@ TYPES = [
|
|||
CONF_TOP133,
|
||||
]
|
||||
|
||||
CONFIG_SCHEMA = cv.All(
|
||||
cv.Schema(
|
||||
{
|
||||
PanasonicHeatpumpBinarySensor = panasonic_heatpump_ns.class_("PanasonicHeatpumpBinarySensor", binary_sensor.BinarySensor, cg.Component)
|
||||
|
||||
CONFIG_SCHEMA = cv.Schema(
|
||||
{
|
||||
cv.GenerateID(CONF_PANASONIC_HEATPUMP_ID): cv.use_id(PanasonicHeatpumpComponent),
|
||||
|
||||
cv.Optional(CONF_TOP0): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_TOP2): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_TOP3): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_TOP13): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_TOP26): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_TOP60): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_TOP61): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_TOP68): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_TOP69): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_TOP99): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP100): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP108): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP109): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
device_class = DEVICE_CLASS_RUNNING,
|
||||
),
|
||||
cv.Optional(CONF_TOP110): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP119): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_TOP120): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_TOP121): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_TOP122): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_TOP123): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_TOP124): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_TOP129): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_TOP132): binary_sensor.binary_sensor_schema(),
|
||||
cv.Optional(CONF_TOP133): binary_sensor.binary_sensor_schema(),
|
||||
}
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
)
|
||||
cv.Optional(CONF_TOP119): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP120): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP121): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP122): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP123): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP124): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP129): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP132): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP133): binary_sensor.binary_sensor_schema(
|
||||
PanasonicHeatpumpBinarySensor,
|
||||
),
|
||||
}
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
|
||||
async def to_code(config):
|
||||
hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
for key in TYPES:
|
||||
await setup_conf(config, key, hub)
|
||||
|
||||
async def setup_conf(parent_config, key, hub):
|
||||
if child_config := parent_config.get(key):
|
||||
var = await binary_sensor.new_binary_sensor(child_config)
|
||||
cg.add(getattr(hub, f"set_{key}_binary_sensor")(var))
|
||||
if child_config := config.get(key):
|
||||
var = await binary_sensor.new_binary_sensor(child_config)
|
||||
await cg.register_component(var, child_config)
|
||||
await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
cg.add(getattr(hub, f"set_{key}_binary_sensor")(var))
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#include "panasonic_heatpump_binary_sensor.h"
|
||||
#include "esphome/core/log.h"
|
||||
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
static const char *const TAG = "panasonic_heatpump.binary_sensor";
|
||||
|
||||
void PanasonicHeatpumpBinarySensor::dump_config()
|
||||
{
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump Binary Sensor", this);
|
||||
}
|
||||
} // namespace panasonic_heatpump
|
||||
} // namespace esphome
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
#pragma once
|
||||
#include "esphome/components/binary_sensor/binary_sensor.h"
|
||||
#include "esphome/core/component.h"
|
||||
#include "../panasonic_heatpump.h"
|
||||
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
class PanasonicHeatpumpComponent;
|
||||
class PanasonicHeatpumpBinarySensor : public binary_sensor::BinarySensor, public Component, public Parented<PanasonicHeatpumpComponent>
|
||||
{
|
||||
public:
|
||||
PanasonicHeatpumpBinarySensor() = default;
|
||||
void dump_config() override;
|
||||
};
|
||||
} // namespace panasonic_heatpump
|
||||
} // namespace esphome
|
||||
|
|
@ -117,7 +117,7 @@ CONF_NUMBERS = [
|
|||
[ -15, 35, 1, ],
|
||||
]
|
||||
|
||||
PanasonicHeatpumpNumber = panasonic_heatpump_ns.class_("PanasonicHeatpumpNumber", number.Number)
|
||||
PanasonicHeatpumpNumber = panasonic_heatpump_ns.class_("PanasonicHeatpumpNumber", number.Number, cg.Component)
|
||||
|
||||
CONFIG_SCHEMA = cv.Schema(
|
||||
{
|
||||
|
|
@ -271,15 +271,13 @@ CONFIG_SCHEMA = cv.Schema(
|
|||
unit_of_measurement=UNIT_CELSIUS,
|
||||
),
|
||||
}
|
||||
)
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
|
||||
async def to_code(config):
|
||||
hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
for index, key in enumerate(TYPES):
|
||||
await setup_conf(config, key, index, hub)
|
||||
|
||||
async def setup_conf(parent_config, key, index, hub):
|
||||
if child_config := parent_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])
|
||||
await cg.register_parented(var, parent_config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
cg.add(getattr(hub, f"set_{key}_number")(var))
|
||||
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])
|
||||
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))
|
||||
|
|
|
|||
|
|
@ -1,10 +1,18 @@
|
|||
#include "panasonic_heatpump_number.h"
|
||||
#include "esphome/core/log.h"
|
||||
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
static const char *const TAG = "panasonic_heatpump.number";
|
||||
|
||||
void PanasonicHeatpumpNumber::dump_config()
|
||||
{
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this);
|
||||
}
|
||||
|
||||
void PanasonicHeatpumpNumber::control(float value)
|
||||
{
|
||||
this->publish_state(value);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
#include "esphome/components/number/number.h"
|
||||
#include "esphome/core/component.h"
|
||||
#include "../panasonic_heatpump.h"
|
||||
|
||||
|
||||
|
|
@ -7,10 +8,11 @@ namespace esphome
|
|||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
class PanasonicHeatpumpNumber : public number::Number, public Parented<PanasonicHeatpumpComponent>
|
||||
class PanasonicHeatpumpNumber : public number::Number, public Component, public Parented<PanasonicHeatpumpComponent>
|
||||
{
|
||||
public:
|
||||
PanasonicHeatpumpNumber() = default;
|
||||
void dump_config() override;
|
||||
|
||||
protected:
|
||||
void control(float value) override;
|
||||
|
|
|
|||
|
|
@ -10,210 +10,6 @@ namespace esphome
|
|||
void PanasonicHeatpumpComponent::dump_config()
|
||||
{
|
||||
ESP_LOGCONFIG(TAG, "Panasonic Heatpump");
|
||||
#ifdef USE_SENSOR
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top1_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top5_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top6_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top7_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top8_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top9_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top10_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top11_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top12_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top14_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top15_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top16_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top21_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top22_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top23_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top24_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top25_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top27_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top28_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top29_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top30_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top31_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top32_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top33_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top34_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top35_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top36_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top37_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top38_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top39_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top40_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top41_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top42_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top43_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top45_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top46_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top47_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top48_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top49_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top50_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top51_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top52_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top53_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top54_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top55_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top56_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top57_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top62_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top63_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top64_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top65_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top66_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top67_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top70_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top71_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top72_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top73_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top74_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top75_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top77_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top78_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top79_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top80_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top82_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top83_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top84_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top85_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top86_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top87_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top88_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top89_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top90_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top91_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top93_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top95_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top96_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top97_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top98_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top102_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top103_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top104_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top105_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top113_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top115_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top116_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top117_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top118_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top127_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top128_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top131_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top134_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top135_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top136_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top137_sensor_);
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this->top138_sensor_);
|
||||
#endif
|
||||
#ifdef USE_BINARY_SENSOR
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top0_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top2_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top3_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top13_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top26_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top60_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top61_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top68_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top69_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top99_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top100_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top108_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top109_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top110_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top119_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top120_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top121_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top122_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top123_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top124_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top129_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top132_binary_sensor_);
|
||||
LOG_BINARY_SENSOR("", "Panasonic Heatpump BinarySensor", this->top133_binary_sensor_);
|
||||
#endif
|
||||
#ifdef USE_TEXT_SENSOR
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top4_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top17_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top18_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top19_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top20_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top44_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top58_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top59_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top76_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top81_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top92_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top94_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top101_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top106_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top107_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top111_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top112_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top114_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top125_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top126_text_sensor_);
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump TextSensor", this->top130_text_sensor_);
|
||||
#endif
|
||||
#ifdef USE_NUMBER
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set5_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set6_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set7_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set8_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set11_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set15_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_1_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_2_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_3_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_4_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_5_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_6_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_7_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_8_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_9_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_10_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_11_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_12_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_13_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_14_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_15_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set16_16_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set18_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set19_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set20_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set21_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set22_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set23_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set27_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set29_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set36_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set37_number_);
|
||||
LOG_NUMBER("", "Panasonic Heatpump Number", this->set38_number_);
|
||||
#endif
|
||||
#ifdef USE_SELECT
|
||||
LOG_SELECT("", "Panasonic Heatpump Select", this->set2_select_);
|
||||
LOG_SELECT("", "Panasonic Heatpump Select", this->set3_select_);
|
||||
LOG_SELECT("", "Panasonic Heatpump Select", this->set4_select_);
|
||||
LOG_SELECT("", "Panasonic Heatpump Select", this->set9_select_);
|
||||
LOG_SELECT("", "Panasonic Heatpump Select", this->set17_select_);
|
||||
LOG_SELECT("", "Panasonic Heatpump Select", this->set26_select_);
|
||||
LOG_SELECT("", "Panasonic Heatpump Select", this->set35_select_);
|
||||
#endif
|
||||
#ifdef USE_SWITCH
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set1_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set10_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set12_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set13_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set14_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set24_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set25_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set28_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set30_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set31_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set32_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set33_switch_);
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this->set34_switch_);
|
||||
#endif
|
||||
}
|
||||
|
||||
void PanasonicHeatpumpComponent::setup()
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ CONF_SELECTS = [
|
|||
[ "Alternative", "Parallel", "Advanced Parallel" ],
|
||||
]
|
||||
|
||||
PanasonicHeatpumpSelect = panasonic_heatpump_ns.class_("PanasonicHeatpumpSelect", select.Select)
|
||||
PanasonicHeatpumpSelect = panasonic_heatpump_ns.class_("PanasonicHeatpumpSelect", select.Select, cg.Component)
|
||||
|
||||
CONFIG_SCHEMA = cv.Schema(
|
||||
{
|
||||
|
|
@ -63,15 +63,13 @@ CONFIG_SCHEMA = cv.Schema(
|
|||
PanasonicHeatpumpSelect,
|
||||
),
|
||||
}
|
||||
)
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
|
||||
async def to_code(config):
|
||||
hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
for index, key in enumerate(TYPES):
|
||||
await setup_conf(config, key, index, hub)
|
||||
|
||||
async def setup_conf(parent_config, key, index, hub):
|
||||
if child_config := parent_config.get(key):
|
||||
var = await select.new_select(child_config, options=CONF_SELECTS[index])
|
||||
await cg.register_parented(var, parent_config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
cg.add(getattr(hub, f"set_{key}_select")(var))
|
||||
if child_config := config.get(key):
|
||||
var = await select.new_select(child_config, options=CONF_SELECTS[index])
|
||||
await cg.register_component(var, child_config)
|
||||
await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
cg.add(getattr(hub, f"set_{key}_select")(var))
|
||||
|
|
|
|||
|
|
@ -1,10 +1,18 @@
|
|||
#include "panasonic_heatpump_select.h"
|
||||
#include "esphome/core/log.h"
|
||||
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
static const char *const TAG = "panasonic_heatpump.select";
|
||||
|
||||
void PanasonicHeatpumpSelect::dump_config()
|
||||
{
|
||||
LOG_SELECT("", "Panasonic Heatpump Select", this);
|
||||
}
|
||||
|
||||
void PanasonicHeatpumpSelect::control(const std::string &value)
|
||||
{
|
||||
this->publish_state(value);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
#include "esphome/components/select/select.h"
|
||||
#include "esphome/core/component.h"
|
||||
#include "../panasonic_heatpump.h"
|
||||
|
||||
|
||||
|
|
@ -7,10 +8,11 @@ namespace esphome
|
|||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
class PanasonicHeatpumpSelect : public select::Select, public Parented<PanasonicHeatpumpComponent>
|
||||
class PanasonicHeatpumpSelect : public select::Select, public Component, public Parented<PanasonicHeatpumpComponent>
|
||||
{
|
||||
public:
|
||||
PanasonicHeatpumpSelect() = default;
|
||||
void dump_config() override;
|
||||
|
||||
protected:
|
||||
void control(const std::string &value) override;
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ from esphome.const import (
|
|||
STATE_CLASS_TOTAL_INCREASING,
|
||||
ICON_COUNTER,
|
||||
)
|
||||
from . import PanasonicHeatpumpComponent, CONF_PANASONIC_HEATPUMP_ID
|
||||
from .. import CONF_PANASONIC_HEATPUMP_ID, PanasonicHeatpumpComponent, panasonic_heatpump_ns
|
||||
|
||||
|
||||
UNIT_LITRE_PER_MINUTE = "L/min"
|
||||
|
|
@ -226,482 +226,577 @@ TYPES = [
|
|||
CONF_TOP138,
|
||||
]
|
||||
|
||||
CONFIG_SCHEMA = cv.All(
|
||||
cv.Schema(
|
||||
{
|
||||
PanasonicHeatpumpSensor = panasonic_heatpump_ns.class_("PanasonicHeatpumpSensor", sensor.Sensor, cg.Component)
|
||||
|
||||
CONFIG_SCHEMA = cv.Schema(
|
||||
{
|
||||
cv.GenerateID(CONF_PANASONIC_HEATPUMP_ID): cv.use_id(PanasonicHeatpumpComponent),
|
||||
|
||||
cv.Optional(CONF_TOP1): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_VOLUME_FLOW_RATE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_LITRE_PER_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_TOP5): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP6): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP7): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP8): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_FREQUENCY,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_HERTZ,
|
||||
),
|
||||
cv.Optional(CONF_TOP9): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP10): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP11): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_DURATION,
|
||||
state_class=STATE_CLASS_TOTAL_INCREASING,
|
||||
unit_of_measurement = UNIT_HOUR,
|
||||
),
|
||||
cv.Optional(CONF_TOP12): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
unit_of_measurement=UNIT_EMPTY,
|
||||
icon=ICON_COUNTER,
|
||||
),
|
||||
cv.Optional(CONF_TOP14): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP15): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_POWER,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_WATT,
|
||||
),
|
||||
cv.Optional(CONF_TOP16): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_POWER,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_WATT,
|
||||
),
|
||||
cv.Optional(CONF_TOP21): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP22): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_KELVIN,
|
||||
),
|
||||
cv.Optional(CONF_TOP23): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_KELVIN,
|
||||
),
|
||||
cv.Optional(CONF_TOP24): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_KELVIN,
|
||||
),
|
||||
cv.Optional(CONF_TOP25): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_KELVIN,
|
||||
),
|
||||
cv.Optional(CONF_TOP27): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP28): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP29): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP30): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP31): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP32): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP33): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP34): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP35): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP36): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP37): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP38): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_POWER,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_WATT,
|
||||
),
|
||||
cv.Optional(CONF_TOP39): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_POWER,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_WATT,
|
||||
),
|
||||
cv.Optional(CONF_TOP40): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_POWER,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_WATT,
|
||||
),
|
||||
cv.Optional(CONF_TOP41): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_POWER,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_WATT,
|
||||
),
|
||||
cv.Optional(CONF_TOP42): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP43): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP45): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_KELVIN,
|
||||
),
|
||||
cv.Optional(CONF_TOP46): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP47): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP48): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP49): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP50): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP51): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP52): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP53): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP54): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP55): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP56): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP57): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP62): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
icon=ICON_FAN_SPEED,
|
||||
unit_of_measurement = UNIT_ROTATIONS_PER_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_TOP63): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
icon=ICON_FAN_SPEED,
|
||||
unit_of_measurement = UNIT_ROTATIONS_PER_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_TOP64): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_PRESSURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_PRESSURE_KGFCM2,
|
||||
),
|
||||
cv.Optional(CONF_TOP65): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
unit_of_measurement = UNIT_ROTATIONS_PER_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_TOP66): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_PRESSURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_PRESSURE_KGFCM2,
|
||||
),
|
||||
cv.Optional(CONF_TOP67): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_CURRENT,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_AMPERE,
|
||||
),
|
||||
cv.Optional(CONF_TOP70): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP71): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_DURATION,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_TOP72): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP73): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP74): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP75): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP77): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP78): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP79): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP80): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP82): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP83): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP84): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP85): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP86): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP87): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP88): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP89): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP90): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_DURATION,
|
||||
state_class=STATE_CLASS_TOTAL_INCREASING,
|
||||
unit_of_measurement = UNIT_HOUR,
|
||||
),
|
||||
cv.Optional(CONF_TOP91): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_DURATION,
|
||||
state_class=STATE_CLASS_TOTAL_INCREASING,
|
||||
unit_of_measurement = UNIT_HOUR,
|
||||
),
|
||||
cv.Optional(CONF_TOP93): sensor.sensor_schema(),
|
||||
cv.Optional(CONF_TOP95): sensor.sensor_schema(),
|
||||
cv.Optional(CONF_TOP93): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP95): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP96): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_DURATION,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_TOP97): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_KELVIN,
|
||||
),
|
||||
cv.Optional(CONF_TOP98): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_KELVIN,
|
||||
),
|
||||
cv.Optional(CONF_TOP102): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_KELVIN,
|
||||
),
|
||||
cv.Optional(CONF_TOP103): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_KELVIN,
|
||||
),
|
||||
cv.Optional(CONF_TOP104): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP105): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP113): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_KELVIN,
|
||||
),
|
||||
cv.Optional(CONF_TOP115): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_PRESSURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_BAR,
|
||||
),
|
||||
cv.Optional(CONF_TOP116): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP117): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP118): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP127): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_PERCENT,
|
||||
),
|
||||
cv.Optional(CONF_TOP128): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_PERCENT,
|
||||
),
|
||||
cv.Optional(CONF_TOP131): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP134): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP135): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_TEMPERATURE,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_CELSIUS,
|
||||
),
|
||||
cv.Optional(CONF_TOP136): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_DURATION,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_TOP137): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_DURATION,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_MINUTE,
|
||||
),
|
||||
cv.Optional(CONF_TOP138): sensor.sensor_schema(
|
||||
PanasonicHeatpumpSensor,
|
||||
device_class=DEVICE_CLASS_DURATION,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
unit_of_measurement = UNIT_MINUTE,
|
||||
),
|
||||
|
||||
}
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
)
|
||||
}
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
|
||||
async def to_code(config):
|
||||
hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
for key in TYPES:
|
||||
await setup_conf(config, key, hub)
|
||||
|
||||
async def setup_conf(parent_config, key, hub):
|
||||
if child_config := parent_config.get(key):
|
||||
var = await sensor.new_sensor(child_config)
|
||||
cg.add(getattr(hub, f"set_{key}_sensor")(var))
|
||||
if child_config := config.get(key):
|
||||
var = await sensor.new_sensor(child_config)
|
||||
await cg.register_component(var, child_config)
|
||||
await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
cg.add(getattr(hub, f"set_{key}_sensor")(var))
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#include "panasonic_heatpump_sensor.h"
|
||||
#include "esphome/core/log.h"
|
||||
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
static const char *const TAG = "panasonic_heatpump.sensor";
|
||||
|
||||
void PanasonicHeatpumpSensor::dump_config()
|
||||
{
|
||||
LOG_SENSOR("", "Panasonic Heatpump Sensor", this);
|
||||
}
|
||||
} // namespace panasonic_heatpump
|
||||
} // namespace esphome
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
#pragma once
|
||||
#include "esphome/components/sensor/sensor.h"
|
||||
#include "esphome/core/component.h"
|
||||
#include "../panasonic_heatpump.h"
|
||||
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
class PanasonicHeatpumpComponent;
|
||||
class PanasonicHeatpumpSensor : public sensor::Sensor, public Component, public Parented<PanasonicHeatpumpComponent>
|
||||
{
|
||||
public:
|
||||
PanasonicHeatpumpSensor() = default;
|
||||
void dump_config() override;
|
||||
};
|
||||
} // namespace panasonic_heatpump
|
||||
} // namespace esphome
|
||||
|
|
@ -37,7 +37,7 @@ TYPES = [
|
|||
CONF_SET34,
|
||||
]
|
||||
|
||||
PanasonicHeatpumpSwitch = panasonic_heatpump_ns.class_("PanasonicHeatpumpSwitch", switch.Switch)
|
||||
PanasonicHeatpumpSwitch = panasonic_heatpump_ns.class_("PanasonicHeatpumpSwitch", switch.Switch, cg.Component)
|
||||
|
||||
CONFIG_SCHEMA = cv.Schema(
|
||||
{
|
||||
|
|
@ -83,15 +83,13 @@ CONFIG_SCHEMA = cv.Schema(
|
|||
PanasonicHeatpumpSwitch,
|
||||
),
|
||||
}
|
||||
)
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
|
||||
async def to_code(config):
|
||||
hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
for key in TYPES:
|
||||
await setup_conf(config, key, hub)
|
||||
|
||||
async def setup_conf(parent_config, key, hub):
|
||||
if child_config := parent_config.get(key):
|
||||
var = await switch.new_switch(child_config)
|
||||
await cg.register_parented(var, parent_config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
cg.add(getattr(hub, f"set_{key}_switch")(var))
|
||||
if child_config := config.get(key):
|
||||
var = await switch.new_switch(child_config)
|
||||
await cg.register_component(var, child_config)
|
||||
await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
cg.add(getattr(hub, f"set_{key}_switch")(var))
|
||||
|
|
|
|||
|
|
@ -1,10 +1,18 @@
|
|||
#include "panasonic_heatpump_switch.h"
|
||||
#include "esphome/core/log.h"
|
||||
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
static const char *const TAG = "panasonic_heatpump.switch";
|
||||
|
||||
void PanasonicHeatpumpSwitch::dump_config()
|
||||
{
|
||||
LOG_SWITCH("", "Panasonic Heatpump Switch", this);
|
||||
}
|
||||
|
||||
void PanasonicHeatpumpSwitch::write_state(bool state)
|
||||
{
|
||||
this->publish_state(state);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
#include "esphome/components/switch/switch.h"
|
||||
#include "esphome/core/component.h"
|
||||
#include "../panasonic_heatpump.h"
|
||||
|
||||
|
||||
|
|
@ -7,10 +8,12 @@ namespace esphome
|
|||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
class PanasonicHeatpumpSwitch : public switch_::Switch, public Parented<PanasonicHeatpumpComponent>
|
||||
class PanasonicHeatpumpComponent;
|
||||
class PanasonicHeatpumpSwitch : public switch_::Switch, public Component, public Parented<PanasonicHeatpumpComponent>
|
||||
{
|
||||
public:
|
||||
PanasonicHeatpumpSwitch() = default;
|
||||
void dump_config() override;
|
||||
|
||||
protected:
|
||||
void write_state(bool state) override;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from esphome.components import text_sensor
|
|||
from esphome.const import (
|
||||
DEVICE_CLASS_HEAT,
|
||||
)
|
||||
from . import PanasonicHeatpumpComponent, CONF_PANASONIC_HEATPUMP_ID
|
||||
from .. import CONF_PANASONIC_HEATPUMP_ID, PanasonicHeatpumpComponent, panasonic_heatpump_ns
|
||||
|
||||
|
||||
ICON_OPERATING_MODE = "mdi:thermostat"
|
||||
|
|
@ -70,78 +70,100 @@ TYPES = [
|
|||
CONF_TOP130,
|
||||
]
|
||||
|
||||
CONFIG_SCHEMA = cv.All(
|
||||
cv.Schema(
|
||||
{
|
||||
PanasonicHeatpumpTextSensor = panasonic_heatpump_ns.class_("PanasonicHeatpumpTextSensor", text_sensor.TextSensor, cg.Component)
|
||||
|
||||
CONFIG_SCHEMA = cv.Schema(
|
||||
{
|
||||
cv.GenerateID(CONF_PANASONIC_HEATPUMP_ID): cv.use_id(PanasonicHeatpumpComponent),
|
||||
|
||||
cv.Optional(CONF_TOP4): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_OPERATING_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TOP17): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_POWERFUL_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TOP18): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_QUIET_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TOP19): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_HOLIDAY_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TOP20): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_VALVE,
|
||||
),
|
||||
cv.Optional(CONF_TOP44): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_ERROR,
|
||||
),
|
||||
cv.Optional(CONF_TOP58): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_BLOCKED,
|
||||
),
|
||||
cv.Optional(CONF_TOP59): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_BLOCKED,
|
||||
),
|
||||
cv.Optional(CONF_TOP76): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_HEATING_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TOP81): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_COOLING_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TOP92): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_MODEL,
|
||||
),
|
||||
cv.Optional(CONF_TOP94): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_ZONE,
|
||||
),
|
||||
cv.Optional(CONF_TOP101): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_SOLAR_MODE,
|
||||
),
|
||||
cv.Optional(CONF_TOP106): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_PUMP,
|
||||
),
|
||||
cv.Optional(CONF_TOP107): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_LIQUID,
|
||||
),
|
||||
cv.Optional(CONF_TOP111): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TOP112): text_sensor.text_sensor_schema(),
|
||||
cv.Optional(CONF_TOP111): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP112): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
),
|
||||
cv.Optional(CONF_TOP114): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_EXTERNAL_PAD_HEATER,
|
||||
),
|
||||
cv.Optional(CONF_TOP125): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_VALVE,
|
||||
),
|
||||
cv.Optional(CONF_TOP126): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,
|
||||
icon=ICON_VALVE,
|
||||
),
|
||||
cv.Optional(CONF_TOP130): text_sensor.text_sensor_schema(),
|
||||
}
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
)
|
||||
cv.Optional(CONF_TOP130): text_sensor.text_sensor_schema(
|
||||
PanasonicHeatpumpTextSensor,),
|
||||
}
|
||||
).extend(cv.COMPONENT_SCHEMA)
|
||||
|
||||
async def to_code(config):
|
||||
hub = await cg.get_variable(config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
for key in TYPES:
|
||||
await setup_conf(config, key, hub)
|
||||
|
||||
async def setup_conf(parent_config, key, hub):
|
||||
if child_config := parent_config.get(key):
|
||||
var = await text_sensor.new_text_sensor(child_config)
|
||||
cg.add(getattr(hub, f"set_{key}_text_sensor")(var))
|
||||
if child_config := config.get(key):
|
||||
var = await text_sensor.new_text_sensor(child_config)
|
||||
await cg.register_component(var, child_config)
|
||||
await cg.register_parented(var, config[CONF_PANASONIC_HEATPUMP_ID])
|
||||
cg.add(getattr(hub, f"set_{key}_text_sensor")(var))
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#include "panasonic_heatpump_text_sensor.h"
|
||||
#include "esphome/core/log.h"
|
||||
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
static const char *const TAG = "panasonic_heatpump.text_sensor";
|
||||
|
||||
void PanasonicHeatpumpTextSensor::dump_config()
|
||||
{
|
||||
LOG_TEXT_SENSOR("", "Panasonic Heatpump Text Sensor", this);
|
||||
}
|
||||
} // namespace panasonic_heatpump
|
||||
} // namespace esphome
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
#pragma once
|
||||
#include "esphome/components/text_sensor/text_sensor.h"
|
||||
#include "esphome/core/component.h"
|
||||
#include "../panasonic_heatpump.h"
|
||||
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace panasonic_heatpump
|
||||
{
|
||||
class PanasonicHeatpumpComponent;
|
||||
class PanasonicHeatpumpTextSensor : public text_sensor::TextSensor, public Component, public Parented<PanasonicHeatpumpComponent>
|
||||
{
|
||||
public:
|
||||
PanasonicHeatpumpTextSensor() = default;
|
||||
void dump_config() override;
|
||||
};
|
||||
} // namespace panasonic_heatpump
|
||||
} // namespace esphome
|
||||
Loading…
Reference in New Issue