* add calculated values to VE.Direct data solar current, battery output power, and the charger's efficiency can be calculated from the values reported by the charger. the efficiency must be taken with a grain of salt. it seems that the solar power value and the battery output voltage/current are not always in sync. for that reason a moving average is used to smooth out the calculated efficiency value. * show calculated VE.Direct values in web live view order the values and translations similarly for the input and output, starting with power at the top, then voltage, then current as the last of these three. * VE.Direct live view: use 'd' as unit for days 'd' is the SI unit symbol for days and does not need translation, which is desirable as units are not translated throughout the project. * refactor VE.Direct live view * move Dynamic Power Limiter data into its own type. * split VE.Direct data into three types: "device", "input", and "output". hence all input and output values are now ValueObject, which allows to iterate over them using a loop without typing issues. * generate the tables with input and output values using a loop, rather than defining each row individually. * localize numbers using $n (vue method), which fixes switching the number format (dot vs. comma) when switching the language. * use no decimal point for power values (they are integers), three decimal points for kWh values (charger only reports two decimal places, but three are easier to read since the unit is *kilo* Wh), one decimal point for the efficiency, and two for voltage and current. * update language tokens to avoid mapping JSON keys to language keys (use the JSON keys to access the language tokens). * re-structure language tokes so the brief keys took over from VeDirectFrameHandler always make sense (nest into "input" and "output"). * order values similarly from top to bottom: power, then voltage, then current. this is following the order of the inverters' details. * group values by type/unit (yield and max. power) and order them "newest" to "oldest" from top to bottom. * increase the DynamicJsonDocument as it was too small to hold the newly added data. * update webapp_dist to include VE.Direct live view refactoring |
||
|---|---|---|
| .. | ||
| CMT2300a | ||
| Every | ||
| Hoymiles | ||
| MqttSubscribeParser | ||
| ResetReason/src | ||
| SdmEnergyMeter | ||
| SMLParser | ||
| TimeoutHelper | ||
| VeDirectFrameHandler | ||
| .DS_Store | ||
| README | ||
This directory is intended for project specific (private) libraries.
PlatformIO will compile them to static libraries and link into executable file.
The source code of each library should be placed in a an own separate directory
("lib/your_library_name/[here are source files]").
For example, see a structure of the following two libraries `Foo` and `Bar`:
|--lib
| |
| |--Bar
| | |--docs
| | |--examples
| | |--src
| | |- Bar.c
| | |- Bar.h
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
| |
| |--Foo
| | |- Foo.c
| | |- Foo.h
| |
| |- README --> THIS FILE
|
|- platformio.ini
|--src
|- main.c
and a contents of `src/main.c`:
```
#include <Foo.h>
#include <Bar.h>
int main (void)
{
...
}
```
PlatformIO Library Dependency Finder will find automatically dependent
libraries scanning project source files.
More information about PlatformIO Library Dependency Finder
- https://docs.platformio.org/page/librarymanager/ldf.html