Fix energy chargs when DST chages

This commit is contained in:
Michael Zanetti 2022-11-01 12:43:55 +01:00
parent 3418a86804
commit b9887d33d6
8 changed files with 13 additions and 33 deletions

View File

@ -56,7 +56,6 @@ StatsBase {
onFetchingDataChanged: { onFetchingDataChanged: {
if (!fetchingData) { if (!fetchingData) {
print("Logs fetched")
d.fetchPending = false d.fetchPending = false
} }
} }
@ -64,7 +63,7 @@ StatsBase {
Repeater { Repeater {
id: consumersRepeater id: consumersRepeater
model: root.consumers model: !engine.thingManager.fetchingData && !engine.tagsManager.busy ? root.consumers : null
onCountChanged: { onCountChanged: {
if (count == root.consumers.count) { if (count == root.consumers.count) {
logsLoader.fetchLogs(); logsLoader.fetchLogs();
@ -240,7 +239,6 @@ StatsBase {
} }
} }
print("oldestEntry", new Date(oldestEntry), haveItems)
if (!haveItems || oldestEntry >= d.endTime.getTime()) { if (!haveItems || oldestEntry >= d.endTime.getTime()) {
return 0.5 return 0.5
} }
@ -284,10 +282,8 @@ StatsBase {
categories: { categories: {
var ret = [] var ret = []
print("Updating categories from", d.config.startTime())
for (var i = 0; i < d.config.count; i++) { for (var i = 0; i < d.config.count; i++) {
var timestamp = root.calculateTimestamp(d.config.startTime(), d.config.sampleRate, d.startOffset + i); var timestamp = root.calculateTimestamp(d.config.startTime(), d.config.sampleRate, d.startOffset + i);
print("*** adding", timestamp, d.startOffset, i)
ret.push(d.config.toLabel(timestamp)) ret.push(d.config.toLabel(timestamp))
} }
return ret; return ret;
@ -472,8 +468,9 @@ StatsBase {
id: toolTipModel id: toolTipModel
property var entries: { property var entries: {
var unsorted = [] var unsorted = []
for (var i = 0; i < consumers.count; i++) { for (var i = 0; i < consumersRepeater.count; i++) {
var consumer = consumers.get(i) var consumerDelegate = consumersRepeater.itemAt(i)
var consumer = consumerDelegate.thing
var entry = { var entry = {
name: consumer.name, name: consumer.name,
value: consumersRepeater.itemAt(i).barSet.at(toolTip.idx).toFixed(2), value: consumersRepeater.itemAt(i).barSet.at(toolTip.idx).toFixed(2),

View File

@ -345,7 +345,6 @@ Item {
} }
onCountChanged: { onCountChanged: {
print("***** count changed", count, "total:", consumers.count)
if (count == consumers.count) { if (count == consumers.count) {
d.update(); d.update();
} }
@ -416,12 +415,7 @@ Item {
thingId: consumerDelegate.thing.id thingId: consumerDelegate.thing.id
loader: logsLoader loader: logsLoader
Component.onCompleted: print("thingpowerlogs completed")
onLoadingInhibitedChanged: print("Loading...", consumerDelegate.thing.name)
onEntriesAdded: { onEntriesAdded: {
print("Thing entries added", consumerDelegate.thing.name, index, entries.length)
addTimer.addEntries(index, entries) addTimer.addEntries(index, entries)
} }

View File

@ -72,9 +72,7 @@ ChartView {
function updateConsumers() { function updateConsumers() {
root.animationOptions = ChartView.NoAnimation root.animationOptions = ChartView.NoAnimation
print("clearing consumers pie chart", consumersBalanceSeries.count)
consumersBalanceSeries.clear(); consumersBalanceSeries.clear();
print("cleared consumers pie chart")
if (engine.thingManager.fetchingData) { if (engine.thingManager.fetchingData) {
return; return;
@ -100,7 +98,6 @@ ChartView {
if (root.rootMeter) { if (root.rootMeter) {
var unknownConsumption = Math.max(0, energyManager.currentPowerConsumption - consumersSummation) var unknownConsumption = Math.max(0, energyManager.currentPowerConsumption - consumersSummation)
print("Unknown consumption:", unknownConsumption, "consumption balance", energyManager.currentPowerConsumption, "consumers summation:", consumersSummation)
d.unknownSlice = consumersBalanceSeries.append(qsTr("Unknown"), unknownConsumption) d.unknownSlice = consumersBalanceSeries.append(qsTr("Unknown"), unknownConsumption)
d.unknownSlice.color = Style.gray d.unknownSlice.color = Style.gray
d.unknownSlice.borderColor = Style.gray d.unknownSlice.borderColor = Style.gray

View File

@ -50,7 +50,6 @@ SettingsPageBase {
textRole: "name" textRole: "name"
currentIndex: rootMeterProxy.indexOf(rootMeterProxy.getThing(energyManager.rootMeterId)) currentIndex: rootMeterProxy.indexOf(rootMeterProxy.getThing(energyManager.rootMeterId))
Component.onCompleted: print("root meter id:", energyManager.rootMeterId)
onActivated: { onActivated: {
energyManager.setRootMeterId(rootMeterProxy.get(index).id) energyManager.setRootMeterId(rootMeterProxy.get(index).id)
} }

View File

@ -35,13 +35,8 @@ StatsBase {
onConfigChanged: valueAxis.max = 1 onConfigChanged: valueAxis.max = 1
onStartOffsetChanged: { onStartOffsetChanged: {
print("start offset changed", startOffset)
// print("updating because of offset change. fetchingData", powerBalanceLogs.fetchingData, "fetchPending", d.fetchPending)
refresh() refresh()
} }
onStartTimeChanged: {
print("start time changed", startTime)
}
function refresh() { function refresh() {
if (powerBalanceLogs.loadingInhibited) { if (powerBalanceLogs.loadingInhibited) {
@ -156,7 +151,6 @@ StatsBase {
onFetchingDataChanged: { onFetchingDataChanged: {
if (!fetchingData) { if (!fetchingData) {
print("Logs fetched")
d.fetchPending = false d.fetchPending = false
d.refresh() d.refresh()
} }
@ -457,7 +451,6 @@ StatsBase {
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 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) property date timestamp: root.calculateTimestamp(d.config.startTime(), d.config.sampleRate, d.startOffset + idx)
onTimestampChanged: print("idx changed", idx, "timestamp", timestamp)
visible: (mouseArea.containsMouse || mouseArea.tooltipping) && !mouseArea.dragging visible: (mouseArea.containsMouse || mouseArea.tooltipping) && !mouseArea.dragging

View File

@ -33,14 +33,12 @@ Item {
readonly property var startTime: { readonly property var startTime: {
var date = new Date(fixTime(now)); var date = new Date(fixTime(now));
date.setTime(date.getTime() - (range * 60 * 1000)); date.setTime(date.getTime() - (range * 60 * 1000));
print("setting starttime to", date, range)
return date; return date;
} }
readonly property var endTime: { readonly property var endTime: {
var date = new Date(fixTime(now)); var date = new Date(fixTime(now));
date.setTime(date.getTime()) date.setTime(date.getTime())
print("setting endtime to", date, range)
return date; return date;
} }
@ -476,7 +474,6 @@ Item {
var totalTime = d.endTime.getTime() - d.startTime.getTime() var totalTime = d.endTime.getTime() - d.startTime.getTime()
// dragDelta : timeDelta = width : totalTime // dragDelta : timeDelta = width : totalTime
var timeDelta = dragDelta * totalTime / mouseArea.width var timeDelta = dragDelta * totalTime / mouseArea.width
print("dragging", dragDelta, totalTime, mouseArea.width)
d.now = new Date(Math.min(new Date(), new Date(startDatetime.getTime() + timeDelta))) d.now = new Date(Math.min(new Date(), new Date(startDatetime.getTime() + timeDelta)))
} }
@ -485,7 +482,6 @@ Item {
var totalTime = d.endTime.getTime() - d.startTime.getTime() var totalTime = d.endTime.getTime() - d.startTime.getTime()
// pixelDelta : timeDelta = width : totalTime // pixelDelta : timeDelta = width : totalTime
var timeDelta = wheel.pixelDelta.x * totalTime / mouseArea.width var timeDelta = wheel.pixelDelta.x * totalTime / mouseArea.width
print("wheeling", wheel.pixelDelta.x, totalTime, mouseArea.width)
d.now = new Date(Math.min(new Date(), new Date(startDatetime.getTime() - timeDelta))) d.now = new Date(Math.min(new Date(), new Date(startDatetime.getTime() - timeDelta)))
wheelStopTimer.restart() wheelStopTimer.restart()
} }

View File

@ -467,7 +467,6 @@ Item {
var totalTime = d.endTime.getTime() - d.startTime.getTime() var totalTime = d.endTime.getTime() - d.startTime.getTime()
// dragDelta : timeDelta = width : totalTime // dragDelta : timeDelta = width : totalTime
var timeDelta = dragDelta * totalTime / mouseArea.width var timeDelta = dragDelta * totalTime / mouseArea.width
print("dragging", dragDelta, totalTime, mouseArea.width)
d.now = new Date(Math.min(new Date(), new Date(startDatetime.getTime() + timeDelta))) d.now = new Date(Math.min(new Date(), new Date(startDatetime.getTime() + timeDelta)))
} }
@ -476,7 +475,6 @@ Item {
var totalTime = d.endTime.getTime() - d.startTime.getTime() var totalTime = d.endTime.getTime() - d.startTime.getTime()
// pixelDelta : timeDelta = width : totalTime // pixelDelta : timeDelta = width : totalTime
var timeDelta = wheel.pixelDelta.x * totalTime / mouseArea.width var timeDelta = wheel.pixelDelta.x * totalTime / mouseArea.width
print("wheeling", wheel.pixelDelta.x, totalTime, mouseArea.width)
d.now = new Date(Math.min(new Date(), new Date(startDatetime.getTime() - timeDelta))) d.now = new Date(Math.min(new Date(), new Date(startDatetime.getTime() - timeDelta)))
wheelStopTimer.restart() wheelStopTimer.restart()
} }

View File

@ -64,10 +64,16 @@ Item {
function calculateTimestamp(baseTime, sampleRate, offset) { function calculateTimestamp(baseTime, sampleRate, offset) {
var timestamp = new Date(baseTime); var timestamp = new Date(baseTime);
if (sampleRate === EnergyLogs.SampleRate1Month) { if (sampleRate === EnergyLogs.SampleRate1Year) {
timestamp.setMonth(baseTime.getMonth() + offset)
} else if (sampleRate === EnergyLogs.SampleRate1Year) {
timestamp.setFullYear(baseTime.getFullYear() + offset) timestamp.setFullYear(baseTime.getFullYear() + offset)
} else if (sampleRate === EnergyLogs.SampleRate1Month) {
timestamp.setMonth(baseTime.getMonth() + offset)
} else if (sampleRate === EnergyLogs.SampleRate1Week) {
timestamp.setDate(baseTime.getDate() + offset * 7)
} else if (sampleRate === EnergyLogs.SampleRate1Day) {
timestamp.setDate(baseTime.getDate() + offset)
} else if (sampleRate === EnergyLogs.SampleRate1Hour) {
timestamp.setHours(timestamp.getHours() + offset)
} else { } else {
timestamp.setTime(baseTime.getTime() + (sampleRate * 60000 * offset)) timestamp.setTime(baseTime.getTime() + (sampleRate * 60000 * offset))
} }