[NODE-36] Implement SMANet protocol Created: 02/Apr/13  Updated: 23/Feb/17  Resolved: 23/Feb/17

Status: Closed
Project: SolarNode
Component/s: Power
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: Matt Magoffin Assignee: Matt Magoffin
Resolution: Won't Do Votes: 0
Labels: HAL
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Modern SMA inverters use the SMANet protocol for communication, while older SMA inverters used a protocol named SunnyNet. We have an implementation of SunnyNet via the net.solarnetwork.node.hw.sma and net.solarnetwork.node.power.sma.sunnynet bundles, but need equivalent support using SMANet. The two protocols are very similar, but their network packet format is different.

SMA provides a complete SMANet implementation written in C called YASDI. A Java wrapper for YASDI exists called yasdi4j, which is implemented in the net.solarnetwork.node.power.sma.yasdi4j bundle. This solution is not ideal, however, as it relies on native libraries that aren't easily wrapped into OSGi bundles.

Implement a pure Java implementation of the SMANet protocol to replace the yasdi4j one currently in use.



 Comments   
Comment by Matt Magoffin [ 23/Feb/17 ]

We have been relying on yasdi for SMA communication and this has been quite stable for some time. Closing this ticket because there isn't enough justification to work on this presently; we can re-open if that changes.

Comment by Philip Court [ 11/Jun/13 ]

Some additional info from Matt:
The existing Java code written for SunnNet should be able to be re-used with small modifications to encode the packets as SmaNet form rather than SunnyNet. The payload of each packet is expected to be the same, just that the packet envelope is different.

With this approach the documentation provided should provide all info required to change the existing SunnNet code to work for SmaNet.

Comment by Philip Court [ 09/May/13 ]

The "bundles" discussed in this ticket are top-level directories in the solarnetwork-node repository:

https://github.com/SolarNetwork/solarnetwork-node

so examples are

https://github.com/SolarNetwork/solarnetwork-node/tree/master/net.solarnetwork.node.hw.sma
https://github.com/SolarNetwork/solarnetwork-node/tree/master/net.solarnetwork.node.power.sma.sunnynet

The YASDI distribution includes some docs on the protocol, I've attached one here (http://bit.ly/1924nw2). You can also download YASDI to get the complete "C" based source code from here: http://www.sma.de/en/products/monitoring-systems/yasdi.html

Generated at Sun May 25 16:01:01 NZST 2025 using Jira 10.3.6#10030006-sha1:0dc21a711362757421d62af2e50bcb9585207f88.