fixed interfaces for shutter and light

This commit is contained in:
Bernhard Trinnes 2018-06-12 10:52:18 +02:00 committed by Michael Zanetti
parent c02c10938a
commit 49e905d5fa
2 changed files with 77 additions and 80 deletions

View File

@ -88,10 +88,10 @@ DeviceManager::DeviceSetupStatus DevicePluginUniPi::setupDevice(Device *device)
return DeviceManager::DeviceSetupStatusSuccess; return DeviceManager::DeviceSetupStatusSuccess;
} }
if (device->deviceClassId() == shadingDeviceClassId) { if (device->deviceClassId() == shutterDeviceClassId) {
m_usedGpios.insert(device->paramValue(shadingOutputUpParamTypeId).toString(), device); m_usedGpios.insert(device->paramValue(shutterOutputOpenParamTypeId).toString(), device);
m_usedGpios.insert(device->paramValue(shadingOutputDownParamTypeId).toString(), device); m_usedGpios.insert(device->paramValue(shutterOutputCloseParamTypeId).toString(), device);
return DeviceManager::DeviceSetupStatusSuccess; return DeviceManager::DeviceSetupStatusSuccess;
} }
@ -151,7 +151,7 @@ DeviceManager::DeviceError DevicePluginUniPi::discoverDevices(const DeviceClassI
return DeviceManager::DeviceErrorAsync; return DeviceManager::DeviceErrorAsync;
} }
if (deviceClassId == shadingDeviceClassId) { if (deviceClassId == shutterDeviceClassId) {
// Create the list of available gpios // Create the list of available gpios
QList<DeviceDescriptor> deviceDescriptors; QList<DeviceDescriptor> deviceDescriptors;
@ -165,10 +165,10 @@ DeviceManager::DeviceError DevicePluginUniPi::discoverDevices(const DeviceClassI
DeviceDescriptor descriptor(deviceClassId, QString("Up Relay %1 + Down Relay %2").arg(circuit, m_relais.at(i+1)), circuit); DeviceDescriptor descriptor(deviceClassId, QString("Up Relay %1 + Down Relay %2").arg(circuit, m_relais.at(i+1)), circuit);
ParamList parameters; ParamList parameters;
parameters.append(Param(shadingOutputUpParamTypeId, circuit)); parameters.append(Param(shutterOutputOpenParamTypeId, circuit));
parameters.append(Param(shadingOutputDownParamTypeId, m_relais.at(i+1))); parameters.append(Param(shutterOutputCloseParamTypeId, m_relais.at(i+1)));
parameters.append(Param(shadingOutputTypeUpParamTypeId, GPIOType::relay)); parameters.append(Param(shutterOutputTypeOpenParamTypeId, GPIOType::relay));
parameters.append(Param(shadingOutputTypeDownParamTypeId, GPIOType::relay)); parameters.append(Param(shutterOutputTypeCloseParamTypeId, GPIOType::relay));
descriptor.setParams(parameters); descriptor.setParams(parameters);
deviceDescriptors.append(descriptor); deviceDescriptors.append(descriptor);
} }
@ -276,29 +276,28 @@ DeviceManager::DeviceError DevicePluginUniPi::executeAction(Device *device, cons
return DeviceManager::DeviceErrorActionTypeNotFound; return DeviceManager::DeviceErrorActionTypeNotFound;
} }
if (device->deviceClassId() == shadingDeviceClassId) { if (device->deviceClassId() == shutterDeviceClassId) {
QString circuitOpen = device->paramValue(shutterOutputOpenParamTypeId).toString();
QString typeOpen = device->paramValue(shutterOutputTypeOpenParamTypeId).toString();
if (action.actionTypeId() == shadingDownActionTypeId) { QString circuitClose = device->paramValue(shutterOutputCloseParamTypeId).toString();
QString circuit = device->paramValue(shadingOutputDownParamTypeId).toString(); QString typeClose = device->paramValue(shutterOutputTypeCloseParamTypeId).toString();
QString type = device->paramValue(shadingOutputTypeDownParamTypeId).toString();
setOutput(circuit, type, false); if (action.actionTypeId() == shutterCloseActionTypeId) {
setOutput(circuitOpen, typeOpen, false);
setOutput(circuitClose, typeClose, true);
return DeviceManager::DeviceErrorNoError; return DeviceManager::DeviceErrorNoError;
} }
if (action.actionTypeId() == shadingUpActionTypeId) { if (action.actionTypeId() == shutterOpenActionTypeId) {
QString circuit = device->paramValue(shadingOutputDownParamTypeId).toString();
QString type = device->paramValue(shadingOutputTypeDownParamTypeId).toString(); setOutput(circuitClose, typeClose, false);
setOutput(circuit, type, false); setOutput(circuitOpen, typeOpen, true);
return DeviceManager::DeviceErrorNoError; return DeviceManager::DeviceErrorNoError;
} }
if (action.actionTypeId() == shutterStopActionTypeId) {
if (action.actionTypeId() == shadingStopActionTypeId) { setOutput(circuitOpen, typeOpen, false);
QString circuitUp = device->paramValue(shadingOutputDownParamTypeId).toString(); setOutput(circuitClose, typeClose, false);
QString typeUp = device->paramValue(shadingOutputTypeDownParamTypeId).toString();
setOutput(circuitUp, typeUp, false);
QString circuitDown = device->paramValue(shadingOutputDownParamTypeId).toString();
QString typeDown = device->paramValue(shadingOutputTypeDownParamTypeId).toString();
setOutput(circuitDown, typeDown, false);
return DeviceManager::DeviceErrorNoError; return DeviceManager::DeviceErrorNoError;
} }
@ -375,32 +374,32 @@ void DevicePluginUniPi::onWebSocketTextMessageReceived(QString message)
device->setStateValue(relayOutputRelayStatusStateTypeId, value); device->setStateValue(relayOutputRelayStatusStateTypeId, value);
break; break;
} }
} else if (device->deviceClassId() == shadingDeviceClassId) { } else if (device->deviceClassId() == shutterDeviceClassId) {
if (circuit == device->paramValue(shadingOutputUpParamTypeId).toString()) { if (circuit == device->paramValue(shutterOutputOpenParamTypeId).toString()) {
if (value && device->stateValue(shadingStatusStateTypeId).toString().contains("stop")) { if (value && device->stateValue(shutterStatusStateTypeId).toString().contains("stop")) {
device->setStateValue(shadingStatusStateTypeId, "up"); device->setStateValue(shutterStatusStateTypeId, "open");
} else if (!value && device->stateValue(shadingStatusStateTypeId).toString().contains("up")) { } else if (!value && device->stateValue(shutterStatusStateTypeId).toString().contains("open")) {
device->setStateValue(shadingStatusStateTypeId, "stop"); device->setStateValue(shutterStatusStateTypeId, "stop");
} else { } else {
qWarning(dcUniPi()) << "Shading" << device << "Output Up:" << value << "Status: " << device->stateValue(shadingStatusStateTypeId).toString(); qWarning(dcUniPi()) << "shutter" << device << "Output open:" << value << "Status: " << device->stateValue(shutterStatusStateTypeId).toString();
} }
break; break;
} }
if (circuit == device->paramValue(shadingOutputDownParamTypeId).toString()) { if (circuit == device->paramValue(shutterOutputCloseParamTypeId).toString()) {
if (value && device->stateValue(shadingStatusStateTypeId).toString().contains("stop")) { if (value && device->stateValue(shutterStatusStateTypeId).toString().contains("stop")) {
device->setStateValue(shadingStatusStateTypeId, "down"); device->setStateValue(shutterStatusStateTypeId, "close");
} else if (!value && device->stateValue(shadingStatusStateTypeId).toString().contains("down")) { } else if (!value && device->stateValue(shutterStatusStateTypeId).toString().contains("close")) {
device->setStateValue(shadingStatusStateTypeId, "stop"); device->setStateValue(shutterStatusStateTypeId, "stop");
} else { } else {
qWarning(dcUniPi()) << "Shading" << device << "Output Down:" << value << "Status: " << device->stateValue(shadingStatusStateTypeId).toString(); qWarning(dcUniPi()) << "shutter" << device << "Output close:" << value << "Status: " << device->stateValue(shutterStatusStateTypeId).toString();
} }
break; break;
} }
} else if (device->deviceClassId() == lightDeviceClassId) { } else if (device->deviceClassId() == lightDeviceClassId) {
if (circuit == device->paramValue(lightOutputParamTypeId).toString()) { if (circuit == device->paramValue(lightOutputParamTypeId).toString()) {
device->setStateValue(lightStatusStateTypeId, value); device->setStateValue(lightPowerStateTypeId, value);
break; break;
} }
} }

View File

@ -22,8 +22,8 @@
"name": "relayOutput", "name": "relayOutput",
"displayName": "Relay output", "displayName": "Relay output",
"deviceIcon": "Power", "deviceIcon": "Power",
"createMethods": ["discover"], "createMethods": ["discovery"],
"interface": [ ], "interfaces": [ ],
"basicTags": ["Device"], "basicTags": ["Device"],
"paramTypes": [ "paramTypes": [
{ {
@ -51,8 +51,8 @@
"name": "digitalInput", "name": "digitalInput",
"displayName": "Digital input", "displayName": "Digital input",
"deviceIcon": "Switch", "deviceIcon": "Switch",
"createMethods": ["discover"], "createMethods": ["discovery"],
"interface": [ ], "interfaces": [ ],
"basicTags": ["Sensor"], "basicTags": ["Sensor"],
"paramTypes": [ "paramTypes": [
{ {
@ -78,8 +78,8 @@
"name": "digitalOutput", "name": "digitalOutput",
"displayName": "Digital output", "displayName": "Digital output",
"deviceIcon": "Power", "deviceIcon": "Power",
"createMethods": ["discover"], "createMethods": ["discovery"],
"interface": [ ], "interfaces": [ ],
"basicTags": ["Device"], "basicTags": ["Device"],
"paramTypes": [ "paramTypes": [
{ {
@ -107,8 +107,8 @@
"name": "analogOutput", "name": "analogOutput",
"displayName": "Analog output", "displayName": "Analog output",
"deviceIcon": "Power", "deviceIcon": "Power",
"createMethods": ["discover"], "createMethods": ["discovery"],
"interface": [ ], "interfaces": [ ],
"basicTags": ["Device"], "basicTags": ["Device"],
"paramTypes": [ "paramTypes": [
{ {
@ -139,8 +139,8 @@
"name": "analogInput", "name": "analogInput",
"displayName": "Analog Input", "displayName": "Analog Input",
"deviceIcon": "Power", "deviceIcon": "Power",
"createMethods": ["discover"], "createMethods": ["discovery"],
"interface": [ ], "interfaces": [ ],
"basicTags": ["Sensor"], "basicTags": ["Sensor"],
"paramTypes": [ "paramTypes": [
{ {
@ -164,36 +164,36 @@
}, },
{ {
"id": "eadddc99-ce7d-4169-a2f9-a829fa105ad2", "id": "eadddc99-ce7d-4169-a2f9-a829fa105ad2",
"name": "shading", "name": "shutter",
"displayName": "Shading", "displayName": "Shutter",
"deviceIcon": "Blinds", "deviceIcon": "RollerShutter",
"createMethods": ["discover"], "createMethods": ["discovery"],
"interface": [ ], "interfaces": ["shutter"],
"basicTags": ["Actuator"], "basicTags": ["Actuator"],
"paramTypes": [ "paramTypes": [
{ {
"id": "7878ef4b-2395-4995-b17d-b69cb7d280e1", "id": "7878ef4b-2395-4995-b17d-b69cb7d280e1",
"name": "outputUp", "name": "outputOpen",
"displayName": "Output Up", "displayName": "Output open",
"type": "QString" "type": "QString"
}, },
{ {
"id": "4aa113d0-294b-403d-9dd1-ad0abe833176", "id": "4aa113d0-294b-403d-9dd1-ad0abe833176",
"name": "outputDown", "name": "outputClose",
"displayName": "Output Down", "displayName": "Output close",
"type": "QString" "type": "QString"
}, },
{ {
"id": "a030f030-4f26-4f33-aadf-ec3c3a5141a7", "id": "a030f030-4f26-4f33-aadf-ec3c3a5141a7",
"name": "outputTypeUp", "name": "outputTypeOpen",
"displayName": "Output Type Up", "displayName": "Output type open",
"type": "QString", "type": "QString",
"readOnly": true "readOnly": true
}, },
{ {
"id": "fde509c5-8db1-411b-9e71-36997c39ee6b", "id": "fde509c5-8db1-411b-9e71-36997c39ee6b",
"name": "outputTypeDown", "name": "outputTypeClose",
"displayName": "Output Type Down", "displayName": "Output type close",
"type": "QString", "type": "QString",
"readOnly": true "readOnly": true
} }
@ -203,11 +203,12 @@
"id": "b8955f33-780a-48a5-9c50-c1bccf09918f", "id": "b8955f33-780a-48a5-9c50-c1bccf09918f",
"name": "status", "name": "status",
"displayName": "Status", "displayName": "Status",
"displayNameEvent": "Status changed",
"type": "QString", "type": "QString",
"possibleValues":[ "possibleValues":[
"up", "open",
"stop", "stop",
"down" "close"
], ],
"defaultValue": "stop" "defaultValue": "stop"
} }
@ -215,21 +216,18 @@
"actionTypes":[ "actionTypes":[
{ {
"id": "cc8a13ae-2a3d-440a-a127-962fb912e511", "id": "cc8a13ae-2a3d-440a-a127-962fb912e511",
"name": "up", "name": "open",
"displayName": "Up", "displayName": "Open"
"type": "bool"
}, },
{ {
"id": "19bda8bb-1a78-4f2f-9927-ff543012462e", "id": "19bda8bb-1a78-4f2f-9927-ff543012462e",
"name": "stop", "name": "stop",
"displayName": "Stop", "displayName": "Stop"
"type": "bool"
}, },
{ {
"id": "7dc32e36-6a5c-46e1-8507-d9283067ac21", "id": "7dc32e36-6a5c-46e1-8507-d9283067ac21",
"name": "down", "name": "close",
"displayName": "Down", "displayName": "Close"
"type": "bool"
} }
] ]
}, },
@ -237,9 +235,9 @@
"id": "34fc941e-3465-4618-acf6-dda9c7242e27", "id": "34fc941e-3465-4618-acf6-dda9c7242e27",
"name": "light", "name": "light",
"displayName": "Light", "displayName": "Light",
"deviceIcon": "Light", "deviceIcon": "LightBulb",
"createMethods": ["discover"], "createMethods": ["discovery"],
"interface": [""], "interfaces": ["light"],
"basicTags": ["Actuator"], "basicTags": ["Actuator"],
"paramTypes": [ "paramTypes": [
{ {
@ -259,10 +257,10 @@
"stateTypes":[ "stateTypes":[
{ {
"id": "3d0d6abc-87b9-42af-820e-e3bc7bde1743", "id": "3d0d6abc-87b9-42af-820e-e3bc7bde1743",
"name": "status", "name": "power",
"displayName": "Light", "displayName": "Power",
"displayNameEvent": "Light power changed", "displayNameEvent": "Power changed",
"displayNameAction": "Set light power", "displayNameAction": "Set power",
"type": "bool", "type": "bool",
"defaultValue": false, "defaultValue": false,
"writable": true "writable": true