Commit Graph

2324 Commits

Author SHA1 Message Date
Thomas Basler
3cf8fea8e0 Fix: Guru Meditation (StoreProhibited) when saving DTU settings
Fixed #1725
2024-02-06 21:47:06 +01:00
Bernhard Kirchen
1865113842 Feature: JK BMS Home Assistent integration
* pylontech HA integration: remove unused method/variable

* make MqttHandlePylontechHassClass::publishConfig() private.
  there are no outside users of that method.

* rename to MqttHandleBatteryHass

* battery HA integration: merge methods and bring back forceUpdate().
  even though the forceUpdate() method was not in use before, it makes
  sense to implement it and use it when the battery config changes.
  rather than controlling a separate flag, it now changes the _doPublish
  flag of the class, which also triggers publishing the device config to
  Home Assistant when an MQTT connection problem was detected. since
  both situations are now handled similarly, we can merge the loop() and
  publishConfig() methods.

* battery: provider specific sensors for HA

* move Battery MQTT loop to BatteryStats
  the BatteryStats class should handle the MQTT publishing, including the
  interval. for the calculation of a reasonable Home Assistent expiration
  value this class now also knows the maximum publish interval.

* JK BMS: fix publishing values for Home Assistent
  Home Assistent values expire, because we set them to expire after three
  MQTT publish durations. for that reason, we need to re-publish all
  values after our self-inflicted full publish interval.

* define JK BMS sensors for Home Assistent

closes #482.
2024-02-05 21:22:07 +01:00
Bernhard Kirchen
c2b49931be Fix: must call Pylontech Home Assistent init() method
previously, the Pytlontech Home Assistent class implementation had an
init() method, that was never called, as it did nothing. the class
relied on its loop() method being called from the main loop(). after
switching to the TaskScheduler approach, the Pylontech Home Assistent
class init() method was adjusted to register a task that calls the
loop() method periodically. however, the init() method was still not
called.
2024-02-05 20:54:34 +01:00
Thomas Basler
8e01a275af Merge branch 'pr1693' into dev 2024-02-02 22:36:18 +01:00
Nikolaj Kappler
86b9625254 fix #1668
use builtin bootstrap css for scrolling
2024-02-02 22:34:58 +01:00
Thomas Basler
0ab5785b7d Feature: Added pin-mapping for LILYGO T-ETH-Lite 2024-02-02 21:42:21 +01:00
Thomas Basler
7e2064e264 Feature: Added support for boards with 16MB flash and PSRAM 2024-02-02 20:33:42 +01:00
Thomas Basler
e81a280b87 Fix: Calculate the AC current for 3 phase inverters correctly 2024-01-30 22:29:25 +01:00
Thomas Basler
abb37242e8 Rename internal variables and methods 2024-01-30 22:29:25 +01:00
Thomas Basler
1b637f0870 BREAKING CHANGE: Web API Endpoint /api/livedata/status and /api/prometheus/metrics
Yield total and Yield day where moved from the AC section to the INV section
2024-01-30 22:29:25 +01:00
Thomas Basler
e1564780d6 BREAKING CHANGE: Web API Endpoint /api/livedata/status and /api/prometheus/metrics
Power DC was moved from the AC section to the INV section
2024-01-30 22:29:25 +01:00
Thomas Basler
f0b5542c2d BREAKING CHANGE: Web API Endpoint /api/livedata/status and /api/prometheus/metrics
Efficiency was moved from the AC section to the INV section
2024-01-30 22:29:25 +01:00
Thomas Basler
c27ecc3620 BREAKING CHANGE: Web API Endpoint /api/livedata/status
To reduce the heap usage it is necessary to send the inverters one by one instead of a huge response. A simple call to `/api/livedata/status` returns just some very general information. If detailed inverter information are required the inverter serial number has to appended `?inv=<serial number>`.
The websocket also returns only one inverter at a time. It as to be assembled at client side.
2024-01-30 22:29:25 +01:00
Thomas Basler
557c5d645e Remove all files but the pin_mapping.json from filesystem on factory reset
This allows to create more user defined files and get them deleted on factory reset.
2024-01-30 22:29:12 +01:00
Thomas Basler
48a722f826 Merge branch 'pr1642' into dev 2024-01-30 20:47:45 +01:00
Thomas Basler
a848275bb9 Merge branch 'pr1706' into dev 2024-01-30 19:34:19 +01:00
Sabouflage
5d7512e026 fix(mqtt): setting MQTT LWT online message for frontend 2024-01-30 19:03:23 +01:00
Sabouflage
dfed23261a fix(mqtt): MQTTs LWT QoS config used also for TLS connections 2024-01-30 19:02:57 +01:00
Stefan Oberhumer
e752c433af Use http header ETag caching for all static content.
Using the md5sum as ETag http header value should enable caching on all static http content.
2024-01-30 00:35:23 +01:00
vaterlangen
97f006d867 fixed typo in OTA text 2024-01-27 15:18:25 +01:00
Thomas Basler
2716f4c5df Removed not required pointer to AsyncServer instance 2024-01-27 01:09:55 +01:00
Thomas Basler
21ec72f4c0 webapp: add app.js.gz 2024-01-26 21:42:55 +01:00
Thomas Basler
59022347eb Doc: Remove deprecated documentation 2024-01-26 21:40:57 +01:00
Thomas Basler
2c4952b196 Doc: Migrated needed hardware info to official documentation 2024-01-26 21:30:58 +01:00
Thomas Basler
ac2e963799 Doc: Move display documentation to official documentation 2024-01-26 17:12:55 +01:00
Thomas Basler
c04407f740 Doc: Move partition migration to official documentation 2024-01-26 17:02:55 +01:00
Thomas Basler
fe9ac6a2fd webapp: update dependencies 2024-01-26 16:56:49 +01:00
Thomas Basler
f0061b976d Merge branch 'pr1676' into dev 2024-01-26 16:48:15 +01:00
Thomas Basler
4e669d8932 Feature: Add support for ST7567 GM12864I-59N Display 2024-01-26 16:05:56 +01:00
helgeerbe
1916d6d6a8 check twice a second for new vedirect data on live viw 2024-01-26 14:32:44 +01:00
helgeerbe
7094bca7db fix: Inverter Labels in InverterTotalInfo 2024-01-26 13:34:03 +01:00
helgeerbe
ebacc2f25f Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2024-01-25 23:36:32 +01:00
Stefan Oberhumer
7aece2e143 Call SunPosition.isDayPeriod() once 2024-01-23 09:42:13 +01:00
Thomas Basler
a5cc0a424f webapp: add app.js.gz 2024-01-21 16:49:41 +01:00
Thomas Basler
d99de94c00 webapp: Fix lint errors 2024-01-21 16:48:47 +01:00
Thomas Basler
3f135e8349 webapp: update dependencies 2024-01-21 16:39:22 +01:00
Thomas Basler
178525a49b Feature: Added device profile for Olimex ESP32 Gateway
Thanks to @fdcg in #1672
2024-01-21 11:32:18 +01:00
Thomas Basler
4cfb1b1c26 Fix: PullToRefresh does not work anymore
It was using the wrong mainElement
2024-01-21 00:55:05 +01:00
Thomas Basler
4f2fbaaf2a Remove unused function parameter 2024-01-20 23:12:59 +01:00
Thomas Basler
8a80289474 Feature: Implement firmware update check is a opt-in to protect your privacy 2024-01-20 22:43:40 +01:00
Thomas Basler
16fbad92ac simplify calculations in WebApi_ws_Live 2024-01-20 11:38:52 +01:00
Thomas Basler
7bc1a17fac Move task initialization from init method to constructor
This saves flash
2024-01-20 11:24:57 +01:00
Thomas Basler
251d197fb6 Migrate WebApi loop() methods to scheduler tasks 2024-01-20 02:00:22 +01:00
Thomas Basler
e66060e769 Move the conversation from time_t to String into DevInfoParser 2024-01-20 01:09:42 +01:00
Thomas Basler
dcc157261e Don't perform redundant conversions 2024-01-20 00:32:13 +01:00
Thomas Basler
9428eecce4 webapp: Use CardElement in InverterTotalInfo 2024-01-19 22:03:26 +01:00
Thomas Basler
a06d21024c webapp: Move interfaces to seperate file 2024-01-19 21:48:39 +01:00
Thomas Basler
6b31a4d470 webapp: Introduce Modal component
Less duplicated code
2024-01-19 21:36:18 +01:00
Thomas Basler
5d63f64411 webapp: Fix typo 2024-01-19 20:02:03 +01:00
Thomas Basler
0584eadcf2 Feature: Automatic page reload after firmware upgrade
This will work after the current upgrade if this code was loaded.
2024-01-19 19:10:49 +01:00