Commit Graph

243 Commits

Author SHA1 Message Date
Thomas Basler
5bbc67bc49 Fix: Clear parser buffers to prevent random numbers if no data was received 2023-07-31 22:52:38 +02:00
Thomas Basler
ef65094181 Fix: Prevent wrong values of devinfo data because of non-atomic transaction 2023-07-31 22:27:28 +02:00
Thomas Basler
74169c3b17 Fix: Prevent wrong values of systemconfigpara data because of non-atomic transaction 2023-07-31 22:06:04 +02:00
Thomas Basler
698ecbcd53 Fix: Prevent wrong values of alarm data because of non-atomic transaction and fix calculation of getEntryCount() 2023-07-31 22:06:04 +02:00
Thomas Basler
14305a9f12 Fix: Prevent wrong values of statistics data because of non-atomic transaction 2023-07-31 22:05:22 +02:00
Thomas Basler
9821c1905b Fix: Uninitliazed variable used before first use 2023-07-31 21:44:50 +02:00
Thomas Basler
658a42db80 Apply code formatter without functional changes 2023-07-22 18:00:41 +02:00
Thomas Basler
0ffbba0cf5 Fix: Allow sending of ChannelChangeCommand even if EnableCommands is disabled
This is required to successfull move the inverter to another frequency and then polling it. Without this command its not even possible to poll a inverter.

Fixes #1127
2023-07-10 18:30:59 +02:00
jstammi
82038d3e2d Fix: do not calc sizes multiple times
tbnobody/OpenDTU/issues/1022
2023-06-28 19:26:45 +02:00
jstammi
4ae6a2b4ef Fix: calc expected statistics packet length per parser
tbnobody/OpenDTU/issues/1022
2023-06-28 16:53:38 +02:00
Thomas Basler
69aa247470 Added check in statistics data that at least all required bytes are received
It can occour for some inverters that incomplete fragments with valid crc but less bytes are received

This was mentioned in #1084
2023-06-27 18:59:54 +02:00
Thomas Basler
184c659197 Added new found HMS-400 to DevInfoParser
Fixes #1045
2023-06-19 11:33:06 +02:00
Thomas Basler
64c96c34f4 Revert "Fix: String numbers for HMT inverters are mirrored"
This reverts commit 593a33020f.
2023-06-14 21:44:55 +02:00
Thomas Basler
593a33020f Fix: String numbers for HMT inverters are mirrored
Fixes: #1005
2023-06-07 18:05:51 +02:00
Thomas Basler
82b0272ceb Removed duplicate code by moving it into the radio base class 2023-06-03 12:07:46 +02:00
Thomas Basler
c5a31de5a8 First try to output some dBm info for the NRF module 2023-06-03 11:54:23 +02:00
Thomas Basler
249436a303 Added possible description for alarm code 73
https://github.com/tbnobody/OpenDTU/discussions/590#discussioncomment-6049750
2023-05-31 19:23:35 +02:00
Thomas Basler
e0027d951b Feature: Added new found HMS-900 to DevInfoParser
Fixes #967
2023-05-27 11:14:15 +02:00
Thomas Basler
5fea7ee066 Fix: Doublecheck if the MutiDataCommand begins with the correct ID
ID is 0x15 | 0x80
2023-05-24 22:06:58 +02:00
Thomas Basler
8f2a2b40b1 Fix: Filter incoming packages from CMT module for the right destination address
The CMT module receives every package on it's target frequency. Compared to the NRF module to filtering takes place. Therefor it's required to check if the package destination id is really the id of our dtu
2023-05-24 21:55:15 +02:00
Thomas Basler
fe90c863bf Fix: Better handling of invalid fragment ids 2023-05-23 19:32:51 +02:00
Thomas Basler
295eeba556 Feature: Added new found HMS-450 to DevInfoParser
Fixes #911
2023-05-11 18:26:56 +02:00
Thomas Basler
7be5dd865a Feature: Added new found HMS-1600 to DevInfoParser 2023-05-09 19:29:23 +02:00
Thomas Basler
99ab78d544 Feature: Added new found HMS-600 to DevInfoParser 2023-05-06 17:49:04 +02:00
Thomas Basler
74abc1ec1d Feature: Added new found HMS-2000 to DevInfoParser
Fix #886
2023-05-06 12:16:05 +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
0441bbbe72 Fix: Queue consumed whole memory on inverter timeout
When the poll interval was e.g. 1sec it was possible that the queue ran full and consumed the whole memory.
Now new entries are only added to the queue automatically if the queue is empty.  This issue also caused a lot of "DTU command failed" messages.
2023-04-25 19:24:56 +02:00
Thomas Basler
98da2b64e2 Rename FLD_PRA to FLD_Q 2023-04-24 22:29:59 +02:00
Thomas Basler
270a7f4933 Rename UNIT_VA to UNIT_VAR 2023-04-24 22:25:15 +02:00
Thomas Basler
f5c15a445b Move byteAssignment to stack (avoid container) to save heap 2023-04-22 01:12:29 +02:00
Thomas Basler
0e9c666981 Implement method as static 2023-04-21 19:02:10 +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
af3a277e30 Introduced HoymilesRadio property to determine if a configuration attempt was done 2023-04-17 18:59:56 +02:00
Thomas Basler
1416efc6f9 Fix: Endless loop when CMT module was configured but not connected 2023-04-17 18:58:23 +02:00
Thomas Basler
7c37d289c0 Enabled additional statistics data for HMT inverters
Not yet shown in web ui and mqtt
2023-04-15 10:55:48 +02:00
Thomas Basler
6856ba9972 Fix: Change defines to get a correct calculation if base frequency of CMT module is different compared to Hoymiles base frequency 2023-04-15 10:55:48 +02:00
Thomas Basler
f3942bb647 Fix: Set correct frequency when changing it via web ui
Previously it could happen that the frequency was changed between saving old and recovering new frequency. Therefor an invalid frequency was saved in the CMT module
2023-04-15 10:55:48 +02:00
Thomas Basler
8356db94b9 Send ChannelChangeCommand only once per cycle as the inverter will not response at all 2023-04-15 10:55:48 +02:00
Thomas Basler
ac7b5dba11 Resend and Retransmit count is now implementable per command 2023-04-15 10:55:48 +02:00
Thomas Basler
e2aa29f117 Remove cmtProocess method and move RF logic into the cmt2300wrapper class 2023-04-15 10:55:48 +02:00
Thomas Basler
f5767e61ef Implement CMD56 as own command.
By doing so, it's possible to send all packets via the sendEsbPacket method. A lot of stuff could be removed which is no more used.
2023-04-15 10:55:48 +02:00
Thomas Basler
cfb37906ca Rename cmtFreqToChan to getChannelFromFrequency and simplify handling of current channel 2023-04-15 10:55:48 +02:00
Thomas Basler
1259f09503 Replace multiple print calls by a single printf in HoymilesRadio_NRF 2023-04-15 10:55:48 +02:00
Thomas Basler
a11ee472c6 Optimize cmtChToFreq method to return float instead of string. Renamed also to getFrequencyFromChannel 2023-04-15 10:55:48 +02:00
Thomas Basler
2a92f67a9a Implement get and set channel in cmt2300 wrapper class 2023-04-15 10:55:48 +02:00
Thomas Basler
fffd872b20 Replace HOY_BASE_FREQ by CMT_BASE_FREQ 2023-04-15 10:55:48 +02:00
Thomas Basler
5b648b63ac Implemented blocking write method in CMT2300 driver and use it in sendEsbPacket. 2023-04-15 10:55:48 +02:00
Thomas Basler
6331210b94 IsReachable of the inverter was never reached 2023-04-15 10:55:48 +02:00
Thomas Basler
25722f6055 Adjust buffer size in StatisticsParser for inverters with more inputs 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