As described here I want to see the remaining battery voltage and energy percentage from an MAX17043 i2c bus sensor connected to an ESP32 board (DFR firebeetle rev4).
But the sensor shows a permanent value for each:
256 % Battery Power
5119 V Voltage
This sadly never changes…
I used this ESPhome config with additional MAX17043_component.h as described there.
Hi. I managed to get my MAX17043 (Sparkfun LiFuelGauge) connected to a Sparkfun ESP32 thing to work, using a different library.
lifuelgauge_sensor.h:
#include "esphome.h"
#include <LiFuelGauge.h>
class LiFuelGaugeSensor : public PollingComponent, public Sensor {
public:
// constructor
Sensor *voltage_sensor = new Sensor();
Sensor *percentage_sensor = new Sensor();
LiFuelGauge gauge{MAX17043}; // Create a MAX17043
LiFuelGaugeSensor() : PollingComponent(15000) {}
void setup() override {
// This will be called by App.setup()
// Battery measurement init
gauge.reset();
}
void update() override {
// This will be called every "update_interval" milliseconds.
// Get Battery status
float batt_soc = gauge.getSOC();
percentage_sensor->publish_state(batt_soc);
// Get battery voltage
float batt_volt = gauge.getVoltage();
voltage_sensor->publish_state(batt_volt);
}
};