Fix battery sign and separate PV from inverter output
Verified against simultaneous SolarEdge app readings (PV 40 W, battery discharge 520 W, house 560 W): battery1_power negative means discharge, and power_ac on this DC-coupled Energy Hub is the inverter's TOTAL AC output - it already contains the battery contribution. The old formula double-counted the battery, so house_load collapsed (44 W shown vs 560 W real) and the PV tile showed battery-inflated totals, which looked like PV and house consumption were swapped. New derived fields: house_load = power_ac + grid, and pv_power = power_ac - battery (true PV production). Dashboard PV tiles and both yield panels now use pv_power / integral(pv_power) - the energy_total lifetime counter also counts battery throughput and is not a PV yield.
This commit is contained in:
4 files changed
+57
-42
No files matched your search
@@ -66,7 +66,7 @@
|
||||
"type": "influxdb",
|
||||
"uid": "${DS_INFLUXDB}"
|
||||
},
|
||||
"query": "SELECT last(\"power_ac\") AS \"PV\" FROM \"$measurement\" WHERE serialnumber =~ /^$serial$/ AND $timeFilter",
|
||||
"query": "SELECT last(\"pv_power\") AS \"PV\" FROM \"$measurement\" WHERE serialnumber =~ /^$serial$/ AND $timeFilter",
|
||||
"refId": "A",
|
||||
"rawQuery": true,
|
||||
"resultFormat": "time_series"
|
||||
@@ -387,7 +387,7 @@
|
||||
"type": "influxdb",
|
||||
"uid": "${DS_INFLUXDB}"
|
||||
},
|
||||
"query": "SELECT spread(\"energy_total\") / 1000 AS \"Ertrag\" FROM \"$measurement\" WHERE serialnumber =~ /^$serial$/ AND $timeFilter",
|
||||
"query": "SELECT integral(\"pv_power\", 1h) / 1000 AS \"Ertrag\" FROM \"$measurement\" WHERE serialnumber =~ /^$serial$/ AND $timeFilter",
|
||||
"refId": "A",
|
||||
"rawQuery": true,
|
||||
"resultFormat": "time_series"
|
||||
@@ -808,7 +808,7 @@
|
||||
"type": "influxdb",
|
||||
"uid": "${DS_INFLUXDB}"
|
||||
},
|
||||
"query": "SELECT mean(\"power_ac\") AS \"PV\" FROM \"$measurement\" WHERE serialnumber =~ /^$serial$/ AND $timeFilter GROUP BY time($__interval) fill(null)",
|
||||
"query": "SELECT mean(\"pv_power\") AS \"PV\" FROM \"$measurement\" WHERE serialnumber =~ /^$serial$/ AND $timeFilter GROUP BY time($__interval) fill(null)",
|
||||
"refId": "A",
|
||||
"rawQuery": true,
|
||||
"resultFormat": "time_series"
|
||||
@@ -1177,7 +1177,7 @@
|
||||
"type": "influxdb",
|
||||
"uid": "${DS_INFLUXDB}"
|
||||
},
|
||||
"query": "SELECT non_negative_derivative(max(\"energy_total\"), 1h) / 1000 AS \"Ertrag\" FROM \"$measurement\" WHERE serialnumber =~ /^$serial$/ AND $timeFilter GROUP BY time(1h) fill(null)",
|
||||
"query": "SELECT integral(\"pv_power\", 1h) / 1000 AS \"Ertrag\" FROM \"$measurement\" WHERE serialnumber =~ /^$serial$/ AND $timeFilter GROUP BY time(1h) fill(null)",
|
||||
"refId": "A",
|
||||
"rawQuery": true,
|
||||
"resultFormat": "time_series"
|
||||
|
||||
Reference in new issue
Block a user