diff --git a/nymea-app/ui/mainviews/energy/ConsumerStats.qml b/nymea-app/ui/mainviews/energy/ConsumerStats.qml index 41fcc6e8..000da86b 100644 --- a/nymea-app/ui/mainviews/energy/ConsumerStats.qml +++ b/nymea-app/ui/mainviews/energy/ConsumerStats.qml @@ -430,7 +430,7 @@ StatsBase { backgroundItem: chartView backgroundRect: Qt.rect(chartView.plotArea.x + toolTip.x, chartView.plotArea.y + toolTip.y, toolTip.width, toolTip.height) - property int idx: Math.max(0, Math.min(d.config.count - 1, Math.ceil(mouseArea.mouseX * d.config.count / mouseArea.width) - 1)) + property int idx: visible ? Math.max(0, Math.min(d.config.count - 1, Math.ceil(mouseArea.mouseX * d.config.count / mouseArea.width) - 1)) : 0 property date timestamp: root.calculateTimestamp(d.config.startTime(), d.config.sampleRate, d.startOffset + idx) visible: (mouseArea.containsMouse || mouseArea.tooltipping) && !mouseArea.dragging diff --git a/nymea-app/ui/mainviews/energy/ConsumersHistory.qml b/nymea-app/ui/mainviews/energy/ConsumersHistory.qml index c5287a38..98b27411 100644 --- a/nymea-app/ui/mainviews/energy/ConsumersHistory.qml +++ b/nymea-app/ui/mainviews/energy/ConsumersHistory.qml @@ -418,6 +418,10 @@ Item { // Add a first point at 0 value series.upperSeries.insert(0, new Date().getTime(), 0) } + + Component.onDestruction: { + chartView.removeSeries(series) + } } } } diff --git a/nymea-app/ui/mainviews/energy/PowerBalanceStats.qml b/nymea-app/ui/mainviews/energy/PowerBalanceStats.qml index e61e9b24..b5b94000 100644 --- a/nymea-app/ui/mainviews/energy/PowerBalanceStats.qml +++ b/nymea-app/ui/mainviews/energy/PowerBalanceStats.qml @@ -450,7 +450,7 @@ StatsBase { backgroundItem: chartView backgroundRect: Qt.rect(chartView.plotArea.x + toolTip.x, chartView.plotArea.y + toolTip.y, toolTip.width, toolTip.height) - property int idx: Math.min(d.config.count -1, Math.max(0, Math.ceil(mouseArea.mouseX * d.config.count / mouseArea.width) - 1)) + property int idx: visible ? Math.min(d.config.count -1, Math.max(0, Math.ceil(mouseArea.mouseX * d.config.count / mouseArea.width) - 1)) : 0 property date timestamp: root.calculateTimestamp(d.config.startTime(), d.config.sampleRate, d.startOffset + idx) visible: (mouseArea.containsMouse || mouseArea.tooltipping) && !mouseArea.dragging diff --git a/nymea-app/ui/mainviews/energy/PowerConsumptionBalanceHistory.qml b/nymea-app/ui/mainviews/energy/PowerConsumptionBalanceHistory.qml index bb0357e0..a01e2a22 100644 --- a/nymea-app/ui/mainviews/energy/PowerConsumptionBalanceHistory.qml +++ b/nymea-app/ui/mainviews/energy/PowerConsumptionBalanceHistory.qml @@ -162,7 +162,7 @@ Item { ActivityIndicator { x: chartView.plotArea.x + (chartView.plotArea.width - width) / 2 y: chartView.plotArea.y + (chartView.plotArea.height - height) / 2 + (chartView.plotArea.height / 8) - visible: powerBalanceLogs.fetchingData + visible: powerBalanceLogs.fetchingData && powerBalanceLogs.get(0).timestamp > d.startTime opacity: .5 } Label { diff --git a/nymea-app/ui/mainviews/energy/PowerProductionBalanceHistory.qml b/nymea-app/ui/mainviews/energy/PowerProductionBalanceHistory.qml index ee6907d2..84a96018 100644 --- a/nymea-app/ui/mainviews/energy/PowerProductionBalanceHistory.qml +++ b/nymea-app/ui/mainviews/energy/PowerProductionBalanceHistory.qml @@ -160,7 +160,7 @@ Item { ActivityIndicator { x: chartView.plotArea.x + (chartView.plotArea.width - width) / 2 y: chartView.plotArea.y + (chartView.plotArea.height - height) / 2 + (chartView.plotArea.height / 8) - visible: powerBalanceLogs.fetchingData + visible: powerBalanceLogs.fetchingData && powerBalanceLogs.get(0).timestamp > d.startTime opacity: .5 } Label { @@ -525,7 +525,7 @@ Item { Component.onCompleted: lowerSeries = selfConsumptionSeries.lowerSeries property XYSeries lowerSeries: null - property double value: toolTip.entry ? Math.max(0, toolTip.entry.consumption) : 0 + property double value: toolTip.entry ? Math.min(Math.max(0, toolTip.entry.consumption), -toolTip.entry.production) : 0 property bool translate: value >= 1000 property double translatedValue: value / (translate ? 1000 : 1) text: qsTr("Consumed: %1 %2").arg(translatedValue.toFixed(2)).arg(translate ? "kW" : "W") diff --git a/nymea-app/ui/mainviews/energy/StatsBase.qml b/nymea-app/ui/mainviews/energy/StatsBase.qml index 448cde24..7f6158df 100644 --- a/nymea-app/ui/mainviews/energy/StatsBase.qml +++ b/nymea-app/ui/mainviews/energy/StatsBase.qml @@ -124,7 +124,12 @@ Item { function weeksStart() { var d = new Date(); d.setHours(0, 0, 0, 0); - d.setDate(d.getDate() - d.getDay() + 1 - (weeksCount - 1) * 7); + print("now is:", d, "weeksCount:", weeksCount) + // We'll start the week on Monday for now, given that's international ISO standard. For US and Canada we may want to introduce a setting at some point. + // JS Date starts on Sunday though, so we'll have to adjust + var dayOfWeek = (d.getDay() + 6) % 7 + print("getDay", d.getDay(), "dayOfWeek", dayOfWeek, "getDate", d.getDate()) + d.setDate(d.getDate() - dayOfWeek - (weeksCount - 1) * 7); return d } function weekLabel(date) {