diff --git a/libnymea-app/energy/energylogs.cpp b/libnymea-app/energy/energylogs.cpp index 04be6629..86da4a73 100644 --- a/libnymea-app/energy/energylogs.cpp +++ b/libnymea-app/energy/energylogs.cpp @@ -200,6 +200,11 @@ EnergyLogEntry *EnergyLogs::find(const QDateTime ×tamp) return m_list.at(index); } +QList EnergyLogs::entries() const +{ + return m_list; +} + void EnergyLogs::appendEntry(EnergyLogEntry *entry, double minValue, double maxValue) { entry->setParent(this); diff --git a/libnymea-app/energy/energylogs.h b/libnymea-app/energy/energylogs.h index f330c679..dc3c85fc 100644 --- a/libnymea-app/energy/energylogs.h +++ b/libnymea-app/energy/energylogs.h @@ -86,6 +86,7 @@ public: Q_INVOKABLE EnergyLogEntry* get(int index) const; Q_INVOKABLE EnergyLogEntry* find(const QDateTime ×tamp); + Q_INVOKABLE QList entries() const; public slots: void clear(); diff --git a/libnymea-app/energy/thingpowerlogs.cpp b/libnymea-app/energy/thingpowerlogs.cpp index 61161895..81bde2d5 100644 --- a/libnymea-app/energy/thingpowerlogs.cpp +++ b/libnymea-app/energy/thingpowerlogs.cpp @@ -282,7 +282,9 @@ void ThingPowerLogsLoader::addThingId(const QUuid &thingId) void ThingPowerLogsLoader::fetchLogs() { + qCDebug(dcEnergyLogs()) << "dafuq!"; if (!m_engine || m_engine->jsonRpcClient()->experiences().value("Energy").toString() < "1.0") { + qCDebug(dcEnergyLogs()) << "Not fetching logs" << m_engine; return; } @@ -335,8 +337,9 @@ void ThingPowerLogsLoader::fetchLogs() } m_fetchingData = true; - fetchingDataChanged(); + emit fetchingDataChanged(); + qCDebug(dcEnergyLogs()) << "Fetching logs"; m_engine->jsonRpcClient()->sendCommand("Energy.GetThingPowerLogs", params, this, "getLogsResponse"); } diff --git a/nymea-app/ui/mainviews/energy/ConsumerStats.qml b/nymea-app/ui/mainviews/energy/ConsumerStats.qml index 1e21dc99..56f14de4 100644 --- a/nymea-app/ui/mainviews/energy/ConsumerStats.qml +++ b/nymea-app/ui/mainviews/energy/ConsumerStats.qml @@ -152,7 +152,7 @@ StatsBase { barSet.borderWith = 0 } Component.onDestruction: { - barSeries.remove(barset) + barSeries.remove(barSet) } } } diff --git a/nymea-app/ui/mainviews/energy/ConsumersHistory.qml b/nymea-app/ui/mainviews/energy/ConsumersHistory.qml index 89a7ccf1..ac24a059 100644 --- a/nymea-app/ui/mainviews/energy/ConsumersHistory.qml +++ b/nymea-app/ui/mainviews/energy/ConsumersHistory.qml @@ -89,6 +89,17 @@ Item { } return timestamp } + + function update() { + if (!engine.thingManager.fetchingData && !engine.tagsManager.busy && consumersRepeater.count == consumers.count) { + logsLoader.fetchLogs(); + } + } + } + + Connections { + target: engine.tagsManager + onBusyChanged: d.update() } Component { @@ -138,7 +149,7 @@ Item { onTabSelected: { d.now = new Date() powerBalanceLogs.fetchLogs() - logsLoader.fetchLogs(); + d.update() } } @@ -327,9 +338,16 @@ Item { id: consumersRepeater model: consumers.count + Component.onCompleted: { + if (count != 0) { + d.update() + } + } + onCountChanged: { + print("***** count changed", count, "total:", consumers.count) if (count == consumers.count) { - logsLoader.fetchLogs() + d.update(); } } @@ -625,7 +643,7 @@ Item { } Repeater { - model: consumers + model: consumersRepeater.count delegate: RowLayout { id: consumerToolTipDelegate Rectangle { @@ -640,7 +658,7 @@ Item { property double rawValue: entry ? entry.currentPower : 0 property double displayValue: rawValue >= 1000 ? rawValue / 1000 : rawValue property string unit: rawValue >= 1000 ? "kW" : "W" - text: "%1: %2 %3".arg(model.name).arg(displayValue.toFixed(2)).arg(unit) + text: "%1: %2 %3".arg(consumersRepeater.itemAt(index).thing.name).arg(displayValue.toFixed(2)).arg(unit) font: Style.extraSmallFont } }