diff --git a/esphome/components/diesel_heater_ble/button.h b/esphome/components/diesel_heater_ble/button.h deleted file mode 100644 index 048c8504b0..0000000000 --- a/esphome/components/diesel_heater_ble/button.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include "esphome/core/component.h" - -#include "heater.h" -#include "messages.h" - -namespace esphome { -namespace diesel_heater_ble { - -} // namespace diesel_heater_ble -} // namespace esphome \ No newline at end of file diff --git a/esphome/components/diesel_heater_ble/button.py b/esphome/components/diesel_heater_ble/button.py deleted file mode 100644 index ee591098ea..0000000000 --- a/esphome/components/diesel_heater_ble/button.py +++ /dev/null @@ -1,24 +0,0 @@ -import esphome.codegen as cg -import esphome.config_validation as cv -from esphome.const import ( - CONF_POWER, - ICON_POWER, - DEVICE_CLASS_BUTTON -) - -from . import DieselHeaterBLE, CONF_HEATER_ID, diesel_heater_ble_ns - -CODEOWNERS = ["@warehog"] -DEPENDENCIES = ["diesel_heater_ble"] - -CONFIG_SCHEMA = ( - cv.Schema( - { - cv.GenerateID(CONF_HEATER_ID): cv.use_id(DieselHeaterBLE), - } - ) - .extend(cv.COMPONENT_SCHEMA) -) - -async def to_code(config): - parent = await cg.get_variable(config[CONF_HEATER_ID]) \ No newline at end of file diff --git a/esphome/components/diesel_heater_ble/heater.cpp b/esphome/components/diesel_heater_ble/heater.cpp index 6422ab0f1b..2b19703621 100644 --- a/esphome/components/diesel_heater_ble/heater.cpp +++ b/esphome/components/diesel_heater_ble/heater.cpp @@ -70,7 +70,6 @@ bool DieselHeaterBLE::ble_write_chr(esp_gatt_if_t gattc_if, esp_bd_addr_t remote ESP_LOGD(TAG, "Write characteristic failed, status: %d", ret); return false; } else { - ESP_LOGD(TAG, "Write characteristic success: %s", format_hex_pretty(std::vector(data, data + len)).c_str()); } return true; } @@ -179,10 +178,10 @@ void DieselHeaterBLE::update_sensors(const HeaterState &new_state) { is_auto_->publish_state(new_state.isauto); return; } - // if (language_ != nullptr && language_->state != new_state.language) { - // language_->publish_state(new_state.language); - // return; - // } + if (language_ != nullptr && language_->state != new_state.language) { + language_->publish_state(new_state.language); + return; + } if (temp_offset_ != nullptr && temp_offset_->state != new_state.tempoffset) { temp_offset_->publish_state(new_state.tempoffset); return; @@ -213,6 +212,24 @@ void DieselHeaterBLE::update_sensors(const HeaterState &new_state) { } } +void DieselHeaterBLE::set_power_level_action(float value) { + if (this->get_state().runningmode == 2) { + this->sent_request(SetRunningModeRequest(1).toBytes()); + } + this->sent_request(SetLevelRequest(value + 1).toBytes()); +} + +void DieselHeaterBLE::set_temp_number_action(float value) { + if (this->get_state().runningmode == 1) { + this->sent_request(SetRunningModeRequest(2).toBytes()); + } + this->sent_request(SetTemperatureRequest(value).toBytes()); +} + +void DieselHeaterBLE::set_power_switch_action(bool state) { + this->sent_request(SetPowerRequest(state).toBytes()); +} + } // namespace diesel_heater_ble } // namespace esphome diff --git a/esphome/components/diesel_heater_ble/heater.h b/esphome/components/diesel_heater_ble/heater.h index 698d287fc7..b889f6e09e 100644 --- a/esphome/components/diesel_heater_ble/heater.h +++ b/esphome/components/diesel_heater_ble/heater.h @@ -63,11 +63,18 @@ class DieselHeaterBLE : public Component, public ble_client::BLEClientNode { void set_temp_unit(sensor::Sensor *sensor) { temp_unit_ = sensor; } void set_altitude_unit(sensor::Sensor *sensor) { altitude_unit_ = sensor; } void set_automatic_heating(sensor::Sensor *sensor) { automatic_heating_ = sensor; } - + + // Number setters void set_power_level_number(number::Number *number) { power_level_number_ = number; } + void set_power_level_action(float value); + void set_set_temp_number(number::Number *number) { set_temp_number_ = number; } + void set_temp_number_action(float value); + // Switch setter void set_power_switch(switch_::Switch *sw) { power_switch_ = sw; } + void set_power_switch_action(bool state); + HeaterState get_state() { return this->state_; diff --git a/esphome/components/diesel_heater_ble/number.h b/esphome/components/diesel_heater_ble/number.h index 52e072401e..ede45a0bc5 100644 --- a/esphome/components/diesel_heater_ble/number.h +++ b/esphome/components/diesel_heater_ble/number.h @@ -4,7 +4,6 @@ #include "esphome/core/component.h" #include "heater.h" -#include "messages.h" namespace esphome { namespace diesel_heater_ble { @@ -15,11 +14,8 @@ class PowerLevelNumber : public number::Number, public Parented protected: void control(float value) override { - if (this->parent_->get_state().runningmode == 2) { - this->parent_->sent_request(SetRunningModeRequest(1).toBytes()); + this->parent_->set_power_level_action(value); } - this->parent_->sent_request(SetLevelRequest(value + 1).toBytes()); - } }; class SetTempNumber : public number::Number, public Parented { @@ -28,10 +24,7 @@ class SetTempNumber : public number::Number, public Parented { protected: void control(float value) override { - if (this->parent_->get_state().runningmode == 1) { - this->parent_->sent_request(SetRunningModeRequest(2).toBytes()); - } - this->parent_->sent_request(SetTemperatureRequest(value).toBytes()); + this->parent_->set_temp_number_action(value); } }; diff --git a/esphome/components/diesel_heater_ble/switch.h b/esphome/components/diesel_heater_ble/switch.h index f1eaaa4910..ffb426a27c 100644 --- a/esphome/components/diesel_heater_ble/switch.h +++ b/esphome/components/diesel_heater_ble/switch.h @@ -14,8 +14,7 @@ class PowerSwitch : public switch_::Switch, public Parented { protected: void write_state(bool state) override { - ESP_LOGD("diesel_heater_ble", "Setting power state to: %d", state); - this->parent_->sent_request(SetPowerRequest(state).toBytes()); + this->parent_->set_power_switch_action(state); } };