Commit Graph

294 Commits

Author SHA1 Message Date
Thomas Basler
0704c9682f Fix: Allow negative values in GridProfileParser 2023-12-19 11:05:57 +01:00
Thomas Basler
e9b113486b Fix: Reset Yield day correction in combination with Zero Yield Day on Midnight lead to wrong values. 2023-12-19 10:46:54 +01:00
Thomas Basler
8798ca5a13 Fix: Offset cache for "YieldDay" did not work correctly 2023-12-18 12:14:11 +01:00
Thomas Basler
4cae93964d Fix: Gridprofileparser: Add additional error handling if profile is unknown 2023-12-17 17:55:51 +01:00
Thomas Basler
3288b974c1 Fix: Remove debug output as it floods the console 2023-12-17 17:55:26 +01:00
Thomas Basler
eac479430a Gridprofileparser: Added latest known values
Thanks to @stefan123t and @noone2k
2023-12-17 14:40:04 +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
47e905bcfc Add const statement to several variables 2023-12-11 19:54:57 +01:00
Thomas Basler
8b806e46c1 Apply better variable names 2023-12-11 17:24:53 +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
0737cb0cb3 Optimize AlarmLogParser to save memory 2023-12-09 11:41:32 +01:00
Thomas Basler
00bc631e87 Feature: Added basic Grid Profile parser which shows the used profile and version
Other values are still outstanding.
2023-12-09 11:12:37 +01:00
Thomas Basler
c9508d2660 Doc: Added byte specification to each command 2023-12-07 20:26:11 +01:00
Thomas Basler
8b5d406a4f Introduce several const statements 2023-12-07 15:19:04 +01:00
Thomas Basler
e0c07b9bcf Remove code nesting 2023-12-07 14:13:58 +01:00
Thomas Basler
d0397c821f Add channel count to description of detected inverter type (DevInfoParser) 2023-11-24 18:17:11 +01:00
Thomas Basler
8cf31729df Adjusted inverter names for HMS-1600/1800/2000-4T 2023-11-24 18:11:08 +01:00
Thomas Basler
bcc647fd51 Added HMT-1600-4T and HMT-1800-4T to DevInfoParser
Fix #1524
2023-11-24 18:10:08 +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
fa7641f715 Fix: Power not set to 0 when not reachable at EOD
If the inverter polling was disabled before it got unreachable the values where not set to zero
Fix: #1488
2023-11-09 22:30:35 +01:00
Thomas Basler
17e92fc5eb Feature: Support HMT-1600/1800/2000-4T 2023-11-07 18:34:37 +01:00
Thomas Basler
2ae8ed5e18 Doc: Add class description for inverters 2023-11-05 13:44:08 +01:00
Thomas Basler
0a4945ae39 Adjusted inverter names 2023-11-05 13:43:48 +01:00
Thomas Basler
f1a8c2ea82 Feature: Added additional event log descriptions and implemented i18n 2023-10-11 13:22:42 +02:00
Thomas Basler
dc5b5e837f Rename "DTU command failed" to "Time calibration" as mentioned in #121 2023-10-10 16:23:11 +02:00
Thomas Basler
f203a971b0 Feature: Added Descriptions for Event Log Messages as shown in #121 2023-10-09 19:38:22 +02:00
Thomas Basler
d373702d7b Added additional ID for HMS-1000 to DevInfoParser
Fix #1392
2023-10-09 16:58:21 +02:00
Thomas Basler
32d91379fa Init all data members befor pushing it into the buffer 2023-09-30 10:48:41 +02:00
Thomas Basler
d4345917da Added additional ID for HMS-900 to DevInfoParser
Fix #1392
2023-09-30 10:45:49 +02:00
Thomas Basler
21fb10f7f2 Feature: Add one channel HMS inverter with different byte assignment
Fix #1148
2023-09-14 23:58:08 +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
3a3adb4723 Completly ignore a disabled (polling + command) inverter.
This leads to higher update rates on still enabled inverters.
2023-09-10 11:49:41 +02:00
Thomas Basler
8023b6620a Fix: Ignore incomplete SystemConfigPara packages
Some inverters seem to transmit too less and incomplete data. These packages will be ignored now.
2023-09-07 23:10:01 +02:00
Thomas Basler
0260af9ada Hoymiles Lib: Move semaphore handing into parser base class 2023-09-07 22:08:07 +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
1acefd8b8c Fix: Do not resend fetch limit request if the last one failed
Due to side effects it is possible that the inverter receives the request but the DTU does not receive the answer. In this case the DTU would resend the request but the inverter would generate a event log entry (DTU command failed) because it received the message twice.
2023-09-05 22:09:16 +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
55afa81cf1 Convert from FreeRTOS Semaphore to std::mutex 2023-09-02 16:46:23 +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
2c41be106e Feature: Allow setting of the Reachable Threshold per inverter 2023-09-01 19:17:12 +02:00
Thomas Basler
b88030f76e Feature: Re-Request DevInfo if it contains invalid data
It can sometimes occour that the DevInfo request returns invalid data. Currently this is identified if the firmware build year is < 2016. In this case the package will be re-requested now.
2023-08-25 11:04:14 +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
Bernhard Roth
6eb3c63288 Fix issue #1256 (HMS-2000-4T reactive power should be signed) 2023-08-21 11:14:24 +02:00
Thomas Basler
188a6cf39d Replace template by abstract class 2023-08-05 01:01:53 +02:00
Thomas Basler
22d9b128b9 Fix: Move setting of CMD_PENDING state into the right order 2023-08-04 23:44:18 +02:00
Thomas Basler
832df5a80e Implement the command queue thread safe
The queue will be maybe filled from within another thread (mqtt/web) and handled from the main loop
2023-08-03 00:17:32 +02:00
Thomas Basler
be09c4052f Fix: Ensure that only completly assembled packets are put into the command queue 2023-08-02 22:41:53 +02:00