More fixes

master
Michael Zanetti 2021-11-29 14:33:16 +01:00
parent abe01d3869
commit 97286a5827
2 changed files with 8 additions and 8 deletions

View File

@ -267,13 +267,13 @@ void EnergyLogger::sample()
int frameDuration = frameStart.msecsTo(frameEnd);
qCDebug(dcEnergyExperience()) << "Frame" << i << "duration:" << frameDuration << "value:" << entry.consumption() << "start" << frameStart.toString() << "end" << frameEnd.toString();
if (entry.timestamp() <= sampleStart) {
break;
}
medianConsumption += entry.consumption() * frameDuration;
medianProduction += entry.production() * frameDuration;
medianAcquisition += entry.acquisition() * frameDuration;
medianStorage += entry.storage() * frameDuration;
if (entry.timestamp() < sampleStart) {
break;
}
}
medianConsumption /= sampleStart.msecsTo(sampleEnd);
medianProduction /= sampleStart.msecsTo(sampleEnd);
@ -299,10 +299,10 @@ void EnergyLogger::sample()
QDateTime frameEnd = i == 0 ? sampleEnd : entries.at(i-1).timestamp();
int frameDuration = frameStart.msecsTo(frameEnd);
qCDebug(dcEnergyExperience()) << "Frame" << i << "duration:" << frameDuration << "value:" << entry.currentPower();
if (entry.timestamp() <= sampleStart) {
medianPower += entry.currentPower() * frameDuration;
if (entry.timestamp() < sampleStart) {
break;
}
medianPower += entry.currentPower() * frameDuration;
}
medianPower /= sampleStart.msecsTo(sampleEnd);

View File

@ -147,9 +147,9 @@ void EnergyManagerImpl::watchThing(Thing *thing)
m_totalEnergyProducedCache[thing] = entry.totalProduction();
qCDebug(dcEnergyExperience()) << "Loaded thing power totals for" << thing->name() << "Consumption:" << entry.totalConsumption() << "Production:" << entry.totalProduction();
connect(thing, &Thing::stateValueChanged, this, [=](const StateTypeId &stateTypeId, const QVariant &value){
if (thing->thingClass().getStateType(stateTypeId).name() == "currentPower") {
m_logger->logThingPower(thing->id(), value.toDouble(), thing->state("totalEnergyConsumed").value().toDouble(), thing->state("totalEnergyProduced").value().toDouble());
connect(thing, &Thing::stateValueChanged, this, [=](const StateTypeId &stateTypeId, const QVariant &/*value*/){
if (QStringList({"currentPower", "totalEnergyConsumed", "totalEnergyProduced"}).contains(thing->thingClass().getStateType(stateTypeId).name())) {
m_logger->logThingPower(thing->id(), thing->state("currentPower").value().toDouble(), thing->state("totalEnergyConsumed").value().toDouble(), thing->state("totalEnergyProduced").value().toDouble());
}
});
}