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.