SolarView: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „= Einleitung = [http://www.amhamberg.de/solarview_fritzbox.aspx SolarView] ist ein Tool zur Datenerfassung und -logging für Photovoltaikanlagen, welches auf …“) |
Krikan (Diskussion | Beiträge) K (Infobox Modul eingefügt; Gliederungsebenen angepasst) |
||
Zeile 1: | Zeile 1: | ||
= Einleitung = | {{Infobox Modul | ||
|ModPurpose=Anbindung der Wechselrichter-Auswertungssoftware SolarView an Fhem | |||
|ModType=contrib | |||
<!--|ModFTopic=12345 --> | |||
|ModCmdRef=ContribModul | |||
<!--|ModForumArea=Contrib--> | |||
|ModTechName=70_SolarView.pm | |||
|ModOwner=fhem AT toben DOT net | |||
}} | |||
== Einleitung == | |||
[http://www.amhamberg.de/solarview_fritzbox.aspx SolarView] ist ein Tool zur Datenerfassung und -logging für Photovoltaikanlagen, welches auf einer [http://www.avm.de/de/Produkte/FRITZBox/index.php AVM Fritz!Box] läuft. Von Vorteil ist dass das Tool viele Wechselrichterhersteller unterstützt und dadurch ein einheitliches Interface auf die verschiedenen Wechselrichter für | [http://www.amhamberg.de/solarview_fritzbox.aspx SolarView] ist ein Tool zur Datenerfassung und -logging für Photovoltaikanlagen, welches auf einer [http://www.avm.de/de/Produkte/FRITZBox/index.php AVM Fritz!Box] läuft. Von Vorteil ist dass das Tool viele Wechselrichterhersteller unterstützt und dadurch ein einheitliches Interface auf die verschiedenen Wechselrichter für Fhem bietet. Mit dem hier beschriebenen Fhem-Modul können die aktuellen Leistungswerte ausgelesen und in Fhem zur Verfügung gestellt werden, um dann z.B. einen Verbraucher abhängig von der momentanen Stromproduktion zu schalten. Hinweis: Unter [[Fotovoltaikanlage|NT5000]] ist das Auslesen und Darstellen speziell für einen Sunways Wechselrichter beschrieben. | ||
= Voraussetzung = | == Voraussetzung == | ||
SolarView (SV) muss mit aktiviertem TCP-Server gestartet werden. Hierzu ist der Parameter -TCP mit einer Portnummer zum SV Startskript start.sh hinzuzufügen, also zum Beispiel "-TCP 15000". Genaueres findet sich in der SV Dokumentation. Die Fritz!Box auf der SV läuft muss natürlich über das Netzwerk vom | SolarView (SV) muss mit aktiviertem TCP-Server gestartet werden. Hierzu ist der Parameter -TCP mit einer Portnummer zum SV Startskript start.sh hinzuzufügen, also zum Beispiel "-TCP 15000". Genaueres findet sich in der SV Dokumentation. Die Fritz!Box auf der SV läuft muss natürlich über das Netzwerk vom Fhem Server erreichbar sein (bei mir läuft beides auf der gleichen Box). Das Modul 70_SolarView.pm ist im contrib Verzeichnis zu finden und muss in das Fhem Verzeichnis kopiert werden um es benutzen zu können. | ||
= Benutzung = | |||
== Benutzung == | |||
Die Definition eines SolarView Devices erfolgt mit dem Befehl: | Die Definition eines SolarView Devices erfolgt mit dem Befehl: | ||
Zeile 17: | Zeile 27: | ||
Die Parameter wr<i> geben die Nummer(n) der auszulesenden Wechselrichter an. Wenn kein solcher Parameter angegeben ist, werden die Summenwerte aller Wechselrichter ausgelesen. Wenn mehr als ein Wechselrichter angegeben ist, werden den Namen der Werte (s.u.) die entsprechende Nummer vorangestellt, z.B. 'wr2_currentPower'. | Die Parameter wr<i> geben die Nummer(n) der auszulesenden Wechselrichter an. Wenn kein solcher Parameter angegeben ist, werden die Summenwerte aller Wechselrichter ausgelesen. Wenn mehr als ein Wechselrichter angegeben ist, werden den Namen der Werte (s.u.) die entsprechende Nummer vorangestellt, z.B. 'wr2_currentPower'. | ||
Mit <code>get <name> [wr<i>_]<key></code> können die Werte in | Mit <code>get <name> [wr<i>_]<key></code> können die Werte in Fhem gelesen werden, wobei <key> die Bezeichner <code>currentPower, totalEnergy, totalEnergyDay, totalEnergyMonth, totalEnergyYear, UDC, UDCB, UDCC, IDC, IDCB, IDCC, gridVoltage, gridCurrent, temperature</code> annehmen kann. (Die Temperatur wird wohl nicht von allen Wechselrichtern zur Verfügung gestellt.) Auch ist ein Zugriff über ReadingsVal natürlich möglich. | ||
= Beispiel = | == Beispiel == | ||
Eine Lüftunganlage soll über eine FS20 Steckdose (stLueftung) jeden Mittag um 12 Uhr für 1024 Sekunden angeschalten werden, aber nur wenn der erste Wechselrichter grade über 800 Watt Energie produziert: | Eine Lüftunganlage soll über eine FS20 Steckdose (stLueftung) jeden Mittag um 12 Uhr für 1024 Sekunden angeschalten werden, aber nur wenn der erste Wechselrichter grade über 800 Watt Energie produziert: | ||
Zeile 50: | Zeile 60: | ||
</pre> | </pre> | ||
= Plotten = | == Plotten == | ||
Auch ein Plotten der Werte ist möglich. Hierzu abonniert man die entsprechenden Events, definiert sich ein Logfile und schreibt ein passendes gplot (Beispiel: solarview.gplot): | Auch ein Plotten der Werte ist möglich. Hierzu abonniert man die entsprechenden Events, definiert sich ein Logfile und schreibt ein passendes gplot (Beispiel: solarview.gplot): | ||
Zeile 62: | Zeile 72: | ||
[[Datei:Plot_sv_14.png|center]] | [[Datei:Plot_sv_14.png|center]] | ||
= Kontakt = | |||
== Kontakt == | |||
Bei Problemen/Fragen bitte an Tobe, Mail: fhem AT toben DOT net, wenden. | Bei Problemen/Fragen bitte an Tobe, Mail: fhem AT toben DOT net, wenden. | ||
[[Kategorie:HOWTOS]] | [[Kategorie:HOWTOS]] |
Version vom 3. Februar 2015, 08:57 Uhr
ContribModul | |
---|---|
Zweck / Funktion | |
Anbindung der Wechselrichter-Auswertungssoftware SolarView an Fhem | |
Allgemein | |
Typ | Contrib |
Details | |
Dokumentation | siehe Forum |
Modulname | 70_SolarView.pm |
Ersteller | fhem AT toben DOT net |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Einleitung
SolarView ist ein Tool zur Datenerfassung und -logging für Photovoltaikanlagen, welches auf einer AVM Fritz!Box läuft. Von Vorteil ist dass das Tool viele Wechselrichterhersteller unterstützt und dadurch ein einheitliches Interface auf die verschiedenen Wechselrichter für Fhem bietet. Mit dem hier beschriebenen Fhem-Modul können die aktuellen Leistungswerte ausgelesen und in Fhem zur Verfügung gestellt werden, um dann z.B. einen Verbraucher abhängig von der momentanen Stromproduktion zu schalten. Hinweis: Unter NT5000 ist das Auslesen und Darstellen speziell für einen Sunways Wechselrichter beschrieben.
Voraussetzung
SolarView (SV) muss mit aktiviertem TCP-Server gestartet werden. Hierzu ist der Parameter -TCP mit einer Portnummer zum SV Startskript start.sh hinzuzufügen, also zum Beispiel "-TCP 15000". Genaueres findet sich in der SV Dokumentation. Die Fritz!Box auf der SV läuft muss natürlich über das Netzwerk vom Fhem Server erreichbar sein (bei mir läuft beides auf der gleichen Box). Das Modul 70_SolarView.pm ist im contrib Verzeichnis zu finden und muss in das Fhem Verzeichnis kopiert werden um es benutzen zu können.
Benutzung
Die Definition eines SolarView Devices erfolgt mit dem Befehl:
define <name> SolarView <host> <port> [wr<i> wr...] [<interval> [<timeout>]]
wobei <host> der Hostname der Fritz!Box und <port> der angegebene TCP Port von SV ist. Die Leistungswerte werden dann alle <interval> Sekunden ausgelesen (default: 300). Wenn <interval> auf 0 gesetzt wird, werden die Werte nur bei einem get frisch ausgelesen. <timeout> gibt an wann ein Verbindungsaufbau mit SV abgebrochen wird (default: 4 Sekunden). Die Parameter wr<i> geben die Nummer(n) der auszulesenden Wechselrichter an. Wenn kein solcher Parameter angegeben ist, werden die Summenwerte aller Wechselrichter ausgelesen. Wenn mehr als ein Wechselrichter angegeben ist, werden den Namen der Werte (s.u.) die entsprechende Nummer vorangestellt, z.B. 'wr2_currentPower'.
Mit get <name> [wr<i>_]<key>
können die Werte in Fhem gelesen werden, wobei <key> die Bezeichner currentPower, totalEnergy, totalEnergyDay, totalEnergyMonth, totalEnergyYear, UDC, UDCB, UDCC, IDC, IDCB, IDCC, gridVoltage, gridCurrent, temperature
annehmen kann. (Die Temperatur wird wohl nicht von allen Wechselrichtern zur Verfügung gestellt.) Auch ist ein Zugriff über ReadingsVal natürlich möglich.
Beispiel
Eine Lüftunganlage soll über eine FS20 Steckdose (stLueftung) jeden Mittag um 12 Uhr für 1024 Sekunden angeschalten werden, aber nur wenn der erste Wechselrichter grade über 800 Watt Energie produziert:
define sv SolarView fritz.box 15000 wr1 60 define atLueftungIfPower at *12:00 {\ if (ReadingsVal('sv','currentPower',0) > 800) {\ fhem('set stLueftung on-for-timer 1024');;\ }\ }
Alternativ zu einer rein zeitgesteuerten Aktion kann man sich auch von den Messungen triggern lassen. Als Beispiel wird hier eingeschaltet sobald mehr als 1500 Watt da sind, und abgeschaltet sobald nach 16 Uhr die Produktion unter 500 Watt sinkt. Hierzu registriert man sich für den currentPower Event und definiert ein entsprechendes notify.
attr sv event-on-change-reading currentPower define notifyLueftungIfPower notify sv:currentPower.* {\ if ($hour >= 16) {\ if (ReadingsVal('sv','currentPower',0) < 500) {\ fhem('set stLueftung off') unless ($value{stLueftung} eq 'off');;\ }\ } else {\ if (ReadingsVal('sv','currentPower',0) > 1500) {\ fhem('set stLueftung on') unless ($value{stLueftung} eq 'on');;\ }\ }\ }
Plotten
Auch ein Plotten der Werte ist möglich. Hierzu abonniert man die entsprechenden Events, definiert sich ein Logfile und schreibt ein passendes gplot (Beispiel: solarview.gplot):
attr sv event-on-change-reading currentPower,totalEnergyDay define log_sv FileLog /var/log/fhem-sv-%Y-%m-%d.log sv:(currentPower|totalEnergyDay).* define plot_sv weblink fileplot log_sv:solarview:CURRENT
Kontakt
Bei Problemen/Fragen bitte an Tobe, Mail: fhem AT toben DOT net, wenden.