YASDI

YASDI Image YASDI ist eine Softwarebibliothek zur Kommunikation mit SMA Photovoltaik-Wechselrichtern. Die Software wird von SMA unter der Open Source Lizenz LGPL zur freien Verfügung bereitgestellt. Wechselrichter mit Bluetooth-Schnittstelle (SMAData2+ Protokoll) werden leider nicht unterstützt!


Inhaltsverzeichnis

1 Uebersicht

2 Portierungen

3 Aufbau

4 Sprachanbindungen

5 Lizenz

6 Versionen

7 Download

8 Tutorial

9 Historie

10 FAQ

10.1 Schnittstellen

10.2 Was geht?

10.3 Was ist nicht möglich?

10.4 Kann ich ein SunnyBeam verwenden?



Was ist YASDI?

Der Name YASDI steht fuer Yet another SMA Data Implementation. Der Name beschreibt eine in der Programmiersprache "C" geschriebene Software-Bibliothek (keine fertige Applikation), die das SMAData(1)-Protokoll implementiert. Es genuegen nur wenige zusaetzliche Zeilen, um eine vollstaendige aktive Applikation mit einer Wechselrichterkommunikation mit YASDI zu bauen.
YASDI wurde mit einer sehr einfachen Abstraktionsschicht zum darunterliegenden Betriebssystem/Hardware entwickelt, so dass eine einfache Portierung auf andere Betriebssysteme oder Embedded-Baugruppen moeglich ist.


Portierungen

Zur Zeit ist YASDI auf folgende Betriebssysteme portiert worden:


Aufbau

Die zu benutzende Master-API wurde einfach gehalten, um moeglichst viele Sprachen und System unterstuetzen zu koennen. Die API verwendet nur sehr einfache Datentypen...

YASDI wurde modular in mehrere Schichten und Module aufgeteilt:
YASDI overview


Programmiersprachenanbindungen

YASDI wurde in "C" geschrieben, besitzt aber darueber hinaus bereits einige Anbindungen zu anderen Programmiersprachen/Skriptsprachen, die die "C"-API verwenden. Zur Zeit existieren folgende Sprachanbindungen: Diese Sprachanbindungen sind zum Grossteil privat entstanden. SMA liefert offiziell nur die reine C-Schnittstelle aus.


Lizenz

YASDI ist seit Version 1.7 unter der freien Lizenz LGPL verfügbar.


Welche Versionen gibt es derzeit?

Download

Yasdi kann vom SMA Webserver frei bezogen werden: YASDI Dowload


Tutorial

Hier liegen ein paar einfache kleine Tutorials, die zeigen, wie einfach und simpel man mit YASDI und wenigen zusaetzlichen Zeilen Code mit SMA-Wechselrichtern kommunizieren kann:

Entstehungsgeschichte

YASDI entstand als SMA-internes Nebenprojekt der "SunnyBoy-Fertigungsendpruefung", jetzt Sunny Boy Produktion/Fertigung. Hier werden die Sunny Boys umfangreichen Funktions- und Dauerlastpruefungen unterzogen. Das gesamte Pruefsystem laeuft komplett unter Linux. Das Pruefsystem nutzt YASDI fuer die Kommunikation mit den Wechselrichtern...



FAQ



Welche Schnittstellen kann YASDI derzeit bedienen?

YASDI kann theoretisch mit beliebigen Arten von Bussen umgehen, da die unteren Treiber als Module abstrahiert sind. Zur Zeit existieren folgende Schnittstellenmodule:


Was kann denn YASDI alles?


Was kann YASDI NICHT?


Kann ich ein SunnyBeam verwenden?

Jein, ein SunnyBeam (nicht Bluetooth) wird nicht offiziell unterstuetzt. Mit einem kleinen Patch ist es aber unter Linux moeglich. Dabei ist der Zugriff auf die summierten Werte der Anlage beschraenkt. Die einzelnen Wechselrichter sind leider weiter nicht erreichbar (keine Geraetehierarchien).
Unter Linux ist folgendes zu tun:
sudo modprobe ftdi_sio product=0x002d vendor=0x1587
In der Sourcedatei code/smadata_layer.c in der Funktion TSMAData_SendRawPacket die Zeilen
/* Stringfilter? (SDC <=> SD Modus) */
if (Flags & TS_STRING_FILTER)
{
ersetzen durch
/* Stringfilter? (SDC <=> SD Modus) */
if (1)
{
Die Schnittstelleneigenschaften in der yasdi.ini auf 9600 Baud sowie den serielen Port auf /dev/ttyUSB0 stellen:
[COM1]
Device=/dev/ttyUSB0
Media=RS232
Baudrate=9600
Protocol=SMANet

Die erfolgreiche Erfassung sieht dann so aus:
************************************************************

        YASDI Mini Shell (build for Linux) 

      (This is an test program using YASDI)

************************************************************
Switching driver 'COM1' on...success

Command ('?' for help): e1
Starting device detection (sync).
How many devices should be searched? 
New device found: 'SBeam012 SN:140002520'
-------------------------------------------
Device handle | Device Name  
-------------------------------------------
     1        | 'SBeam012 SN:140002520'
-------------------------------------------

Command ('?' for help): a1
Device handle: Device 'SBeam012 SN:140002520' has 3 Spot channels:
Reading channel values, please wait...
------------------------------------------------------------
Channel handle |    Channel name    | Channel value (Unit) |
------------------------------------------------------------
       3       | '             Pac' | '0.000' (W) 
       7       | '         E-heute' | '0.000' (kWh) 
       8       | '         E-Total' | '0.000' (kWh) 
Command ('?' for help):

977