🔋 Updates battery service with voltage and current

This commit is contained in:
Rune Harlyk
2024-06-25 21:16:31 +02:00
parent e0096e53a9
commit d489759087
2 changed files with 32 additions and 12 deletions
+4 -3
View File
@@ -6,6 +6,7 @@
* https://github.com/theelims/ESP32-sveltekit
*
* Copyright (C) 2023 theelims
* Copyright (C) 2024 runeharlyk
*
* All Rights Reserved. This software may be modified and distributed under
* the terms of the LGPL v3 license. See the LICENSE file for details.
@@ -24,9 +25,9 @@ void BatteryService::begin()
void BatteryService::batteryEvent()
{
JsonDocument doc;
char message[32];
doc["soc"] = _lastSOC;
doc["charging"] = _isCharging;
char message[64];
doc["voltage"] = _voltage;
doc["current"] = _current;
serializeJson(doc, message);
_socket->emit(EVENT_BATTERY, message);
}
+28 -9
View File
@@ -8,6 +8,7 @@
* https://github.com/theelims/ESP32-sveltekit
*
* Copyright (C) 2023 theelims
* Copyright (C) 2024 runeharlyk
*
* All Rights Reserved. This software may be modified and distributed under
* the terms of the LGPL v3 license. See the LICENSE file for details.
@@ -25,21 +26,39 @@ public:
void begin();
void updateSOC(float stateOfCharge)
{
_lastSOC = (int)round(stateOfCharge);
batteryEvent();
void loop() {
unsigned long currentMillis = millis();
if (!_lastUpdate || (currentMillis - _lastUpdate) >= BATTERY_CHECK_INTERVAL)
{
_lastUpdate = currentMillis;
updateBattery();
}
if(!_lastEmit || (currentMillis - _lastEmit) >= BATTERY_INTERVAL)
{
_lastEmit = currentMillis;
batteryEvent();
}
}
void setCharging(boolean isCharging)
void updateBattery()
{
_isCharging = isCharging;
batteryEvent();
}
float getVoltage() {
return _voltage;
}
float getCurrent() {
return _current;
}
private:
void batteryEvent();
EventSocket *_socket;
int _lastSOC = 100;
boolean _isCharging = false;
unsigned long _lastUpdate;
unsigned long _lastEmit;
float _voltage = 0;
float _current = 0;
};