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

View File

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

View File

@ -72,9 +72,7 @@ ChartView {
function updateConsumers() {
root.animationOptions = ChartView.NoAnimation
print("clearing consumers pie chart", consumersBalanceSeries.count)
consumersBalanceSeries.clear();
print("cleared consumers pie chart")
if (engine.thingManager.fetchingData) {
return;
@ -100,7 +98,6 @@ ChartView {
if (root.rootMeter) {
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.color = Style.gray
d.unknownSlice.borderColor = Style.gray

View File

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

View File

@ -35,13 +35,8 @@ StatsBase {
onConfigChanged: valueAxis.max = 1
onStartOffsetChanged: {
print("start offset changed", startOffset)
// print("updating because of offset change. fetchingData", powerBalanceLogs.fetchingData, "fetchPending", d.fetchPending)
refresh()
}
onStartTimeChanged: {
print("start time changed", startTime)
}
function refresh() {
if (powerBalanceLogs.loadingInhibited) {
@ -156,7 +151,6 @@ StatsBase {
onFetchingDataChanged: {
if (!fetchingData) {
print("Logs fetched")
d.fetchPending = false
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 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

View File

@ -33,14 +33,12 @@ Item {
readonly property var startTime: {
var date = new Date(fixTime(now));
date.setTime(date.getTime() - (range * 60 * 1000));
print("setting starttime to", date, range)
return date;
}
readonly property var endTime: {
var date = new Date(fixTime(now));
date.setTime(date.getTime())
print("setting endtime to", date, range)
return date;
}
@ -476,7 +474,6 @@ Item {
var totalTime = d.endTime.getTime() - d.startTime.getTime()
// dragDelta : timeDelta = width : totalTime
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)))
}
@ -485,7 +482,6 @@ Item {
var totalTime = d.endTime.getTime() - d.startTime.getTime()
// pixelDelta : timeDelta = width : totalTime
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)))
wheelStopTimer.restart()
}

View File

@ -467,7 +467,6 @@ Item {
var totalTime = d.endTime.getTime() - d.startTime.getTime()
// dragDelta : timeDelta = width : totalTime
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)))
}
@ -476,7 +475,6 @@ Item {
var totalTime = d.endTime.getTime() - d.startTime.getTime()
// pixelDelta : timeDelta = width : totalTime
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)))
wheelStopTimer.restart()
}

View File

@ -64,10 +64,16 @@ Item {
function calculateTimestamp(baseTime, sampleRate, offset) {
var timestamp = new Date(baseTime);
if (sampleRate === EnergyLogs.SampleRate1Month) {
timestamp.setMonth(baseTime.getMonth() + offset)
} else if (sampleRate === EnergyLogs.SampleRate1Year) {
if (sampleRate === EnergyLogs.SampleRate1Year) {
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 {
timestamp.setTime(baseTime.getTime() + (sampleRate * 60000 * offset))
}