I have made good progress since my first posting in January, and it seems appropriate (hopefully useful) to provide an update for the record, on where I am with my Solis inverter data logging project.
I have my original Solis data stick. I have also purchased a second stick (for spare/parts), and have further recently purchased a data logging box.
Stick one – LAN type, serial number 19 13…. Rust coloured circuit board ME-12X007-VB11, firmware ME-121-1-V1.0.6. This must be a very old board/software. It has the manual tab option to set a second server, which I have successfully directed to my Raspberry Pi or my HA box (see last post), and it does not have the config_hidden page. Notably the status info page does not have the current invert (power) details working.
My data logging stick is now playing up. Connection to the cloud is intermittent and only for a few minutes at a time. I also lose my local server connection, and cannot get to the stick configuration web page. I suspect that this is a stick-to-Solis network issue rather than stick-to-inverter but I have been unable to shed light on this. Power recycling immediately sorts the issue, but sadly only for a short time. Interestingly the down periods are almost always identical in length. Yesterday, for example, connectivity was lost at 4:30, 8:10, 11:15, 14:20, and 19:50 and every time for exactly 2 hours 50 minutes before reconnecting. Must be a timeout issue…
Stick two – LAN type, serial number 19 18…. Dark green circuit board (quite different) ME-22X007-V31 (I think this is 3 and not B, difficult to read) firmware MA-0A-0501-5.05. I assume this is the latest running V5 protocol. This stick, although a LAN stick, thinks it is a WiFi one – web config software is quite different but centred on WiFI settings. Second B server does not work, config_hidden page does exist but I have made no progress in getting this to work. Status page does have the inverter power figures!
My problem here is that, in the interest of experimentation, I tried to swap over the sticks using the replace datalogger option. New stick registered (tick). Old stick disappeared (tick). New stick connects to inverter – computer says NO. New stick happy, talks to Solis Cloud, I can get to web config, just not connecting to the inverter. Inverter thinks it is connected to itself! Swapping back to the original stick does work and old stick miraculously reappears with all data and settings intact, and nicely connected to the inverter.
New Data Logging Box – WiFi (and LAN), serial number 28…. Firmware is H4.01.52MW2.01W1.0.91. This is clearly a more industrial Solarman device built to connect to a wide range of different makes, not just Ginlong. I had hoped that this would be more robust, reliable, and useable. The WiFi connection is, bluntly, near impossible to setup and to get working. The LAN cable option does connect, but the box frustratingly still continues to think it is a WiFi device. Web config is entirely different again. Unfortunately, even with a second replacement box (I assumed the first was faulty) I have been entirely and utterly unable to get this to connect to the inverter. I can only suspect that this is an old box with old software that does not (yet) recognise the newer Solis Hybrid inverter.
So, I am only keeping the first Solis stick running because after spending hundreds of hours working on this I am reluctant to throw it and my work in the bin. Very very tempted though. My focus is elsewhere, but at some point I may try asking Solis to help sort this out. In the meantime I have successfully implemented Modbus polling direct to the inverter registers, and am now getting data directly from that and by listening in on the CAN bus connection between Pylontech battery and inverter.
The advantage of listening to the data logging stick is that it is a passive approach, whereas Modbus mean actively talking to the inverter. However, the Modbus route allows me to control the polling rate (currently every 25 seconds) and also allows direct inverter control, which is my current phase of the grand plan project.
My summary thoughts:
Can I successfully connect to a Solis Inverter using the data logging stick? A. Perhaps, depends on the version of stick / software you have. Some versions allow a second B server, some have hidden options that may allow a second B server. I may just have been ‘lucky’ to get an old version that does work.
How easy is it to get the data out of a stick? A. If your stick permits a second server, using Node Red to set up a listening TCP/UDP node is not difficult. Decoding the resulting data buffer is difficult – there appear to be several different protocol versions with different data constructs (and little information available as to what the data is).
What hardware do I need? A. To listen to the stick second server no hardware is required other than a working instance of Node Red on the same network (I use my Raspberry Pi as a development machine, and move the Node Red flow over to my Home Assistant box for production).
What do I have to set up on the stick? A. The stick has settings for a A server which should be the Solis cloud server. You are looking for options for a B or local server which needs to be set to the IP address of your Node Red hardware. Set the port also, and match these in the TCP/UDP-in node.
Where does Modbus come in to all of this? A. The inverter only understands Modbus commands (a protocol) over RS485 (serial communication hardware). The data stick talks ‘Modbus’ to the inverter at one end (the plug/socket) collects data, and speaks TCP over the LAN/WiFi other end. We can ask the stick, as well as talking to the cloud, to talk TCP (or UDP) to us (we are passively listening for data) and/or we can connect to the inverter and talk Modbus directly.
Can I control the inverter using the stick? A. No. To change settings on the inverter requires a direct Modbus connection (and a cool nerve). The stick is a one-way data collection approach. Modbus connection to the inverter can, of course, be used to only collect (read) data.
What do I need to connect to the Modbus end of the inverter? A. Some means of connecting to the proprietary socket to get at the RS485 A and B lines, and something to connect a computer to RS485 (USB or ethernet converter).
Can I run the Solis data stick at the same time as a Modbus connection to the inverter? A. Modbus over RS485 only allows for one master’on the system at a time. The inverter is a slave and the stick the master, and any connected PC device also has to be a master. To avoid the two masters conflicting, either do away with the stick, or use a hardware device that allows two masters to operate on the same Modbus network.
How do I get my data from Node Red into Home Assistant? A. I use the entity node, which will both create a new entity in HA and update when the data changes. I have not used MQTT for anything (yet). Note that the entity device class must be correct for the data being collected! Power is Watts (or kW), and energy is kWh. The energy dashboard requires energy, and thus additional new integration sensors may have to be added in the config file https://www.home-assistant.io/docs/energy/faq/ if you are getting power W, not energy used kWh data from the inverter.
Can I buy electricity from Octopus Go at 5p per kWh during the night, charge my batteries, and then sell it back to them at 55p per kWh during the afternoon peak? A. No. At the time of writing I am buying electricity from Octopus standard variable tariff at 27.5p, and selling the occasional excess not going into my batteries at 7.5p on Octopus Outgoing Fixed. Having Octopus Outgoing precludes not only being on Go but also being able to take part in the recent reduce your usage and we will give you electricity for free trial. There is no such thing as a free lunch.
As before, I hope this is of some use to those of you attempting to extract information from your Solis inverter!