Thomas Basler
7538b4363c
Made resetreason methods static
2023-11-19 17:00:26 +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
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
71d1b3b846
BREAKING CHANGE: Home Assistant Auto Discovery to new naming scheme
...
Please Upgrade to HASS 2023.8 or greater.
Thanks to @LennartF22 for the first implementation
2023-11-07 19:37:28 +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
Thomas Basler
a068eb2586
Remove duplicated code
2023-10-30 20:42:56 +01:00
Thomas Basler
aba57e687a
Set dnsServerStatus first to prevent running
2023-10-30 20:25:39 +01:00
Thomas Basler
11d7b78d80
Apply automatic code formatting
2023-10-11 14:19:20 +02:00
Thomas Basler
97d481fa65
Merge branch 'pr1408' into dev
2023-10-11 14:16:23 +02:00
Thomas Basler
c25e93eb09
Merge branch 'pr1406' into dev
2023-10-11 13:40:05 +02:00
Thomas Basler
f1a8c2ea82
Feature: Added additional event log descriptions and implemented i18n
2023-10-11 13:22:42 +02:00
Stefan Oberhumer
be88da7b26
NFC: Call PinMapping.get() not every iteration.
2023-10-06 11:44:37 +02: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
f8cba5721e
Fix: Deny passwordless access to prometheus API if readonly access is disabled
...
Fix #1358
2023-09-19 18:59:20 +02:00
Thomas Basler
1cf41426de
Replace char array by String buffer
2023-09-16 02:21:25 +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
555b6c6750
Fix: HASS exp_aft should be based on reachable threshold and poll interval
2023-09-11 19:53:05 +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
1df8285833
Feature: Add configured max irradiation to live data api
2023-09-04 19:53:33 +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
4f85d5286d
Simplify debug output
2023-09-02 02:14:08 +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
e2594ac843
Fix: Calculate the json buffer for the inverter list based on INV_MAX_COUNT
2023-08-22 17:05:46 +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
4bf9083b23
Prometheus Endpoint: Publish only relevant amount of digits
...
Implemented method to return the correctly formatted field value as string
2023-08-22 11:45:14 +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
a68c553d27
Code formatting without functional changes
2023-07-22 18:07:03 +02:00
Thomas Basler
658a42db80
Apply code formatter without functional changes
2023-07-22 18:00:41 +02:00
Thomas Basler
bf4dc56cb8
Fix: Reboot loop if negative display pins and type where provided
...
Fix #1163
2023-07-21 19:02:18 +02:00
Thomas Basler
9dbeec3a31
Fix: Set WiFi setScanMethod and setSortMethod also on first connect
2023-07-20 23:44:09 +02:00
Thomas Basler
b8c75b02a0
Merge branch 'pr1003' into dev
2023-07-10 19:11:54 +02:00
Stephan
1871a9a692
use FSPI for esp32-c3 and revise device profiles
2023-07-10 19:04:13 +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
93057fc3dc
Feature: Added touch icon for iOS and Android
...
Implements #1060
2023-06-21 22:44:18 +02:00
Thomas Basler
e8fee49dc8
Allow the non-existence of the HOYMILES_PIN_ defines
2023-06-21 19:59:35 +02:00
Thomas Basler
30fbd98274
Fix: Reboot loop occoured when no rf module was configured
2023-06-21 19:56:14 +02:00
Dominic Michel
3562e85b5e
Change metric type back to gauge
2023-06-13 20:59:24 +02:00
Thomas Basler
08f47c2f4c
Fix: Prometheus syntax error with wifi_bssid
...
Fixes #1021
2023-06-11 20:04:23 +02:00
Thomas Basler
88cb59d177
Feature: Publish BSSID via prometheus
2023-06-08 19:57:07 +02:00
Thomas Basler
b3e41c957b
Feature: Publish BSSID via MQTT
2023-06-08 19:56:44 +02:00
Thomas Basler
91d3cd1da2
Feature: Show BSSID in the web interface
2023-06-08 19:56:22 +02:00
Thomas Basler
721f82a17c
Added additional exception handler to also show unknown exceptions in live data api endpoint
2023-06-08 19:39:56 +02:00
Thomas Basler
3b6c529efb
Fix: Do not publish leading blanks in MQTT payload
...
Fixes #1011
2023-06-07 17:58:31 +02:00
Thomas Basler
7f267ff2fb
Fix: Lint Error: Almost always, snprintf is better than strcpy
2023-06-01 23:30:13 +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
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
Thomas Basler
efcbd81927
Feature: Add used PIO environment to the system info page
2023-05-08 21:43:50 +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
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
Thomas Basler
5996fb0edf
Fix: MQTT topics ac/yieldday and ac/yieldtotal are swapped
...
Fix #843
2023-04-25 18:43:56 +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
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
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
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
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
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
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
Thomas Basler
9b74badda8
Uses VSPI instead of HSPI and compatibility for C3, S2 and S3 MCUs
2023-03-30 23:24:11 +02:00