Add heater error code sensors.
This commit is contained in:
parent
7a2bf42454
commit
975797a300
@ -203,7 +203,8 @@ struct StatusFrameHeater { // NOLINT(altera-struct-pack-align)
|
||||
u_int16_t current_temp_water;
|
||||
u_int16_t current_temp_room;
|
||||
OperatingStatus operating_status;
|
||||
u_int16_t error_code;
|
||||
u_int8_t error_code_low;
|
||||
u_int8_t error_code_high;
|
||||
u_int8_t heater_unknown_2;
|
||||
} __attribute__((packed));
|
||||
|
||||
|
||||
@ -30,6 +30,9 @@ void TrumaHeaterBinarySensor::setup() {
|
||||
case TRUMA_BINARY_SENSOR_TYPE::HEATER_ELECTRICITY:
|
||||
this->publish_state(status_heater->energy_mix_a == EnergyMix::ENERGY_MIX_ELECTRICITY);
|
||||
break;
|
||||
case TRUMA_BINARY_SENSOR_TYPE::HEATER_HAS_ERROR:
|
||||
this->publish_state(status_heater->error_code_high != 0x00);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@ -30,6 +30,7 @@ CONF_SUPPORTED_TYPE = {
|
||||
"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),
|
||||
"HEATER_HAS_ERROR": (truma_inetbox_ns.class_("TrumaHeaterBinarySensor", binary_sensor.BinarySensor, cg.Component), TRUMA_BINARY_SENSOR_TYPE_dummy_ns.HEATER_HAS_ERROR),
|
||||
# TrumaTimerBinarySensor
|
||||
"TIMER_ACTIVE": (truma_inetbox_ns.class_("TrumaTimerBinarySensor", binary_sensor.BinarySensor, cg.Component), TRUMA_BINARY_SENSOR_TYPE_dummy_ns.TIMER_ACTIVE),
|
||||
"TIMER_ROOM": (truma_inetbox_ns.class_("TrumaTimerBinarySensor", binary_sensor.BinarySensor, cg.Component), TRUMA_BINARY_SENSOR_TYPE_dummy_ns.TIMER_ROOM),
|
||||
|
||||
@ -10,6 +10,7 @@ enum class TRUMA_BINARY_SENSOR_TYPE {
|
||||
HEATER_MIX_1,
|
||||
HEATER_MIX_2,
|
||||
HEATER_ELECTRICITY,
|
||||
HEATER_HAS_ERROR,
|
||||
|
||||
TIMER_ACTIVE,
|
||||
TIMER_ROOM,
|
||||
@ -36,6 +37,9 @@ static const char *enum_to_c_str(const TRUMA_BINARY_SENSOR_TYPE val) {
|
||||
case TRUMA_BINARY_SENSOR_TYPE::HEATER_ELECTRICITY:
|
||||
return "HEATER_ELECTRICITY";
|
||||
break;
|
||||
case TRUMA_BINARY_SENSOR_TYPE::HEATER_HAS_ERROR:
|
||||
return "HEATER_HAS_ERROR";
|
||||
break;
|
||||
|
||||
case TRUMA_BINARY_SENSOR_TYPE::TIMER_ACTIVE:
|
||||
return "TIMER_ACTIVE";
|
||||
|
||||
@ -34,6 +34,10 @@ void TrumaSensor::setup() {
|
||||
case TRUMA_SENSOR_TYPE::OPERATING_STATUS:
|
||||
this->publish_state(static_cast<float>(status_heater->operating_status));
|
||||
break;
|
||||
case TRUMA_SENSOR_TYPE::HEATER_ERROR_CODE:
|
||||
float errorcode = status_heater->error_code_high * 100.0f + status_heater->error_code_low;
|
||||
this->publish_state(errorcode);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ enum class TRUMA_SENSOR_TYPE {
|
||||
ELECTRIC_POWER_LEVEL,
|
||||
ENERGY_MIX,
|
||||
OPERATING_STATUS,
|
||||
HEATER_ERROR_CODE,
|
||||
};
|
||||
|
||||
static const char *enum_to_c_str(const TRUMA_SENSOR_TYPE val) {
|
||||
@ -42,6 +43,9 @@ static const char *enum_to_c_str(const TRUMA_SENSOR_TYPE val) {
|
||||
case TRUMA_SENSOR_TYPE::OPERATING_STATUS:
|
||||
return "OPERATING_STATUS";
|
||||
break;
|
||||
case TRUMA_SENSOR_TYPE::HEATER_ERROR_CODE:
|
||||
return "HEATER_ERROR_CODE";
|
||||
break;
|
||||
default:
|
||||
return "";
|
||||
break;
|
||||
|
||||
@ -42,6 +42,7 @@ CONF_SUPPORTED_TYPE = {
|
||||
"ELECTRIC_POWER_LEVEL": (TRUMA_SENSOR_TYPE_dummy_ns.ELECTRIC_POWER_LEVEL, UNIT_WATT, ICON_POWER, 0, DEVICE_CLASS_TEMPERATURE),
|
||||
"ENERGY_MIX": (TRUMA_SENSOR_TYPE_dummy_ns.ENERGY_MIX, UNIT_EMPTY, ICON_GAS_CYLINDER, 0, DEVICE_CLASS_TEMPERATURE),
|
||||
"OPERATING_STATUS": (TRUMA_SENSOR_TYPE_dummy_ns.OPERATING_STATUS, UNIT_EMPTY, ICON_POWER, 0, DEVICE_CLASS_TEMPERATURE),
|
||||
"HEATER_ERROR_CODE": (TRUMA_SENSOR_TYPE_dummy_ns.HEATER_ERROR_CODE, UNIT_EMPTY, ICON_POWER, 0, DEVICE_CLASS_TEMPERATURE),
|
||||
}
|
||||
|
||||
|
||||
|
||||
10
truma.yaml
10
truma.yaml
@ -8,6 +8,10 @@ esphome:
|
||||
|
||||
external_components:
|
||||
- source: github://Fabian-Schmidt/esphome-truma_inetbox
|
||||
#- source:
|
||||
# type: local
|
||||
# path: ./components
|
||||
# components: ["truma_inetbox", "uart"]
|
||||
|
||||
esp32:
|
||||
board: mhetesp32devkit
|
||||
@ -74,6 +78,9 @@ binary_sensor:
|
||||
- platform: truma_inetbox
|
||||
name: "Heater mode Elec"
|
||||
type: HEATER_ELECTRICITY
|
||||
- platform: truma_inetbox
|
||||
name: "Heater has error"
|
||||
type: HEATER_HAS_ERROR
|
||||
|
||||
- platform: truma_inetbox
|
||||
name: "Timer active"
|
||||
@ -130,6 +137,9 @@ sensor:
|
||||
- platform: truma_inetbox
|
||||
name: "Operating status"
|
||||
type: OPERATING_STATUS
|
||||
- platform: truma_inetbox
|
||||
name: "Heater error code"
|
||||
type: HEATER_ERROR_CODE
|
||||
|
||||
switch:
|
||||
- platform: template
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user