Added pzemdc reset energy action (#4481)

* remove unused sensors on pzemdc

* add reset energy action for pzemdc

* fix lint errors

* remove trailing space on pzemdc.h

* make method reset_energy of pzemdc public

* Apply suggestions from code review

---------

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
Kai Gerken
2023-03-08 20:00:44 +01:00
committed by GitHub
parent 600f4be2c4
commit 1087cb55b4
4 changed files with 45 additions and 4 deletions
+12 -4
View File
@@ -15,8 +15,6 @@ class PZEMDC : public PollingComponent, public modbus::ModbusDevice {
void set_current_sensor(sensor::Sensor *current_sensor) { current_sensor_ = current_sensor; }
void set_power_sensor(sensor::Sensor *power_sensor) { power_sensor_ = power_sensor; }
void set_energy_sensor(sensor::Sensor *energy_sensor) { energy_sensor_ = energy_sensor; }
void set_frequency_sensor(sensor::Sensor *frequency_sensor) { frequency_sensor_ = frequency_sensor; }
void set_powerfactor_sensor(sensor::Sensor *powerfactor_sensor) { power_factor_sensor_ = powerfactor_sensor; }
void update() override;
@@ -24,14 +22,24 @@ class PZEMDC : public PollingComponent, public modbus::ModbusDevice {
void dump_config() override;
void reset_energy();
protected:
sensor::Sensor *voltage_sensor_{nullptr};
sensor::Sensor *current_sensor_{nullptr};
sensor::Sensor *power_sensor_{nullptr};
sensor::Sensor *frequency_sensor_{nullptr};
sensor::Sensor *power_factor_sensor_{nullptr};
sensor::Sensor *energy_sensor_{nullptr};
};
template<typename... Ts> class ResetEnergyAction : public Action<Ts...> {
public:
ResetEnergyAction(PZEMDC *pzemdc) : pzemdc_(pzemdc) {}
void play(Ts... x) override { this->pzemdc_->reset_energy(); }
protected:
PZEMDC *pzemdc_;
};
} // namespace pzemdc
} // namespace esphome