mirror of
https://github.com/esphome/esphome.git
synced 2025-11-16 14:55:50 +00:00
80 lines
2.8 KiB
C++
80 lines
2.8 KiB
C++
#include "atm90e32_button.h"
|
|
#include "esphome/core/component.h"
|
|
#include "esphome/core/log.h"
|
|
|
|
namespace esphome {
|
|
namespace atm90e32 {
|
|
|
|
static const char *const TAG = "atm90e32.button";
|
|
|
|
void ATM90E32GainCalibrationButton::press_action() {
|
|
if (this->parent_ == nullptr) {
|
|
ESP_LOGW(TAG, "[CALIBRATION] No meters assigned to Gain Calibration button [%s]", this->get_name().c_str());
|
|
return;
|
|
}
|
|
|
|
ESP_LOGI(TAG, "%s", this->get_name().c_str());
|
|
ESP_LOGI(TAG,
|
|
"[CALIBRATION] Use gain_ct: & gain_voltage: under each phase_x: in your config file to save these values");
|
|
this->parent_->run_gain_calibrations();
|
|
}
|
|
|
|
void ATM90E32ClearGainCalibrationButton::press_action() {
|
|
if (this->parent_ == nullptr) {
|
|
ESP_LOGW(TAG, "[CALIBRATION] No meters assigned to Clear Gain button [%s]", this->get_name().c_str());
|
|
return;
|
|
}
|
|
|
|
ESP_LOGI(TAG, "%s", this->get_name().c_str());
|
|
this->parent_->clear_gain_calibrations();
|
|
}
|
|
|
|
void ATM90E32OffsetCalibrationButton::press_action() {
|
|
if (this->parent_ == nullptr) {
|
|
ESP_LOGW(TAG, "[CALIBRATION] No meters assigned to Offset Calibration button [%s]", this->get_name().c_str());
|
|
return;
|
|
}
|
|
|
|
ESP_LOGI(TAG, "%s", this->get_name().c_str());
|
|
ESP_LOGI(TAG, "[CALIBRATION] **NOTE: CTs and ACVs must be 0 during this process. USB power only**");
|
|
ESP_LOGI(TAG, "[CALIBRATION] Use offset_voltage: & offset_current: under each phase_x: in your config file to save "
|
|
"these values");
|
|
this->parent_->run_offset_calibrations();
|
|
}
|
|
|
|
void ATM90E32ClearOffsetCalibrationButton::press_action() {
|
|
if (this->parent_ == nullptr) {
|
|
ESP_LOGW(TAG, "[CALIBRATION] No meters assigned to Clear Offset button [%s]", this->get_name().c_str());
|
|
return;
|
|
}
|
|
|
|
ESP_LOGI(TAG, "%s", this->get_name().c_str());
|
|
this->parent_->clear_offset_calibrations();
|
|
}
|
|
|
|
void ATM90E32PowerOffsetCalibrationButton::press_action() {
|
|
if (this->parent_ == nullptr) {
|
|
ESP_LOGW(TAG, "[CALIBRATION] No meters assigned to Power Calibration button [%s]", this->get_name().c_str());
|
|
return;
|
|
}
|
|
|
|
ESP_LOGI(TAG, "%s", this->get_name().c_str());
|
|
ESP_LOGI(TAG, "[CALIBRATION] **NOTE: CTs must be 0 during this process. Voltage reference should be present**");
|
|
ESP_LOGI(TAG, "[CALIBRATION] Use offset_active_power: & offset_reactive_power: under each phase_x: in your config "
|
|
"file to save these values");
|
|
this->parent_->run_power_offset_calibrations();
|
|
}
|
|
|
|
void ATM90E32ClearPowerOffsetCalibrationButton::press_action() {
|
|
if (this->parent_ == nullptr) {
|
|
ESP_LOGW(TAG, "[CALIBRATION] No meters assigned to Clear Power button [%s]", this->get_name().c_str());
|
|
return;
|
|
}
|
|
|
|
ESP_LOGI(TAG, "%s", this->get_name().c_str());
|
|
this->parent_->clear_power_offset_calibrations();
|
|
}
|
|
|
|
} // namespace atm90e32
|
|
} // namespace esphome
|