dd-wrt Logger per RS-485 an Kaco Wechselrichter


Ähnlicher Artikel: RS-232 Variante

Vor kurzem ist bei uns eine neue PV Anlage ans Netz gegangen. Auch diese will wieder überwacht werden, damit auch ja keine Sonnenstrahlen ungenutzt bleiben.

Die folgende oberflächliche Anleitung soll versierten Menschen als Anregung dienen und dürfte für den Laien ziemlich unverständlich sein. Deshalb bitte nur nachahmen, wenn die nötigen Fachkenntnisse vorhanden sind. Ich übernehme keine Verantwortung für etwaige Schäden an eurer PV Anlage oder möglichen Verletzungen!

Der Aufbau unterscheidet sich ein wenig vom letzten Überwachungssystem:

Anstatt eines USB Hubs und mehreren RS-232 Verbindungen wird dieses mal die RS-485 Schnittstelle verwendet, was bei mehreren Wechselrichtern durchaus sinnvoll ist. Als Linux Client fungiert ein gebrauchter Asus WL-500g anstatt eines TP-Link Routers. Die Firmware bleibt dd-wrt. Als RS-485 Adapter habe ich diesen hier bei Virtual Village erstanden.

imageimage

Firmware

Das aufspielen der Firmware klappte bei mir ausschließlich über das Asus Firmware Restoration Tool (Mit Administrationsrechten starten!). Der tftp Versuch scheiterte, warum auch immer, an einem Timeout.

Verwendete Version: dd-wrt.v24-13064 (VINTAGE : mini_usb_ftp)

Konfiguration

  1. JFFS Bereich und USB Support über das dd-wrt Webinterface aktivieren
  2. Treiber (Link) speziell für linux kernel 2.4.35 herunterladen und in /jffs ablegen. Die per ipkg installierbaren Treiber scheinen nicht mit der Kernelversion kompatibel zu sein.
  3. Beide Module (usbserial, ftdi…) per insmod <Modulname> aktivieren
  4. Den USB Adapter mit dem Router verbinden
  5. dmesg sollte in etwa folgendes ausgeben:

image

Komponenten anschließen

Wenn die obigen Schritte ohne Fehler geklappt haben, kann man damit beginnen, die Wechselrichter mit dem USB Adapter zu verbinden.

  1. Die zwei Jumper auf dem USB Adapter auf die 485 Pins stecken
  2. Gegebenenfalls die rs-485 Schnittstelle im Wechselrichter aktivieren und ihnen Adressen ab 1 aufsteigend zuweisen
  3. Wechselrichter ordnungsgemäß vom AC und DC Netz trennen und 5 min warten, dann das Gehäuse öffnen.
  4. Den Adapter mit den Wechselrichtern verbinden, siehe Handbuch für Elektronikfachkraft. Ich musste die Leitungen A und B vertauscht anschließen für eine Datenübertragung. Die Terminierung im letzten Wechselrichter nicht vergessen.
  5. Alle Verbindungen nochmal überprüfen, zusammenbauen und Einschalten.

Verbindung Testen

Serielle Schnittstelle konfigurieren:

stty -F /dev/usb/tts/0 85:0:8bd:0:3:1c:7f:0:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

Diesem Post im Photovoltaikforum ist eine Dokumentation zur KACO RS-485 Schnittstelle angehängt (Login erforderlich). Im Grunde reicht es aber dem Wechselrichter mit der Adresse “1” folgende Nachricht zu schicken:

echo -e "#010\r" > /dev/usb/tts/0

Als Antwort erhält man beispielsweise für einen Powador 9600 (ohne Prüfsumme):

Adresse & Fernsteuerbefehl Status Generator-spannung Generator-strom Generator-leistung Netz-spannung Netz-strom Einspeise-leistung Geräte-temperatur Tages-energie WR Kürzel
*010 4 585.9 10.17 5958 229.5 24.90 5720 36 17614 9600I

Loggingscripte

Die folgenden zwei Skripte in /jffs anlegen. Das dritte Startscript dann im dd-wrt Webinterface einfügen.

logger.sh

#! /bin/sh
key="
"
messageType="kaco2"
systemID=

while true
  do
        echo ""
        echo "waiting for data"
        #read Line < /dev/usb/tts/0
        Line=`head -n2 < /dev/usb/tts/0`

        echo "------------ raw ----------------"
        echo $Line
        echo "---------------------------------"
        data=`echo $Line|tr -s "\ " |tr -s "\ " ";"`
        data=`echo $data|tr -d "\r"`
        echo "*********** formatted ***********"
        echo $data
        echo "*********************************"

        count=`echo -n $data|wc -c`
        if [ "$count" -gt 40 ]
        then
                echo "data ok"
                wget -s http://solar.riedme.de/AddLog.aspx?data=$data\&pw=$key\&type=$messageType\&system=$systemID
                echo "sent to webserver"
        else
                echo "data invalid"
        fi
  done

poll.sh

#!/bin/sh
while true
        do
                echo -e "#010\r" > /dev/usb/tts/0
                sleep 1
                echo -e "#020\r" > /dev/usb/tts/0
                sleep 1
                echo -e "#030\r" > /dev/usb/tts/0
                sleep 1
        done

Startscript

route add default gw 192.168.0.1
insmod /jffs/usbserial.o
insmod /jffs/ftdi_sio.o
stty -F /dev/usb/tts/0  85:0:8bd:0:3:1c:7f:0:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
sh /jffs/poll.sh &
sh /jffs/logger.sh &

Verbesserungsbedarf

– Fehlerfreie Konfiguration der seriellen Schnittstelle. Eigentlich müsste der “read” Befehl ausreichen, jedoch klappt es hier nur per head –n2 und Entfernung von Linebreaks?! Wie dem auch sei, es läuft…

Ergebnis

Wie beim letzten Aufbau bearbeitet ein entfernter Webserver die Daten weiter. Die Visualisierung kann man sich unter folgender Url ansehen:

Update(20.02.12)  http://solar.riedme.de/ShowStatistics.aspx?plantID=4
http://mypvlog.de/Plant/View/8/real-2

An dieser Stelle nochmals der Hinweis, dass die Visualisierungsseite weiterhin mitbenutzt werden kann mit einer eigenen Anlagen ID.

,

  1. #1 von Marco am November 14, 2011 - 9:50 am

    Hallo Patrick,

    vielen Dank für deine interessanten Anregungen zu den PV-Loggern.
    Bei uns ging vor kurzem auch eine 30 KWp-Anlage ans Netz, drei weitere mit knapp 14, 9 und 6 KWp folgen demnächst 🙂
    Mindestens für die 6 KWp Anlage möchte ich einen deiner beiden Bauvorschläge nachbauen. Die Anlage hat zwei KACO Wechselrichter.
    Mir erscheint dein erster Bauvorschlag fast etwas einfacher, oder? Gibt es bei einer zwei WR – Lösung einen Vorteil, den jetztigen neuen Vorschlag zu verwenden? Die Wechselrichter sind nebenbeibemerkt auch von Kaco 😉

    Viele Grüße
    Marco

  2. #2 von Patrick am November 14, 2011 - 11:20 am

    Hallo Marco,
    bei zwei Wechselrichtern würde ich wohl auch nochmal die erste Variante nehmen, also per usb->RS232 Schnittstelle. Dann musst du auch nicht die Wechselrichtergehäuse öffnen.
    Mit der im Artikel aufgelisteten Hardware sollte es auch reibungsfrei ablaufen. Bei Verwendung eines anderen Linux Clients, OS oder USB-Adapters hast du evtl das Risiko für mehr trial&error 😉
    VG

  3. #3 von Markus am August 3, 2015 - 2:37 pm

    Hi,

    da die Variante mit dem RS232 mich immer wieder ärgert (USB RS232 Konverter) will ich nun die Variante mit RS485 mal ausprobieren.
    Hatte kurz mal den Kaco Powador piccolog aber der war einen einzige Enttäuschung.
    Wie stabil läuft den der Router Asus WL-500g?
    Ich tendiere dazu einen Raspberry Pi zu nehmen mit einem Adapter von digitus.

    Gruß
    Markus

(wird nicht veröffentlicht)