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
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
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
83c623708f
Fix crash if radio settings where changed while the radio was not initialized
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
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
Thomas Basler
90c689a41a
Implement HoymilesRadio_CMT
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
Thomas Basler
c2e4c5d43e
Added first implementation of HMS inverter classes
2023-04-15 10:55:47 +02:00
Thomas Basler
d6028cbd50
Remove not required F() macro. Frees ~20kb flash.
2023-04-04 18:51:18 +02:00
Thomas Basler
f689fedf4e
Hoymiles Lib: Remove hard coded Serial output
...
The serial port for output of debug information can now changed during runtime
2022-12-19 20:52:12 +01:00
Thomas Basler
5feefed14e
Added missing copyright information
2022-12-14 22:37:37 +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
2b2afee770
Fix issue that in multi inverter environments some inverters where not fetched
...
When the radio was busy, the current inverter was just skipped and switched to the next one
2022-11-15 22:30:29 +01:00
Thomas Basler
6229e4b5a8
Fixed issue that fetching stopped when inverter was deleted
...
This happend when due to special timing the last inverter was deleted. In that case interverPos was never changed and the fetching process stucked
2022-11-14 20:00:16 +01:00
Thomas Basler
26b9bbf537
Prevent null pointer exception when deleting inverter
...
The removeInverterBySerial can be called in a webserver callback method.
This is maybe executed on another core which can then run in parallel to the radio loop hoymiles loop.
Accessing inverters which are already removed can lead to exceptions.
The Semaphore prevents that parallel execution
2022-11-10 18:26:01 +01:00
Thomas Basler
4031b71d7d
Implemented resend of PowerCommand
2022-10-04 18:12:55 +02:00
Thomas Basler
6cbcfacac6
Renamed several methods from Sample to Simple
2022-10-03 13:14:31 +02:00
Thomas Basler
754913368a
Implemented way to periodically fetch the current limit from the inverter
...
The fetch is only executed at least 4 minutes after the last set command.
Otherwise it would generate a entry in the event log (ID 2)
2022-09-30 18:34:30 +02:00
Thomas Basler
3153ee4993
Implemented getTimeout method in AlarmDataCommand
2022-09-30 18:34:30 +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
b8f03eddfd
Fixed scheduler issue
...
When the RF method took very long inverters where skipped
2022-09-25 17:28:50 +02:00
Thomas Basler
b7961024a1
Fetch limit every 10 minutes
2022-09-09 20:17:52 +02:00
Thomas Basler
3e5fb00248
Fetch inverter limit at least once
2022-09-09 18:41:54 +02:00
Thomas Basler
26268479fb
Fix #96 and #95 : Reworked handling of inverter editing
2022-08-24 02:53:34 +02:00
Thomas Basler
1456974616
Fix #76 : Null Pointer exception when adding a inverter with unkonwn serial number
2022-08-16 19:47:51 +02:00
Thomas Basler
528c56eaa6
Added parser and commands for hardware version and part nr
2022-08-10 20:12:52 +02:00
Thomas Basler
c3a043b1ce
Improve handling of firmware data fetch
2022-08-10 19:03:02 +02:00
Thomas Basler
8715320282
Implemented DevInfo command
2022-08-10 19:03:02 +02:00
Thomas Basler
ef5d549f8a
Fix exception when deleting a inverter
2022-08-09 21:46:40 +02:00
Thomas Basler
dcc7e47b19
Hoymiles: Introduce init method to have a clean init on beginning
...
Constructor is not possible for obvious reasons
2022-07-18 21:30:12 +02:00
Thomas Basler
b9bb753906
First try to implement Alarm Log fetching
2022-07-08 18:22:35 +02:00
Thomas Basler
b2271373a4
Print inverter serial as hex
2022-06-30 21:06:23 +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
db0a3da803
Generate a second class abstraction to support different inverter types in future
2022-06-24 17:49:14 +02:00
Thomas Basler
f42696d14c
Fix change of inverter serial
...
Because of the inverter type depends on the serial number it's a must to remove and add the inverter of the serial was changed. setSerial doesn't make sense anymore. Move the serial to the constructor
2022-06-22 21:32:37 +02:00
Thomas Basler
52b5cdbdb6
Remove not required include
2022-06-16 14:34:21 +02:00
Thomas Basler
bab5beb170
Move strings from RAM to Flash
2022-06-15 22:21:50 +02:00
Thomas Basler
c9e603b2de
Replace EVERY_N_SECONDS with millis
...
EVERY_N_SECONDS is not updated without a reboot of the controller
2022-06-15 22:15:02 +02:00
Thomas Basler
9bfe6a9e63
First simple implementation of polling algorithm
2022-06-15 19:23:47 +02:00
Thomas Basler
0d9b994c92
Added function t retrieve a inverter just by a given payload fragment
2022-05-31 19:29:05 +02:00
Thomas Basler
0d07e3e09f
WIP: Very rough first draft of Hoymiles library
2022-05-30 21:50:08 +02:00