Commit Graph

584 Commits

Author SHA1 Message Date
helgeerbe
13b318690d fix: linting errors 2023-05-23 10:24:06 +02:00
helgeerbe
47f81f2579 breaking change: Reduce maximum number of invertes to 5 to keep livedata working
livedata json is now calculated as 4096 * MaxInvertes
2023-05-23 10:15:37 +02:00
helgeerbe
b7ac70b1ca Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2023-05-23 09:19:57 +02:00
Thomas Basler
40820c07f2 Use the new data store in the graphic display class.
With this patch, the display turns off if no inverter is reachable anymore. Previously it turned off if the production was zero.
This fixes #933
2023-05-21 22:40:32 +02:00
Thomas Basler
cd98941c5d Implement global data store to handle all invert total values
Use the new values in the LED, MQTT and Web interface.
2023-05-21 22:37:33 +02:00
helgeerbe
1c7b7d3cdf Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2023-05-10 18:16:25 +02:00
Thomas Basler
efcbd81927 Feature: Add used PIO environment to the system info page 2023-05-08 21:43:50 +02:00
MalteSchm
065c169b20
Set initial PL state in init() to avoid inverter shutdown on reboot... (#224) 2023-05-08 13:25:02 +02:00
helgeerbe
178d40d5b4 Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2023-05-04 20:24:29 +02:00
Thomas Basler
65b728eebb Fix: No OpenDTU startup of CDC (like Pico or ESP32-S3) devices if no usb host is connected
Should also fix #826
2023-05-03 21:16:27 +02:00
MalteSchm
569edbe69e
static casts set last requested limit for all cases where inverter power is changed (#213) 2023-05-01 21:20:49 +02:00
helgeerbe
8021052cfd PL remove debug messages 2023-04-29 22:53:50 +02:00
helgeerbe
e5af5be70a remove comment 2023-04-29 21:53:05 +02:00
MalteSchm
db4125ae7a debug printouts, removed unnecessary check causing inverter to toggle 2023-04-29 14:28:24 +02:00
helgeerbe
dae4c6fbf5 Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2023-04-28 22:38:39 +02:00
Markus Krause
a56d5adb77 fix SPI assignment across generations 2023-04-28 21:26:22 +02:00
Thomas Basler
3504884836 Fix: xSemaphoreTake was useless
There was no check of the return value implemented therefore xSemaphoreTake was just executed and not locked
2023-04-28 21:02:10 +02:00
helgeerbe
5d4c6866da
fix: ignore MQTT messages for disabled components #203 (#204) 2023-04-28 19:26:58 +02:00
MalteSchm
c621f2d3e3
Power limiter fixes (#201) 2023-04-28 13:59:18 +02:00
MalteSchm
70060559da
Bring back the sun indicator (#195)
* Adding states to display in UI

* Adding states to display in UI
2023-04-27 19:10:12 +02:00
MalteSchm
6b437b5ea1
Inverter toggle fix (#196)
* updating the interface to calcPowerLimit to include both energy sources

* Fixing definition
2023-04-27 19:09:48 +02:00
helgeerbe
c337df605c Merge branch 'pr/MalteSchm/172' into development 2023-04-26 12:37:31 +02:00
helgeerbe
e91935ab38 Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2023-04-26 11:47:19 +02:00
helgeerbe
37b5edb010 Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2023-04-25 18:51:18 +02:00
Thomas Basler
5996fb0edf Fix: MQTT topics ac/yieldday and ac/yieldtotal are swapped
Fix #843
2023-04-25 18:43:56 +02:00
helgeerbe
71dda4b89c Merge branch 'pr/qubeck/156' into development 2023-04-25 18:39:02 +02:00
MalteSchm
0a0488f73a refactored use solar power code 2023-04-25 12:03:41 +02:00
MalteSchm
322f532ac0 Proper handling of use solar power only case 2023-04-25 10:41:35 +02:00
Thomas Basler
98da2b64e2 Rename FLD_PRA to FLD_Q 2023-04-24 22:29:59 +02:00
Thomas Basler
26cbc496a7 Feature: Implemented MQTT publishing of total values
If one or more inverter is not reachable the flag is_valid changes to zero. Disabled inverters are ignored.
2023-04-24 18:51:30 +02:00
MalteSchm
3861ab89f1 WebApi update to include power values 2023-04-23 18:49:32 +02:00
helgeerbe
75a59f5d1d
Merge pull request #175 from MalteSchm:huawei_spi_interface_fix
Changing Huawei SPI interface
2023-04-23 18:32:36 +02:00
MalteSchm
8c9afbcdc0 fix an issue if inverter is behind power meter 2023-04-23 11:30:08 +02:00
Thomas Basler
04f62e03b8 BREAKING CHANGE: Web API Endpoint /api/eventlog/status no nested serial object
It's not required as the  eventlog just contains events from requested inverter
2023-04-20 22:41:55 +02:00
helgeerbe
38b990fbbc Fix: PowerLimiter is now casted to signed int to allow negativ values. 2023-04-20 20:02:59 +02:00
helgeerbe
a1b3bdfee8 Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2023-04-18 12:09:22 +02:00
Thomas Basler
5d2656550c Optimize detection if RF module is configured
Use PinMapping method instead of dedicated method in Hoymiles lib --> Same result but reduces variables
2023-04-17 23:19:53 +02:00
Thomas Basler
59f43a82a8 BREAKING CHANGE: Web API Endpoint /api/devinfo/status requires GET parameter inv=
Only the requested inverter is sent to the client. This reduces the size of the json response --> Less memory.

It should also fix #814.
2023-04-17 21:48:16 +02:00
Thomas Basler
af3a277e30 Introduced HoymilesRadio property to determine if a configuration attempt was done 2023-04-17 18:59:56 +02:00
helgeerbe
40cee1f9ca Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2023-04-17 11:08:55 +02:00
MalteSchm
3504924bb0 Changing SPI interface 2023-04-16 18:34:09 +02:00
MalteSchm
4ddaa7643b make sure that PL is enabled if user uses webinterface 2023-04-16 18:30:21 +02:00
MalteSchm
a306bc1351 Bugfix for Mqtt enable / disable (was float, uses int now) 2023-04-16 18:28:09 +02:00
Thomas Basler
15156b4b87 Set CMT frequency only if a valid pin config was found 2023-04-15 10:55:48 +02:00
Thomas Basler
c3368450f6 Initialize spiClass only if valid pin config was found 2023-04-15 10:55:48 +02:00
Thomas Basler
50ce7f014d Expose min and max frequency in HoymilesRadio_CMT 2023-04-15 10:55:48 +02:00
Thomas Basler
371e405eed Added configuration of CMT modules frequency to webapp 2023-04-15 10:55:48 +02:00
Thomas Basler
996404ceed Introduce gpio2 for the CMT2300A module
This implements the sending interrupt instead of polling. On the other hand, gpio3 is made optional.
2023-04-15 10:55:48 +02:00
Thomas Basler
854fcdaeae Allow configuration of the TX PA Level of the CMT2300A module 2023-04-15 10:55:48 +02:00
Thomas Basler
3e1b778565 Change max power limit from 1500W to 2250W to support HMS/HMT inverters 2023-04-15 10:55:47 +02:00
Thomas Basler
0ec90e0000 webapp: Adjusted radio problem hint in home view to detect problems of nrf and cmt radios 2023-04-15 10:55:47 +02:00
Thomas Basler
c19d2007bd webapp: Added cmt radio status to system overview 2023-04-15 10:55:47 +02:00
Thomas Basler
de2b7ab2d2 Check that all RF modules as in idle mode before sending mqtt packages 2023-04-15 10:55:47 +02:00
Thomas Basler
b7fb294368 Set DTU serial for CMT modules 2023-04-15 10:55:47 +02:00
Thomas Basler
ef614751b1 webapp: Show CMT pins in device manager 2023-04-15 10:55:47 +02:00
Thomas Basler
45882543b6 Allow dynamic pin mapping for CMT module 2023-04-15 10:55:47 +02:00
Thomas Basler
8404dd57a7 Add a HoymilesRadio base class
This enables to have multiple radio implementations while the inverter classes just refere to the base class
2023-04-15 10:55:47 +02:00
Thomas Basler
a7e9aaa862 Move reference to the radio instance into the inverter instance
This is required to support different radios for different inverters
2023-04-15 10:55:47 +02:00
helgeerbe
1dc73f91ee Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2023-04-13 10:18:49 +02:00
MalteSchm
690025e5fd fixing a bug from merging and remove a leftover debug message 2023-04-13 10:06:06 +02:00
MalteSchm
be7a43fbfb Removing un-necessary timestamp, commenting code and cleanups 2023-04-13 09:47:12 +02:00
MalteSchm
01849dc90a adding Mqtt handling to main.cpp 2023-04-13 09:47:10 +02:00
MalteSchm
ee376827fd merging functionality from PL refactor 2023-04-13 09:47:07 +02:00
MalteSchm
9999fa28e8 refactor state machine
merging
2023-04-13 09:46:35 +02:00
MalteSchm
ee82c8c9b8 adding option to disable power limiter via mqtt
adding option to disable power limiter via mqtt - adding missing file
2023-04-13 09:44:48 +02:00
MalteSchm
9efe076cc2 resolving merge conflict
adding missing statement from merge

fixing a bug introduced in merge
2023-04-13 09:39:04 +02:00
MalteSchm
fc5089e70b resolving merge conflict 2023-04-13 09:36:00 +02:00
qubeck
b79619bf8b add explicit checks to avoid potential div. by zero on application of artificially increased power limit if channel power becomes zero 2023-04-12 20:44:38 +02:00
Martin Dummer
bea0a738c1
include/Configuration.h: rename MQTT_MAX_ROOT_CA_CERT_STRLEN
rename const MQTT_MAX_ROOT_CA_CERT_STRLEN to more generic name MQTT_MAX_CERT_STRLEN

Signed-off-by: Martin Dummer <martin.dummer@gmx.net>
2023-04-12 11:58:27 +02:00
Martin Dummer
d920726a76
src/WebApi_mqtt.cpp: rename function getRootCaCertInfo
rename function WebApiMqttClass::getRootCaCertInfo to more generic
name WebApiMqttClass::getTlsCertInfo

Signed-off-by: Martin Dummer <martin.dummer@gmx.net>
2023-04-12 08:47:24 +02:00
Martin Dummer
0db4b5f226
Fix: src/WebApi_mqtt.cpp: typos in error messages
Signed-off-by: Martin Dummer <martin.dummer@gmx.net>
2023-04-12 08:37:49 +02:00
Martin Dummer
971ae6d1be
Feature: MQTT add TLS authentication
User asked for TLS client certificate based login from DTU to MQTT
server. This PR implements storage and use of x509 client certificate
and private key.

Signed-off-by: Martin Dummer <martin.dummer@gmx.net>
2023-04-12 08:33:10 +02:00
MalteSchm
2d7115e1e8 typo 2023-04-11 18:58:18 +02:00
MalteSchm
f6d0b0997f typo 2023-04-11 18:57:57 +02:00
berni2288
19b2dd4c7a
PowerMeter: Whitespace and {} fixes 2023-04-07 20:22:35 +02:00
qubeck
00def1d8d1
Generic SML based power meters support (#146)
* add support for energy & power readings on SML based power meters, taking OBIS 16.7.1 for power (using mod. SML Parser lib. by olliiiver)

* switched SML read to use software serial

* made total power meter response controled by meter source to obtain either the sum of phase powers or explicit total power provided by meter

* made mqtt subscriptions to power meter topics meter source dependend

* simplified SML read loop and OBIS handler registration, + minor refactoring

* minor cleanup/style changes and optim. PowerMeter

* fixed build, add SOURCE_SML == 4

* removed optional usage of HW serial for SML power meter

* switched to usage of _powerMeter1Power for SML power reading to allign better with existing code

---------

Co-authored-by: helgeerbe <helge@erbehome.de>
2023-04-07 20:20:00 +02:00
helgeerbe
e29708f871 fix infinite state switch if battery is above
startThreshold and solar passtrhough is enabled
2023-04-06 18:32:50 +02:00
helgeerbe
ef51d75f2c Merge remote-tracking branch 'tbnobody/OpenDTU/master' into development 2023-04-06 10:46:02 +02:00
berni2288
09fb0618b4
Merge branch 'MalteSchm-webinterface_summary_updates' into development 2023-04-05 22:27:17 +02:00
Thomas Basler
ede572f6e3 Status LED's: Implemented
They can be activated using device profiles.
2023-04-05 11:56:59 +02:00
Thomas Basler
ca0b8e9afc Remove not required F() macro. Frees ~20kb flash. 2023-04-05 11:54:50 +02:00
Thomas Basler
dab5b4d723 webapp: Show inverter status in grey if polling is disabled (e.g. at night) 2023-04-05 11:52:35 +02:00
Thomas Basler
d501c4b836 Uses VSPI instead of HSPI and compatibility for C3, S2 and S3 MCUs 2023-04-05 11:51:09 +02:00
Thomas Basler
7d50fa373e Allow use GPIO0 as NRF pins 2023-04-05 11:51:09 +02:00
MalteSchm
801ad469c5 corrected day yield 2023-04-05 10:51:07 +02:00
Bernhard Kaszt
8ca664a8fe
Use AC power for limit calculation (= Support directly connected PV panels with Power Limiter) (#154)
* Power limiter: Use the actual AC power for limit calculation

instead of the last set limit.

In order support setups without battery connected (sources that don't exhaust the limit)
2023-04-05 10:30:03 +02:00
helgeerbe
c0dff1e7df catch bad_alloc for Huawei and Pylontech WebApi_ws 2023-04-05 09:48:38 +02:00
MalteSchm
459f9ffc2c merging branches 2023-04-04 21:43:24 +02:00
MalteSchm
169ea3d5d5 Api extensions 2023-04-04 21:31:32 +02:00
MalteSchm
abffc38c11 fixing typos 2023-04-04 21:30:53 +02:00
Thomas Basler
ae323cd26f Status LED's: Implemented
They can be activated using device profiles.
2023-04-04 18:53:23 +02:00
Thomas Basler
d6028cbd50 Remove not required F() macro. Frees ~20kb flash. 2023-04-04 18:51:18 +02:00
helgeerbe
0c34554b9c don't set newPowerlimit if newLimit AND lastLimit in target window 2023-04-04 18:20:06 +02:00
helgeerbe
160b5b5b01 handle bad_alloc for vedirect status 2023-04-04 18:17:53 +02:00
qubeck
cd4a327671 limiting the artificialy increased power limit to inverter maximum power 2023-04-04 17:11:59 +02:00
Thomas Basler
acf413b616 webapp: Show inverter status in grey if polling is disabled (e.g. at night) 2023-04-03 22:25:32 +02:00
Bernhard Kaszt
e35254c8f2
New Power meter support: HTTP(S) + JSON (Shelly 3EM, Tasmota, Volkszähler etc.) (#153)
* Implement HTTP(s) + JSON type Power Meter support

---------

Co-authored-by: Bernhard Kaszt <berni@bcserv.eu>
2023-04-03 21:36:20 +02:00
qubeck
bd57d0f19a fixed casting issues 2023-04-02 22:26:44 +02:00
qubeck
a1da3f9842 producing DC channel aware artificial increase of applied power limit to mitigate fixed distribution of applied power limit across all channels 2023-04-02 22:13:43 +02:00
MalteSchm
20bb7fc372
Show (Pylontech) battery infos in Live View
* adding data age to battery data

* Add battery enabled flag

* Webapi and websocket api for Battery

* Webinterface for battery

* fixed bug due to naming inconsistencies

* cleaned up rounding

* dist update

* change typename to uppercase

* reverting to original file
2023-04-02 20:58:28 +02:00