added venetian blind angle logic

pull/1/head
bernhard.trinnes 2020-07-04 13:24:32 +02:00
parent f3a6c961b4
commit 234bb155ff
1 changed files with 17 additions and 16 deletions

View File

@ -116,12 +116,12 @@ void IntegrationPluginGenericThings::setupThing(ThingSetupInfo *info)
thing->setStateValue(venetianBlindPercentageStateTypeId, currentPercentage); thing->setStateValue(venetianBlindPercentageStateTypeId, currentPercentage);
} }
} else if (thing->stateValue(venetianBlindStatusStateTypeId).toString() == "Opening") { } else if (thing->stateValue(venetianBlindStatusStateTypeId).toString() == "Opening") {
currentPercentage--;
if (currentPercentage == 0) { if (currentPercentage == 0) {
setBlindState(BlindStateStopped, thing); setBlindState(BlindStateStopped, thing);
qCDebug(dcGenericThings()) << "Venetian blind is opened, stopping timer"; qCDebug(dcGenericThings()) << "Venetian blind is opened, stopping timer";
} else { } else {
currentPercentage++; currentPercentage--;
thing->setStateValue(venetianBlindPercentageStateTypeId, currentPercentage); thing->setStateValue(venetianBlindPercentageStateTypeId, currentPercentage);
} }
} else { } else {
@ -153,7 +153,7 @@ void IntegrationPluginGenericThings::setupThing(ThingSetupInfo *info)
m_venetianBlindAngleTimer.value(thing)->stop(); m_venetianBlindAngleTimer.value(thing)->stop();
qCWarning(dcGenericThings()) << "Venetian blind overshoot angle boundaries"; qCWarning(dcGenericThings()) << "Venetian blind overshoot angle boundaries";
} }
thing->setStateValue(venetianBlindPercentageStateTypeId, currentAngle); thing->setStateValue(venetianBlindAngleStateTypeId, currentAngle);
} else if (thing->stateValue(venetianBlindStatusStateTypeId).toString() == "Opening") { } else if (thing->stateValue(venetianBlindStatusStateTypeId).toString() == "Opening") {
if (currentAngle > -90) { if (currentAngle > -90) {
@ -165,7 +165,7 @@ void IntegrationPluginGenericThings::setupThing(ThingSetupInfo *info)
m_venetianBlindAngleTimer.value(thing)->stop(); m_venetianBlindAngleTimer.value(thing)->stop();
qCWarning(dcGenericThings()) << "Venetian blind overshoot angle boundaries"; qCWarning(dcGenericThings()) << "Venetian blind overshoot angle boundaries";
} }
thing->setStateValue(venetianBlindPercentageStateTypeId, currentAngle); thing->setStateValue(venetianBlindAngleStateTypeId, currentAngle);
} }
if (m_venetianBlindTargetAngle.contains(thing)) { if (m_venetianBlindTargetAngle.contains(thing)) {
@ -476,6 +476,7 @@ void IntegrationPluginGenericThings::thingRemoved(Thing *thing)
m_extendedBlindPercentageTimer.take(thing)->deleteLater(); m_extendedBlindPercentageTimer.take(thing)->deleteLater();
m_extendedBlindTargetPercentage.remove(thing); m_extendedBlindTargetPercentage.remove(thing);
m_venetianBlindAngleTimer.take(thing)->deleteLater(); m_venetianBlindAngleTimer.take(thing)->deleteLater();
m_venetianBlindTargetAngle.remove(thing);
} }
} }