Thomas Basler
5e11f0b854
Implement property in HoymilesRadio_CMT to set the frequency during runtime
2023-04-15 10:55:48 +02:00
Thomas Basler
fe5e5bc4b1
Implement cmtBaseChOff860 as a define
2023-04-15 10:55:48 +02:00
Thomas Basler
4561e52735
Adjusted some comments
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
bec9870347
Move alarm messages from heap to stack
2023-04-15 10:55:47 +02:00
Thomas Basler
fc5f6887cb
Adjust name from CMT2300a to CMT2300A
2023-04-15 10:55:47 +02:00
Thomas Basler
098691af9d
First step towards a modular CMT2300 driver similar to the NRF24 one
2023-04-15 10:55:47 +02:00
Thomas Basler
67055276ca
Implement different Eventlog messages for HMT inverters
...
Also make message list much more readable
2023-04-15 10:55:47 +02:00
Thomas Basler
06cc19fc70
Use TimeoutHelper for TX timeout
2023-04-15 10:55:47 +02:00
Thomas Basler
46036eb958
Simplify dumpBuf method in HoymilesRadio
2023-04-15 10:55:47 +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
3c0d89f599
Replaced println by printf and code style changes
2023-04-15 10:55:47 +02:00
Thomas Basler
a585ffe199
Add variable for max channel count (to extend serveral arrays)
2023-04-15 10:55:47 +02:00
Thomas Basler
90c689a41a
Implement HoymilesRadio_CMT
2023-04-15 10:55:47 +02:00
Thomas Basler
8927b8374a
Added HMS/HMT devices to the DevInfoParser
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
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
299ba8f27a
Doc: Resolve Markdown Lint errors
2023-04-06 23:34:35 +02:00
Thomas Basler
d6028cbd50
Remove not required F() macro. Frees ~20kb flash.
2023-04-04 18:51:18 +02:00
Thomas Basler
d099bc4ff8
Fix #753 : Only apply offset if data is in the buffer to prevent negative numbers
2023-03-30 22:11:20 +02:00
Thomas Basler
041249523e
Fixed typo in comment
2023-03-28 22:41:27 +02:00
Thomas Basler
8d8c7f8a71
Fixed typo: Successfull --> Successful
2023-03-23 23:30:55 +01:00
Thomas Basler
70130f47ae
Remove not required register keyword
2023-03-20 18:05:57 +01:00
Thomas Basler
f423ce0a6b
Fix #644 : Added additional HM-400 to mapping table
2023-02-28 19:42:15 +01:00
Thomas Basler
fa3d0370f0
Fix isReachable and isProducing based on PollEnabled
2023-02-18 23:50:16 +01:00
Thomas Basler
7da782c4ef
Hoymiles Lib: Added flags to inverter to enable/disable polling and commands to the inverter
2023-02-18 15:51:46 +01:00
Thomas Basler
8cbae76797
Implement offsets for YieldTotal ( #549 )
...
This allows to enter a offset in kWh in the inverter properties which will be applied to the read Yield Total value of the inverter. Using this can set your total production to zero if you e.g. are using a used device.
2023-02-13 20:25:00 +01:00
Thomas Basler
ceaf08c1a0
Hoymiles Lib: Rename ChannelMaxPower to StringMaxPower
2023-02-06 19:56:12 +01:00
Thomas Basler
d4c838a16e
BREAKING CHANGE: Prometheus API!
...
Added additional field to the prometheus api which identifies a channel by it's type. That means that e.g. channel 0 exists for type AC and DC.
This commit also introduces a additional field in the statistics byte assignment table. This field identifies whether a channel is on the AC or DC side. MQTT and WebAPI is still compatible with the previous design.
2023-02-06 19:51:10 +01:00
Thomas Basler
6b36369b06
Hoymiles Lib: Migrate byteAssign array to std::list
2023-02-06 19:44:00 +01:00
Thomas Basler
7c33688167
Use same line ending in printf as in println
...
This prevents mistakes in the webconsole
2023-01-04 18:48:33 +01:00
Thomas Basler
43d25dd24a
Hoymiles Lib: Change field order and move channel to first position
2022-12-25 12:02:11 +01:00
Thomas Basler
1d650b59ae
Hoymiles Lib: Add digits column to byteAssignment table
...
This allows to specify amount of digits for calculated fields
2022-12-25 12:02:11 +01: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
0d350b14bb
Migrated _rxBuffer from CircularBuffer to queue
2022-11-28 18:25:50 +01:00
Thomas Basler
3c8bd56576
Added MI-1500 with Gen3 Protocol to Hardware Id list
2022-11-28 18:16:46 +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
6388be7a9e
Added new Hardware Part Number for HM-800
...
See #363
2022-11-21 17:52:27 +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
dd7babb448
Added a timeout of 5ms to detect current time.
...
This prevents false positives when a interrupt occours during the reading of the time
2022-11-14 20:19:38 +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
0d619e780a
Prevent null pointer exception
...
It could occur that the command queue contained commands for inverters which are already deleted.
Therefor it has to be checked that getInverterBySerial returns a valid inverter
2022-11-10 18:32:28 +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