Fronius: Update S0 Meter detection and improve debugging
This commit is contained in:
parent
c348e099d5
commit
533d38377c
@ -212,7 +212,7 @@ void FroniusSolarConnection::sendNextRequest()
|
|||||||
|
|
||||||
m_currentReply = m_requestQueue.dequeue();
|
m_currentReply = m_requestQueue.dequeue();
|
||||||
|
|
||||||
// qCDebug(dcFronius()) << "Connection: Sending request" << m_currentReply->request().url().toString();
|
qCDebug(dcFronius()) << "Connection: Sending request" << m_currentReply->request().url().toString();
|
||||||
m_currentReply->setNetworkReply(m_networkManager->get(m_currentReply->request()));
|
m_currentReply->setNetworkReply(m_networkManager->get(m_currentReply->request()));
|
||||||
|
|
||||||
connect(m_currentReply, &FroniusNetworkReply::finished, this, [=](){
|
connect(m_currentReply, &FroniusNetworkReply::finished, this, [=](){
|
||||||
|
|||||||
@ -388,7 +388,7 @@ void IntegrationPluginFronius::refreshConnection(FroniusSolarConnection *connect
|
|||||||
|
|
||||||
// Note: some inverters have a S0 meter connected, which measures the load, not the grid power and also provides only the current power and no additionl information
|
// Note: some inverters have a S0 meter connected, which measures the load, not the grid power and also provides only the current power and no additionl information
|
||||||
// Since we assume a meter on the grid root of the household, we don't update the meter here, but in the updatePowerFlow method.
|
// Since we assume a meter on the grid root of the household, we don't update the meter here, but in the updatePowerFlow method.
|
||||||
if (model.toLower().contains("s0") && !dataMap.contains("EnergyReal_WAC_Sum_Produced") && !dataMap.contains("EnergyReal_WAC_Sum_Consumed")) {
|
if (model.toLower().contains("s0")) {
|
||||||
qCDebug(dcFronius()) << "Detected weak meter on inverter (S0). Using the plant overview grid power as meter information for this one.";
|
qCDebug(dcFronius()) << "Detected weak meter on inverter (S0). Using the plant overview grid power as meter information for this one.";
|
||||||
m_weakMeterConnections[connection] = true;
|
m_weakMeterConnections[connection] = true;
|
||||||
} else {
|
} else {
|
||||||
@ -544,8 +544,8 @@ void IntegrationPluginFronius::updatePowerFlow(FroniusSolarConnection *connectio
|
|||||||
if (availableMeters.count() == 1 && m_weakMeterConnections.value(connection)) {
|
if (availableMeters.count() == 1 && m_weakMeterConnections.value(connection)) {
|
||||||
Thing *meterThing = availableMeters.first();
|
Thing *meterThing = availableMeters.first();
|
||||||
double gridPower = dataMap.value("Site").toMap().value("P_Grid").toDouble();
|
double gridPower = dataMap.value("Site").toMap().value("P_Grid").toDouble();
|
||||||
meterThing->setStateValue(meterCurrentPowerStateTypeId, gridPower);
|
|
||||||
qCDebug(dcFronius()) << "Using power flow grid power for the weak S0 meter" << gridPower << "House consumption" << dataMap.value("Site").toMap().value("P_Load").toDouble();
|
qCDebug(dcFronius()) << "Using power flow grid power for the weak S0 meter" << gridPower << "House consumption" << dataMap.value("Site").toMap().value("P_Load").toDouble();
|
||||||
|
meterThing->setStateValue(meterCurrentPowerStateTypeId, gridPower);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -657,7 +657,7 @@ void IntegrationPluginFronius::updateMeters(FroniusSolarConnection *connection)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Note: maybe we find a better way to detect a weak meter, for now, we only knwo it does not provide any additional informaiton and has a S0 in the name
|
// Note: maybe we find a better way to detect a weak meter, for now, we only knwo it does not provide any additional informaiton and has a S0 in the name
|
||||||
if (model.toLower().contains("s0") && !dataMap.contains("EnergyReal_WAC_Sum_Produced") && !dataMap.contains("EnergyReal_WAC_Sum_Consumed")) {
|
if (model.toLower().contains("s0")) {
|
||||||
qCDebug(dcFronius()) << "Ignoring this meter since there are not enought information available (S0). Using the plant overview grid power as meter information.";
|
qCDebug(dcFronius()) << "Ignoring this meter since there are not enought information available (S0). Using the plant overview grid power as meter information.";
|
||||||
m_weakMeterConnections[connection] = true;
|
m_weakMeterConnections[connection] = true;
|
||||||
return;
|
return;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user