From ea3eb4b00740fd2ba38a79abea53a38be97c2c0f Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 22 Mar 2023 20:13:42 +0100 Subject: [PATCH] add Diesel energy mix --- README.md | 3 +++ components/truma_inetbox/TrumaEnums.h | 1 + components/truma_inetbox/TrumaiNetBoxApp.h | 2 +- components/truma_inetbox/__init__.py | 1 + .../truma_inetbox/binary_sensor/TrumaHeaterBinarySensor.cpp | 3 +++ components/truma_inetbox/binary_sensor/__init__.py | 1 + components/truma_inetbox/binary_sensor/enum.h | 4 ++++ 7 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ada8644..2fa51bd 100644 --- a/README.md +++ b/README.md @@ -77,9 +77,11 @@ The following `type` values are available: - `HEATER_ROOM` - `HEATER_WATER` - `HEATER_GAS` +- `HEATER_DIESEL` - `HEATER_MIX_1` - `HEATER_MIX_2` - `HEATER_ELECTRICITY` +- `HEATER_HAS_ERROR` - `TIMER_ACTIVE` - `TIMER_ROOM` - `TIMER_WATER` @@ -141,6 +143,7 @@ The following `type` values are available: - `ELECTRIC_POWER_LEVEL` - `ENERGY_MIX` - `OPERATING_STATUS` +- `HEATER_ERROR_CODE` ### Actions diff --git a/components/truma_inetbox/TrumaEnums.h b/components/truma_inetbox/TrumaEnums.h index 26ae40f..50c9da1 100644 --- a/components/truma_inetbox/TrumaEnums.h +++ b/components/truma_inetbox/TrumaEnums.h @@ -85,6 +85,7 @@ enum class TargetTemp : u_int16_t { enum class EnergyMix : u_int8_t { ENERGY_MIX_NONE = 0b00, ENERGY_MIX_GAS = 0b01, + ENERGY_MIX_DIESEL = 0b01, ENERGY_MIX_ELECTRICITY = 0b10, ENERGY_MIX_MIX = 0b11, }; diff --git a/components/truma_inetbox/TrumaiNetBoxApp.h b/components/truma_inetbox/TrumaiNetBoxApp.h index fca977a..af18bc6 100644 --- a/components/truma_inetbox/TrumaiNetBoxApp.h +++ b/components/truma_inetbox/TrumaiNetBoxApp.h @@ -52,7 +52,7 @@ class TrumaiNetBoxApp : public LinBusProtocol { u_int8_t message_counter = 1; // Truma heater conected to CP Plus. - TRUMA_DEVICE heater_device_ = TRUMA_DEVICE::HEATER_COMBI4; + TRUMA_DEVICE heater_device_ = TRUMA_DEVICE::UNKNOWN; TRUMA_DEVICE aircon_device_ = TRUMA_DEVICE::UNKNOWN; TrumaiNetBoxAppAirconAuto airconAuto_; diff --git a/components/truma_inetbox/__init__.py b/components/truma_inetbox/__init__.py index 2beeacc..9bfd005 100644 --- a/components/truma_inetbox/__init__.py +++ b/components/truma_inetbox/__init__.py @@ -296,6 +296,7 @@ EnergyMix_dummy_ns = truma_inetbox_ns.namespace("EnergyMix") CONF_SUPPORTED_ENERGY_MIX = { "NONE": EnergyMix_dummy_ns.ENERGY_MIX_NONE, "GAS": EnergyMix_dummy_ns.ENERGY_MIX_GAS, + "DIESEL": EnergyMix_dummy_ns.ENERGY_MIX_DIESEL, "ELECTRICITY": EnergyMix_dummy_ns.ENERGY_MIX_ELECTRICITY, "MIX": EnergyMix_dummy_ns.ENERGY_MIX_MIX, } diff --git a/components/truma_inetbox/binary_sensor/TrumaHeaterBinarySensor.cpp b/components/truma_inetbox/binary_sensor/TrumaHeaterBinarySensor.cpp index 37f61b6..8222eec 100644 --- a/components/truma_inetbox/binary_sensor/TrumaHeaterBinarySensor.cpp +++ b/components/truma_inetbox/binary_sensor/TrumaHeaterBinarySensor.cpp @@ -19,6 +19,9 @@ void TrumaHeaterBinarySensor::setup() { case TRUMA_BINARY_SENSOR_TYPE::HEATER_GAS: this->publish_state(status_heater->energy_mix_a == EnergyMix::ENERGY_MIX_GAS); break; + case TRUMA_BINARY_SENSOR_TYPE::HEATER_DIESEL: + this->publish_state(status_heater->energy_mix_a == EnergyMix::ENERGY_MIX_DIESEL); + break; case TRUMA_BINARY_SENSOR_TYPE::HEATER_MIX_1: this->publish_state(status_heater->energy_mix_a == EnergyMix::ENERGY_MIX_MIX && status_heater->el_power_level_a == ElectricPowerLevel::ELECTRIC_POWER_LEVEL_900); diff --git a/components/truma_inetbox/binary_sensor/__init__.py b/components/truma_inetbox/binary_sensor/__init__.py index 064cc5e..a990ba3 100644 --- a/components/truma_inetbox/binary_sensor/__init__.py +++ b/components/truma_inetbox/binary_sensor/__init__.py @@ -27,6 +27,7 @@ CONF_SUPPORTED_TYPE = { "HEATER_ROOM": (truma_inetbox_ns.class_("TrumaHeaterBinarySensor", binary_sensor.BinarySensor, cg.Component), TRUMA_BINARY_SENSOR_TYPE_dummy_ns.HEATER_ROOM), "HEATER_WATER": (truma_inetbox_ns.class_("TrumaHeaterBinarySensor", binary_sensor.BinarySensor, cg.Component), TRUMA_BINARY_SENSOR_TYPE_dummy_ns.HEATER_WATER), "HEATER_GAS": (truma_inetbox_ns.class_("TrumaHeaterBinarySensor", binary_sensor.BinarySensor, cg.Component), TRUMA_BINARY_SENSOR_TYPE_dummy_ns.HEATER_GAS), + "HEATER_DIESEL": (truma_inetbox_ns.class_("TrumaHeaterBinarySensor", binary_sensor.BinarySensor, cg.Component), TRUMA_BINARY_SENSOR_TYPE_dummy_ns.HEATER_DIESEL), "HEATER_MIX_1": (truma_inetbox_ns.class_("TrumaHeaterBinarySensor", binary_sensor.BinarySensor, cg.Component), TRUMA_BINARY_SENSOR_TYPE_dummy_ns.HEATER_MIX_1), "HEATER_MIX_2": (truma_inetbox_ns.class_("TrumaHeaterBinarySensor", binary_sensor.BinarySensor, cg.Component), TRUMA_BINARY_SENSOR_TYPE_dummy_ns.HEATER_MIX_2), "HEATER_ELECTRICITY": (truma_inetbox_ns.class_("TrumaHeaterBinarySensor", binary_sensor.BinarySensor, cg.Component), TRUMA_BINARY_SENSOR_TYPE_dummy_ns.HEATER_ELECTRICITY), diff --git a/components/truma_inetbox/binary_sensor/enum.h b/components/truma_inetbox/binary_sensor/enum.h index 2c6779e..a2bd2be 100644 --- a/components/truma_inetbox/binary_sensor/enum.h +++ b/components/truma_inetbox/binary_sensor/enum.h @@ -7,6 +7,7 @@ enum class TRUMA_BINARY_SENSOR_TYPE { HEATER_ROOM, HEATER_WATER, HEATER_GAS, + HEATER_DIESEL, HEATER_MIX_1, HEATER_MIX_2, HEATER_ELECTRICITY, @@ -28,6 +29,9 @@ static const char *enum_to_c_str(const TRUMA_BINARY_SENSOR_TYPE val) { case TRUMA_BINARY_SENSOR_TYPE::HEATER_GAS: return "HEATER_GAS"; break; + case TRUMA_BINARY_SENSOR_TYPE::HEATER_DIESEL: + return "HEATER_DIESEL"; + break; case TRUMA_BINARY_SENSOR_TYPE::HEATER_MIX_1: return "HEATER_MIX_1"; break;