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
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
Thomas Basler
2716f4c5df
Removed not required pointer to AsyncServer instance
2024-01-27 01:09:55 +01:00
Thomas Basler
4e669d8932
Feature: Add support for ST7567 GM12864I-59N Display
2024-01-26 16:05:56 +01:00
Thomas Basler
4f2fbaaf2a
Remove unused function parameter
2024-01-20 23:12:59 +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
c20caf8097
Feature: Support HMS/HMT inverters in different countries with different frequency bands
...
Thanks to @Fribur, @homeautomation2022 and @stefan123t
2024-01-14 16:37:34 +01:00
Thomas Basler
ee78698e37
Migrate all frequency calculations to Hz
...
Previously the code contains calculations using a mixture of kHz and Hz.
Thanks to @Fribur
2024-01-13 12:51:20 +01:00
Thomas Basler
f013698471
Feature: Added fullscreen diagram to display
2024-01-13 11:31:12 +01:00
Thomas Basler
637d4f06a3
Feature: Added option to disable the diagram at the display
2024-01-08 14:19:26 +01:00
Thomas Basler
3c37b61f44
Use auto keyword and references more often
2024-01-04 15:38:56 +01:00
Thomas Basler
ca18d2c841
Prevent empty HASS auto discovery topics if memory allocation fails
2024-01-04 14:09:58 +01:00
Thomas Basler
4053e31a5e
Prevent config corruption by checking whether memory allocation was successfull.
2024-01-04 13:42:39 +01:00
Thomas Basler
c1fc907ecb
Fix: Access Point not working after firmware update
...
Fixes #1613
2024-01-03 22:04:50 +01:00
Thomas Basler
cbbe053cd5
Fix: Optimize network connection handling
...
This should provide a more reliable connection to several AP types. See #576
2024-01-03 01:17:39 +01:00
Thomas Basler
aa8068370e
Feature: Add support for SSD1309 2.4" Display
2023-12-30 12:42:42 +01:00
Stefan Oberhumer
ac427523b5
Feature: Add screensavermode also to diagram drawing.
2023-12-24 12:24:10 +01:00
Thomas Basler
0ddc7fd28d
Feature: Added diagram to display
...
This is based on the idea of @Henrik-Ingenieur and was discussed in #1504
2023-12-19 17:26:24 +01:00
Thomas Basler
84248ec9b6
Feature: Add DTU to Home Assistant Auto Discovery
...
This is based on PR 1365 from @CFenner with several fixes and optimizations
2023-12-17 14:40:04 +01:00
Thomas Basler
b4ead9d6ec
Feature: Allow setting of an inverter limit of 0% and 0W
...
Thanks to @madmartin in #1270
2023-12-13 22:15:49 +01:00
Thomas Basler
4f7597eaa1
Adjust member variable names in NetworkSettings
2023-12-12 23:55:03 +01:00
Thomas Basler
66530638de
Adjust member variable names in MqttSettings
2023-12-12 23:54:58 +01:00
Thomas Basler
e95afbf2cc
Use references instead of pointers whenver possible
2023-12-12 13:26:07 +01:00
Thomas Basler
8fb43fedf8
Add const keyword to methods
2023-12-12 01:30:40 +01:00
Thomas Basler
d6494fa791
Add const keyword to method parameters
2023-12-12 00:21:14 +01:00
Thomas Basler
5e45006831
Replace NULL by nullptr
2023-12-11 20:23:45 +01:00
Thomas Basler
06651f365a
Feature: First version of GridProfile Parser which shows all values contained in the profile.
2023-12-11 14:58:17 +01:00
Thomas Basler
b937532505
Remove not required AsyncEventSource
2023-12-07 15:21:24 +01:00
Thomas Basler
8b5d406a4f
Introduce several const statements
2023-12-07 15:19:04 +01:00
Thomas Basler
e9a55cf361
Remove not required onWebsocketEvent
2023-12-07 14:09:32 +01:00
Thomas Basler
9ae791edd4
Feature: Added ability to change the brightness of the LEDs
...
Based on the idea of @moritzlerch with several modifications like pwmTable and structure
2023-12-07 12:46:38 +01:00
Thomas Basler
f8f79c816a
Split LedSingle into multiple tasks
2023-11-23 22:35:05 +01:00
Thomas Basler
134fefa30e
Split InverterSettings into multiple tasks
2023-11-23 22:35:05 +01:00
Thomas Basler
80d534e045
Migrate WebApi to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
ab8679e7b9
Migrate Display_Graphic to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
ad1f1b690c
Migrate MessageOutput to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
77779a1ed9
Migrate InverterSettings to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
1501411037
Migrate NetworkSettings to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
7881d955bd
Migrate LedSingle to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
524483451f
Migrate MqttHandleInverter to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
5c501f879f
Migrate MqttHandleDtu to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
48a27fbfad
Migrate MqttHandleHass to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
98c30d1042
Migrate MqttHandleInverterTotal to TaskSchedule
2023-11-23 22:35:05 +01:00
Thomas Basler
c045b5df48
Migrate Datastore to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
12031ed09e
Migrate SunPosition to TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
a7c9c2df1a
Initialize TaskScheduler
2023-11-23 22:35:05 +01:00
Thomas Basler
1de3b48166
Feature: Implement offset cache for "YieldDay"
...
Thanks to @broth-itk for the idea!
Fix : #1258 #1397
2023-11-22 20:21:25 +01:00
Thomas Basler
ee4811bbe7
Feature: Allow configuration of LWT QoS
2023-11-19 16:17:10 +01:00
Thomas Basler
b85c53f476
Split config struct into different sub structs
2023-11-19 14:53:26 +01:00
Thomas Basler
6bafd734d7
Remove not required enum
2023-11-18 22:35:58 +01:00
Thomas Basler
d3f95000e2
Optimize Sun data calculation
2023-11-18 22:34:55 +01:00
Thomas Basler
6f685a4ab5
Fix: Day period is only calculated once
2023-11-16 18:03:25 +01:00
Thomas Basler
89b4b8ea85
Merge branch 'pr1441' into dev
2023-10-31 19:30:56 +01:00
CommanderRedYT
7c875187a8
Implemented mDNS
2023-10-30 20:53:45 +01:00
Stefan Oberhumer
7f99095fca
Remove SUNPOS_UPDATE_INTERVAL define and introduce INVERTER_UPDATE_SETTINGS_INTERVAL.
2023-10-06 11:13:09 +02:00
Stefan Oberhumer
943dfc2dbf
Compute sunrise and sunset only if necessary.
...
Sunrise and -set must recomputed if one of the following conditions is met:
* The date changed (based on the selected timezone)
* Location (Lat/Lon) changed
* Sunset type changed
So instead of calculating that every minute just do it on update via web interface or date change.
If a new config is uploaded, the DTU gets restarted. There is no need to initiate a recalculation in this case.
2023-10-06 10:20:36 +02:00
Thomas Basler
35da310420
Initialize variables before first usage
2023-09-18 20:23:00 +02:00
Thomas Basler
a974e217df
Fix #1335 : Only the first inverter was set to zero at midnight via mqtt
2023-09-13 18:46:23 +02:00
Thomas Basler
9ac6dd6e8d
Feature: First very basic support to read the grid profile
...
The parser is still missing and requires community support to collect data.
2023-09-07 22:08:07 +02:00
Thomas Basler
ec9af886d5
Feature: Added option to set daily yield to zero at midnight
2023-09-05 20:27:52 +02:00
Thomas Basler
7d90937d0f
Publish mqtt string stats values periodically if they are set to zero if unreachable
2023-09-04 18:20:51 +02:00
Thomas Basler
abf95634db
Replace platform dependent variable types by platform independent
2023-09-03 23:27:53 +02:00
Thomas Basler
6127fbe940
Feature: Added option to set runtime values to zero when inverter becames unreachable
2023-09-02 12:22:22 +02:00
Thomas Basler
b34b22c658
Fix: Workaround: Don't allow memory intensive web functions in parallel
...
Somehow the API has to be adjusted to reduce memory consumption. For now lets just prevent both methods to allocate memory at the same time.
2023-09-02 01:41:53 +02:00
Thomas Basler
2c41be106e
Feature: Allow setting of the Reachable Threshold per inverter
2023-09-01 19:17:12 +02:00
Thomas Basler
c5f9f460cd
Feature: Added config option to change MQTT CleanSession Flag
2023-09-01 18:03:30 +02:00
Thomas Basler
701c490654
Feature: Turn off Display before reboot
...
Thanks for the idea to @StefanOberhumer
This prevents always on Display if the device profile does not contain Display pins anymore after the reboot
2023-08-25 16:57:24 +02:00
Thomas Basler
c91bd42a77
Feature: Turn off LEDs before reboot
...
Thanks for the idea to @StefanOberhumer
This prevents always on LEDs if the device profile does not contain LEDs pins anymore after the reboot
2023-08-25 13:15:55 +02:00
Thomas Basler
77a90095d9
Move different restart calls into one method
2023-08-25 12:58:53 +02:00
Thomas Basler
6429d64062
Prometheus Endpoint: Simplify code by looping over fields instead of duplicated code
2023-08-22 13:00:52 +02:00
Thomas Basler
9179b672f5
Use lock_guard to simplify code
2023-08-05 01:25:53 +02:00
Thomas Basler
43cba67531
Fix: Virtual console scrambled output when the output came from different contexts
2023-08-03 22:16:29 +02:00
Thomas Basler
0bdee6ec99
Fix: Prevent access to nullptr object when reconnecting to mqtt
...
It could occour when saving the settings via the web ui
2023-08-03 18:46:28 +02:00
Martin Dummer
8bfa7e530c
Feature: Admin AccessPoint Timeout now configurable
...
Make the administrative accesspoint timeout configurable. The default
value is 3 minutes, values from 0-99999 are possible, where 0 means
infinite (no timeout).
Signed-off-by: Martin Dummer <martin.dummer@gmx.net>
2023-07-22 18:14:07 +02:00
Thomas Basler
658a42db80
Apply code formatter without functional changes
2023-07-22 18:00:41 +02:00
Thomas Basler
a06a56a490
Harden config parser by defining right unsigned data type
2023-07-22 17:41:56 +02:00
Thomas Basler
736220c80d
Reorder config struct components
2023-07-22 17:28:58 +02:00
Thomas Basler
fe3d6588bc
Feature: Turn off LED 1 if no inverters are enabled for polling
...
This means that e.g. at night, when polling at night is disabled, LED 1 will be turned off now.
2023-07-10 18:31:04 +02:00
Thomas Basler
5a37948ca9
Fix: If no sunset/sunrise calculation is possible a wrong value is shown
...
This is catched now and a proper message is shown in the web UI. Also the mode is set to day.
2023-06-01 18:39:50 +02:00
Thomas Basler
24f063dd7b
Fix: Prevent partly calculated total data in web ui and display
...
Leads to zeros where no zeros should be.
2023-05-30 22:10:27 +02:00
Thomas Basler
1c8bd8091b
Feature: Allow reordering of the inverters in the live view
...
Reordering can be done in the inverter settings via drag&drop.
2023-05-29 20:17:07 +02:00
Thomas Basler
e7198073af
Feature: Allow configuration of sunset type
2023-05-24 19:21:44 +02:00
Thomas Basler
752362d2df
Feature: Added localization setting to display
...
Its possible to change the language of the display
2023-05-23 18:25:12 +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
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
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
dc91929d6e
First rough implementation of HMT inverters
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
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
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
Thomas Basler
ae323cd26f
Status LED's: Implemented
...
They can be activated using device profiles.
2023-04-04 18:53:23 +02:00
Thomas Basler
2e33f5cd51
Display: Implement rotation setting and removed icons
2023-03-15 20:20:14 +01:00
Thomas Basler
c0b5049a74
Auto format: Reorder includes
2023-03-14 18:45:39 +01:00