🔋 Updates battery service with voltage and current
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
* https://github.com/theelims/ESP32-sveltekit
|
* https://github.com/theelims/ESP32-sveltekit
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023 theelims
|
* Copyright (C) 2023 theelims
|
||||||
|
* Copyright (C) 2024 runeharlyk
|
||||||
*
|
*
|
||||||
* All Rights Reserved. This software may be modified and distributed under
|
* All Rights Reserved. This software may be modified and distributed under
|
||||||
* the terms of the LGPL v3 license. See the LICENSE file for details.
|
* the terms of the LGPL v3 license. See the LICENSE file for details.
|
||||||
@@ -24,9 +25,9 @@ void BatteryService::begin()
|
|||||||
void BatteryService::batteryEvent()
|
void BatteryService::batteryEvent()
|
||||||
{
|
{
|
||||||
JsonDocument doc;
|
JsonDocument doc;
|
||||||
char message[32];
|
char message[64];
|
||||||
doc["soc"] = _lastSOC;
|
doc["voltage"] = _voltage;
|
||||||
doc["charging"] = _isCharging;
|
doc["current"] = _current;
|
||||||
serializeJson(doc, message);
|
serializeJson(doc, message);
|
||||||
_socket->emit(EVENT_BATTERY, message);
|
_socket->emit(EVENT_BATTERY, message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
* https://github.com/theelims/ESP32-sveltekit
|
* https://github.com/theelims/ESP32-sveltekit
|
||||||
*
|
*
|
||||||
* Copyright (C) 2023 theelims
|
* Copyright (C) 2023 theelims
|
||||||
|
* Copyright (C) 2024 runeharlyk
|
||||||
*
|
*
|
||||||
* All Rights Reserved. This software may be modified and distributed under
|
* All Rights Reserved. This software may be modified and distributed under
|
||||||
* the terms of the LGPL v3 license. See the LICENSE file for details.
|
* the terms of the LGPL v3 license. See the LICENSE file for details.
|
||||||
@@ -25,21 +26,39 @@ public:
|
|||||||
|
|
||||||
void begin();
|
void begin();
|
||||||
|
|
||||||
void updateSOC(float stateOfCharge)
|
void loop() {
|
||||||
|
unsigned long currentMillis = millis();
|
||||||
|
|
||||||
|
if (!_lastUpdate || (currentMillis - _lastUpdate) >= BATTERY_CHECK_INTERVAL)
|
||||||
{
|
{
|
||||||
_lastSOC = (int)round(stateOfCharge);
|
_lastUpdate = currentMillis;
|
||||||
|
updateBattery();
|
||||||
|
}
|
||||||
|
if(!_lastEmit || (currentMillis - _lastEmit) >= BATTERY_INTERVAL)
|
||||||
|
{
|
||||||
|
_lastEmit = currentMillis;
|
||||||
batteryEvent();
|
batteryEvent();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void setCharging(boolean isCharging)
|
void updateBattery()
|
||||||
{
|
{
|
||||||
_isCharging = isCharging;
|
}
|
||||||
batteryEvent();
|
|
||||||
|
float getVoltage() {
|
||||||
|
return _voltage;
|
||||||
|
}
|
||||||
|
|
||||||
|
float getCurrent() {
|
||||||
|
return _current;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void batteryEvent();
|
void batteryEvent();
|
||||||
EventSocket *_socket;
|
EventSocket *_socket;
|
||||||
int _lastSOC = 100;
|
|
||||||
boolean _isCharging = false;
|
unsigned long _lastUpdate;
|
||||||
|
unsigned long _lastEmit;
|
||||||
|
float _voltage = 0;
|
||||||
|
float _current = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user