From 7df9370631a4e847e37eb7746742e34cfb4b2bfe Mon Sep 17 00:00:00 2001 From: ElVit Date: Sat, 8 Feb 2025 21:12:19 +0100 Subject: [PATCH] Added custom classes vor sensor, binary_sensor and text_sensor. Added dump_config function to number, select and switch classes. --- .../__init__.py} | 75 +++++-- .../panasonic_heatpump_binary_sensor.cpp | 16 ++ .../panasonic_heatpump_binary_sensor.h | 19 ++ .../panasonic_heatpump/number/__init__.py | 16 +- .../number/panasonic_heatpump_number.cpp | 8 + .../number/panasonic_heatpump_number.h | 4 +- .../panasonic_heatpump/panasonic_heatpump.cpp | 204 ------------------ .../panasonic_heatpump/select/__init__.py | 16 +- .../select/panasonic_heatpump_select.cpp | 8 + .../select/panasonic_heatpump_select.h | 4 +- .../{sensor.py => sensor/__init__.py} | 127 +++++++++-- .../sensor/panasonic_heatpump_sensor.cpp | 16 ++ .../sensor/panasonic_heatpump_sensor.h | 19 ++ .../panasonic_heatpump/switch/__init__.py | 16 +- .../switch/panasonic_heatpump_switch.cpp | 8 + .../switch/panasonic_heatpump_switch.h | 5 +- .../__init__.py} | 54 +++-- .../panasonic_heatpump_text_sensor.cpp | 16 ++ .../panasonic_heatpump_text_sensor.h | 19 ++ 19 files changed, 362 insertions(+), 288 deletions(-) rename components/panasonic_heatpump/{binary_sensor.py => binary_sensor/__init__.py} (70%) create mode 100644 components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp create mode 100644 components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.h rename components/panasonic_heatpump/{sensor.py => sensor/__init__.py} (86%) create mode 100644 components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp create mode 100644 components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.h rename components/panasonic_heatpump/{text_sensor.py => text_sensor/__init__.py} (71%) create mode 100644 components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp create mode 100644 components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.h diff --git a/components/panasonic_heatpump/binary_sensor.py b/components/panasonic_heatpump/binary_sensor/__init__.py similarity index 70% rename from components/panasonic_heatpump/binary_sensor.py rename to components/panasonic_heatpump/binary_sensor/__init__.py index 568f922..f15e868 100644 --- a/components/panasonic_heatpump/binary_sensor.py +++ b/components/panasonic_heatpump/binary_sensor/__init__.py @@ -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)) diff --git a/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp b/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp new file mode 100644 index 0000000..ddbb516 --- /dev/null +++ b/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.cpp @@ -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 diff --git a/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.h b/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.h new file mode 100644 index 0000000..4283ce8 --- /dev/null +++ b/components/panasonic_heatpump/binary_sensor/panasonic_heatpump_binary_sensor.h @@ -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 + { + public: + PanasonicHeatpumpBinarySensor() = default; + void dump_config() override; + }; + } // namespace panasonic_heatpump +} // namespace esphome diff --git a/components/panasonic_heatpump/number/__init__.py b/components/panasonic_heatpump/number/__init__.py index 2c1baf4..ad3ec06 100644 --- a/components/panasonic_heatpump/number/__init__.py +++ b/components/panasonic_heatpump/number/__init__.py @@ -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)) diff --git a/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp b/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp index 54a41db..124c318 100644 --- a/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp +++ b/components/panasonic_heatpump/number/panasonic_heatpump_number.cpp @@ -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); diff --git a/components/panasonic_heatpump/number/panasonic_heatpump_number.h b/components/panasonic_heatpump/number/panasonic_heatpump_number.h index 50fec1d..bb3513c 100644 --- a/components/panasonic_heatpump/number/panasonic_heatpump_number.h +++ b/components/panasonic_heatpump/number/panasonic_heatpump_number.h @@ -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 + class PanasonicHeatpumpNumber : public number::Number, public Component, public Parented { public: PanasonicHeatpumpNumber() = default; + void dump_config() override; protected: void control(float value) override; diff --git a/components/panasonic_heatpump/panasonic_heatpump.cpp b/components/panasonic_heatpump/panasonic_heatpump.cpp index 9304741..800f498 100644 --- a/components/panasonic_heatpump/panasonic_heatpump.cpp +++ b/components/panasonic_heatpump/panasonic_heatpump.cpp @@ -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() diff --git a/components/panasonic_heatpump/select/__init__.py b/components/panasonic_heatpump/select/__init__.py index b851bd0..4fa60dd 100644 --- a/components/panasonic_heatpump/select/__init__.py +++ b/components/panasonic_heatpump/select/__init__.py @@ -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)) diff --git a/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp b/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp index 8f86010..f2129f7 100644 --- a/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp +++ b/components/panasonic_heatpump/select/panasonic_heatpump_select.cpp @@ -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); diff --git a/components/panasonic_heatpump/select/panasonic_heatpump_select.h b/components/panasonic_heatpump/select/panasonic_heatpump_select.h index 675c1f3..85267ac 100644 --- a/components/panasonic_heatpump/select/panasonic_heatpump_select.h +++ b/components/panasonic_heatpump/select/panasonic_heatpump_select.h @@ -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 + class PanasonicHeatpumpSelect : public select::Select, public Component, public Parented { public: PanasonicHeatpumpSelect() = default; + void dump_config() override; protected: void control(const std::string &value) override; diff --git a/components/panasonic_heatpump/sensor.py b/components/panasonic_heatpump/sensor/__init__.py similarity index 86% rename from components/panasonic_heatpump/sensor.py rename to components/panasonic_heatpump/sensor/__init__.py index b727d7f..ffcc1b7 100644 --- a/components/panasonic_heatpump/sensor.py +++ b/components/panasonic_heatpump/sensor/__init__.py @@ -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)) diff --git a/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp b/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp new file mode 100644 index 0000000..e6d5307 --- /dev/null +++ b/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.cpp @@ -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 diff --git a/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.h b/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.h new file mode 100644 index 0000000..64447e6 --- /dev/null +++ b/components/panasonic_heatpump/sensor/panasonic_heatpump_sensor.h @@ -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 + { + public: + PanasonicHeatpumpSensor() = default; + void dump_config() override; + }; + } // namespace panasonic_heatpump +} // namespace esphome diff --git a/components/panasonic_heatpump/switch/__init__.py b/components/panasonic_heatpump/switch/__init__.py index 8e596b0..983ecf8 100644 --- a/components/panasonic_heatpump/switch/__init__.py +++ b/components/panasonic_heatpump/switch/__init__.py @@ -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)) diff --git a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp index 7df2095..f6d5281 100644 --- a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp +++ b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.cpp @@ -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); diff --git a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.h b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.h index be2c470..a7abd93 100644 --- a/components/panasonic_heatpump/switch/panasonic_heatpump_switch.h +++ b/components/panasonic_heatpump/switch/panasonic_heatpump_switch.h @@ -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 + class PanasonicHeatpumpComponent; + class PanasonicHeatpumpSwitch : public switch_::Switch, public Component, public Parented { public: PanasonicHeatpumpSwitch() = default; + void dump_config() override; protected: void write_state(bool state) override; diff --git a/components/panasonic_heatpump/text_sensor.py b/components/panasonic_heatpump/text_sensor/__init__.py similarity index 71% rename from components/panasonic_heatpump/text_sensor.py rename to components/panasonic_heatpump/text_sensor/__init__.py index adb8bca..275e3ca 100644 --- a/components/panasonic_heatpump/text_sensor.py +++ b/components/panasonic_heatpump/text_sensor/__init__.py @@ -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)) \ No newline at end of file + 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)) diff --git a/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp b/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp new file mode 100644 index 0000000..f065e88 --- /dev/null +++ b/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.cpp @@ -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 diff --git a/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.h b/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.h new file mode 100644 index 0000000..254e6df --- /dev/null +++ b/components/panasonic_heatpump/text_sensor/panasonic_heatpump_text_sensor.h @@ -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 + { + public: + PanasonicHeatpumpTextSensor() = default; + void dump_config() override; + }; + } // namespace panasonic_heatpump +} // namespace esphome