EDIT: SOLVED !!
220924: Added Github link to complete production configuration and full details on all registers
220929: Added link to issue experienced with the RS485 module hardware I used for this implementation
I really could do with some help on this subject, as I’ve searched in vain for examples on how to create some custom uart sensors for my Delta inverter.
I’ve a Solivia gateway on the modbus already, which is quite chatty (a data package every second or so).
So I’m not able to use a modbus custom_command sensor, as my requests and the replies will drown in the gateway packages (tested that already). I’ve also an issue actually identifying the correct register commands, as all but one tested so far differs from the Solivia protocol data that can be found on the web.
I’ve looked into the gateway package response from the inverter which differs a lot from all the examples I’ve found on the net. So I had to analyse the package and have now identified the specific bytes (registers) I would like to pull out as sensors.
My package is for 0xff bytes (normally a lot fewer bytes are send). Both the request and reply is in the uart buffer, as I’m only sniffing the uart data:
02:05:01:02:60:01:85:FC:03
02:06:01:FF:60:01
45:4F:45:34:36:30:31:30:32:38:37:31:31:33:32:38:37:30:38:31:33:30:31:30:30:33:33:39:38:31:33:30
31:30:38:01:02:1A:00:00:00:00:23:34:00:00:00:00:23:34:00:00:00:00:00:00:00:00:00:00:23:34:00:00
00:00:00:00:00:00:00:00:01:00:03:96:01:9A:00:16:00:00:00:00:00:00:00:00:00:00:00:00:00:23:00:EC
13:88:03:64:FF:4E:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:08:98:07:D0:00:33
00:33:00:00:00:00:02:14:3E:3E:00:26:48:A6:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:08:F7:00:00:01:16:00:00:00:00:00:00
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:34:A4:03
02:14:3E:3E = total yield = 34881086 = 34881,086kWh
08:F7 = daily yield = 2295W
(Haven’t located current AC power - yet )
So the question is how do I make a sensor out of eg. the 32float register at position 0x86 (first position as 0x00) in the actual package data ?
ANY help getting me started on this would be much appreciated.
My programming skills are somewhat limited, so I’m quite clueless on how to proceed.
Thank you in advance
Henning