Skip to content

Commit c0a7cd2

Browse files
committed
optional battery soc and kwh format charge/discharge
1 parent 5fc595a commit c0a7cd2

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

apps/OpenEnergyMonitor/mysolarpvbattery/mysolarpvbattery.php

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ function getTranslations(){
374374
// Battery feeds
375375
"battery_charge":{"type":"feed", "autoname":"battery_charge", "engine":"5", "description":"Battery charge power in watts"},
376376
"battery_discharge":{"type":"feed", "autoname":"battery_discharge", "engine":"5", "description":"Battery discharge power in watts"},
377-
"battery_soc":{"type":"feed", "autoname":"battery_soc", "engine":"5", "description":"Battery state of charge %"},
377+
"battery_soc":{"optional":true, "type":"feed", "autoname":"battery_soc", "engine":"5", "description":"Battery state of charge %"},
378378

379379
// History feeds
380380
"use_kwh":{"optional":true, "type":"feed", "autoname":"use_kwh", "engine":5, "description":"Building consumption in kWh (not including battery charging)"},
@@ -541,7 +541,11 @@ function livefn()
541541
var use_now = parseInt(feeds[config.app.use.value].value);
542542
var battery_charge_now = parseInt(feeds[config.app.battery_charge.value].value);
543543
var battery_discharge_now = parseInt(feeds[config.app.battery_discharge.value].value);
544-
var battery_soc_now = parseInt(feeds[config.app.battery_soc.value].value);
544+
545+
var battery_soc_now = "---";
546+
if (config.app.battery_soc.value) {
547+
battery_soc_now = parseInt(feeds[config.app.battery_soc.value].value);
548+
}
545549

546550
if (autoupdate) {
547551
var updatetime = feeds[config.app.solar.value].time;
@@ -554,8 +558,11 @@ function livefn()
554558
timeseries.trim_start("battery_charge",view.start*0.001);
555559
timeseries.append("battery_discharge",updatetime,battery_discharge_now);
556560
timeseries.trim_start("battery_discharge",view.start*0.001);
557-
timeseries.append("battery_soc",updatetime,battery_soc_now);
558-
timeseries.trim_start("battery_soc",view.start*0.001);
561+
562+
if (config.app.battery_soc.value) {
563+
timeseries.append("battery_soc",updatetime,battery_soc_now);
564+
timeseries.trim_start("battery_soc",view.start*0.001);
565+
}
559566

560567
// Advance view
561568
var timerange = view.end - view.start;
@@ -575,6 +582,8 @@ function livefn()
575582
solar_now = as_kw(solar_now)
576583
use_now = as_kw(use_now)
577584
balance = as_kw(balance)
585+
battery_charge_now = as_kw(battery_charge_now)
586+
battery_discharge_now = as_kw(battery_discharge_now)
578587
$('.power-unit').text('kW')
579588
$('#app-block').addClass('in_kw');
580589
} else {
@@ -651,7 +660,10 @@ function load_powergraph() {
651660
timeseries.load("use",feed.getdata(config.app.use.value,view.start,view.end,interval,0,0));
652661
timeseries.load("battery_charge",feed.getdata(config.app.battery_charge.value,view.start,view.end,interval,0,0));
653662
timeseries.load("battery_discharge",feed.getdata(config.app.battery_discharge.value,view.start,view.end,interval,0,0));
654-
timeseries.load("battery_soc",feed.getdata(config.app.battery_soc.value,view.start,view.end,interval,0,0));
663+
664+
if (config.app.battery_soc.value) {
665+
timeseries.load("battery_soc",feed.getdata(config.app.battery_soc.value,view.start,view.end,interval,0,0));
666+
}
655667
}
656668
// -------------------------------------------------------------------------------------------------------
657669

@@ -707,12 +719,12 @@ function load_powergraph() {
707719
battery_discharge_now = timeseries.value("battery_discharge",z);
708720
last_discharge = time;
709721
}
710-
if (timeseries.value("battery_soc",z)!=null) {
722+
if (config.app.battery_soc.value && timeseries.value("battery_soc",z)!=null) {
711723
battery_soc_now = timeseries.value("battery_soc",z);
712724
last_soc = time;
713725
}
714726

715-
if ((time-last_solar)<timeout && (time-last_use)<timeout && (time-last_charge)<timeout && (time-last_discharge)<timeout && (time-last_soc)<timeout) {
727+
if ((time-last_solar)<timeout && (time-last_use)<timeout && (time-last_charge)<timeout && (time-last_discharge)<timeout) {
716728

717729
// -------------------------------------------------------------------------------------------------------
718730
// Supply / demand balance calculation
@@ -788,7 +800,10 @@ function load_powergraph() {
788800
}
789801

790802

791-
var soc_change = battery_soc_now-timeseries.value("battery_soc",0);
803+
var soc_change = 0;
804+
if (config.app.battery_soc.value) {
805+
soc_change = battery_soc_now-timeseries.value("battery_soc",0);
806+
}
792807
var sign = ""; if (soc_change>0) sign = "+";
793808
$(".battery_soc_change").html(sign+soc_change.toFixed(1));
794809

@@ -799,7 +814,7 @@ function load_powergraph() {
799814
powerseries.push({data:battery_charge_data, label: "Charge", color: "#fb7b50", stack:2, lines:{lineWidth:0, fill:0.8}});
800815
powerseries.push({data:battery_discharge_data, label: "Discharge", color: "#fbb450", stack:1, lines:{lineWidth:0, fill:0.8}});
801816

802-
if (show_battery_soc) powerseries.push({data:battery_soc_data, label: "SOC", yaxis:2, color: "#888"});
817+
if (show_battery_soc && config.app.battery_soc.value) powerseries.push({data:battery_soc_data, label: "SOC", yaxis:2, color: "#888"});
803818
}
804819

805820
function draw_powergraph() {

0 commit comments

Comments
 (0)