I use the Sunspec binding to read the Modbus registers from my Solaredge inverter. Polling is every 10 seconds.
With the DSMR binding I read the most actual values from my Dutch smart meter.
Problem: I have no control over the data that my smart meter is sending. It sends data approximately every ten seconds. However, the exact update times are unreliable and the ten seconds may shift over time. As such a poll of my inverter via Sunspec can happen at the exact same time as data is received from my smartmeter, or in-between two data readings (receivings) from the smart meter.
The modbus binding has a REFRESH command as per the binding documentation. Issuing a REFRESH command to an item linked to a modbus data channel, will trigger a polling of that data channel (and all values in that data block). So my idea would be to send a REFRESH command to one of the Sunspec channels when a DSMR item receives an update, so that my inverter readings and smartmeter readings are in sync as much as possible (and as such any calculation to the two). But whatever I try in rules like a item.sendCommand(REFRESH), item.sendCommand(“REFRESH”), and even declaring the refreshtype in my rules DSL, nothing seems to trigger a REFRESH. The log shows that a REFRESH command was received by the item, but no REFRESH seems to take place at any of the items, just the regular ten second pollings.
Does anyone know if the Sunspec binding supports the REFRESH command?