Thomas Basler
5265c6281f
Feature: Set Limit transfer only to "OK" if the queue does not contain any more commands
2024-12-15 20:45:32 +01:00
Thomas Basler
8acae28c59
Feature: New handling of command queue
...
Goal of this change is to prevent a overflow in the command queue by flooding it with MQTT commands and therefor also prevent the reading of the inverter data.
To achieve this it is now possible to specify a insert type for each queue element.
2024-12-15 20:45:32 +01:00
Thomas Basler
6a7bed0ecf
Code Refactoring: Add inverter reference to each command
...
Instead of just adding the target_address to a command this patch adds a reference to the whole inverter instance
2024-05-16 19:54:09 +02:00
Thomas Basler
718690030e
Fix include for TimeoutHelper
2024-04-01 13:52:59 +02: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
8b5d406a4f
Introduce several const statements
2023-12-07 15:19:04 +01:00
Thomas Basler
188a6cf39d
Replace template by abstract class
2023-08-05 01:01:53 +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
Thomas Basler
82b0272ceb
Removed duplicate code by moving it into the radio base class
2023-06-03 12:07:46 +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
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
46036eb958
Simplify dumpBuf method in HoymilesRadio
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
41e2ba7fcf
Move serveral methods from the HoymilesRadio_NRF class to the HoymilesRadio base class
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
c2e4c5d43e
Added first implementation of HMS inverter classes
2023-04-15 10:55:47 +02:00
Thomas Basler
5feefed14e
Added missing copyright information
2022-12-14 22:37:37 +01:00
Thomas Basler
0d350b14bb
Migrated _rxBuffer from CircularBuffer to queue
2022-11-28 18:25:50 +01:00
Thomas Basler
36abaeee12
Moved pin assignment outside the hoymiles library
...
Allows setting the pins during runtime and not just using the defines
2022-11-27 12:07:25 +01:00
Thomas Basler
e762abd18f
Show RF chip type in SystemInfoView
2022-10-12 00:17:40 +02:00
Thomas Basler
20b799b630
webapp: Show NRF24 connection status
2022-10-06 23:29:17 +02:00
Thomas Basler
64ae87faf1
Define several methods as private
2022-10-06 23:29:15 +02:00
Thomas Basler
a707ab501d
Implemented method to check whether the last command was successfull
...
This also allows to retransmit the command after specific time if not successfull
2022-09-30 18:34:30 +02:00
Thomas Basler
de33b9ff88
Do not use namespace using-directives. Use using-declarations instead.
2022-09-13 21:35:51 +02:00
Thomas Basler
185fea987d
Added some initializations to prevent missunderstandings and errors
2022-09-05 21:53:50 +02:00
Thomas Basler
6c088a9898
Implemented channel hopping on TX frequencies
...
Every sent package changes the frequency
2022-08-04 20:10:44 +02:00
Thomas Basler
0d26337575
Fixed retransmit count
2022-07-30 11:59:01 +02:00
Thomas Basler
4413b603e3
Replace inverter_transaction with new command classes
2022-07-30 00:37:54 +02:00
Thomas Basler
4259df9ee6
Hoymiles Lib: Allow configuration of all pins
2022-07-12 18:42:52 +02:00
Thomas Basler
4f2d705314
Added possibility to override pin assignments
2022-07-08 18:20:36 +02:00
Thomas Basler
0f75c4a6a4
Introduced some pin defines
2022-07-02 11:58:31 +02:00
Thomas Basler
e9e5c715f5
Remove duplicated variable
...
The content of _activeSerial is also available in currentTransaction.target
2022-06-27 21:56:55 +02:00
Thomas Basler
ab6261da92
Move the whole stats request into the inverter class
...
This enables in future releases so send multiple requests for e.g. MI inverters
2022-06-27 19:26:16 +02:00
Thomas Basler
7a0394151a
First implementation of TX queue
...
This is required to implement some features of e.g. MI Inverters or to read the event log of HM inverters
2022-06-27 19:09:52 +02:00
Thomas Basler
db0a3da803
Generate a second class abstraction to support different inverter types in future
2022-06-24 17:49:14 +02:00
Thomas Basler
8d2b71cd04
Implemented resend of whole requests
2022-06-20 20:47:21 +02:00
Thomas Basler
5221c80d36
Added channel 40 to RX channel list
2022-06-19 12:53:33 +02:00
Thomas Basler
865d00d3d0
Code cleanup
2022-06-18 12:26:37 +02:00
Thomas Basler
9bfe6a9e63
First simple implementation of polling algorithm
2022-06-15 19:23:47 +02:00
Thomas Basler
87da5ef63d
Renamed packet_t to fragment_t and implemented fragment crc check
2022-05-31 18:53:45 +02:00
Thomas Basler
0d07e3e09f
WIP: Very rough first draft of Hoymiles library
2022-05-30 21:50:08 +02:00