Fix energy chargs when DST chages
This commit is contained in:
parent
3418a86804
commit
b9887d33d6
@ -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),
|
||||||
|
|||||||
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user