mirror of
https://github.com/nymea/nymea-plugins.git
synced 2026-07-15 00:22:26 +02:00
Some fixes
This commit is contained in:
parent
9c87f4c470
commit
5954d1b645
@ -671,6 +671,10 @@ void IntegrationPluginOwlet::executeAction(ThingActionInfo *info)
|
||||
{
|
||||
if (info->thing()->thingClassId() == digitalOutputThingClassId) {
|
||||
OwletClient *client = m_clients.value(info->thing());
|
||||
if (!client->isConnected()) {
|
||||
info->finish(Thing::ThingErrorHardwareNotAvailable, QT_TR_NOOP("Owlet is not connected."));
|
||||
return;
|
||||
}
|
||||
QVariantMap params;
|
||||
params.insert("id", info->thing()->paramValue(digitalOutputThingPinParamTypeId).toInt());
|
||||
params.insert("power", info->action().paramValue(digitalOutputPowerActionPowerParamTypeId).toBool());
|
||||
@ -689,12 +693,19 @@ void IntegrationPluginOwlet::executeAction(ThingActionInfo *info)
|
||||
info->finish(Thing::ThingErrorHardwareFailure);
|
||||
}
|
||||
});
|
||||
|
||||
connect(client, &OwletClient::disconnected, info, [=](){
|
||||
qCDebug(dcOwlet()) << "Owlet disconnected during pending action";
|
||||
info->finish(Thing::ThingErrorHardwareFailure);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (info->thing()->thingClassId() == ws2812ThingClassId) {
|
||||
OwletClient *client = m_clients.value(info->thing());
|
||||
if (!client->isConnected()) {
|
||||
info->finish(Thing::ThingErrorHardwareNotAvailable, QT_TR_NOOP("Owlet is not connected."));
|
||||
return;
|
||||
}
|
||||
QVariantMap params;
|
||||
params.insert("id", info->thing()->paramValue(ws2812ThingPinParamTypeId).toUInt());
|
||||
|
||||
@ -721,11 +732,17 @@ void IntegrationPluginOwlet::executeAction(ThingActionInfo *info)
|
||||
qCDebug(dcOwlet()) << "reply from owlet:" << params;
|
||||
QString error = params.value("error").toString();
|
||||
if (error == "GPIOErrorNoError") {
|
||||
info->thing()->setStateValue(info->action().actionTypeId(), info->action().paramValue(info->action().actionTypeId()));
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
info->finish(Thing::ThingErrorHardwareFailure);
|
||||
}
|
||||
});
|
||||
connect(client, &OwletClient::disconnected, info, [=](){
|
||||
qCDebug(dcOwlet()) << "Owlet disconnected during pending action";
|
||||
info->finish(Thing::ThingErrorHardwareFailure);
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -22,6 +22,11 @@ OwletClient::OwletClient(OwletTransport *transport, QObject *parent) :
|
||||
});
|
||||
}
|
||||
|
||||
bool OwletClient::isConnected() const
|
||||
{
|
||||
return m_transport->connected();
|
||||
}
|
||||
|
||||
OwletTransport *OwletClient::transport() const
|
||||
{
|
||||
return m_transport;
|
||||
|
||||
@ -13,6 +13,8 @@ class OwletClient : public QObject
|
||||
public:
|
||||
explicit OwletClient(OwletTransport *transport, QObject *parent = nullptr);
|
||||
|
||||
bool isConnected() const;
|
||||
|
||||
OwletTransport *transport() const;
|
||||
|
||||
int sendCommand(const QString &method, const QVariantMap ¶ms = QVariantMap());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user