greentangerine / ME3000

17 stars 13 forks source link

documentation #1

Open speculatrix opened 3 years ago

speculatrix commented 3 years ago

Hi, I have a Sofar HYD5000 and someone drew my attention to your repo.

I would be happy to write some documentation and instructions for it if you will help me understand it better, would you be willing to do that?

What I want to do is charge my Sofar from octopus go, and also use the weather forecast to determine how much charge to put into the battery before the 0430 cut-off. e.g. if the weather predicts murky rainy day, fill the battery completely, but if the morning will be bright, then maybe only fill it to 50%. Also, use sun-rise time as another factor, so in winter you charge more than summer.

thanks, Paul

davies8172 commented 3 years ago

You might find further assistance within the following Facebook group https://www.facebook.com/groups/2477195449252168 We use a mixture of Python scripts and Node Red to create custom home automation. For example, I use Node-Red to control my Sofar Inverter including charging it overnight from the cheap nighttime electricity and you can create rules and bring in other factors such as sunrise and following day's forecast.

speculatrix commented 3 years ago

thanks, yes, I'm on that facebook group. I was hoping to better document the low level stuff.

timecmdr commented 3 years ago

Anyone know what the different topics are. I'm looking for some realtime info so I can recreate the front panel graphic if possible.

davies8172 commented 3 years ago
Address Define Variable types Length Range Default value unit
0x0206 Grid A Voltage Uint 16 0-1000V   0.1V
0x0207 Grid A Current int 16 -20-20A   0.01A
0x0208 Grid B Voltage Uint 16 0-1000V   0.1V
0x0209 Grid B Current int 16 -20-20A   0.01A
0x020A Grid C Voltage Uint 16 0-1000V   0.1V
0x020B Grid C Current int 16 -20-20A   0.01A
0x020C Grid Frequency Uint 16 0-1000V   0.01Hz
0x020D Charge/Discha rge power int 16 -10-10 KW   0.01KW
0x020E Battery Voltage Uint 16 0-100V   0.1V
0x020F Battery Charge/Discha rge current int 16 -100-100 A   0.01A
0x0210 The      residual capacity         of battery Uint 16 0-100   1ï¼…
0x0211 Battery          
  temperature          
0x0212 Feed       in/out power int 16 -10-10 KW   0.01KW
0x0213 The   power   of the load Uint 16 0-10 KW   0.01KW
0x0214 Input/Output power Int 16 -10-10KW   0.01KW
0x0215 The   power   of generation Uint 16 0-10 KW   0.01KW
0x0216 EPS        output voltage Uint 16     0.1V
0x0217 EPS        output power Uint 16     0.01KW
0x0218 Generation   of one day Uint 16 0-65536   0.01KWh
0x0219 The  power  sell to      grid      of today Uint 16 0-65536   0.01KWh
0x021A The power buy from    grid    of today Uint 16 0-65536   0.01KWh
0x021B Today consumption of the load Uint 16 0-65536   0.01KWh
0x021C Total generation High-Byte Uint 16 0-65536   1KWh
0x021D Total generation Low-Byte Uint 16 0-65536   1KWh
0x021E Total       power sell                 to grid,High-Byte Uint 16 0-65536   1KWh
0x021F Total       power sell                 to grid,Low-Byte Uint 16 0-65536   1KWh
0x0220 Total      energy buy            from grid,High-Byte Uint 16 0-65536   1KWh
0x0221 Total      energy buy            from grid,Low-Byte Uint 16 0-65536   1KWh
0x0222 Total consumption of                 the load,High-Byte Uint 16 0-65536   1KWh
0x0223 Total Uint 16 0-65536   1KWh
  consumption of                 the load,Low-Byte          
0x0224 reserved          
0x0225 reserved          
0x0226 reserved          
0x0227 reserved          
0x0228 reserved          
0x0229 reserved          
0x022A The countdown time Uint 16      
0x022B Inverter message alert Uint 16    
0x022C Battery times cycle Uint 16 0-65536  
0x022D INV voltage bus int 16    
0x022E LLC voltage bus Uint 16    
0x022F Buck current Uint 16      
0X0230 Grid R Voltage Uint 16     0.1V
0X0231 Grid R Current Uint 16     0.01A
0X0232 Grid S Voltage Uint 16     0.1V
0X0233 Grid S Current Uint 16     0.01A
0X0234 Grid T Voltage Uint 16     0.1V
0X0235 Grid T Current Uint 16     0.01A
0X0236 Generation current Uint 16 0-100    
0X0237 Battery power int 16     reserved
0X0238 Inner temperature int 16 -254   1℃
0X0239 Heat            sink temperature int 16 -254   1℃
0X023A Country Uint 16      
0X023B Current         dc component int 16     1mA
0X023C Voltage          dc component int 16     0.1V
0X023D Battery      fault message 1 Uint 16     High-Byte:byte1,Lo w-Byte:byte0
0X023E Battery      fault message 2 Uint 16     High-Byte:byte3,Lo w-Byte:byte2
0X023F Battery      fault message 3 Uint 16     High-Byte:byte5,Lo w-Byte:byte4
0X0240 Battery      fault message 4 Uint 16     High-Byte:byte7,Lo w-Byte:byte6
0x0241 Battery      fault message 5 Uint 16     High-Byte:byte9,Lo w-Byte:byte8
0x0242 Communicatio n  board  inner message Uint 16     High-Byte:byte1,Lo w-Byte:byte0
0x0243 Today generation time Uint 16     1min
0x0244 Total generation time High-Byte Uint 16     1hour
0X0245 Total generation time,Low-Byte Uint 16     1hour

Copy and paste this lot into excel. There are lots of addresses you can use to get information from.

timecmdr commented 3 years ago

Thanks, I think i'm looking for the relation to the numbers so in the myME3000.py file there is a number preceding the topic description ... (15, 'batt_current', 'h'), (16, 'batt_capacity', 'H'), (17, 'batt_temp', 'H'), (25, 'sell_grid', 'H'),

Do we have a list of what number relates to which address as per the above, or am I off course .

davies8172 commented 3 years ago

The numbers (6,7,14,15) are related to the script and not directly to the inverter. The MODBUS addresses that relate to those are the ones below. batt_current = 0x020F - Battery Charge/Discharge current batt_capacity = 0x0210 - The residual capacity of battery batt_temp = 0x0211 - Battery temperature sell_grid = 0x0219 - The power sell to grid of today There is so much you can do with the whole list. We are just working with Node-Red and using Modbus directly retrieving all the data from the inverter without using Python scripts. The refresh rate is down to 5 seconds and that is when requesting lots of data. I am not expert on the Python scripts but I have been using them and learning more about MODBUS over the past 6 months.

Kalamgish commented 3 years ago

Hi all, I am currently using the excellent work by greentangerine to dynamically control the Sofar in passive mode so eliminating the need for the CT sensors (see below for reason). I am however occasionally getting a 'perm fault' come up which entails power cycling the inverter to fix. Does anyone know a. The reason why these perm faults occur and b. is there a way to reset the Sofar in software?

I have a seperate modbus grid meter so I can see in real time the grid status, I also have some extra PV panels not able to go through the CT sensors, My program therefore allows me to dynamically adjust the sofar to charge or discharge with respect to the grid. I am sending a command to the Sofar every 0.5 seconds to basically keep the grid close to zero.

Freitag83 commented 3 years ago

Ive managed to piece this python and nodered together and have got my rpi reading data. As timecmdr says is there a link between the address numbers and the names. Ideally want to display more than the five lines.

davies8172 how do i use modbus instead of python?

ps. this is amazing that you guys take the time to put this together and share. Ive saved 3 yrs by googling and facebooking today alone. 👍

davies8172 commented 3 years ago

For more info and full instructions (and lots of other guides), go to https://www.facebook.com/groups/2477195449252168 on Facebook and check out the guides there. We are all on there to help.