fixed browsing
This commit is contained in:
parent
ac9d3804c5
commit
ad9c893144
@ -113,7 +113,8 @@ bool HomeConnect::checkStatusCode(int status, const QByteArray &payload)
|
||||
QJsonParseError error;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(payload, &error);
|
||||
if (error.error != QJsonParseError::NoError) {
|
||||
qCWarning(dcHomeConnect()) << "Received invalide JSON object";
|
||||
qCWarning(dcHomeConnect()) << "Received invalide JSON object" << payload;
|
||||
qCWarning(dcHomeConnect()) << "Status" << status;
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -290,6 +291,38 @@ void HomeConnect::getHomeAppliances()
|
||||
});
|
||||
}
|
||||
|
||||
void HomeConnect::getPrograms(const QString &haId)
|
||||
{
|
||||
QUrl url = QUrl(m_baseControlUrl+"/api/homeappliances/"+haId+"/programs");
|
||||
|
||||
QNetworkRequest request(url);
|
||||
request.setRawHeader("Authorization", "Bearer "+m_accessToken);
|
||||
request.setRawHeader("Accept-Language", "en-US");
|
||||
request.setRawHeader("accept", "application/vnd.bsh.sdk.v1+json");
|
||||
|
||||
QNetworkReply *reply = m_networkManager->get(request);
|
||||
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
|
||||
connect(reply, &QNetworkReply::finished, this, [this, haId, reply]{
|
||||
|
||||
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
QByteArray rawData = reply->readAll();
|
||||
checkStatusCode(status, rawData);
|
||||
|
||||
QVariantMap dataMap = QJsonDocument::fromJson(rawData).toVariant().toMap().value("data").toMap();
|
||||
|
||||
qCDebug(dcHomeConnect()) << "Get programs available" << rawData;
|
||||
QVariantList programList = dataMap.value("programs").toList();
|
||||
QStringList programs;
|
||||
Q_FOREACH(QVariant var, programList) {
|
||||
if (var.toMap().contains("key")) {
|
||||
programs.append(var.toMap().value("key").toString());
|
||||
}
|
||||
}
|
||||
if (!programs.isEmpty())
|
||||
emit receivedPrograms(haId, programs);
|
||||
});
|
||||
}
|
||||
|
||||
void HomeConnect::getProgramsAvailable(const QString &haId)
|
||||
{
|
||||
QUrl url = QUrl(m_baseControlUrl+"/api/homeappliances/"+haId+"/programs/available");
|
||||
@ -308,7 +341,8 @@ void HomeConnect::getProgramsAvailable(const QString &haId)
|
||||
checkStatusCode(status, rawData);
|
||||
|
||||
QVariantMap dataMap = QJsonDocument::fromJson(rawData).toVariant().toMap().value("data").toMap();
|
||||
qCDebug(dcHomeConnect()) << "Get programs available" << dataMap;
|
||||
|
||||
qCDebug(dcHomeConnect()) << "Get programs available" << rawData;
|
||||
QVariantList programList = dataMap.value("programs").toList();
|
||||
QStringList programs;
|
||||
Q_FOREACH(QVariant var, programList) {
|
||||
@ -340,7 +374,7 @@ void HomeConnect::getProgramsActive(const QString &haId)
|
||||
|
||||
QVariantMap dataMap = QJsonDocument::fromJson(rawData).toVariant().toMap().value("data").toMap();
|
||||
|
||||
qCDebug(dcHomeConnect()) << "Get programs active" << dataMap;
|
||||
qCDebug(dcHomeConnect()) << "Get programs active" << rawData;
|
||||
QString key = dataMap.value("key").toString();
|
||||
QHash<QString, QVariant> options;
|
||||
Q_FOREACH(QVariant var, dataMap.value("options").toList()) {
|
||||
@ -368,7 +402,7 @@ void HomeConnect::getProgramsSelected(const QString &haId)
|
||||
checkStatusCode(status, rawData);
|
||||
|
||||
QVariantMap dataMap = QJsonDocument::fromJson(rawData).toVariant().toMap().value("data").toMap();
|
||||
qCDebug(dcHomeConnect()) << "Get program selected" << dataMap;
|
||||
qCDebug(dcHomeConnect()) << "Get program selected" << rawData;
|
||||
QString key = dataMap.value("key").toString();
|
||||
QHash<QString, QVariant> options;
|
||||
Q_FOREACH(QVariant var, dataMap.value("options").toList()) {
|
||||
|
||||
@ -113,6 +113,7 @@ public:
|
||||
void getHomeAppliance(const QString &haid); //Get a specfic home appliances which are paired with the logged-in user account.
|
||||
|
||||
// PROGRAMS
|
||||
void getPrograms(const QString &haId); //Get all programs of a given home appliance
|
||||
void getProgramsAvailable(const QString &haId); //Get all programs which are currently available on the given home appliance
|
||||
void getProgramsActive(const QString &haId); //Get program which is currently executed
|
||||
void getProgramsSelected(const QString &haId); //Get the program which is currently selected
|
||||
@ -156,6 +157,7 @@ signals:
|
||||
|
||||
void receivedHomeAppliances(const QList<HomeAppliance> &appliances);
|
||||
void receivedStatusList(const QString &haId, const QHash<QString, QVariant> &statusList);
|
||||
void receivedPrograms(const QString &haId, const QStringList &programs);
|
||||
void receivedAvailablePrograms(const QString &haId, const QStringList &programs);
|
||||
void receivedSettings(const QString &haId, const QHash<QString, QVariant> &settings);
|
||||
void receivedActiveProgram(const QString &haId, const QString &key, const QHash<QString, QVariant> &options);
|
||||
|
||||
@ -43,7 +43,7 @@ IntegrationPluginHomeConnect::IntegrationPluginHomeConnect()
|
||||
m_idParamTypeIds.insert(ovenThingClassId, ovenThingIdParamTypeId);
|
||||
m_idParamTypeIds.insert(fridgeThingClassId, fridgeThingIdParamTypeId);
|
||||
m_idParamTypeIds.insert(dryerThingClassId, dryerThingIdParamTypeId);
|
||||
m_idParamTypeIds.insert(coffeMakerThingClassId, coffeMakerThingIdParamTypeId);
|
||||
m_idParamTypeIds.insert(coffeeMakerThingClassId, coffeeMakerThingIdParamTypeId);
|
||||
m_idParamTypeIds.insert(dishwasherThingClassId, dishwasherThingIdParamTypeId);
|
||||
m_idParamTypeIds.insert(washerThingClassId, washerThingIdParamTypeId);
|
||||
m_idParamTypeIds.insert(cookTopThingClassId, cookTopThingIdParamTypeId);
|
||||
@ -53,7 +53,7 @@ IntegrationPluginHomeConnect::IntegrationPluginHomeConnect()
|
||||
m_connectedStateTypeIds.insert(ovenThingClassId, ovenConnectedStateTypeId);
|
||||
m_connectedStateTypeIds.insert(fridgeThingClassId, fridgeConnectedStateTypeId);
|
||||
m_connectedStateTypeIds.insert(dryerThingClassId, dryerConnectedStateTypeId);
|
||||
m_connectedStateTypeIds.insert(coffeMakerThingClassId, coffeMakerConnectedStateTypeId);
|
||||
m_connectedStateTypeIds.insert(coffeeMakerThingClassId, coffeeMakerConnectedStateTypeId);
|
||||
m_connectedStateTypeIds.insert(dishwasherThingClassId, dishwasherConnectedStateTypeId);
|
||||
m_connectedStateTypeIds.insert(washerThingClassId, washerConnectedStateTypeId);
|
||||
m_connectedStateTypeIds.insert(cookTopThingClassId, cookTopConnectedStateTypeId);
|
||||
@ -63,7 +63,7 @@ IntegrationPluginHomeConnect::IntegrationPluginHomeConnect()
|
||||
m_localControlStateTypeIds.insert(ovenThingClassId, ovenLocalControlStateStateTypeId);
|
||||
//m_localControlStateTypeIds.insert(fridgeThingClassId, fridgeLocalControlStateStateTypeId);
|
||||
//m_localControlStateTypeIds.insert(dryerThingClassId, dryerLocalControlStateTypeId);
|
||||
m_localControlStateTypeIds.insert(coffeMakerThingClassId, coffeMakerLocalControlStateStateTypeId);
|
||||
m_localControlStateTypeIds.insert(coffeeMakerThingClassId, coffeeMakerLocalControlStateStateTypeId);
|
||||
//m_localControlStateTypeIds.insert(dishwasherThingClassId, dishwasherLocalControlStateStateTypeId);
|
||||
m_localControlStateTypeIds.insert(washerThingClassId, washerLocalControlStateStateTypeId);
|
||||
//m_localControlStateTypeIds.insert(cookTopThingClassId, cookTopLocalControlStateStateTypeId);
|
||||
@ -73,7 +73,7 @@ IntegrationPluginHomeConnect::IntegrationPluginHomeConnect()
|
||||
m_remoteStartAllowanceStateTypeIds.insert(ovenThingClassId, ovenRemoteStartAllowanceStateStateTypeId);
|
||||
//m_remoteStartAllowanceStateTypeIds.insert(fridgeThingClassId, fridgeRemoteStartAllowanceStateStateTypeId);
|
||||
m_remoteStartAllowanceStateTypeIds.insert(dryerThingClassId, dryerRemoteStartAllowanceStateStateTypeId);
|
||||
m_remoteStartAllowanceStateTypeIds.insert(coffeMakerThingClassId, coffeMakerRemoteStartAllowanceStateStateTypeId);
|
||||
m_remoteStartAllowanceStateTypeIds.insert(coffeeMakerThingClassId, coffeeMakerRemoteStartAllowanceStateStateTypeId);
|
||||
m_remoteStartAllowanceStateTypeIds.insert(dishwasherThingClassId, dishwasherRemoteStartAllowanceStateStateTypeId);
|
||||
m_remoteStartAllowanceStateTypeIds.insert(washerThingClassId, washerRemoteStartAllowanceStateStateTypeId);
|
||||
//m_remoteStartAllowanceStateTypeIds.insert(cookTopThingClassId, cookTopRemoteStartAllowanceStateStateTypeId);
|
||||
@ -83,27 +83,47 @@ IntegrationPluginHomeConnect::IntegrationPluginHomeConnect()
|
||||
m_remoteControlActivationStateTypeIds.insert(ovenThingClassId, ovenRemoteControlActivationStateStateTypeId);
|
||||
//m_remoteControlActivationStateTypeIds.insert(fridgeThingClassId, fridgeRemoteControlActivationStateStateTypeId);
|
||||
m_remoteControlActivationStateTypeIds.insert(dryerThingClassId, dryerRemoteControlActivationStateStateTypeId);
|
||||
//m_remoteControlActivationStateTypeIds.insert(coffeMakerThingClassId, coffeMakerRemoteControlActivationStateStateTypeId);
|
||||
//m_remoteControlActivationStateTypeIds.insert(coffeeMakerThingClassId, coffeeMakerRemoteControlActivationStateStateTypeId);
|
||||
m_remoteControlActivationStateTypeIds.insert(dishwasherThingClassId, dishwasherRemoteControlActivationStateStateTypeId);
|
||||
m_remoteControlActivationStateTypeIds.insert(washerThingClassId, washerRemoteControlActivationStateStateTypeId);
|
||||
//m_remoteControlActivationStateTypeIds.insert(cookTopThingClassId, cookTopRemoteControlActivationStateStateTypeId);
|
||||
//m_remoteControlActivationStateTypeIds.insert(cleaningRobotThingClassId, cleaningRobotRemoteControlActivationStateStateTypeId);
|
||||
//m_remoteControlActivationStateTypeIds.insert(hoodThingClassId, hoodRemoteControlActivationStateStateTypeId);
|
||||
|
||||
m_doorStateTypeIds.insert(dishwasherThingClassId, dishwasherDoorStateEventTypeId);
|
||||
m_doorStateTypeIds.insert(washerThingClassId, washerDoorStateEventTypeId);
|
||||
m_doorStateTypeIds.insert(dryerThingClassId, dryerDoorStateEventTypeId);
|
||||
m_doorStateTypeIds.insert(ovenThingClassId, ovenDoorStateEventTypeId);
|
||||
m_doorStateTypeIds.insert(dishwasherThingClassId, dishwasherDoorStateStateTypeId);
|
||||
m_doorStateTypeIds.insert(washerThingClassId, washerDoorStateStateTypeId);
|
||||
m_doorStateTypeIds.insert(dryerThingClassId, dryerDoorStateStateTypeId);
|
||||
m_doorStateTypeIds.insert(ovenThingClassId, ovenDoorStateStateTypeId);
|
||||
|
||||
m_operationStateTypeIds.insert(ovenThingClassId, ovenOperationStateEventTypeId);
|
||||
//m_operationStateTypeIds.insert(fridgeThingClassId, fridgeOperationStateEventTypeId);
|
||||
m_operationStateTypeIds.insert(dryerThingClassId, dryerOperationStateEventTypeId);
|
||||
m_operationStateTypeIds.insert(coffeMakerThingClassId, coffeMakerOperationStateEventTypeId);
|
||||
m_operationStateTypeIds.insert(dishwasherThingClassId, dishwasherOperationStateEventTypeId);
|
||||
m_operationStateTypeIds.insert(washerThingClassId, washerOperationStateEventTypeId);
|
||||
//m_operationStateTypeIds.insert(cookTopThingClassId, cookTopOperationStateEventTypeId);
|
||||
//m_operationStateTypeIds.insert(cleaningRobotThingClassId, cleaningRobotOperationStateEventTypeId);
|
||||
//m_operationStateTypeIds.insert(hoodThingClassId, hoodOperationStateEventTypeId);
|
||||
m_operationStateTypeIds.insert(ovenThingClassId, ovenOperationStateStateTypeId);
|
||||
//m_operationStateTypeIds.insert(fridgeThingClassId, fridgeOperationStateStateTypeId);
|
||||
m_operationStateTypeIds.insert(dryerThingClassId, dryerOperationStateStateTypeId);
|
||||
m_operationStateTypeIds.insert(coffeeMakerThingClassId, coffeeMakerOperationStateStateTypeId);
|
||||
m_operationStateTypeIds.insert(dishwasherThingClassId, dishwasherOperationStateStateTypeId);
|
||||
m_operationStateTypeIds.insert(washerThingClassId, washerOperationStateStateTypeId);
|
||||
//m_operationStateTypeIds.insert(cookTopThingClassId, cookTopOperationStateStateTypeId);
|
||||
//m_operationStateTypeIds.insert(cleaningRobotThingClassId, cleaningRobotOperationStateStateTypeId);
|
||||
//m_operationStateTypeIds.insert(hoodThingClassId, hoodOperationStateStateTypeId);
|
||||
|
||||
m_selectedProgramStateTypeIds.insert(ovenThingClassId, ovenSelectedProgramStateTypeId);
|
||||
//m_selectedProgramStateTypeIds.insert(fridgeThingClassId, fridgeSelectedProgramStateTypeId);
|
||||
m_selectedProgramStateTypeIds.insert(dryerThingClassId, dryerSelectedProgramStateTypeId);
|
||||
m_selectedProgramStateTypeIds.insert(coffeeMakerThingClassId, coffeeMakerSelectedProgramStateTypeId);
|
||||
m_selectedProgramStateTypeIds.insert(dishwasherThingClassId, dishwasherSelectedProgramStateTypeId);
|
||||
m_selectedProgramStateTypeIds.insert(washerThingClassId, washerSelectedProgramStateTypeId);
|
||||
//m_selectedProgramStateTypeIds.insert(cookTopThingClassId, cookTopSelectedProgramStateTypeId);
|
||||
//m_selectedProgramStateTypeIds.insert(cleaningRobotThingClassId, cleaningRobotSelectedProgramStateTypeId);
|
||||
//m_selectedProgramStateTypeIds.insert(hoodThingClassId, hoodSelectedProgramStateTypeId);
|
||||
|
||||
m_activeProgramStateTypeIds.insert(ovenThingClassId, ovenActiveProgramStateTypeId);
|
||||
//m_activeProgramStateTypeIds.insert(fridgeThingClassId, fridgeActiveProgramStateTypeId);
|
||||
m_activeProgramStateTypeIds.insert(dryerThingClassId, dryerActiveProgramStateTypeId);
|
||||
m_activeProgramStateTypeIds.insert(coffeeMakerThingClassId, coffeeMakerActiveProgramStateTypeId);
|
||||
m_activeProgramStateTypeIds.insert(dishwasherThingClassId, dishwasherActiveProgramStateTypeId);
|
||||
m_activeProgramStateTypeIds.insert(washerThingClassId, washerActiveProgramStateTypeId);
|
||||
//m_activeProgramStateTypeIds.insert(cookTopThingClassId, cookTopActiveProgramStateTypeId);
|
||||
//m_activeProgramStateTypeIds.insert(cleaningRobotThingClassId, cleaningRobotActiveProgramStateTypeId);
|
||||
//m_activeProgramStateTypeIds.insert(hoodThingClassId, hoodActiveProgramStateTypeId);
|
||||
}
|
||||
|
||||
void IntegrationPluginHomeConnect::startPairing(ThingPairingInfo *info)
|
||||
@ -207,7 +227,7 @@ void IntegrationPluginHomeConnect::setupThing(ThingSetupInfo *info)
|
||||
(thing->thingClassId() == fridgeThingClassId) ||
|
||||
(thing->thingClassId() == washerThingClassId) ||
|
||||
(thing->thingClassId() == dishwasherThingClassId) ||
|
||||
(thing->thingClassId() == coffeMakerThingClassId) ||
|
||||
(thing->thingClassId() == coffeeMakerThingClassId) ||
|
||||
(thing->thingClassId() == ovenThingClassId) ||
|
||||
(thing->thingClassId() == hoodThingClassId) ||
|
||||
(thing->thingClassId() == cleaningRobotThingClassId) ||
|
||||
@ -278,7 +298,7 @@ void IntegrationPluginHomeConnect::postSetupThing(Thing *thing)
|
||||
(thing->thingClassId() == fridgeThingClassId) ||
|
||||
(thing->thingClassId() == washerThingClassId) ||
|
||||
(thing->thingClassId() == dishwasherThingClassId) ||
|
||||
(thing->thingClassId() == coffeMakerThingClassId) ||
|
||||
(thing->thingClassId() == coffeeMakerThingClassId) ||
|
||||
(thing->thingClassId() == ovenThingClassId) ||
|
||||
(thing->thingClassId() == hoodThingClassId) ||
|
||||
(thing->thingClassId() == cleaningRobotThingClassId) ||
|
||||
@ -355,14 +375,15 @@ void IntegrationPluginHomeConnect::browseThing(BrowseResult *result)
|
||||
HomeConnect *homeConnect = m_homeConnectConnections.value(myThings().findById(thing->parentId()));
|
||||
if (!homeConnect)
|
||||
return;
|
||||
QString haid = thing->stateValue(m_idParamTypeIds.value(thing->thingClassId())).toString();
|
||||
QString haid = thing->paramValue(m_idParamTypeIds.value(thing->thingClassId())).toString();
|
||||
homeConnect->getProgramsAvailable(haid);
|
||||
connect(homeConnect, &HomeConnect::receivedAvailablePrograms, result, [result, this] (const QString &haId, const QStringList programs) {
|
||||
if(result->thing()->paramValue(m_idParamTypeIds.value(result->thing()->id())).toString() == haId) {
|
||||
if(result->thing()->paramValue(m_idParamTypeIds.value(result->thing()->thingClassId())).toString() == haId) {
|
||||
Q_FOREACH(QString program, programs) {
|
||||
BrowserItem item;
|
||||
item.setExecutable(true);
|
||||
item.setDisplayName(program);
|
||||
item.setDisplayName(program.split('.').last());
|
||||
item.setId(program);
|
||||
result->addItem(item);
|
||||
}
|
||||
result->finish(Thing::ThingErrorNoError);
|
||||
@ -378,7 +399,7 @@ void IntegrationPluginHomeConnect::browserItem(BrowserItemResult *result)
|
||||
HomeConnect *homeConnect = m_homeConnectConnections.value(myThings().findById(thing->parentId()));
|
||||
if (!homeConnect)
|
||||
return;
|
||||
QString haid = thing->stateValue(m_idParamTypeIds.value(thing->thingClassId())).toString();
|
||||
QString haid = thing->paramValue(m_idParamTypeIds.value(thing->thingClassId())).toString();
|
||||
homeConnect->getProgramsAvailable(haid);
|
||||
connect(homeConnect, &HomeConnect::receivedAvailablePrograms, result, [result, this] (const QString &haid, const QStringList &programs) {
|
||||
if (result->thing()->paramValue(m_idParamTypeIds.value(result->thing()->thingClassId())).toString() == haid) {
|
||||
@ -397,7 +418,7 @@ void IntegrationPluginHomeConnect::executeBrowserItem(BrowserActionInfo *info)
|
||||
HomeConnect *homeConnect = m_homeConnectConnections.value(myThings().findById(thing->parentId()));
|
||||
if (!homeConnect)
|
||||
return;
|
||||
QString haid = thing->stateValue(m_idParamTypeIds.value(thing->thingClassId())).toString();
|
||||
QString haid = thing->paramValue(m_idParamTypeIds.value(thing->thingClassId())).toString();
|
||||
QList<HomeConnect::Option> options;
|
||||
//TODO add options like set temperature or start time
|
||||
homeConnect->startProgram(haid, info->browserAction().itemId(), options);
|
||||
@ -483,7 +504,7 @@ void IntegrationPluginHomeConnect::onReceivedHomeAppliances(const QList<HomeConn
|
||||
} else if (appliance.type.contains("WineCooler", Qt::CaseInsensitive)) {
|
||||
thingClassId = fridgeThingClassId;
|
||||
} else if (appliance.type.contains("CoffeeMaker", Qt::CaseInsensitive)) {
|
||||
thingClassId = coffeMakerThingClassId;
|
||||
thingClassId = coffeeMakerThingClassId;
|
||||
} else if (appliance.type.contains("Dryer", Qt::CaseInsensitive)) {
|
||||
thingClassId = dryerThingClassId;
|
||||
} else if (appliance.type.contains("CookTop", Qt::CaseInsensitive)) {
|
||||
@ -568,15 +589,13 @@ void IntegrationPluginHomeConnect::onReceivedEvents(const QList<HomeConnect::Eve
|
||||
if (event.key == "BSH.Common.Root.SelectedProgram") {
|
||||
|
||||
}
|
||||
if (event.key == "BSH.Common.Root.SelectedProgram") {
|
||||
if (event.key == "BSH.Common.Root.ActiveProgram") {
|
||||
|
||||
}
|
||||
if (event.key == "BSH.Common.Option.ProgramProgress") {
|
||||
|
||||
}
|
||||
/*
|
||||
* BSH.Common.Root.SelectedProgram
|
||||
* BSH.Common.Root.ActiveProgram
|
||||
/*
|
||||
* Cooking.Oven.Option.SetpointTemperature
|
||||
* BSH.Common.Option.Duration
|
||||
* Cooking.Oven.Option.FastPreHeat
|
||||
@ -693,6 +712,34 @@ void IntegrationPluginHomeConnect::onReceivedSelectedProgram(const QString &haId
|
||||
thing->setStateValue(ovenTargetTemperatureStateTypeId, options.value("Cooking.Oven.Option.SetpointTemperature").toInt());
|
||||
thing->setStateValue(ovenTargetTemperatureStateTypeId, options.value("BSH.Common.Option.Duration").toInt());
|
||||
}
|
||||
} else if (thing->thingClassId() == washerThingClassId) {
|
||||
if (key.contains("LaundryCare.Washer.Program")) {
|
||||
thing->setStateValue(washerSelectedProgramStateTypeId, key.split('.').last());
|
||||
thing->setStateValue(washerTemperatureStateTypeId, options.value("LaundryCare.Washer.Option.Temperature").toInt());
|
||||
thing->setStateValue(washerSpinSpeedStateTypeId, options.value("LaundryCare.Washer.Option.SpinSpeed").toInt());
|
||||
}
|
||||
} else if (thing->thingClassId() == dishwasherThingClassId) {
|
||||
if (key.contains("Dishcare.Dishwasher.Program")) {
|
||||
thing->setStateValue(dishwasherSelectedProgramStateTypeId, key.split('.').last());
|
||||
//BSH.Common.Option.StartInRelative
|
||||
}
|
||||
} else if (thing->thingClassId() == dryerThingClassId) {
|
||||
if (key.contains("LaundryCare.Dryer.Program")) {
|
||||
thing->setStateValue(dryerSelectedProgramStateTypeId, key.split('.').last());
|
||||
/*
|
||||
LaundryCare.Dryer.Option.DryingTarget
|
||||
BSH.Common.Option.Duration
|
||||
*/
|
||||
}
|
||||
} else if (thing->thingClassId() == coffeeMakerThingClassId) {
|
||||
if (key.contains("ConsumerProducts.CoffeeMaker.Program")) {
|
||||
thing->setStateValue(coffeeMakerSelectedProgramStateTypeId, key.split('.').last());
|
||||
/* //TODO
|
||||
* ConsumerProducts.CoffeeMaker.Option.BeanAmount
|
||||
* ConsumerProducts.CoffeeMaker.Option.FillQuantity
|
||||
* ConsumerProducts.CoffeeMaker.Option.CoffeeTemperature
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@ -78,6 +78,8 @@ private:
|
||||
QHash<ThingClassId, StateTypeId> m_remoteStartAllowanceStateTypeIds;
|
||||
QHash<ThingClassId, StateTypeId> m_operationStateTypeIds;
|
||||
QHash<ThingClassId, StateTypeId> m_doorStateTypeIds;
|
||||
QHash<ThingClassId, StateTypeId> m_activeProgramStateTypeIds;
|
||||
QHash<ThingClassId, StateTypeId> m_selectedProgramStateTypeIds;
|
||||
|
||||
HomeConnect *createHomeConnection();
|
||||
|
||||
|
||||
@ -275,13 +275,38 @@
|
||||
"displayNameEvent": "Remote start allowance changed",
|
||||
"defaultValue": false,
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"id": "f0484744-a180-4a14-9c84-f49a489e3510",
|
||||
"name": "progress",
|
||||
"displayName": "Progress",
|
||||
"displayNameEvent": "Progress changed",
|
||||
"defaultValue": 0,
|
||||
"unit": "Percentage",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"id": "692ea106-557c-4870-b569-ab82a4909b2c",
|
||||
"name": "selectedProgram",
|
||||
"displayName": "Selected program",
|
||||
"displayNameEvent": "Selected program changed",
|
||||
"defaultValue": "None",
|
||||
"type": "QString"
|
||||
},
|
||||
{
|
||||
"id": "5f4cc1a2-a9d9-4358-9fcd-d09078a38638",
|
||||
"name": "activeProgram",
|
||||
"displayName": "Active program",
|
||||
"displayNameEvent": "Active program changed",
|
||||
"defaultValue": "None",
|
||||
"type": "QString"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "f6b39ce2-8276-4db7-b2a3-4a04cafacbb9",
|
||||
"name": "coffeMaker",
|
||||
"displayName": "Coffe Maker",
|
||||
"name": "coffeeMaker",
|
||||
"displayName": "Coffee Maker",
|
||||
"interfaces": ["connectable"],
|
||||
"createMethods": ["auto"],
|
||||
"browsable": true,
|
||||
@ -348,6 +373,31 @@
|
||||
"displayNameEvent": "Remote start allowance changed",
|
||||
"defaultValue": false,
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"id": "a121f86a-ab69-4be9-bbe2-631e2210fee7",
|
||||
"name": "progress",
|
||||
"displayName": "Progress",
|
||||
"displayNameEvent": "Progress changed",
|
||||
"defaultValue": 0,
|
||||
"unit": "Percentage",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"id": "648e3a8e-74c4-41e8-bcbb-dd8b5757d375",
|
||||
"name": "selectedProgram",
|
||||
"displayName": "Selected program",
|
||||
"displayNameEvent": "Selected program changed",
|
||||
"defaultValue": "None",
|
||||
"type": "QString"
|
||||
},
|
||||
{
|
||||
"id": "52ce0862-aa9d-41fa-8d14-6fdb11b82d89",
|
||||
"name": "activeProgram",
|
||||
"displayName": "Active program",
|
||||
"displayNameEvent": "Active program changed",
|
||||
"defaultValue": "None",
|
||||
"type": "QString"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -432,6 +482,31 @@
|
||||
"displayNameEvent": "Remote start allowance changed",
|
||||
"defaultValue": false,
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"id": "eaf84b93-bacd-42b1-afaf-a890c8b2a099",
|
||||
"name": "progress",
|
||||
"displayName": "Progress",
|
||||
"displayNameEvent": "Progress changed",
|
||||
"defaultValue": 0,
|
||||
"unit": "Percentage",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"id": "4ad5424c-6ccd-4e29-9aba-41f960618401",
|
||||
"name": "selectedProgram",
|
||||
"displayName": "Selected program",
|
||||
"displayNameEvent": "Selected program changed",
|
||||
"defaultValue": "None",
|
||||
"type": "QString"
|
||||
},
|
||||
{
|
||||
"id": "cde9357e-5e6c-49ff-82d5-a69150b64978",
|
||||
"name": "activeProgram",
|
||||
"displayName": "Active program",
|
||||
"displayNameEvent": "Active program changed",
|
||||
"defaultValue": "None",
|
||||
"type": "QString"
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
@ -615,6 +690,47 @@
|
||||
"displayNameEvent": "Remote start allowance changed",
|
||||
"defaultValue": false,
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"id": "312d817d-3384-41fb-a8ba-15c137844ee0",
|
||||
"name": "progress",
|
||||
"displayName": "Progress",
|
||||
"displayNameEvent": "Progress changed",
|
||||
"defaultValue": 0,
|
||||
"unit": "Percentage",
|
||||
"type": "int"
|
||||
},
|
||||
{
|
||||
"id": "d10066ad-0ad3-49d2-a3c3-ee6002c1a18d",
|
||||
"name": "selectedProgram",
|
||||
"displayName": "Selected program",
|
||||
"displayNameEvent": "Selected program changed",
|
||||
"defaultValue": "None",
|
||||
"type": "QString"
|
||||
},
|
||||
{
|
||||
"id": "d4abaabe-933f-4b55-8065-ba1f612dce90",
|
||||
"name": "activeProgram",
|
||||
"displayName": "Active program",
|
||||
"displayNameEvent": "Active program changed",
|
||||
"defaultValue": "None",
|
||||
"type": "QString"
|
||||
},
|
||||
{
|
||||
"id": "29ed9597-2ace-48f5-91bc-171ac2601bfc",
|
||||
"name": "temperature",
|
||||
"displayName": "Temperature",
|
||||
"displayNameEvent": "Temperature changed",
|
||||
"defaultValue": "Unknown",
|
||||
"type": "QString"
|
||||
},
|
||||
{
|
||||
"id": "ab65bfa0-37d8-4df6-80f0-80377a43a520",
|
||||
"name": "spinSpeed",
|
||||
"displayName": "Spin speed",
|
||||
"displayNameEvent": "Spin speed changed",
|
||||
"defaultValue": "Unknown",
|
||||
"type": "QString"
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user