[APP][PRO] Connect Solar Solax Inverter to Homey

Recommended procedure for those who have a problem with the modbus version of the device:

  • if any device is not possible to add, try to uninstall app, restart Homey and add Solax app again (I believe that this is not a problem of app)
  • if device is not updating, restart Solax app in settings
  • if app restart doesn´t help, check if modbus communicate (find How to setup ModBus integration at https://mistr.tech/connect-solax-inverter-to-homey/)
  • if ModBus is not communicating (but it worked before), try to restart inverter, wi-fi module, etc.
    I hope it will help you.

Hello Michal, first, thank you for your work. I really appreciate this!

Unfortunatelly, this procedure to resolve problem did not helped me. I made it but nothing of these works. Im using Homeyscript from history (before your app) to read data from inverter and I can read this informations from stick but your app with modbus connection show me nothing. So I guess that the problem will be somewhere else. Don’t know if in Homey or your app. Im unhappy with losing my insights… maybe will take restore of backup… but reset and reinstall was useless… It is just for your info, Im working with my Homeyscript so no big pain with that.

Thank for your work!
Martin

Hi Martin, do not use any other device to read data from ModBus at the same time. This could cause an inability to establish a connection. At least that’s how it works on my inverter. M.

@horakmar , can you please share how you actually read using Homeyscript modbus data or share the script as such ? It might provide useful insights for cases when the dongle get stuck from time to time for some of us.

Also seems there are few users having this problem only - when I addressed some issues eg. to the HA integration developer, he confirmed there are even differences between same model of inverters, eg. even same Solax G4 might be behaving differently. Solax never answered questions in that regard but for HA there is even dedicated thread on supported dongles on first place and even supported inverters by S/N + on top some specifics I have described.

Yes, no problem.

fetch('http://192.168.1.XXX', {
    method: 'POST',
    body: new URLSearchParams({
        'optType': 'ReadRealTimeData',
        'pwd': 'REGISTRATIONNUMBER'
    })
}).then(function(response) {
  return response.json();
}).then(function(data) {
  //console.log(data.Data[9]);
  tag("SOC baterie", data.Data[103]);
  tag("spotřeba energie", ((data.Data[47] & 0x8000) ? -0x8000 + (data.Data[47] & 0x7FFF) : (data.Data[47] & 0x7FFF))); //spotřeba domu
  tag("String 1", data.Data[14]);
  tag("String 2", data.Data[15]);
  tag("Vyráběná energie", ((data.Data[9] & 0x8000) ? -0x8000 + (data.Data[9] & 0x7FFF) : (data.Data[9] & 0x7FFF)));
  tag("Energie baterie", ((data.Data[41] & 0x8000) ? -0x8000 + (data.Data[41] & 0x7FFF) : (data.Data[41] & 0x7FFF)));
  tag("Vyrobeno dnes", data.Data[70]/10);
  tag("Teplota FVE", data.Data[105]);
  tag("Vyrobeno celkem", data.Data[68]/10);
  //tag("Odebráno ze sítě celkem", data.Data[86]/10);
  tag("Feed-in energie", (((data.Data[feedin]) & 0x8000) ? -0x8000 + ((data.Data[feedin]) & 0x7FFF) : ((data.Data[feedin]) & 0x7FFF)) * (1) );
  tag("Grid energie", ((data.Data[9] & 0x8000) ? -0x8000 + (data.Data[9] & 0x7FFF) : (data.Data[9] & 0x7FFF)));
  //tag("Feed-in energie", data.Data[88]/10);
  console.log(data.Data[test]/10);
  tag("Teplota měniče", data.Data[46]);
}).catch(function() {
  console.log("Error");
});

You have to translate tags :slight_smile: But next I have flow which every 2 seconds runs script and updates tags. Then I have a lot of virtual devices which Im updating with this 2 seconds so I can view all what i need on homey device page.

Martin

2 Likes