Auslesen AEconversion Micro-Wechselrichter

  • Hallo Ihr


    Ich hab seit ca. 8 Monaten 4 Stück AEconversion Micro-Wechselrichter (INV350-60EU PLC) mit PLC Gateway (http://www.aptronic-solar.com/de/ae-plc-gateway.html) erfolgreich in Betrieb.


    Bereits seit 8 Monaten lese ich erfolgreich die Wechselrichter mittels KACO/(Schueco) Protokoll aus. Dieses Protokoll ist einfach und liefert AC-Leistung, AC-Spannung, AC-Strom, Tagesenergie, DC-Leistung, DC-Spannung, DC-Strom, WR-Temperatur und WR-Status in einem einfach lesbaren ASCII String.


    Die letzten Tage hab ich mich ganz tief mit dem Bits und Bytes mit welchen die Original AESolar v1.6b Software mit den Wechselrichtern kommuniziert auseinandergesetzt und bin nach vielen, vielen Stunden Reverse Engineering jetzt so weit, das ich euch an den Ergebnissen teilhaben lassen kann! Bin mir nicht 100%-ig sicher, aber ich glaub das sollte das 'APtronicProtokoll' sein mit welchem AESolar mit den WR kommuniziert.


    Werde in den nächsten Tagen hier Schrittweise Details zu meinen Erkenntnissen bereitstellen.


    Folgende Daten kann ich derzeit erfolgreich auslesen bzw. setzen:

    • Betriebsdaten
    • Leistung und Ertrag
    • Ländereinstellungen
    • Geräteparameter
    • Betriebszustand, Fehler- und des Stoerstatus
    • setzen der Leistungsreduzierung in % der Maximalleistung des WR


    Ich habe die serielle Kommunikation (RS-485) mit den AEconversion Gateway jetzt bei mir in IP-Symcon umgesetzt und zeige euch hier mal Screenshots damit man das Ganze mal sehen kann. Leider scheint derzeit keine Sonne und die Daten auf den Screenshots sind kurz vorm Sonnenuntergang bevor die Wechselrichter die arbeit eingestellt haben...







    p.s. da in einem Post nicht mehr als 5 Dateianhänge erlaubt sind, sind die restlichen im nächsten Beitrag zu finden

  • Hallo,
    ist ja interessant was man da alles sehen kann.
    Muss man die AEconversion kontinuierlich auslesen, oder kann man das auch einmal am Tag machen, so wie es beim Solarlog möglich wäre??


    Bin gespannt was hier noch raus kommt, denn wenn man einige Beiträge zu Plug&Play hier liest sollten ja doch einige AEc hier in Betrieb sein.


    gruss
    Jörg

  • Das Ganze hab ich mit folgendem Modul-Wechselrichter umgesetzt, getestet und in Betrieb
    Model: AE Conversion INV350-60EU PLC
    Type: PV350W


    Das Protokoll setzt sich Grundsätzlich folgendermaßen zusammen:


    Request: Startzeichen - WR Adresse - MessageID - Daten (wenn nötig) - Checksumme - Stopzeichen
    Response: Startzeichen - MessageID - Daten - Checksumme - Stopzeichen


    Als Startzeichen wird 0x21 ('!') verwendet. Als Stopzeichen 0x0D (CR).
    Die WR-Adresse sind die letzen 3 Stellen der Seriennummer.


    Die Checksummenberechnung mache ich mit folgender PHP Funktion:

    Code
    1. function calcCRC($message) {
    2. $crc = 0;
    3. for ($i=0; $i < strlen($message); $i++) {
    4. $crc ^= ord($message[$i]);
    5. }
    6. return $crc;
    7. }


    Hinweis: Die '$message' wird als String übergeben. Start- und Stopzeichen werden hier nicht berücksichtigt!


    Folgende MessageID's könnte ich bis jetzt ausfindig machen:


    Messageformat im Detail für Request und Response:

  • Fürs erste mal drei konkrete Beispiele für die Steuerung der Leistungsreduzierung anhand meiner AEconversion INV350-60EU PLC Micro-Wechselrichter.


    Hinweis: Für die Berechnung des Wertes für die Leistungsreduzierung wird die Maximalleistung des Wechselrichters benötigt. Dieser Maximalwert kann mittels MessageID '1014' (Geräteparameter) vom WR ausgelesen werden (werde ich in den nächsten Tagen posten). Bei meinem Typ sind das 360W.


    Beispiel Leistsungsreduzierung auf 10%:
    Senden an WR: 0x21 0x00 0xEC 0x03 0xFE 0x00 0x24 0x00 0x00 0x35 0x0D
    Antwort vom WR: 0x21 0x27 0x10 0x37 0x0D


    Beispiel Leistsungsreduzierung auf 20%:
    Senden an WR: 0x21 0x00 0xEC 0x03 0xFE 0x00 0x48 0x00 0x00 0x59 0x0D
    Antwort vom WR: 0x21 0x27 0x10 0x37 0x0D


    Beispiel Leistsungsreduzierung auf 100% (also KEINE Leistungsreduzierung):
    Senden an WR: 0x21 0x00 0xEC 0x03 0xFE 0x01 0x68 0x00 0x00 0x78 0x0D
    Antwort vom WR: 0x21 0x27 0x10 0x37 0x0D



    In der IP-Symcon Schnittstellen Debug Ansicht sieht das zum Beispiel so aus:



    In der Praxis ist die Leistungsreduzierung in meiner Leistungskurve sehr gut zu erkennen!!!

  • Zitat von GAST

    Hallo,
    ist ja interessant was man da alles sehen kann.
    Muss man die AEconversion kontinuierlich auslesen, oder kann man das auch einmal am Tag machen, so wie es beim Solarlog möglich wäre??


    Bin gespannt was hier noch raus kommt, denn wenn man einige Beiträge zu Plug&Play hier liest sollten ja doch einige AEc hier in Betrieb sein.


    gruss
    Jörg


    Hi Jörg
    Nein, man muss die WR nicht kontinuierlich auslesen! Wenn man den Wechselrichter eine Anfrage sendet, sendet er die Antwort dazu. Vorausgesetzt es ist nicht ganz Finster -> Wenn der WR nicht in Betrieb ist sendet er auch keine Antwort ....


    lg. Günter

  • Hallo PreinfalkG,


    das ist genial. Danke, dass Du uns die Details verrätst! :danke:


    Leider kommt die Information für mich zu spät. Nun habe ich die Leistungsreglung analog gelöst.


    Schöne Grüße
    emhopa

  • So, in den nächsten Teilen werde ich versuchen die Auswertung der Antwortdaten für Leistung und Ertrag, Betriebsdaten, Fehler- und Störstatus, Geräteparameter und Ländereinstellungen festzuhalten.
    Dazu muss man wissen, das der WR hier mit verschiedenen Datentypen (uFestkomma16.16, uFestkomma16Scheitel, uInt, uShort, sInt, uChar, ASCII8) arbeitet.
    Ich hab mir dazu eine kleine PHP Funktion zurechtgelegt, welche mir die verschiedenen Datentypen quasi 'dekodiert' und das Ergebnis / den Wert zurückgibt. Ist derzeit recht einfach gehalten, funktioniert aber ...


    Bei Leistung und Ertrag sind dies dann so aus:



    WICHTIG: Bevor ich die Antwort zerlege/dekodiere checke ich auf jedem Fall die Länge der Antwort bzw. die Checksumme. Die Checksumme wird ohne Start- und Stopzeichen berechnet (hier z.B. mit 0x27 0x17 0x00 0x23 0xAA 0xE0 0x00 0xBC 0x19 0x13). Speziell wenn der Wechselrichter nur sehr wenig PV-Leistung bekommt (Sonnenaufgang, Sonnenuntergang, sehr starke Bewölkung, Schnee, ...) treten bei mir eigentlich sehr häufig CRC Fehler auf!