Freifunkende Solaranlagen

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen
Important.png Wichtig: Diese Seite befindet sich im Aufbau


Vorbemerkung / Credit

Es geht um freifunkende Solar-Systeme, die eine Interaktion mit den NutzerInnen der gewonnenen/gespeicherten Energie ermöglichen. Dieser Ansatz wurde auf dem Solarfestival 2013 erprobt und beim Solarfestival 2014 dann mit mehreren Systemen erstmals umgesetzt.

Dargestellt wird die sehr schöne Lösung von Daniel aus der Leipziger Community als Anregung für Andere. Vielen Dank auch an Ufo für Hinweise und Hilfe!

Einleitung

Die Lösung ermöglicht die Überwachung von Betriebsparametern über das Freifunknetzwerk und Integration in bestehende Monitoringstrukturen. Diese Seite ist als praktische Beschreibung (How to) gedacht. Grundkenntnisse über Solartechnik werden vorausgesetzt.

Ziele

  • Überwachung der relevanten Betriebsparameter von Solaranlagen über das Freifunknetz:
    • Ladestrom bzw. Leistung (Wieviel Strom wird geerntet?)
    • Entladestrom (Wieviel wird verbraucht?)
    • Batteriespannung (In welchem Zustand befindet sich die Batterie?)
    • Schaltung von Endverbrauchern / 230V Invertern
  • Integration in bestehendes Monitoring; Beispielsweise für Berlin auf http://monitor.berlin.freifunk.net basierend auf https://collectd.org/ (Fernüberwachung)
  • Ausblick: Alarming ??

Leipzig1-SolarMonitoring.png

Hardware

Freifunk-altmark-solarsystem.jpg
  • Laderegler: Voraussetzung ist ein Laderegler mit Remote Metering-Schnittstelle (RM) nach dem Modbus-Standard. Getestet wurden günstige MPPT-Geräte aus China. Ein und das selbe Gerät wird unter verschiedenen Herstellerbezeichnungen vertrieben, z. B. EPsolar, Renogy oder SainSonic. Das getestete Modell heißt "Tracer-1215RN". Die Geräte sind u.a. bei Ebay erhältlich. Kosten ca. 70 EUR (verzollt) für die 10 A-Variante.
    Die RM-Schnittstelle implementiert den Modbus-Standard allerdings fehlerhaft. Die hier verwendete Software funktioniert also z. Zt. nur mit diesen Geräten.

Solar Tracer 10A front 2015.jpg Solar Tracer 10A bottom 2015.jpg

  • Router: TP-Link TL-MR3040 oder besser TPLINK 4300. Zukünftig zb WRTnode angedacht!
  • Remote Meter-Port (RM) am Tracer
    • 3,3V TTL UART
      It communicates using TTL-232 at 9600 baud. TTL-232 in this context means +3.3V is 1 and 0V is 0 [1]
  • Kabel zwischen RM-Buchse des Ladereglers und USB-Port des Routers (USB to Serial)
    • Stecker: 8P8C (RJ-45)

USB to TTL UART RS232.jpg

Günstiges USB zu TTL UART-Kabel aus China (3 EUR). Man kann gut die Belegung der Kabel erkennen. Wichtig für den nächsten Schritt.

Die hier gezeigte Zuordnung von Aderfarben zu Pins auf der RM-Seite gilt nur für das verwendete USB-Serial-Kabel. Beim Nachmachen unbedingt prüfen, welche Farben bei Deinem Kabel TX, RX und GND sind!!!

USB-Serial-Kabel 8P8C-Stecker (geht in den Tracer RM)
schwarz (GND) Kontaktposition 4 (GND)
weiss (RXD) Kontaktposition 5 (TXD)
grün(TXD) Kontaktposition 6 (RXD)
rot (5V) (wird nicht verwendet)

Hinweis: RXD und TXD sind paarweise getauscht.

Hinweis: Der Router verträgt hot-plugging nicht. Sprich: Router (TL-MR3040) rebootet beim Einstecken des USB-Kabels.

Pinbelegung RM-Schnittstelle des Tracers

Quelle: https://github.com/xxv/tracer/blob/master/docs/Protocol-Tracer-MT-5.pdf

Rj 45.png
Kontktposition Funktion
1 power supply +12V output
2 power ground/signal ground
3 power +12V output
4 power ground/signal ground
5 TXD (sender)
6 RXD (receiver)
7 power ground/signal output
8 power ground/signal output

Software

Derzeit ist das Auslesen und Anzeigen der Daten, das Schalten der Lastausgänge sowie das Statistiktool mit Openwrt umgesetzt (jedoch auch auf anderen Betriebssystemen möglich)

  • tracertools (auslesen und schalten der Solaranlage)
  • alfred aka solarfred (lokale Verteilung und Sammeln der Daten über mehrere Solaranlagen via batman-adv)
  • collectd-mod-table (Statistikdiagramm über die Zeit)
  • div. Scripte, luci2 Integration

Für Endbenutzer ist eine Smartphone-App wahrscheinlich praktischer als die Anzeige auf einer Webseite des Routers. (Die Anzeige erfolgt schneller, Statistiken können besser angezeigt werden und die Anzeige-Software/Webseite würde keinen Flash-Speicher mehr auf den Routern verbrauchen.)

Installation Tracertools

  • dangowrt/tracertools auf github (siehe Links unten)
  1. Logge Dich auf dem Router ein
    ssh root@<Router IP hier>
  2. Prüfe, ob die verwendete Openwrt-Variante das Paket anbietet:
    opkg update; opkg list | grep tracertools
  3. Installiere das package "tracertools" mit
    opkg install tracertools
  4. Installiere das passende package für den USB-to-Serial Adapter:
    opkg install kmod-usb-serial-pl2303

Nach einem Reboot sollte der Befehl "tracerstat" die Solaranlage auslesen und die Werte anzeigen:

root@202-16:# tracerstat 
pv voltage: 190 mV
battery voltage: 11530 mV
pwm current: 0 mA
load power is on
load current: 410 mA
temperature: 18 deg C
alarms: not charging!
root@202-16:/www/cgi-bin# tracerstat -j
{ "class": "sensors", "name": "tracermppt", "bat_volt": 11540, "bat_volt_min": 11030, "bat_volt_max": 14710, "in1_volt": 290, "in1_amp": 0, "in2_amp": 330, "temp1": 18, "chg_state": "idle", "load_switch": 1 }

Shellscript zum Auslesen der Daten vom Tracer

  • github link
  • im crontab eintragen

WebUI

  • einfache Scripte zur Anzeige via cgi-bin (www) (auf Anfrage)
  • Openwrt-Package zur Anzeige via rpcd/ubus (github-> rpcd-mod-alfred)
  • luci2-integration in Vorbereitung: github->mojoaxel bzw. github->freifunk-leipzig--solarfestival

Freifunk-solar-meets-luci2.png


unstrukturierte Notizen:

  • tracertools liefern JSON
  • UI muß in JS portiert werden

Verteilen und Sammeln der Daten

Mit Alfred können Daten in einem batman-adv Mesh-Netzwerk verteilt werden. Derzeit wird alfred-Datenbereich 160 und 161 verwendet. Dadurch können neue Solaranlagen problemlos integriert werden: sie werden von den bereits vorhandenen Systemen erkannt. Scripte derzeit nur auf Anfrage..


Monitoring

unstrukturierte Notizen:

  • tracertools liefert json
  • ggf. Verbreitung via solarfred a.k.a alfred
  • ggf. script sammelt alfred-werte aus verschiedenen meshes zusammen (zb. via olsr oder cjdns)
  • Script: Umwandlung von JSON in CSV
  • collectd-mod-table bildet diese CSV graphisch ab

Freifunk-solaranlage-nachmittags-gewitter-in-leipzig.png


Bedienung

  • tracerstat
  • erzeugt CSV, JSON, log-lines, CLI

Links