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
a252d2ac3a
Added CMT2300 driver
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
df468086e4
TimeoutHelper: Allow resetting the last value
2023-04-04 18:52:00 +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
Luca Kröger
cb40a07489
added support for ESP32S2
2023-03-07 15:39:05 +01:00
Thomas Basler
f423ce0a6b
Fix #644 : Added additional HM-400 to mapping table
2023-02-28 19:42:15 +01:00
Thomas Basler
27f230e94d
Merge branch 'pr634' into dev
2023-02-26 19:49:58 +01:00
Marc-Philip
9f7f7ca49b
fix conjugation
2023-02-26 19:10:13 +01:00
Thomas Basler
612e5f73b7
Fixed compilation issue for esp32-s3
2023-02-23 23:28:34 +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
6235342cf2
Fix compile issue with ESP32-C3 MCU
2023-01-18 23:08:01 +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
5dd4d5b452
Introduce MqttSubscribeParser and moved inverter specific subscribes to MqttHandleInverterClass
...
This allows individual callback functions for each subscribed topic. Allows easier implementation of further mqtt functions
2022-12-14 20:42:23 +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
Thomas Basler
547fe41ab1
Add missing parser class to documentation
2022-10-31 14:14:01 +01:00
Thomas Basler
4049f6bdb7
Implemented method to get the amount of relevant digits
2022-10-31 11:51:08 +01:00
Thomas Basler
27ed4e3cda
BREAKING: Change power factor from percent value to value between 0 and 1
...
If you write these values to a database you have to update them.
2022-10-31 10:50:31 +01:00
Thomas Basler
f2a08ba503
Rename FLD_PCT to FLD_PF and assign UNIT_NONE
2022-10-31 00:43:07 +01:00
Thomas Basler
f741fea333
Move serial number formatting to inverter class
2022-10-29 11:22:56 +02:00
Thomas Basler
f21dd351ef
Optimize performance by removing not required string constructors
2022-10-29 11:22:56 +02:00
Thomas Basler
9f4d8bdddb
Better limit description
2022-10-20 19:34:10 +02:00
Thomas Basler
3ab7d9f6fe
Fix #246 : Allow negative float values
...
This is required for the temperature field which can be negative as well
2022-10-20 18:18:36 +02:00
Thomas Basler
678f165350
Fix warning: missing initializer for member
2022-10-19 22:16:29 +02:00
Thomas Basler
1dd6e9c453
Check 4th byte on DevInfoSimple to get max_power
...
This is required to detect models with fixed power limits
2022-10-19 22:16:18 +02:00
Thomas Basler
d224db4d1d
Fixed warning: type qualifiers ignored on function return type
2022-10-18 21:42:03 +02:00
Thomas Basler
e762abd18f
Show RF chip type in SystemInfoView
2022-10-12 00:17:40 +02:00
Thomas Basler
0a577f8002
Allow a maximum limit of 100 if limit type is relative
2022-10-11 23:28:22 +02:00
Thomas Basler
4c65be8c55
Add comma values to inverter limit
2022-10-11 23:04:43 +02:00
Thomas Basler
da0998c809
Implement inverter restart by mqtt topic
2022-10-09 13:16:06 +02:00
Thomas Basler
753ab1312e
DevInfoParser: Dont create string object twice
2022-10-08 18:15:06 +02:00
Thomas Basler
05d9ce4590
Output channel for RX messages
2022-10-08 18:14:43 +02:00
Thomas Basler
223b7ff3ce
Adjusted serial parsing to detect model
...
There are some MI-1500 models which are compatible with the Gen3 protocol.
The adjustment takes this into account.
2022-10-08 18:03:56 +02:00
Thomas Basler
1cbff8afca
Added HM-350 to list of known devices
2022-10-08 10:58:59 +02:00
Thomas Basler
b5cb24a46d
Fix AlarmDataCommand timeout for 15 entries
2022-10-08 02:34:54 +02:00
Thomas Basler
fbd58554b9
Show HW Version as decimal instead of hex
2022-10-06 23:29:18 +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
e1690e8f74
Apply limit instantaneously if inverter info is available
2022-10-06 23:29:05 +02:00
Thomas Basler
b02d36d042
Added IDs to identifiy inverters to DevInfoParser
2022-10-06 18:34:31 +02:00
Thomas Basler
373e1e5e8f
Fixed function not used warning
2022-10-05 18:51:21 +02:00
Thomas Basler
7cede84785
Fixed uninitialized variable warning
2022-10-05 18:42:41 +02:00
Thomas Basler
d021d7529f
Fix parentheses error in AlarmLogParser
2022-10-04 23:38:32 +02:00
Thomas Basler
4031b71d7d
Implemented resend of PowerCommand
2022-10-04 18:12:55 +02:00
Thomas Basler
0fd714b165
Implemented first few classes for power control
...
TurnOn and TurnOff
2022-10-04 18:12:55 +02:00
Thomas Basler
66453b0854
Return correct formatted HwVersion
2022-10-03 13:58:50 +02:00
Thomas Basler
6cbcfacac6
Renamed several methods from Sample to Simple
2022-10-03 13:14:31 +02:00
Thomas Basler
b2a30621db
Extended and updated event log texts
2022-10-02 23:52:35 +02:00
Thomas Basler
eef6c37de9
Beautify serial output of package log
2022-10-02 18:43:19 +02:00
Thomas Basler
18ec145dda
Added command names to serial output
2022-10-02 17:17:34 +02:00
Thomas Basler
c8c6b2a978
Renamed DevInfoSample to DevInfoSimple
2022-10-02 17:01:46 +02:00
Thomas Basler
a3d9c6ae0f
Fixed array size of 1 channel inverters
2022-10-02 16:04:02 +02:00
Thomas Basler
67e0d0274d
Code cleanup: Remove not required comments
2022-10-02 15:44:33 +02:00
Thomas Basler
1aef350c2e
Remove not required method isA()
2022-10-02 15:43:11 +02:00
Thomas Basler
2a71be06ab
Fix cpplint: Adjust syntax of todo comment
2022-10-02 12:34:25 +02:00
Thomas Basler
989026d049
Fix cpplint: make one argument constructor explicit
2022-10-02 12:33:23 +02:00
Thomas Basler
862b65e844
Added method to detect whether an inverter is reachable
2022-10-01 02:16:47 +02:00
Thomas Basler
a261eb838c
Added method to detect whether a inverter is producing
2022-10-01 02:00:56 +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
a8ee8afb17
Set correct timeout for DevControlCommand
2022-09-30 18:34:30 +02:00
Thomas Basler
a2880cc447
Add RX main command to structure which is passed to handleResponse
...
This is required because the DevControlCommands just set the first byte to define whether the request was successfull or not
2022-09-30 18:34:30 +02:00
Thomas Basler
2376da1722
Create function to set ActivePower on inverter level
2022-09-30 18:34:30 +02:00
Thomas Basler
73e2aaf8fe
Implemented setting/getting of limit/type for ActivePowerControl
2022-09-30 18:34:30 +02:00
Thomas Basler
d998271944
Implemented crc16 calculation for DevControlCommand
2022-09-30 18:34:30 +02:00
Thomas Basler
cfdbf5963c
Empty classes of ActivePowerControl
2022-09-30 18:34:30 +02:00
Thomas Basler
8e2aa8981f
Fix #170 : Update byte assignment for statistics data
2022-09-28 18:44:59 +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
68fc0c2547
Extend memory to fetch all eventlog entries
2022-09-25 17:26:48 +02:00