Servus zusammen,
Über die Einbindung eines Kostal Plenticore ist schon viel geschrieben worden. Aber eine – Gesamtanleitung – habe ich leider nicht gefunden. Darum trage ich einmal zusammen, wie ich es gelöst habe. Im ersten Schritt habe ich den Kostal Plentikore in mein Haus IP Netzangeschlossen und ihn mit einer festen IP versorgt. Das geht ganz einfach auf der Website des Wechselrichters. Um jetzt die aktuellen Daten zu bekommen, habe ich mich entschieden den Weg über Modbus zu gehen. Mein Modbus device seht ihr unten. Daraus lassen sich fast alle Werte super auslesen. Was mir noch fehlte waren die Werte für EnergyTotalToGrid, BatteryActualEnnergy und PowerDC. Power DC nur desshalb, weil an meinem dritten Strang der BYD Accu angesclossen ist.
Dann habe ich noch das Modul KOSTALPIKO dafür verwendet, um eine Ertragsprognose zu bekommen.
define PVForecast KOSTALPIKO 1.1.1.1 nouser nopwd
attr PVForecast disable 1 -> damit er nicht abgefragt wird.
attr PVForecast userattr PVPannelqm PVPannelCount PVEfficiency
attr PVForecast userReadings Energy { Energy {AttrVal("PVForecast","PVEfficiency",15)/100*AttrVal("PVForecast","PVPannelCount",1)*AttrVal("PVForecast","PVPannelqm",1)*ReadingsVal("PVForecast","Global.Radiation",1);; }
danach die
* PVPannelqm = gesamtfläche eines PV Pannels (meis so um die 1,5qm)
* PVPannelCount = Anzahl der verbauten Pannele
* PVEfficiency = Steht im Datenblatt zu den PV Modulen 10-20 %
Als Ergebniss steht dann in Energy der zu erwartende Wert für den Ertrag in kW/h
Internals:
DEF 71 30 192.168.x.xx:1502 TCP
DeviceName 192.168.x.xx:1502
EXPECT idle
FD 20
FUUID 5daee247-f33f-ee4c-4b72-9c67a5426622a776
INTERVAL 30
IODev kostal02
LASTOPEN 1593357448.48354
MODBUSID 71
MODE master
MODULEVERSION Modbus 4.1.5 - 17.9.2019
NAME kostal02
NOTIFYDEV global
NR 243
NTFY_ORDER 50-kostal02
PARTIAL
PROTOCOL TCP
STATE opened
TCPConn 1
TRIGGERTIME 1593514856.16776
TRIGGERTIME_FMT 2020-06-30 13:00:56
TYPE ModbusAttr
devioLoglevel 3
lastUpdate 1593514826.16776
nextOpenDelay 60
Helper:
DBLOG:
BatteryActualEnnergy:
myDbLog:
TIME 1593514707.26798
VALUE 6.856
BatteryCapacity:
myDbLog:
TIME 1593513146.21525
VALUE 25
BatteryCharge:
myDbLog:
TIME 1593514707.26798
VALUE 64
BatteryChargeCurrent:
myDbLog:
TIME 1593514826.28379
VALUE -0.1
BatteryChargeCycles:
myDbLog:
TIME 1593514376.49117
VALUE 118.0
BatteryChargePower:
myDbLog:
TIME 1593514797.39811
VALUE -1042
BatteryManufacturer:
myDbLog:
TIME 1593510775.68681
VALUE BYD
BatteryTemperature:
myDbLog:
TIME 1593514617.6746
VALUE 22.2
BatteryVoltage:
myDbLog:
TIME 1593514616.60118
VALUE 428.5
EnergyGeneration:
myDbLog:
TIME 1593514586.27888
VALUE 3943.7
EnergyGenerationScaleFactor:
myDbLog:
TIME 1593512036.92204
VALUE 0
EnergyTotalBattery:
myDbLog:
TIME 1593513386.77052
VALUE 1148.0
EnergyTotalGrid:
myDbLog:
TIME 1593513056.10008
VALUE 851.2
EnergyTotalHome:
myDbLog:
TIME 1593514286.94424
VALUE 3514.0
EnergyTotalPV:
myDbLog:
TIME 1593513326.57489
VALUE 1550.0
EnergyTotalToGrid:
myDbLog:
TIME 1593514617.59136
VALUE 429.7
IsolationResistance:
myDbLog:
TIME 1593514797.28159
VALUE 65535000.0
KostalArticleNumber:
myDbLog:
TIME 1593510775.58139
VALUE 10335956
KostalProductName:
myDbLog:
TIME 1593510686.22449
VALUE PLENTICORE plus
KostalSerialNumber:
myDbLog:
TIME 1593510595.77004
VALUE 90523SHS0000P
KostalStatus:
myDbLog:
TIME 1593511827.82683
VALUE FeedIn
KostalVersionIOC:
myDbLog:
TIME 1593510805.8597
VALUE 01.42
KostalVersionMC:
myDbLog:
TIME 1593510745.95978
VALUE 01.42
PowerActivePhase1:
myDbLog:
TIME 1593514797.50355
VALUE 1427.8
PowerActivePhase2:
myDbLog:
TIME 1593514796.29111
VALUE 1443.9
PowerActivePhase3:
myDbLog:
TIME 1593514796.61511
VALUE 1439.9
PowerBattery:
myDbLog:
TIME 1593514826.49853
VALUE 2.8
PowerCosPhi:
myDbLog:
TIME 1593514166.59026
VALUE 1.0
PowerDC:
myDbLog:
TIME 1593514797.9373
VALUE 4368.2
PowerDC1:
myDbLog:
TIME 1593514797.9373
VALUE 4368.3
PowerDC2:
myDbLog:
TIME 1593512996.96404
VALUE -0.1
PowerGrid:
myDbLog:
TIME 1593514556.93725
VALUE 0.0
PowerInverterGeneration:
myDbLog:
TIME 1593514797.61546
VALUE 4215
PowerLimitEVU:
myDbLog:
TIME 1593511828.36369
VALUE 100.0
PowerMeterActivePhase1:
myDbLog:
TIME 1593514796.93573
VALUE 62.9
PowerMeterActivePhase2:
myDbLog:
TIME 1593514826.81757
VALUE 90.7
PowerMeterActivePhase3:
myDbLog:
TIME 1593514796.17896
VALUE 286.8
PowerMeterCosPhi:
myDbLog:
TIME 1593514437.46711
VALUE 0.9
PowerMeterTotalActive:
myDbLog:
TIME 1593514826.39171
VALUE 226.3
PowerPV:
myDbLog:
TIME 1593514826.60605
VALUE 386.7
PowerTotalDC:
myDbLog:
TIME 1593514796.72153
VALUE 4382.4
VoltageDC1:
myDbLog:
TIME 1593514736.83052
VALUE 489.0
VoltageDC2:
myDbLog:
TIME 1593513178.49399
VALUE 1.4
YieldDailey:
myDbLog:
TIME 1593514556.7218
VALUE 20.7
YieldMonthly:
myDbLog:
TIME 1593514556.17067
VALUE 630.9
YieldTotal:
myDbLog:
TIME 1593514617.59136
VALUE 3943.7
YieldYearly:
myDbLog:
TIME 1593514737.04792
VALUE 3388.7
state:
myDbLog:
TIME 1593357457.13438
VALUE CONNECTED
sunPower:
myDbLog:
TIME 1593514797.9373
VALUE 838.6
QUEUE:
READ:
BUFFER
READINGS:
2020-06-30 13:00:27 BatteryActualEnnergy 6.856
2020-06-30 12:47:56 BatteryCapacity 25
2020-06-30 12:58:27 BatteryCharge 64
2020-06-30 13:00:26 BatteryChargeCurrent -0.1
2020-06-30 13:00:27 BatteryChargeCycles 118.0
2020-06-30 12:59:57 BatteryChargePower -1042
2020-06-30 11:52:55 BatteryManufacturer BYD
2020-06-30 12:59:57 BatteryTemperature 22.2
2020-06-30 12:56:56 BatteryVoltage 428.5
2020-06-30 12:58:56 EnergyGeneration 3943.7
2020-06-30 12:58:56 EnergyGenerationScaleFactor 0
2020-06-30 12:58:56 EnergyTotalBattery 1148.0
2020-06-30 12:58:27 EnergyTotalGrid 851.2
2020-06-30 12:58:56 EnergyTotalHome 3514.0
2020-06-30 13:00:26 EnergyTotalPV 1550.0
2020-06-30 13:00:27 EnergyTotalToGrid 429.7
2020-06-30 12:59:57 IsolationResistance 65535000.0
2020-06-30 11:52:55 KostalArticleNumber 10335956
2020-06-30 11:51:26 KostalProductName PLENTICORE plus
2020-06-30 11:49:55 KostalSerialNumber 90523SHS0000P
2020-06-30 12:58:27 KostalStatus FeedIn
2020-06-30 11:53:25 KostalVersionIOC 01.42
2020-06-30 11:52:25 KostalVersionMC 01.42
2020-06-30 12:59:57 PowerActivePhase1 1427.8
2020-06-30 12:59:56 PowerActivePhase2 1443.9
2020-06-30 12:59:56 PowerActivePhase3 1439.9
2020-06-30 13:00:26 PowerBattery 2.8
2020-06-30 12:59:57 PowerCosPhi 1.0
2020-06-30 13:00:27 PowerDC 4368.2
2020-06-30 12:59:57 PowerDC1 4368.3
2020-06-30 12:59:58 PowerDC2 -0.1
2020-06-30 13:00:26 PowerGrid 0.0
2020-06-30 12:59:57 PowerInverterGeneration 4215
2020-06-30 12:59:56 PowerLimitEVU 100.0
2020-06-30 12:59:56 PowerMeterActivePhase1 62.9
2020-06-30 13:00:26 PowerMeterActivePhase2 90.7
2020-06-30 12:59:56 PowerMeterActivePhase3 286.8
2020-06-30 12:59:56 PowerMeterCosPhi 0.9
2020-06-30 13:00:26 PowerMeterTotalActive 226.3
2020-06-30 13:00:26 PowerPV 386.7
2019-10-27 15:51:03 PowerPercentHomeConsumption 56.0
2020-06-30 12:59:56 PowerTotalDC 4382.4
2020-06-30 12:58:56 VoltageDC1 489.0
2020-06-30 13:00:26 VoltageDC2 1.4
2020-06-30 12:58:26 YieldDailey 20.7
2020-06-30 12:55:56 YieldMonthly 630.9
2020-06-30 12:59:26 YieldTotal 3943.7
2020-06-30 12:58:57 YieldYearly 3388.7
2020-06-28 17:17:37 state opened
2020-06-30 13:00:27 sunPower 838.6
REMEMBER:
lid 71
lname kostal02
lrecv 1593514827.02924
lsend 1593514827.02433
defptr:
kostal02 71
gotReadings:
BatteryChargeCycles 118.0
lastRead:
h100 1593514796.71879
h106 1593514826.49633
h108 1593514826.70877
h110 1593514736.70925
h112 1593514707.37928
h114 1593514826.1753
h116 1593514826.60385
h118 1593514736.39229
h120 1593514797.2791
h122 1593514796.82621
h124 1593514797.16921
h14 1593510595.76784
h150 1593514797.82596
h156 1593514797.50237
h162 1593514796.28995
h168 1593514796.61233
h194 1593514827.03005
h200 1593514826.28219
h210 1593514707.26511
h214 1593514797.06178
h216 1593514616.59947
h218 1593514796.50552
h224 1593514796.93301
h234 1593514826.81586
h244 1593514796.17782
h252 1593514826.38896
h260 1593514797.93456
h266 1593514736.82809
h270 1593514798.05062
h276 1593514826.92211
h320 1593514766.17726
h322 1593514706.94463
h324 1593514737.04621
h326 1593514556.16928
h38 1593510745.95713
h46 1593510805.85714
h512 1593514076.15114
h517 1593510775.68554
h56 1593514707.4889
h575 1593514797.61407
h577 1593514736.28417
h579 1593514736.60192
h582 1593514797.3956
h6 1593510775.57856
h768 1593510686.22223
Attributes:
dev-type-Fl_R2-format %.1f
dev-type-Fl_R2-len 2
dev-type-Fl_R2-revRegs 1
dev-type-Fl_R2-unpack f>
dev-type-S16-format %d
dev-type-S16-len 1
dev-type-S16-unpack s>
dev-type-Str32-format %s
dev-type-Str32-len 32
dev-type-Str32-unpack a*
dev-type-Str8-format %s
dev-type-Str8-len 8
dev-type-Str8-unpack a*
dev-type-U16-format %d
dev-type-U16-len 1
dev-type-U16-unpack n
dev-type-U32-format %d
dev-type-U32-len 2
dev-type-U32-unpack N
event-min-interval .*:3600
event-on-change-reading .*
event-on-update-reading Energy.*,Power.*,PowerDC1
icon inverter
obj-h100-poll 1
obj-h100-polldelay x2
obj-h100-reading PowerTotalDC
obj-h100-type Fl_R2
obj-h106-poll 1
obj-h106-polldelay x4
obj-h106-reading PowerBattery
obj-h106-type Fl_R2
obj-h108-poll 1
obj-h108-reading PowerGrid
obj-h108-type Fl_R2
obj-h110-expr $val/1000
obj-h110-poll 1
obj-h110-polldelay x4
obj-h110-reading EnergyTotalBattery
obj-h110-type Fl_R2
obj-h112-expr $val/1000
obj-h112-poll 1
obj-h112-polldelay x4
obj-h112-reading EnergyTotalGrid
obj-h112-type Fl_R2
obj-h114-expr $val/1000
obj-h114-poll 1
obj-h114-polldelay x4
obj-h114-reading EnergyTotalPV
obj-h114-type Fl_R2
obj-h116-poll 1
obj-h116-reading PowerPV
obj-h116-type Fl_R2
obj-h118-expr $val/1000
obj-h118-poll 1
obj-h118-polldelay x4
obj-h118-reading EnergyTotalHome
obj-h118-type Fl_R2
obj-h120-poll 1
obj-h120-polldelay x2
obj-h120-reading IsolationResistance
obj-h120-type Fl_R2
obj-h122-poll 1
obj-h122-polldelay x8
obj-h122-reading PowerLimitEVU
obj-h122-type Fl_R2
obj-h124-poll 1
obj-h124-polldelay x8
obj-h124-reading IsolationResistance
obj-h124-type Fl_R2
obj-h14-poll 1
obj-h14-polldelay x300
obj-h14-reading KostalSerialNumber
obj-h14-type Str8
obj-h150-poll 1
obj-h150-polldelay x2
obj-h150-reading PowerCosPhi
obj-h150-type Fl_R2
obj-h156-poll 1
obj-h156-polldelay x2
obj-h156-reading PowerActivePhase1
obj-h156-type Fl_R2
obj-h162-poll 1
obj-h162-polldelay x2
obj-h162-reading PowerActivePhase2
obj-h162-type Fl_R2
obj-h168-poll 1
obj-h168-polldelay x2
obj-h168-reading PowerActivePhase3
obj-h168-type Fl_R2
obj-h194-poll 1
obj-h194-polldelay x4
obj-h194-reading BatteryChargeCycles
obj-h194-type Fl_R2
obj-h200-expr $val*-1
obj-h200-poll 1
obj-h200-polldelay x2
obj-h200-reading BatteryChargeCurrent
obj-h200-type Fl_R2
obj-h210-format %.0f
obj-h210-poll 1
obj-h210-polldelay x10
obj-h210-reading BatteryCharge
obj-h210-type Fl_R2
obj-h214-poll 1
obj-h214-polldelay x5
obj-h214-reading BatteryTemperature
obj-h214-type Fl_R2
obj-h216-poll 1
obj-h216-polldelay x10
obj-h216-reading BatteryVoltage
obj-h216-type Fl_R2
obj-h218-poll 1
obj-h218-polldelay x2
obj-h218-reading PowerMeterCosPhi
obj-h218-type Fl_R2
obj-h224-poll 1
obj-h224-polldelay x2
obj-h224-reading PowerMeterActivePhase1
obj-h224-type Fl_R2
obj-h234-poll 1
obj-h234-polldelay x2
obj-h234-reading PowerMeterActivePhase2
obj-h234-type Fl_R2
obj-h244-poll 1
obj-h244-polldelay x2
obj-h244-reading PowerMeterActivePhase3
obj-h244-type Fl_R2
obj-h252-poll 1
obj-h252-reading PowerMeterTotalActive
obj-h252-type Fl_R2
obj-h260-poll 1
obj-h260-polldelay x2
obj-h260-reading PowerDC1
obj-h260-type Fl_R2
obj-h266-poll 1
obj-h266-polldelay x4
obj-h266-reading VoltageDC1
obj-h266-type Fl_R2
obj-h270-poll 1
obj-h270-polldelay x2
obj-h270-reading PowerDC2
obj-h270-type Fl_R2
obj-h276-poll 1
obj-h276-polldelay x4
obj-h276-reading VoltageDC2
obj-h276-type Fl_R2
obj-h320-expr $val/1000
obj-h320-poll 1
obj-h320-polldelay x4
obj-h320-reading YieldTotal
obj-h320-type Fl_R2
obj-h322-expr $val/1000
obj-h322-poll 1
obj-h322-polldelay x4
obj-h322-reading YieldDailey
obj-h322-type Fl_R2
obj-h324-expr $val/1000
obj-h324-poll 1
obj-h324-polldelay x30
obj-h324-reading YieldYearly
obj-h324-type Fl_R2
obj-h326-expr $val/1000
obj-h326-poll 1
obj-h326-polldelay x10
obj-h326-reading YieldMonthly
obj-h326-type Fl_R2
obj-h38-poll 1
obj-h38-polldelay x300
obj-h38-reading KostalVersionMC
obj-h38-type Str8
obj-h46-poll 1
obj-h46-polldelay x300
obj-h46-reading KostalVersionIOC
obj-h46-type Str8
obj-h512-poll 1
obj-h512-polldelay x30
obj-h512-reading BatteryCapacity
obj-h512-type U32
obj-h517-poll 1
obj-h517-polldelay x300
obj-h517-reading BatteryManufacturer
obj-h517-type Str8
obj-h56-format %s
obj-h56-map 0:off,1:init,2:IsoMeas,3:GridCheck,4:StartUp,6:FeedIn,7:Throttled,8:ExtSwitchOff,9:Update,10:Standby,11:GridSync,12:GridPreCheck,13:GridSwitchOff,14:Overheating,15:Shutdown,16:ImproperDcVoltage,17:ESB,18:Unkown
obj-h56-poll 1
obj-h56-polldelay x5
obj-h56-reading KostalStatus
obj-h56-type U16
obj-h575-poll 1
obj-h575-polldelay x2
obj-h575-reading PowerInverterGeneration
obj-h575-type S16
obj-h577-expr $val/1000
obj-h577-format %.1f
obj-h577-poll 1
obj-h577-polldelay x4
obj-h577-reading EnergyGeneration
obj-h577-type U32
obj-h579-poll 1
obj-h579-polldelay x4
obj-h579-reading EnergyGenerationScaleFactor
obj-h579-type S16
obj-h582-poll 1
obj-h582-polldelay x2
obj-h582-reading BatteryChargePower
obj-h582-type S16
obj-h6-poll 1
obj-h6-polldelay x300
obj-h6-reading KostalArticleNumber
obj-h6-type Str8
obj-h768-poll 1
obj-h768-polldelay x300
obj-h768-reading KostalProductName
obj-h768-type Str32
room Photovoltaik
userReadings EnergyTotalToGrid {ReadingsVal("kostal02","YieldTotal",0)-ReadingsVal("kostal02","EnergyTotalHome",0);;},BatteryActualEnnergy {ReadingsVal("kostal02","BatteryCapacity",0)*ReadingsVal("kostal02","BatteryVoltage",0)*ReadingsVal("kostal02","BatteryCharge",0)/100/1000}, sunPower {sprintf("%.1f",ReadingsVal("kostal02","PowerDC1",0)/1.652672/17/18.54*100);;}, PowerDC {ReadingsVal("kostal02","PowerDC1",0)+ReadingsVal("kostal02","PowerDC2",0);;}
userattr dev-type-Fl_R2-format dev-type-Fl_R2-len dev-type-Fl_R2-revRegs dev-type-Fl_R2-unpack dev-type-S16-format dev-type-S16-len dev-type-S16-unpack dev-type-Str32-format dev-type-Str32-len dev-type-Str32-unpack dev-type-Str8-format dev-type-Str8-len dev-type-Str8-unpack dev-type-U16-format dev-type-U16-len dev-type-U16-unpack dev-type-U32-format dev-type-U32-len dev-type-U32-unpack obj-h100-poll obj-h100-polldelay obj-h100-reading obj-h100-type obj-h106-poll obj-h106-polldelay obj-h106-reading obj-h106-type obj-h108-poll obj-h108-reading obj-h108-type obj-h110-expr obj-h110-poll obj-h110-polldelay obj-h110-reading obj-h110-type obj-h112-expr obj-h112-poll obj-h112-polldelay obj-h112-reading obj-h112-type obj-h114-expr obj-h114-poll obj-h114-polldelay obj-h114-reading obj-h114-type obj-h116-poll obj-h116-reading obj-h116-type obj-h118-expr obj-h118-poll obj-h118-polldelay obj-h118-reading obj-h118-type obj-h120-poll obj-h120-polldelay obj-h120-reading obj-h120-type obj-h122-poll obj-h122-polldelay obj-h122-reading obj-h122-type obj-h124-poll obj-h124-polldelay obj-h124-reading obj-h124-type obj-h14-poll obj-h14-polldelay obj-h14-reading obj-h14-type obj-h150-poll obj-h150-polldelay obj-h150-reading obj-h150-type obj-h156-poll obj-h156-polldelay obj-h156-reading obj-h156-type obj-h162-poll obj-h162-polldelay obj-h162-reading obj-h162-type obj-h168-poll obj-h168-polldelay obj-h168-reading obj-h168-type obj-h194-poll obj-h194-polldelay obj-h194-reading obj-h194-type obj-h200-expr obj-h200-poll obj-h200-polldelay obj-h200-reading obj-h200-type obj-h210-format obj-h210-poll obj-h210-polldelay obj-h210-reading obj-h210-type obj-h214-poll obj-h214-polldelay obj-h214-reading obj-h214-type obj-h216-poll obj-h216-polldelay obj-h216-reading obj-h216-type obj-h218-poll obj-h218-polldelay obj-h218-reading obj-h218-type obj-h224-poll obj-h224-polldelay obj-h224-reading obj-h224-type obj-h234-poll obj-h234-polldelay obj-h234-reading obj-h234-type obj-h244-poll obj-h244-polldelay obj-h244-reading obj-h244-type obj-h252-poll obj-h252-reading obj-h252-type obj-h260-poll obj-h260-polldelay obj-h260-reading obj-h260-type obj-h266-poll obj-h266-polldelay obj-h266-reading obj-h266-type obj-h270-poll obj-h270-polldelay obj-h270-reading obj-h270-type obj-h276-poll obj-h276-polldelay obj-h276-reading obj-h276-type obj-h320-expr obj-h320-poll obj-h320-polldelay obj-h320-reading obj-h320-type obj-h322-expr obj-h322-poll obj-h322-polldelay obj-h322-reading obj-h322-type obj-h324-expr obj-h324-poll obj-h324-polldelay obj-h324-reading obj-h324-type obj-h326-expr obj-h326-poll obj-h326-polldelay obj-h326-reading obj-h326-type obj-h38-poll obj-h38-polldelay obj-h38-reading obj-h38-type obj-h46-poll obj-h46-polldelay obj-h46-reading obj-h46-type obj-h512-poll obj-h512-polldelay obj-h512-reading obj-h512-type obj-h517-poll obj-h517-polldelay obj-h517-reading obj-h517-type obj-h56-format obj-h56-map obj-h56-poll obj-h56-polldelay obj-h56-reading obj-h56-type obj-h575-poll obj-h575-polldelay obj-h575-reading obj-h575-type obj-h577-expr obj-h577-format obj-h577-poll obj-h577-polldelay obj-h577-reading obj-h577-type obj-h579-poll obj-h579-polldelay obj-h579-reading obj-h579-type obj-h582-expr obj-h582-poll obj-h582-polldelay obj-h582-reading obj-h582-type obj-h6-poll obj-h6-polldelay obj-h6-reading obj-h6-type obj-h768-poll obj-h768-polldelay obj-h768-reading obj-h768-type
--------------------------------------------
Internals:
DEF 1.1.1.1 nouser nopwd
FUUID 5ef8ba8e-f33f-ee4c-5c27-3e319c7e4873ef29
NAME PVForecast
NR 1109
STATE today forecast: 38kW/h
TYPE KOSTALPIKO
VERSION 2.10
Helper:
DBLOG:
Energy:
myDbLog:
TIME 1593515569.25557
VALUE 37.7196124032
Global.Radiation:
myDbLog:
TIME 1593515569.25557
VALUE 8.1
ModeNum:
myDbLog:
TIME 1593359000.30137
VALUE 9
UV.Index:
myDbLog:
TIME 1593360475.34099
VALUE 6
state:
myDbLog:
TIME 1593360474.30516
VALUE captureGlobalRadiation
sunshine.duration:
myDbLog:
TIME 1593360475.34099
VALUE 60
READINGS:
2020-06-30 13:12:49 Energy 37.7196124032
2020-06-30 13:12:49 Global.Radiation 8.1
2020-06-28 17:43:20 ModeNum 9
2020-06-30 13:10:36 UV.Index 9
2020-06-28 17:43:20 state W: -
2020-06-30 13:10:36 sunshine.duration 75
helper:
GRHour 25
Host 192.168.1.72
Pass nopwd
TimerGR PVForecast.GR
TimerGRInterval 3600
TimerInterval 180
TimerStatus PVForecast.STATUS
User nouser
delayCounter 0
Attributes:
DbLogExclude sunshine.duration,state,UV.Index
GR.Interval 3600
GR.Link https://www.proplanta.de/Wetter/Dorfen-Wetter-Heute.html
PVEfficiency 18.76
PVPannelCount 17
PVPannelqm 1.46016
delay 180
disable 1
event-on-change-reading .*
room Photovoltaik
stateFormat {sprintf("today forecast: %.0fkW/h",ReadingsVal($name,"Energy",undef))}
userReadings Energy { AttrVal("PVForecast","PVEfficiency",15)/100*AttrVal("PVForecast","PVPannelCount",1)*AttrVal("PVForecast","PVPannelqm",1)*ReadingsVal("PVForecast","Global.Radiation",1);; }
userattr PVPannelqm PVPannelCount PVEfficiency
Hallo und herzlich willkommen.
Ich faende es toll, wenn Du Dich bei uns anschliessen wuerdest, damit fuer den Plenticore nicht zuviele Threads entstehen.
Hast Du aus meinem Thread, aus dem ersten Post die Beschreibung verwendet und Dein Plenticore Device definiert?
Ansonsten waere es toll, wenn wir die Definition mal abgleichen wuerden, damit nicht zu grosse Abweichungen entstehen.
Den Ansatz mit dem Forcast ueber das Portal schaue ich mir auch nochmal an, ob das die Ausrichtung beruecksichtigt.
In meinem Tread sind wir ziemlich gut uebereingekommen, dass ein Forecast, auf Grund von schlechten Wetter Daten, zu ungenau ist.
Ich arbeite gerade an der Batterie Steuerung, um ein "manuelles" Ladesignal zu geben. Das hat heute bereits gut funktioniert, ist jedoch noch
nicht mit eingebaut.
Bitte verwende bei Deinen naechsten Posts die Code tags (obe das # Icon) und wenn es Dir nichts aus macht aendere auch diesen Post, dann
wird er besser lesbar. Das waere toll fuer lists, code, die attr Liste und so weiter.
Viele Gruesse
Christian
P.S. der Gruender fuer den Plenticore Plus :-), was jedoch nichts mit den Modulen zu tun hat, die tolle Arbeit haben andere gemacht.
Ich bin@s nochmal.
Hast Du Dir den Forecast vom KOSTALPIKO schon mal etwas naeher angeschaut? Ich habe mit den anderen Teilnehmern schon mal folgendes fuer den Forecast zusammengetragen,
in dem auch die Modul Temperatur, die Effizienz und die Ausrichtung, sowie die qm enthalten sind. Das ganze dann jedoch ohne das Kostal Portal !
Ich habe das ganze in der userReadings des Modbus untergebracht. Die Werte hangeln sich schon recht gut am tatsaechlichen Ertrag entlang, entsprechen somit der realitaet.
Fuer einen Forecast braeuchte man nun die SolarRadiation und die zu erwartende Modul Temperatur, was aufgrund mangelnder, valider Wetterdaten somit scheitern wird.
Fuer den Test verwende ich die solarRadiation, von Wetterstationen in meiner Naehe (Wetter_II) und die Aussentemperatur auf der Suedseite in praller Sonne (Heizung:heatSourceIN) plus extra 10 Grad .
Die Funktion "Solar_plain()" ist von KoelnSolar. 6* 0.310 ist 6 Module mit 310 Watt Nennleistung.
Die PV Allage ist in Ost (-90), Sued (0), West (+90) Ausrichtung
Solar_SolarRadiation:Total_DC_Power.* { ReadingsVal("wetter_II","solarRadiation",0) },
Solar_Correction_Temp:Total_DC_Power.* { my $tempk = -0.39 ;; my $temp = ReadingsVal("Heizung","heatSourceIN",0)+10;; my $x = round((1 + ( $temp - 25) * $tempk / 100),3) },
Solar_East:Total_DC_Power.* { my $x = 13 * 0.310 * ReadingsVal("$NAME","Solar_SolarRadiation",0) * ReadingsVal("$NAME","Solar_Correction_Temp",0) * ReadingsVal("$NAME","Solar_Correction_Factor",0) * Solar_plain(40,-90);; ($x lt 0)?0:round($x,0) },
Solar_South:Total_DC_Power.* { my $x = 6 * 0.310 * ReadingsVal("$NAME","Solar_SolarRadiation",0) * ReadingsVal("$NAME","Solar_Correction_Temp",0) * ReadingsVal("$NAME","Solar_Correction_Factor",0) * Solar_plain(40,0);; ($x lt 0)?0:round($x,0) },
Solar_West:Total_DC_Power.* { my $x = 13 * 0.310 * ReadingsVal("$NAME","Solar_SolarRadiation",0) * ReadingsVal("$NAME","Solar_Correction_Temp",0) * ReadingsVal("$NAME","Solar_Correction_Factor",0) * Solar_plain(40,+90);; ($x lt 0)?0:round($x,0) },
Solar_Calculation:Total_DC_Power.* { round( ( ReadingsVal($NAME,"Solar_East",0) + ReadingsVal($NAME,"Solar_South",0) + ReadingsVal($NAME,"Solar_West",0) ) ,0) }
Gruss
Christian
Servus,
du hast natürlich recht, das die vom Modul ermittelten Werte die Ausrichtung nicht berücksichtigen. Mann kann aber dann beim Wirkungsgrad schrauben. Ich selbst verwende die Berechung nur für die elektrissche Warmwasser bereitung. Dafür ist es ausreichend, ob 10kW/h oder 25kW/h zu erwarten sind. Ich hab eine 100% Südausrichtung. Da ist der maximale Fehler, der bissher aufgetreten ist ca. 7kW/h.
Wir können gerne meinen Post in deinen Thred packen. Wie geht das?
beste Grüße
Jonny
Zitat von: JonnyS am 01 Juli 2020, 08:31:01
Wir können gerne meinen Post in deinen Thred packen. Wie geht das?
In zwei Browser Tabs, in einem öffnest Du deinen Post zum ändern und im anderen dann auf antworten und rein kopieren. Bitte denke an die Code Taggs mit dem # Icon um Deine listings !!!
Hattest Du jetzt mit meiner Device Definition begonnen?
Dann könntest Du mal die User Readings anpassen und die Berechnung von "Solar_*" anpassen und mit Deinen Werten Vergleichen
## Dies triggert auf den Update vom Plenticore und Du müsstest Deine solarRadiation einsetzen
Solar_SolarRadiation:Total_DC_Power.* { ReadingsVal("PVForecast","Global.Radiation",1) }
## ReadingsVal("Heizung","heatSourceIN",0)+10 <== Deine Modultemperatur auf der Suedseite gemessen
## $tempk = -0.39 <== das ist glaube ich der Wirkungsgrad aus dem Datenblatt der Module
Solar_Correction_Temp:Total_DC_Power.* { my $tempk = -0.39 ;; my $temp = ReadingsVal("Heizung","heatSourceIN",0)+10;; my $x = round((1 + ( $temp - 25) * $tempk / 100),3) }
## 6 * 0.310 <== Anzahl Module mal Nennleistung
## setreading <PV_Device> Solar_Correction_Factor 1.5 <== Da steckt mein manueller Korrekturfaktor drin
Solar_South:Total_DC_Power.* { my $x = 6 * 0.310 * ReadingsVal("$NAME","Solar_SolarRadiation",0) * ReadingsVal("$NAME","Solar_Correction_Temp",0) * ReadingsVal("$NAME","Solar_Correction_Factor",0) * Solar_plain(40,0);; ($x lt 0)?0:round($x,0) }
## hier brauchst Du natürlich nur den Süden
Solar_Calculation:Total_DC_Power.* { round( ( ReadingsVal($NAME,"Solar_East",0) + ReadingsVal($NAME,"Solar_South",0) + ReadingsVal($NAME,"Solar_West",0) ) ,0) }
Das kommt in die ./FHEM/99_myUtils.pm und holt sich die Sonnenposition aus dem ASTRO Device
###########################################################
# Subroutine to calculate radiation
###########################################################
sub Solar_plain($$) {
my $angle = $_[0];
my $orienta = $_[1];
my $azimuth = ReadingsVal('Astro','SunAz','0');
# angles in radiant
my $rad = 57.296;
my $elevation = ReadingsVal('Astro','SunAlt','0') / $rad;
$angle = $angle / $rad;
my $orientation = ($azimuth - 180 - $orienta) / $rad;
# avoid unrealistic values (normally formula should only be used within boundaries of orientation +/- 90 degrees)
return (0.001) if ($elevation <= 0);
if(cos($orientation) < 0.05 && cos($orientation) > -0.2) {$orientation =$orientation - 0.2}
## Log3 "", 1, "Solar radiation, azimuth = $azimuth, orientation=$orientation, elevation=$elevation, angle=$angle";
my $factor = sin($angle) /
(sin( $elevation) /
cos( $elevation)) *
cos($orientation) +
cos($angle);
# otherwise too big values (normally formula should only be used within boundaries of orientation +/- 90 degrees)
if ($factor > - 0.05 && $factor < 0.05) {$factor = 0.05}
return ($factor);
};
Zitat von: JonnyS am 01 Juli 2020, 08:31:01
Ich selbst verwende die Berechnung nur für die elektrische Warmwasser Bereitung. Dafür ist es ausreichend, ob 10kW/h oder 25kW/h zu erwarten sind. Ich hab eine 100% Südausrichtung. Da ist der maximale Fehler, der bisher aufgetreten ist ca. 7kW/h.
Hierbei hat sich gezeigt, dass ein Forecast nicht notwendig ist. Wenn Du Überschuss hast kannst Du ihn direkt in den Puffer schieben.
Dieses user reading verwende ich als Trigger
## 0.90 <== Das ist mein Wirkungsgrad von DC zu AC (selbst definiert)
Total_PV_Power_reserve:Total_DC_Power.* {my $reserve = ReadingsVal($NAME,"Power_DC_Sum","0") * 0.90 - ReadingsVal($NAME,"Home_own_consumption_from_PV","0");; ($reserve lt 0)?0:round($reserve,3) }
Du bekommst nun einen Wert, den Du noch nicht selber verwendest inklusive der Ladeleistung eines eventuellen Pufferspeichers, denn sofort Verbrauchen ist effektiver als zwischen puffern. Der Wirkungsgrad des Pufferspeichers macht ansonsten Dein Ergebnis schlechter.
Gruss
Christian
Eine Bilanz zum Plenticore gibt es hier Kostal Plenticore Bilanz (https://forum.fhem.de/index.php/topic,109875.0.html) und
den ersten Monats Plot hier Bilanz Plot aus DBLog (https://forum.fhem.de/index.php/topic,53584.msg1069165.html#msg1069165)
Ohne jetzt den Thread entern zu wollen, ist mein aktuellster Stand nun im Wiki zu finden.
https://wiki.fhem.de/wiki/Kostal_Plenticore_10_Plus (https://wiki.fhem.de/wiki/Kostal_Plenticore_10_Plus)
- Kostal Plenticore 10 Plus
- BYD Speicher
- KSEM
- PV-Eigenverbrauch
- Wetter Prognose
- Plenticore Statistiken
...
@Jonny Ich würde mich freuen, wenn Du noch Deine Ergänzungen zum Wiki beitragen würdest.
Gruß
Christian
Hey, Jonny,
ich würde mich sehr freuen, wenn Du bitte mal das Wiki probelesen könntest, damit auch Deine Erfahrungen mit einfließen können.
Viele Grüße
Christian