Pylontech integration (solar battery bank) (#4688)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
1 parent
4e6d3729e1
commit
4b6fbd5db0
11 files changed
+528
No files matched your search
@@ -0,0 +1,60 @@
|
||||
#include "pylontech_sensor.h"
|
||||
#include "esphome/core/helpers.h"
|
||||
#include "esphome/core/log.h"
|
||||
|
||||
namespace esphome {
|
||||
namespace pylontech {
|
||||
|
||||
static const char *const TAG = "pylontech.sensor";
|
||||
|
||||
PylontechSensor::PylontechSensor(int8_t bat_num) { this->bat_num_ = bat_num; }
|
||||
|
||||
void PylontechSensor::dump_config() {
|
||||
ESP_LOGCONFIG(TAG, "Pylontech Sensor:");
|
||||
ESP_LOGCONFIG(TAG, " Battery %d", this->bat_num_);
|
||||
LOG_SENSOR(" ", "Voltage", this->voltage_sensor_);
|
||||
LOG_SENSOR(" ", "Current", this->current_sensor_);
|
||||
LOG_SENSOR(" ", "Temperature", this->temperature_sensor_);
|
||||
LOG_SENSOR(" ", "Temperature low", this->temperature_low_sensor_);
|
||||
LOG_SENSOR(" ", "Temperature high", this->temperature_high_sensor_);
|
||||
LOG_SENSOR(" ", "Voltage low", this->voltage_low_sensor_);
|
||||
LOG_SENSOR(" ", "Voltage high", this->voltage_high_sensor_);
|
||||
LOG_SENSOR(" ", "Coulomb", this->coulomb_sensor_);
|
||||
LOG_SENSOR(" ", "MOS Temperature", this->mos_temperature_sensor_);
|
||||
}
|
||||
|
||||
void PylontechSensor::on_line_read(PylontechListener::LineContents *line) {
|
||||
if (this->bat_num_ != line->bat_num) {
|
||||
return;
|
||||
}
|
||||
if (this->voltage_sensor_ != nullptr) {
|
||||
this->voltage_sensor_->publish_state(((float) line->volt) / 1000.0f);
|
||||
}
|
||||
if (this->current_sensor_ != nullptr) {
|
||||
this->current_sensor_->publish_state(((float) line->curr) / 1000.0f);
|
||||
}
|
||||
if (this->temperature_sensor_ != nullptr) {
|
||||
this->temperature_sensor_->publish_state(((float) line->tempr) / 1000.0f);
|
||||
}
|
||||
if (this->temperature_low_sensor_ != nullptr) {
|
||||
this->temperature_low_sensor_->publish_state(((float) line->tlow) / 1000.0f);
|
||||
}
|
||||
if (this->temperature_high_sensor_ != nullptr) {
|
||||
this->temperature_high_sensor_->publish_state(((float) line->thigh) / 1000.0f);
|
||||
}
|
||||
if (this->voltage_low_sensor_ != nullptr) {
|
||||
this->voltage_low_sensor_->publish_state(((float) line->vlow) / 1000.0f);
|
||||
}
|
||||
if (this->voltage_high_sensor_ != nullptr) {
|
||||
this->voltage_high_sensor_->publish_state(((float) line->vhigh) / 1000.0f);
|
||||
}
|
||||
if (this->coulomb_sensor_ != nullptr) {
|
||||
this->coulomb_sensor_->publish_state(line->coulomb);
|
||||
}
|
||||
if (this->mos_temperature_sensor_ != nullptr) {
|
||||
this->mos_temperature_sensor_->publish_state(((float) line->mostempr) / 1000.0f);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace pylontech
|
||||
} // namespace esphome
|
||||
Reference in new issue
Block a user