minor bugfixes
This commit is contained in:
parent
43c1941ed8
commit
ddd60a5b87
@ -76,18 +76,18 @@ DeviceManager::DeviceSetupStatus DevicePluginUniPi::setupDevice(Device *device)
|
|||||||
return DeviceManager::DeviceSetupStatusSuccess;
|
return DeviceManager::DeviceSetupStatusSuccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device->deviceClassId() == shutterDeviceClassId) {
|
if (device->deviceClassId() == blindDeviceClassId) {
|
||||||
|
|
||||||
if (device->paramValue(shutterOutputTypeOpenParamTypeId) == GpioType::Relay) {
|
if (device->paramValue(blindOutputTypeOpenParamTypeId) == GpioType::Relay) {
|
||||||
m_usedRelais.insert(device->paramValue(shutterOutputOpenParamTypeId).toString(), device);
|
m_usedRelais.insert(device->paramValue(blindOutputOpenParamTypeId).toString(), device);
|
||||||
} else if (device->paramValue(shutterOutputTypeOpenParamTypeId) == GpioType::DigitalOutput) {
|
} else if (device->paramValue(blindOutputTypeOpenParamTypeId) == GpioType::DigitalOutput) {
|
||||||
m_usedDigitalOutputs.insert(device->paramValue(shutterOutputOpenParamTypeId).toString(), device);
|
m_usedDigitalOutputs.insert(device->paramValue(blindOutputOpenParamTypeId).toString(), device);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device->paramValue(shutterOutputTypeCloseParamTypeId) == GpioType::Relay) {
|
if (device->paramValue(blindOutputTypeCloseParamTypeId) == GpioType::Relay) {
|
||||||
m_usedRelais.insert(device->paramValue(shutterOutputCloseParamTypeId).toString(), device);
|
m_usedRelais.insert(device->paramValue(blindOutputCloseParamTypeId).toString(), device);
|
||||||
} else if (device->paramValue(shutterOutputTypeOpenParamTypeId) == GpioType::DigitalOutput) {
|
} else if (device->paramValue(blindOutputTypeOpenParamTypeId) == GpioType::DigitalOutput) {
|
||||||
m_usedDigitalOutputs.insert(device->paramValue(shutterOutputCloseParamTypeId).toString(), device);
|
m_usedDigitalOutputs.insert(device->paramValue(blindOutputCloseParamTypeId).toString(), device);
|
||||||
}
|
}
|
||||||
|
|
||||||
return DeviceManager::DeviceSetupStatusSuccess;
|
return DeviceManager::DeviceSetupStatusSuccess;
|
||||||
@ -121,6 +121,11 @@ DeviceManager::DeviceSetupStatus DevicePluginUniPi::setupDevice(Device *device)
|
|||||||
DeviceManager::DeviceError DevicePluginUniPi::discoverDevices(const DeviceClassId &deviceClassId, const ParamList ¶ms)
|
DeviceManager::DeviceError DevicePluginUniPi::discoverDevices(const DeviceClassId &deviceClassId, const ParamList ¶ms)
|
||||||
{
|
{
|
||||||
Q_UNUSED(params);
|
Q_UNUSED(params);
|
||||||
|
qSort(m_relais);
|
||||||
|
qSort(m_digitalOutputs);
|
||||||
|
qSort(m_digitalInputs);
|
||||||
|
qSort(m_analogInputs);
|
||||||
|
qSort(m_analogOutputs);
|
||||||
|
|
||||||
const DeviceClass deviceClass = deviceManager()->findDeviceClass(deviceClassId);
|
const DeviceClass deviceClass = deviceManager()->findDeviceClass(deviceClassId);
|
||||||
if (deviceClass.vendorId() == unipiVendorId) {
|
if (deviceClass.vendorId() == unipiVendorId) {
|
||||||
@ -226,10 +231,9 @@ DeviceManager::DeviceError DevicePluginUniPi::discoverDevices(const DeviceClassI
|
|||||||
return DeviceManager::DeviceErrorAsync;
|
return DeviceManager::DeviceErrorAsync;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (deviceClassId == shutterDeviceClassId) {
|
if (deviceClassId == blindDeviceClassId) {
|
||||||
// Create the list of available gpios
|
// Create the list of available gpios
|
||||||
QList<DeviceDescriptor> deviceDescriptors;
|
QList<DeviceDescriptor> deviceDescriptors;
|
||||||
|
|
||||||
for (int i = 0; i < (m_relais.count()-1); i++) {
|
for (int i = 0; i < (m_relais.count()-1); i++) {
|
||||||
|
|
||||||
const QString openingCircuit = m_relais.at(i);
|
const QString openingCircuit = m_relais.at(i);
|
||||||
@ -244,12 +248,12 @@ DeviceManager::DeviceError DevicePluginUniPi::discoverDevices(const DeviceClassI
|
|||||||
// Offer only relais which aren't in use already
|
// Offer only relais which aren't in use already
|
||||||
if (!m_usedRelais.contains(closingCircuit)){
|
if (!m_usedRelais.contains(closingCircuit)){
|
||||||
|
|
||||||
DeviceDescriptor descriptor(deviceClassId, "Roller shutter", QString("Opening relay %1 | Closing relay %2").arg(openingCircuit, closingCircuit));
|
DeviceDescriptor descriptor(deviceClassId, "Blind", QString("Opening relay %1 | Closing relay %2").arg(openingCircuit, closingCircuit));
|
||||||
ParamList parameters;
|
ParamList parameters;
|
||||||
parameters.append(Param(shutterOutputOpenParamTypeId, openingCircuit));
|
parameters.append(Param(blindOutputOpenParamTypeId, openingCircuit));
|
||||||
parameters.append(Param(shutterOutputCloseParamTypeId, closingCircuit));
|
parameters.append(Param(blindOutputCloseParamTypeId, closingCircuit));
|
||||||
parameters.append(Param(shutterOutputTypeOpenParamTypeId, GpioType::Relay));
|
parameters.append(Param(blindOutputTypeOpenParamTypeId, GpioType::Relay));
|
||||||
parameters.append(Param(shutterOutputTypeCloseParamTypeId, GpioType::Relay));
|
parameters.append(Param(blindOutputTypeCloseParamTypeId, GpioType::Relay));
|
||||||
descriptor.setParams(parameters);
|
descriptor.setParams(parameters);
|
||||||
deviceDescriptors.append(descriptor);
|
deviceDescriptors.append(descriptor);
|
||||||
break;
|
break;
|
||||||
@ -271,12 +275,12 @@ DeviceManager::DeviceError DevicePluginUniPi::discoverDevices(const DeviceClassI
|
|||||||
// Offer only relais which aren't in use already
|
// Offer only relais which aren't in use already
|
||||||
if (!m_usedDigitalOutputs.contains(closingCircuit)){
|
if (!m_usedDigitalOutputs.contains(closingCircuit)){
|
||||||
|
|
||||||
DeviceDescriptor descriptor(deviceClassId, "Roller shutter", QString("Opening output %1 | Closing output %2").arg(openingCircuit, closingCircuit));
|
DeviceDescriptor descriptor(deviceClassId, "Blind", QString("Opening output %1 | Closing output %2").arg(openingCircuit, closingCircuit));
|
||||||
ParamList parameters;
|
ParamList parameters;
|
||||||
parameters.append(Param(shutterOutputOpenParamTypeId, openingCircuit));
|
parameters.append(Param(blindOutputOpenParamTypeId, openingCircuit));
|
||||||
parameters.append(Param(shutterOutputCloseParamTypeId, closingCircuit));
|
parameters.append(Param(blindOutputCloseParamTypeId, closingCircuit));
|
||||||
parameters.append(Param(shutterOutputTypeOpenParamTypeId, GpioType::DigitalOutput));
|
parameters.append(Param(blindOutputTypeOpenParamTypeId, GpioType::DigitalOutput));
|
||||||
parameters.append(Param(shutterOutputTypeCloseParamTypeId, GpioType::DigitalOutput));
|
parameters.append(Param(blindOutputTypeCloseParamTypeId, GpioType::DigitalOutput));
|
||||||
descriptor.setParams(parameters);
|
descriptor.setParams(parameters);
|
||||||
deviceDescriptors.append(descriptor);
|
deviceDescriptors.append(descriptor);
|
||||||
break;
|
break;
|
||||||
@ -392,17 +396,17 @@ void DevicePluginUniPi::deviceRemoved(Device *device)
|
|||||||
} else if (device->deviceClassId() == analogInputDeviceClassId) {
|
} else if (device->deviceClassId() == analogInputDeviceClassId) {
|
||||||
m_usedAnalogInputs.remove(device->paramValue(analogInputAnalogInputNumberParamTypeId).toString());
|
m_usedAnalogInputs.remove(device->paramValue(analogInputAnalogInputNumberParamTypeId).toString());
|
||||||
|
|
||||||
} else if (device->deviceClassId() == shutterDeviceClassId) {
|
} else if (device->deviceClassId() == blindDeviceClassId) {
|
||||||
if (device->paramValue(shutterOutputTypeOpenParamTypeId) == GpioType::Relay) {
|
if (device->paramValue(blindOutputTypeOpenParamTypeId) == GpioType::Relay) {
|
||||||
m_usedRelais.remove(device->paramValue(shutterOutputOpenParamTypeId).toString());
|
m_usedRelais.remove(device->paramValue(blindOutputOpenParamTypeId).toString());
|
||||||
} else if (device->paramValue(shutterOutputOpenParamTypeId) == GpioType::DigitalOutput) {
|
} else if (device->paramValue(blindOutputOpenParamTypeId) == GpioType::DigitalOutput) {
|
||||||
m_usedDigitalOutputs.remove(device->paramValue(shutterOutputOpenParamTypeId).toString());
|
m_usedDigitalOutputs.remove(device->paramValue(blindOutputOpenParamTypeId).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device->paramValue(shutterOutputTypeCloseParamTypeId) == GpioType::Relay) {
|
if (device->paramValue(blindOutputTypeCloseParamTypeId) == GpioType::Relay) {
|
||||||
m_usedRelais.remove(device->paramValue(shutterOutputCloseParamTypeId).toString());
|
m_usedRelais.remove(device->paramValue(blindOutputCloseParamTypeId).toString());
|
||||||
} else if (device->paramValue(shutterOutputOpenParamTypeId) == GpioType::DigitalOutput) {
|
} else if (device->paramValue(blindOutputOpenParamTypeId) == GpioType::DigitalOutput) {
|
||||||
m_usedDigitalOutputs.remove(device->paramValue(shutterOutputCloseParamTypeId).toString());
|
m_usedDigitalOutputs.remove(device->paramValue(blindOutputCloseParamTypeId).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (device->deviceClassId() == lightDeviceClassId) {
|
} else if (device->deviceClassId() == lightDeviceClassId) {
|
||||||
@ -473,23 +477,23 @@ DeviceManager::DeviceError DevicePluginUniPi::executeAction(Device *device, cons
|
|||||||
return DeviceManager::DeviceErrorActionTypeNotFound;
|
return DeviceManager::DeviceErrorActionTypeNotFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device->deviceClassId() == shutterDeviceClassId) {
|
if (device->deviceClassId() == blindDeviceClassId) {
|
||||||
QString circuitOpen = device->paramValue(shutterOutputOpenParamTypeId).toString();
|
QString circuitOpen = device->paramValue(blindOutputOpenParamTypeId).toString();
|
||||||
QString circuitClose = device->paramValue(shutterOutputCloseParamTypeId).toString();
|
QString circuitClose = device->paramValue(blindOutputCloseParamTypeId).toString();
|
||||||
|
|
||||||
if (action.actionTypeId() == shutterCloseActionTypeId) {
|
if (action.actionTypeId() == blindCloseActionTypeId) {
|
||||||
|
|
||||||
setOutput(circuitOpen, false);
|
setOutput(circuitOpen, false);
|
||||||
setOutput(circuitClose, true);
|
setOutput(circuitClose, true);
|
||||||
return DeviceManager::DeviceErrorNoError;
|
return DeviceManager::DeviceErrorNoError;
|
||||||
}
|
}
|
||||||
if (action.actionTypeId() == shutterOpenActionTypeId) {
|
if (action.actionTypeId() == blindOpenActionTypeId) {
|
||||||
|
|
||||||
setOutput(circuitClose, false);
|
setOutput(circuitClose, false);
|
||||||
setOutput(circuitOpen, true);
|
setOutput(circuitOpen, true);
|
||||||
return DeviceManager::DeviceErrorNoError;
|
return DeviceManager::DeviceErrorNoError;
|
||||||
}
|
}
|
||||||
if (action.actionTypeId() == shutterStopActionTypeId) {
|
if (action.actionTypeId() == blindStopActionTypeId) {
|
||||||
setOutput(circuitOpen, false);
|
setOutput(circuitOpen, false);
|
||||||
setOutput(circuitClose, false);
|
setOutput(circuitClose, false);
|
||||||
|
|
||||||
@ -501,7 +505,7 @@ DeviceManager::DeviceError DevicePluginUniPi::executeAction(Device *device, cons
|
|||||||
if (device->deviceClassId() == lightDeviceClassId) {
|
if (device->deviceClassId() == lightDeviceClassId) {
|
||||||
|
|
||||||
QString circuit = device->paramValue(lightOutputParamTypeId).toString();
|
QString circuit = device->paramValue(lightOutputParamTypeId).toString();
|
||||||
bool stateValue = action.param(digitalOutputPowerActionParamTypeId).value().toBool();
|
bool stateValue = action.param(lightPowerActionParamTypeId).value().toBool();
|
||||||
|
|
||||||
setOutput(circuit, stateValue);
|
setOutput(circuit, stateValue);
|
||||||
return DeviceManager::DeviceErrorNoError;
|
return DeviceManager::DeviceErrorNoError;
|
||||||
@ -576,23 +580,23 @@ void DevicePluginUniPi::onWebSocketTextMessageReceived(QString message)
|
|||||||
Device *device = m_usedRelais.value(circuit);
|
Device *device = m_usedRelais.value(circuit);
|
||||||
if (device->deviceClassId() == relayOutputDeviceClassId) {
|
if (device->deviceClassId() == relayOutputDeviceClassId) {
|
||||||
device->setStateValue(relayOutputPowerStateTypeId, value);
|
device->setStateValue(relayOutputPowerStateTypeId, value);
|
||||||
} else if (device->deviceClassId() == shutterDeviceClassId) {
|
} else if (device->deviceClassId() == blindDeviceClassId) {
|
||||||
if (circuit == device->paramValue(shutterOutputOpenParamTypeId).toString()) {
|
if (circuit == device->paramValue(blindOutputOpenParamTypeId).toString()) {
|
||||||
if (value && device->stateValue(shutterStatusStateTypeId).toString().contains("stop")) {
|
if (value && device->stateValue(blindStatusStateTypeId).toString().contains("stopped")) {
|
||||||
device->setStateValue(shutterStatusStateTypeId, "close");
|
device->setStateValue(blindStatusStateTypeId, "opening");
|
||||||
} else if (!value && device->stateValue(shutterStatusStateTypeId).toString().contains("open")) {
|
} else if (!value && device->stateValue(blindStatusStateTypeId).toString().contains("opening")) {
|
||||||
device->setStateValue(shutterStatusStateTypeId, "stop");
|
device->setStateValue(blindStatusStateTypeId, "stopped");
|
||||||
} else {
|
} else {
|
||||||
qWarning(dcUniPi()) << "shutter" << device << "Output open:" << value << "Status: " << device->stateValue(shutterStatusStateTypeId).toString();
|
qWarning(dcUniPi()) << "Blind" << device << "Output open:" << value << "Status: " << device->stateValue(blindStatusStateTypeId).toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (circuit == device->paramValue(shutterOutputCloseParamTypeId).toString()) {
|
if (circuit == device->paramValue(blindOutputCloseParamTypeId).toString()) {
|
||||||
if (value && device->stateValue(shutterStatusStateTypeId).toString().contains("stop")) {
|
if (value && device->stateValue(blindStatusStateTypeId).toString().contains("stopped")) {
|
||||||
device->setStateValue(shutterStatusStateTypeId, "close");
|
device->setStateValue(blindStatusStateTypeId, "closing");
|
||||||
} else if (!value && device->stateValue(shutterStatusStateTypeId).toString().contains("close")) {
|
} else if (!value && device->stateValue(blindStatusStateTypeId).toString().contains("closing")) {
|
||||||
device->setStateValue(shutterStatusStateTypeId, "stop");
|
device->setStateValue(blindStatusStateTypeId, "stopped");
|
||||||
} else {
|
} else {
|
||||||
qWarning(dcUniPi()) << "shutter" << device << "Output close:" << value << "Status: " << device->stateValue(shutterStatusStateTypeId).toString();
|
qWarning(dcUniPi()) << "Blind" << device << "Output close:" << value << "Status: " << device->stateValue(blindStatusStateTypeId).toString();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -611,23 +615,23 @@ void DevicePluginUniPi::onWebSocketTextMessageReceived(QString message)
|
|||||||
Device *device = m_usedDigitalOutputs.value(obj["circuit"].toString());
|
Device *device = m_usedDigitalOutputs.value(obj["circuit"].toString());
|
||||||
if (device->deviceClassId() == digitalOutputDeviceClassId) {
|
if (device->deviceClassId() == digitalOutputDeviceClassId) {
|
||||||
device->setStateValue(digitalOutputPowerStateTypeId, QVariant(obj["value"].toInt()).toBool());
|
device->setStateValue(digitalOutputPowerStateTypeId, QVariant(obj["value"].toInt()).toBool());
|
||||||
} else if (device->deviceClassId() == shutterDeviceClassId) {
|
} else if (device->deviceClassId() == blindDeviceClassId) {
|
||||||
if (circuit == device->paramValue(shutterOutputOpenParamTypeId).toString()) {
|
if (circuit == device->paramValue(blindOutputOpenParamTypeId).toString()) {
|
||||||
if (value && device->stateValue(shutterStatusStateTypeId).toString().contains("stop")) {
|
if (value && device->stateValue(blindStatusStateTypeId).toString().contains("stop")) {
|
||||||
device->setStateValue(shutterStatusStateTypeId, "close");
|
device->setStateValue(blindStatusStateTypeId, "open");
|
||||||
} else if (!value && device->stateValue(shutterStatusStateTypeId).toString().contains("open")) {
|
} else if (!value && device->stateValue(blindStatusStateTypeId).toString().contains("open")) {
|
||||||
device->setStateValue(shutterStatusStateTypeId, "stop");
|
device->setStateValue(blindStatusStateTypeId, "stop");
|
||||||
} else {
|
} else {
|
||||||
qWarning(dcUniPi()) << "shutter" << device << "Output open:" << value << "Status: " << device->stateValue(shutterStatusStateTypeId).toString();
|
qWarning(dcUniPi()) << "blind" << device << "Output open:" << value << "Status: " << device->stateValue(blindStatusStateTypeId).toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (circuit == device->paramValue(shutterOutputCloseParamTypeId).toString()) {
|
if (circuit == device->paramValue(blindOutputCloseParamTypeId).toString()) {
|
||||||
if (value && device->stateValue(shutterStatusStateTypeId).toString().contains("stop")) {
|
if (value && device->stateValue(blindStatusStateTypeId).toString().contains("stop")) {
|
||||||
device->setStateValue(shutterStatusStateTypeId, "close");
|
device->setStateValue(blindStatusStateTypeId, "close");
|
||||||
} else if (!value && device->stateValue(shutterStatusStateTypeId).toString().contains("close")) {
|
} else if (!value && device->stateValue(blindStatusStateTypeId).toString().contains("close")) {
|
||||||
device->setStateValue(shutterStatusStateTypeId, "stop");
|
device->setStateValue(blindStatusStateTypeId, "stop");
|
||||||
} else {
|
} else {
|
||||||
qWarning(dcUniPi()) << "shutter" << device << "Output close:" << value << "Status: " << device->stateValue(shutterStatusStateTypeId).toString();
|
qWarning(dcUniPi()) << "blind" << device << "Output close:" << value << "Status: " << device->stateValue(blindStatusStateTypeId).toString();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -217,11 +217,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "eadddc99-ce7d-4169-a2f9-a829fa105ad2",
|
"id": "eadddc99-ce7d-4169-a2f9-a829fa105ad2",
|
||||||
"name": "shutter",
|
"name": "blind",
|
||||||
"displayName": "Shutter",
|
"displayName": "Blind",
|
||||||
"deviceIcon": "RollerShutter",
|
"deviceIcon": "Blinds",
|
||||||
"createMethods": ["discovery"],
|
"createMethods": ["discovery"],
|
||||||
"interfaces": ["shutter"],
|
"interfaces": ["blind"],
|
||||||
"basicTags": ["Actuator"],
|
"basicTags": ["Actuator"],
|
||||||
"paramTypes": [
|
"paramTypes": [
|
||||||
{
|
{
|
||||||
@ -259,11 +259,11 @@
|
|||||||
"displayNameEvent": "Status changed",
|
"displayNameEvent": "Status changed",
|
||||||
"type": "QString",
|
"type": "QString",
|
||||||
"possibleValues":[
|
"possibleValues":[
|
||||||
"open",
|
"opening",
|
||||||
"stop",
|
"stopped",
|
||||||
"close"
|
"closing"
|
||||||
],
|
],
|
||||||
"defaultValue": "stop"
|
"defaultValue": "stopped"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"actionTypes":[
|
"actionTypes":[
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user