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

@ -113,15 +113,15 @@ void IntegrationPluginGenericThings::setupThing(ThingSetupInfo *info)
qCWarning(dcGenericThings()) << "Venetian blind overshoot 100 percent"; qCWarning(dcGenericThings()) << "Venetian blind overshoot 100 percent";
} else { } else {
currentPercentage++; currentPercentage++;
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)) {
@ -221,7 +221,7 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
} }
info->finish(Thing::ThingErrorNoError); info->finish(Thing::ThingErrorNoError);
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else if (thing->thingClassId() == blindThingClassId ) { } else if (thing->thingClassId() == blindThingClassId ) {
if (action.actionTypeId() == blindOpenActionTypeId) { if (action.actionTypeId() == blindOpenActionTypeId) {
@ -370,28 +370,28 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
} }
info->finish(Thing::ThingErrorNoError); info->finish(Thing::ThingErrorNoError);
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else if (thing->thingClassId() == socketThingClassId) { } else if (thing->thingClassId() == socketThingClassId) {
if (action.actionTypeId() == socketPowerActionTypeId) { if (action.actionTypeId() == socketPowerActionTypeId) {
thing->setStateValue(socketPowerStateTypeId, action.param(socketPowerActionPowerParamTypeId).value()); thing->setStateValue(socketPowerStateTypeId, action.param(socketPowerActionPowerParamTypeId).value());
return info->finish(Thing::ThingErrorNoError); return info->finish(Thing::ThingErrorNoError);
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else if (thing->thingClassId() == lightThingClassId) { } else if (thing->thingClassId() == lightThingClassId) {
if (action.actionTypeId() == lightPowerActionTypeId) { if (action.actionTypeId() == lightPowerActionTypeId) {
thing->setStateValue(lightPowerStateTypeId, action.param(lightPowerActionPowerParamTypeId).value()); thing->setStateValue(lightPowerStateTypeId, action.param(lightPowerActionPowerParamTypeId).value());
return info->finish(Thing::ThingErrorNoError); return info->finish(Thing::ThingErrorNoError);
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else if (thing->thingClassId() == heatingThingClassId) { } else if (thing->thingClassId() == heatingThingClassId) {
if (action.actionTypeId() == heatingPowerActionTypeId) { if (action.actionTypeId() == heatingPowerActionTypeId) {
thing->setStateValue(heatingPowerStateTypeId, action.param(heatingPowerActionPowerParamTypeId).value()); thing->setStateValue(heatingPowerStateTypeId, action.param(heatingPowerActionPowerParamTypeId).value());
return info->finish(Thing::ThingErrorNoError); return info->finish(Thing::ThingErrorNoError);
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else if (thing->thingClassId() == powerSwitchThingClassId) { } else if (thing->thingClassId() == powerSwitchThingClassId) {
if (action.actionTypeId() == powerSwitchPowerActionTypeId) { if (action.actionTypeId() == powerSwitchPowerActionTypeId) {
@ -399,7 +399,7 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
info->finish(Thing::ThingErrorNoError); info->finish(Thing::ThingErrorNoError);
return; return;
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else if (thing->thingClassId() == irrigationThingClassId) { } else if (thing->thingClassId() == irrigationThingClassId) {
if (action.actionTypeId() == irrigationPowerActionTypeId) { if (action.actionTypeId() == irrigationPowerActionTypeId) {
@ -407,7 +407,7 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
info->finish(Thing::ThingErrorNoError); info->finish(Thing::ThingErrorNoError);
return; return;
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else if (thing->thingClassId() == ventilationThingClassId) { } else if (thing->thingClassId() == ventilationThingClassId) {
if (action.actionTypeId() == ventilationPowerActionTypeId) { if (action.actionTypeId() == ventilationPowerActionTypeId) {
@ -415,7 +415,7 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
info->finish(Thing::ThingErrorNoError); info->finish(Thing::ThingErrorNoError);
return; return;
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else if (thing->thingClassId() == temperatureSensorThingClassId) { } else if (thing->thingClassId() == temperatureSensorThingClassId) {
if (action.actionTypeId() == temperatureSensorInputActionTypeId) { if (action.actionTypeId() == temperatureSensorInputActionTypeId) {
@ -430,7 +430,7 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
info->finish(Thing::ThingErrorNoError); info->finish(Thing::ThingErrorNoError);
return; return;
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else if (thing->thingClassId() == humiditySensorThingClassId) { } else if (thing->thingClassId() == humiditySensorThingClassId) {
if (action.actionTypeId() == humiditySensorInputActionTypeId) { if (action.actionTypeId() == humiditySensorInputActionTypeId) {
@ -445,7 +445,7 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
info->finish(Thing::ThingErrorNoError); info->finish(Thing::ThingErrorNoError);
return; return;
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else if (thing->thingClassId() == moistureSensorThingClassId) { } else if (thing->thingClassId() == moistureSensorThingClassId) {
if (action.actionTypeId() == moistureSensorInputActionTypeId) { if (action.actionTypeId() == moistureSensorInputActionTypeId) {
@ -460,7 +460,7 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
info->finish(Thing::ThingErrorNoError); info->finish(Thing::ThingErrorNoError);
return; return;
} else { } else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8()); Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} }
} else { } else {
Q_ASSERT_X(false, "setupThing", QString("Unhandled thingClassId: %1").arg(thing->thingClassId().toString()).toUtf8()); Q_ASSERT_X(false, "setupThing", QString("Unhandled thingClassId: %1").arg(thing->thingClassId().toString()).toUtf8());
@ -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);
} }
} }