Thread zum Wiki-Artikel "SolarLog"

Begonnen von oniT, 11 März 2015, 20:24:57

Vorheriges Thema - Nächstes Thema

oniT

Hallo,

auf mehrfachen Wunsch habe ich den  Wiki-Artikel zur Anbindung des SolarLog an FHEM angelegt.

Ausgehend der von ChrisD zur Verfügung gestellten (noch nicht offiziellen in FHEM integrierten) Module einer ModbusTCP-Anbindung,  lassen sich unter anderem die aktuelle Leistung, sowie der aktuelle und vergangene Ertrag Auslesen und Loggen.

Sollte es dazu weitere Fragen, Wünsche und Anregungen geben, dann bitte an diesen Thread hier anhängen.

Gruß,
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

PEPITO82

Hallo Tino,

erstmal vielen Dank für den Wiki-Eintrag.
Der kam für mich genau zur richtigen Zeit.

Das klappt soweit auch alles. Da ich auch einen S0-Verbrauchzähler habe, habe ich zusätzlich noch die Register für die Verbrauchswerte definiert.

Für mich wäre nun noch interessant, wie ich das Delta aus aktuellem Ertrag und aktuellem Verbrauch bilden könnte. Im Solar Log wird mir das entweder als Netzeinspeisung oder Netzbezug dargestellt.
So lange Ertrag > Verbrauch steht dort Netzeinspeisung, ansonsten Netzbezug.

Hast Du da evtl. eine Lösung parat oder kann jemand anders helfen?

Viele Grüße

Peter

oniT

Hallo,

poste bitte noch die beiden Definitionen. Dann sehe ich mirs an und erweitere gleich noch den Wiki-Artikel.

Danke,

Gruß
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

PEPITO82

Hier noch die zusätzlichen Register:

########################################################
##  Register aktueller Verbrauch definieren
##  Erstellt........: 07.03.2015
##  Geändert........:
########################################################
define solarlog_totalpac_cons ModbusRegister 0 3518
  attr solarlog_totalpac_cons IODev SolarLogServer
  attr solarlog_totalpac_cons event-on-change-reading .*
  attr solarlog_totalpac_cons room Solar


########################################################
##  Register Tagesverbrauch definieren
##  Erstellt........: 07.03.2015
##  Geändert........:
########################################################
define solarlog_dailyyield_cons ModbusRegister 0 3520
  attr solarlog_dailyyield_cons IODev SolarLogServer
  attr solarlog_dailyyield_cons conversion 0.001:0
  attr solarlog_dailyyield_cons event-on-change-reading .*
  attr solarlog_dailyyield_cons plcDataType DWORD
  attr solarlog_dailyyield_cons room Solar
  attr solarlog_dailyyield_cons stateFormat {sprintf("%0.2f", ReadingsVal($name,"state",0))}
  attr solarlog_dailyyield_cons updateInterval 60


########################################################
##  Register Monatsverbrauch definieren
##  Erstellt........: 07.03.2015
##  Geändert........:
########################################################
define solarlog_monthlyyield_cons ModbusRegister 0 3524
  attr solarlog_monthlyyield_cons IODev SolarLogServer
  attr solarlog_monthlyyield_cons conversion 0.001:0
  attr solarlog_monthlyyield_cons event-on-change-reading .*
  attr solarlog_monthlyyield_cons plcDataType DWORD
  attr solarlog_monthlyyield_cons room Solar
  attr solarlog_monthlyyield_cons stateFormat {sprintf("%0.2f", ReadingsVal($name,"state",0))}
  attr solarlog_monthlyyield_cons updateInterval 3600


########################################################
##  Register Jahresverbrauch definieren
##  Erstellt........: 07.03.2015
##  Geändert........:
########################################################
define solarlog_yearlyyield_cons ModbusRegister 0 3514
  attr solarlog_yearlyyield_cons IODev SolarLogServer
  attr solarlog_yearlyyield_cons alignUpdateInterval 01:00:00
  attr solarlog_yearlyyield_cons conversion 0.001:0
  attr solarlog_yearlyyield_cons event-on-change-reading .*
  attr solarlog_yearlyyield_cons plcDataType DWORD
  attr solarlog_yearlyyield_cons registerType Holding
  attr solarlog_yearlyyield_cons room Solar
  attr solarlog_yearlyyield_cons stateFormat {sprintf("%0.2f", ReadingsVal($name,"state",0))}
  attr solarlog_yearlyyield_cons updateInterval 01:00:00


Es gibt für Ertrag und Verbrauch auch jeweils noch den Vortageswert und den totalen Wert.

Ich würde gerne die aktuelle Bilanz aus Ertrag und Verbrauch bilden.
Also Wert aktueller Ertrag - aktueller Verbrauch.

Viele Grüße

Peter

Aladin222

erstmal besten Dank für das tolle Modul !
Könntest du bitte noch den Plot mit einfügen ? Bekomme das nicht vernünftig hin *schäm

oniT

Zitat von: PEPITO82 am 15 März 2015, 20:22:17

Ich würde gerne die aktuelle Bilanz aus Ertrag und Verbrauch bilden.
Also Wert aktueller Ertrag - aktueller Verbrauch.

Viele Grüße

Peter

Hallo,

mein Vorschlag wäre ein userReading energybalance einzufügen.


########################################################
##  Register aktueller Verbrauch definieren
##  Erstellt........: 07.03.2015
##  Geändert........:
########################################################
define solarlog_totalpac_cons ModbusRegister 0 3518
  attr solarlog_totalpac_cons IODev SolarLogServer
  attr solarlog_totalpac_cons event-on-change-reading .*
  attr solarlog_totalpac_cons room Solar
  attr solarlog_totalpac_cons userReadings energybalance {((ReadingsVal("solarlog_totalpac","state",0))-(ReadingsVal("solarlog_totalpac_cons","state",0)))}


Gruß
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

oniT

Zitat von: Aladin222 am 16 März 2015, 13:05:25
Könntest du bitte noch den Plot mit einfügen ? Bekomme das nicht vernünftig hin *schäm

Hallo,

sieh Dir dies bitte einmal an. Wenn es in Ordnung ist ergänze ich den Eintrag.


# Created by FHEM/98_SVG.pm, 2015-03-07 21:20:25
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid
set ylabel "Einspeiseleistung [kW]"
set y2label "Ertrag [kWh]"

#filelog_solarlog_day 3:solarlog_totalpac.*::$fld[2]/1000
#filelog_solarlog_day 3:solarlog_dailyyield.*::

plot "<IN>" using 1:2 axes x1y1 title '_' ls l1fill lw 0.2 with lines,\
     "<IN>" using 1:2 axes x1y2 title '_' ls l0 lw 1 with lines


Gruß
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

Aladin222

sieht schonmal gut aus ....danke !
Wie habt ihr das Label konfiguriert ?

PEPITO82

Hallo Tino,

das userReading energybalance sieht gut aus. Danke.  :)
Wie mache ich das noch am besten, wenn ich diese Energiebilanz auf "Register-Level" haben möchte, damit ich diesen in einer Reihe mit den Werten aus den Registern sehe?

Gruß

Peter

oniT

Zitat von: Aladin222 am 17 März 2015, 10:55:50
Wie habt ihr das Label konfiguriert ?

Hallo,

in der Definition vom Plotfile das Attribut Label mit folgendem Code füllen

Attributes:
   label      "max $data{max1} Wh, Aktuell $data{currval1} Wh, max $data{max2} kWh, Aktuell $data{currval2} kWh"


und im Plot Editor als Plot Titel <L1> eintragen.

Gruß
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

oniT

Zitat von: PEPITO82 am 17 März 2015, 12:35:15
Wie mache ich das noch am besten, wenn ich diese Energiebilanz auf "Register-Level" haben möchte, damit ich diesen in einer Reihe mit den Werten aus den Registern sehe?

Hallo,

ich meine dies wird so nicht gehen da an der Stelle immer der State angezeigt wird. In diesem Fall würde ich eine ReadingsGroup definieren.

define rg_dummy_SOLAR_state readingsGroup <Beschreibung>,<>
solarlog_.*:state
solarlog_.*:energybalance
   attr rg_dummy_SOLAR_state alias SolarLog
   attr rg_dummy_SOLAR_state mapping {'solarlog_dailyyield' => 'Tagesertrag','solarlog_monthlyyield' => 'Monatsertrag','solarlog_totalpac' => 'Erzeugung',
'solarlog_yearlyyield' => 'Jahresertrag','solarlog_totalyield' => 'Gesamtertrag','solarlog_yesterdayyield' => 'Vortagesertrag'}
   attr rg_dummy_SOLAR_state nostate 1
   attr rg_dummy_SOLAR_state notime 1
   attr rg_dummy_SOLAR_state valueFormat {'state' => "%0.2f"}
   attr rg_dummy_SOLAR_state valueStyle style="text-align:right"


Weitere Infos zur ReadingsGroup stehen im Wiki.

Gruß
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

PEPITO82

Danke für den Hinweis mit der readingsGroup.
Damit kann man sehr viel darstellungstechnisch erreichen.

Hab das Coding so 1:1 übernommen und noch um die Verbrauchswerte und Energiebilanz ergänzt.

Vielen Dank für die Hilfe.

satprofi

#12
Hallo.
Vorerst danke für das Modul. Ein Nachtrag noch zum WIKI, solarlog_yearlyyield_cons  hat falsche registernummer, richtig müsste 3526 sein.
gruss
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

oniT

Hallo,

vielen Dank für die Info. Wird geändert.

Gruß
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

user4711

#14
Cool, habs mit einem 500 BT verbunden, ohne Probleme. Danke

Als Verbesserung wäre möglich die IP Adresse als Name und nicht als Zahl anzugeben, sonst ist mir nichts aufgefallen.
-> wunschlos glücklich. :-))

Ach mir geht doch noch was ab. Eine Auswertefunktion um Verbraucher zuschalten ;-) Ist zwar nicht das Thema hier, aber das ist was ich noch  brauche ;-)

Nochmals Vielen Dank und viele Grüße
user4711


Ergänzung:
Den Solar Raum kann ich unter der APP andFHEM nicht finden.  Hat jemand einen Tipp für mich?