Update one-wire plugin

This commit is contained in:
Michael Zanetti 2019-09-19 00:29:32 +02:00
parent b4ba578015
commit d7ccba9f43
3 changed files with 467 additions and 60 deletions

View File

@ -33,9 +33,9 @@ DevicePluginOneWire::DevicePluginOneWire()
{
}
Device::DeviceError DevicePluginOneWire::discoverDevices(const DeviceClassId &deviceClassId, const ParamList &params)
void DevicePluginOneWire::discoverDevices(DeviceDiscoveryInfo *info)
{
Q_UNUSED(params);
DeviceClassId deviceClassId = info->deviceClassId();
if (deviceClassId == temperatureSensorDeviceClassId ||
deviceClassId == singleChannelSwitchDeviceClassId ||
@ -44,32 +44,42 @@ Device::DeviceError DevicePluginOneWire::discoverDevices(const DeviceClassId &de
if (myDevices().filterByDeviceClassId(oneWireInterfaceDeviceClassId).isEmpty()) {
//No one wire interface intitialized
return Device::DeviceErrorHardwareNotAvailable;
//: Error discovering one wire devices
return info->finish(Device::DeviceErrorHardwareNotAvailable, QT_TR_NOOP("No one wire interface initialized. Please set up a one wire interface first."));
}
foreach(Device *parentDevice, myDevices().filterByDeviceClassId(oneWireInterfaceDeviceClassId)) {
if (parentDevice->stateValue(oneWireInterfaceAutoAddStateTypeId).toBool()) {
//devices cannot be discovered since auto mode is enabled
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
} else {
if (m_oneWireInterface)
m_oneWireInterface->discoverDevices();
}
}
return Device::DeviceErrorAsync;
m_runningDiscoveries.append(info);
connect(info, &DeviceDiscoveryInfo::destroyed, this, [this, info](){
m_runningDiscoveries.removeAll(info);
});
return;
}
return Device::DeviceErrorDeviceClassNotFound;
qCWarning(dcOneWire()) << "Discovery called for a deviceclass which does not support discovery? Device class ID:" << info->deviceClassId().toString();
info->finish(Device::DeviceErrorDeviceClassNotFound);
}
Device::DeviceSetupStatus DevicePluginOneWire::setupDevice(Device *device)
void DevicePluginOneWire::setupDevice(DeviceSetupInfo *info)
{
Device *device = info->device();
if (device->deviceClassId() == oneWireInterfaceDeviceClassId) {
qCDebug(dcOneWire) << "Setup one wire interface";
if (m_oneWireInterface) {
qCWarning(dcOneWire) << "One wire interface already set up";
return Device::DeviceSetupStatusFailure;
//: Error setting up device
return info->finish(Device::DeviceErrorDeviceInUse, QT_TR_NOOP("There can only be one one wire interface per system."));
}
m_oneWireInterface = new OneWire(this);
QByteArray initArguments = device->paramValue(oneWireInterfaceDeviceInitArgsParamTypeId).toByteArray();
@ -77,10 +87,11 @@ Device::DeviceSetupStatus DevicePluginOneWire::setupDevice(Device *device)
if (!m_oneWireInterface->init(initArguments)){
m_oneWireInterface->deleteLater();
m_oneWireInterface = nullptr;
return Device::DeviceSetupStatusFailure;
//: Error setting up device
return info->finish(Device::DeviceErrorHardwareFailure, QT_TR_NOOP("Error initializing one wire interface."));
}
connect(m_oneWireInterface, &OneWire::devicesDiscovered, this, &DevicePluginOneWire::onOneWireDevicesDiscovered);
return Device::DeviceSetupStatusSuccess;
return info->finish(Device::DeviceErrorNoError);
}
if (device->deviceClassId() == temperatureSensorDeviceClassId) {
@ -90,7 +101,7 @@ Device::DeviceSetupStatus DevicePluginOneWire::setupDevice(Device *device)
double temperature = m_oneWireInterface->getTemperature(device->paramValue(temperatureSensorDeviceAddressParamTypeId).toByteArray());
device->setStateValue(temperatureSensorTemperatureStateTypeId, temperature);
}
return Device::DeviceSetupStatusSuccess;
return info->finish(Device::DeviceErrorNoError);
}
if (device->deviceClassId() == singleChannelSwitchDeviceClassId) {
@ -99,7 +110,7 @@ Device::DeviceSetupStatus DevicePluginOneWire::setupDevice(Device *device)
QByteArray address = device->paramValue(singleChannelSwitchDeviceAddressParamTypeId).toByteArray();
device->setStateValue(singleChannelSwitchDigitalOutputStateTypeId, m_oneWireInterface->getSwitchOutput(address, OneWire::SwitchChannel::PIO_A));
}
return Device::DeviceSetupStatusSuccess;
return info->finish(Device::DeviceErrorNoError);
}
if (device->deviceClassId() == dualChannelSwitchDeviceClassId) {
@ -109,7 +120,7 @@ Device::DeviceSetupStatus DevicePluginOneWire::setupDevice(Device *device)
device->setStateValue(dualChannelSwitchDigitalOutput1StateTypeId, m_oneWireInterface->getSwitchOutput(address, OneWire::SwitchChannel::PIO_A));
device->setStateValue(dualChannelSwitchDigitalOutput2StateTypeId, m_oneWireInterface->getSwitchOutput(address, OneWire::SwitchChannel::PIO_B));
}
return Device::DeviceSetupStatusSuccess;
return info->finish(Device::DeviceErrorNoError);
}
if (device->deviceClassId() == eightChannelSwitchDeviceClassId) {
@ -125,9 +136,9 @@ Device::DeviceSetupStatus DevicePluginOneWire::setupDevice(Device *device)
device->setStateValue(eightChannelSwitchDigitalOutput7StateTypeId, m_oneWireInterface->getSwitchOutput(address, OneWire::SwitchChannel::PIO_G));
device->setStateValue(eightChannelSwitchDigitalOutput8StateTypeId, m_oneWireInterface->getSwitchOutput(address, OneWire::SwitchChannel::PIO_H));
}
return Device::DeviceSetupStatusSuccess;
return info->finish(Device::DeviceErrorNoError);
}
return Device::DeviceSetupStatusFailure;
return info->finish(Device::DeviceErrorDeviceNotFound);
}
void DevicePluginOneWire::postSetupDevice(Device *device)
@ -140,73 +151,76 @@ void DevicePluginOneWire::postSetupDevice(Device *device)
}
}
Device::DeviceError DevicePluginOneWire::executeAction(Device *device, const Action &action)
void DevicePluginOneWire::executeAction(DeviceActionInfo *info)
{
Device *device = info->device();
Action action = info->action();
if (device->deviceClassId() == oneWireInterfaceDeviceClassId) {
if (action.actionTypeId() == oneWireInterfaceAutoAddActionTypeId){
device->setStateValue(oneWireInterfaceAutoAddStateTypeId, action.param(oneWireInterfaceAutoAddActionAutoAddParamTypeId).value());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
return Device::DeviceErrorActionTypeNotFound;
return info->finish(Device::DeviceErrorActionTypeNotFound);
}
if (device->deviceClassId() == singleChannelSwitchDeviceClassId) {
if (action.actionTypeId() == singleChannelSwitchDigitalOutputActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(singleChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_A, action.param(singleChannelSwitchDigitalOutputActionDigitalOutputParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
return Device::DeviceErrorActionTypeNotFound;
return info->finish(Device::DeviceErrorActionTypeNotFound);
}
if (device->deviceClassId() == dualChannelSwitchDeviceClassId) {
if (action.actionTypeId() == dualChannelSwitchDigitalOutput1ActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(dualChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_A, action.param(dualChannelSwitchDigitalOutput1ActionDigitalOutput1ParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
if (action.actionTypeId() == dualChannelSwitchDigitalOutput2ActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(dualChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_B, action.param(dualChannelSwitchDigitalOutput2ActionDigitalOutput2ParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
return Device::DeviceErrorActionTypeNotFound;
return info->finish(Device::DeviceErrorActionTypeNotFound);
}
if (device->deviceClassId() == eightChannelSwitchDeviceClassId) {
if (action.actionTypeId() == eightChannelSwitchDigitalOutput1ActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(eightChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_A, action.param(eightChannelSwitchDigitalOutput1ActionDigitalOutput1ParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
if (action.actionTypeId() == eightChannelSwitchDigitalOutput2ActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(eightChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_B, action.param(eightChannelSwitchDigitalOutput2ActionDigitalOutput2ParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
if (action.actionTypeId() == eightChannelSwitchDigitalOutput3ActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(eightChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_C, action.param(eightChannelSwitchDigitalOutput3ActionDigitalOutput3ParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
if (action.actionTypeId() == eightChannelSwitchDigitalOutput4ActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(eightChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_D, action.param(eightChannelSwitchDigitalOutput4ActionDigitalOutput4ParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
if (action.actionTypeId() == eightChannelSwitchDigitalOutput5ActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(eightChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_E, action.param(eightChannelSwitchDigitalOutput5ActionDigitalOutput5ParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
if (action.actionTypeId() == eightChannelSwitchDigitalOutput6ActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(eightChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_F, action.param(eightChannelSwitchDigitalOutput6ActionDigitalOutput6ParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
if (action.actionTypeId() == eightChannelSwitchDigitalOutput7ActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(eightChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_G, action.param(eightChannelSwitchDigitalOutput7ActionDigitalOutput7ParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
if (action.actionTypeId() == eightChannelSwitchDigitalOutput8ActionTypeId){
m_oneWireInterface->setSwitchOutput(device->paramValue(eightChannelSwitchDeviceAddressParamTypeId).toByteArray(), OneWire::SwitchChannel::PIO_H, action.param(eightChannelSwitchDigitalOutput8ActionDigitalOutput8ParamTypeId).value().toBool());
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
return Device::DeviceErrorActionTypeNotFound;
return info->finish(Device::DeviceErrorActionTypeNotFound);
}
return Device::DeviceErrorNoError;
return info->finish(Device::DeviceErrorNoError);
}
@ -273,10 +287,7 @@ void DevicePluginOneWire::onOneWireDevicesDiscovered(QList<OneWire::OneWireDevic
foreach(Device *parentDevice, myDevices().filterByDeviceClassId(oneWireInterfaceDeviceClassId)) {
bool autoDiscoverEnabled = parentDevice->stateValue(oneWireInterfaceAutoAddStateTypeId).toBool();
QList<DeviceDescriptor> temperatureDeviceDescriptors;
QList<DeviceDescriptor> singleChannelSwitchDeviceDescriptors;
QList<DeviceDescriptor> dualChannelSwitchDeviceDescriptors;
QList<DeviceDescriptor> eightChannelSwitchDeviceDescriptors;
DeviceDescriptors descriptors;
foreach (OneWire::OneWireDevice oneWireDevice, oneWireDevices){
switch (oneWireDevice.family) {
//https://github.com/owfs/owfs-doc/wiki/1Wire-Device-List
@ -295,7 +306,7 @@ void DevicePluginOneWire::onOneWireDevicesDiscovered(QList<OneWire::OneWireDevic
}
}
descriptor.setParams(params);
temperatureDeviceDescriptors.append(descriptor);
descriptors.append(descriptor);
break;
}
case 0x05: { //single channel switch
@ -310,7 +321,7 @@ void DevicePluginOneWire::onOneWireDevicesDiscovered(QList<OneWire::OneWireDevic
}
}
descriptor.setParams(params);
singleChannelSwitchDeviceDescriptors.append(descriptor);
descriptors.append(descriptor);
break;
}
case 0x12:
@ -326,7 +337,7 @@ void DevicePluginOneWire::onOneWireDevicesDiscovered(QList<OneWire::OneWireDevic
}
}
descriptor.setParams(params);
dualChannelSwitchDeviceDescriptors.append(descriptor);
descriptors.append(descriptor);
break;
}
case 0x29: { //eight channel switch
@ -341,7 +352,7 @@ void DevicePluginOneWire::onOneWireDevicesDiscovered(QList<OneWire::OneWireDevic
}
}
descriptor.setParams(params);
eightChannelSwitchDeviceDescriptors.append(descriptor);
descriptors.append(descriptor);
break;
}
default:
@ -351,23 +362,14 @@ void DevicePluginOneWire::onOneWireDevicesDiscovered(QList<OneWire::OneWireDevic
}
}
if (autoDiscoverEnabled) {
if (!temperatureDeviceDescriptors.isEmpty())
emit autoDevicesAppeared(temperatureSensorDeviceClassId, temperatureDeviceDescriptors);
if (!singleChannelSwitchDeviceDescriptors.isEmpty())
emit autoDevicesAppeared(singleChannelSwitchDeviceClassId, singleChannelSwitchDeviceDescriptors);
if (!dualChannelSwitchDeviceDescriptors.isEmpty())
emit autoDevicesAppeared(dualChannelSwitchDeviceClassId, dualChannelSwitchDeviceDescriptors);
if (!eightChannelSwitchDeviceDescriptors.isEmpty())
emit autoDevicesAppeared(eightChannelSwitchDeviceClassId, eightChannelSwitchDeviceDescriptors);
emit autoDevicesAppeared(descriptors);
} else {
if (!temperatureDeviceDescriptors.isEmpty())
emit devicesDiscovered(temperatureSensorDeviceClassId, temperatureDeviceDescriptors);
if (!singleChannelSwitchDeviceDescriptors.isEmpty())
emit devicesDiscovered(singleChannelSwitchDeviceClassId, singleChannelSwitchDeviceDescriptors);
if (!dualChannelSwitchDeviceDescriptors.isEmpty())
emit devicesDiscovered(dualChannelSwitchDeviceClassId, dualChannelSwitchDeviceDescriptors);
if (!eightChannelSwitchDeviceDescriptors.isEmpty())
emit devicesDiscovered(eightChannelSwitchDeviceClassId, eightChannelSwitchDeviceDescriptors);
while (!m_runningDiscoveries.isEmpty()) {
DeviceDiscoveryInfo *info = m_runningDiscoveries.takeFirst();
info->addDeviceDescriptors(descriptors);
info->finish(Device::DeviceErrorNoError);
}
}
break;
}

View File

@ -38,16 +38,18 @@ class DevicePluginOneWire : public DevicePlugin
public:
explicit DevicePluginOneWire();
Device::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const ParamList &params) override;
Device::DeviceSetupStatus setupDevice(Device *device) override;
void discoverDevices(DeviceDiscoveryInfo *info) override;
void setupDevice(DeviceSetupInfo *info) override;
void postSetupDevice(Device *device) override;
Device::DeviceError executeAction(Device *device, const Action &action) override;
void executeAction(DeviceActionInfo *info) override;
void deviceRemoved(Device *device) override;
private:
PluginTimer *m_pluginTimer = nullptr;
OneWire *m_oneWireInterface = nullptr;
QList<DeviceDiscoveryInfo*> m_runningDiscoveries;
private slots:
void onPluginTimer();
void onOneWireDevicesDiscovered(QList<OneWire::OneWireDevice> devices);

View File

@ -0,0 +1,403 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>DevicePluginOneWire</name>
<message>
<location filename="../devicepluginonewire.cpp" line="47"/>
<source>No one wire interface initialized. Please set up a one wire interface first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../devicepluginonewire.cpp" line="80"/>
<source>There can only be one One wire interface per system.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../devicepluginonewire.cpp" line="88"/>
<source>Error initializing one wire interface.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OneWire</name>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="102"/>
<source>1-channel switch</source>
<extracomment>The name of the DeviceClass ({6db42501-5451-4aac-9525-5f886b3188e2})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="105"/>
<source>2-channel switch</source>
<extracomment>The name of the DeviceClass ({023f2b93-61e1-4422-97f5-3d5c14a6628f})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="108"/>
<source>8-channel switch</source>
<extracomment>The name of the DeviceClass ({71691119-3bda-4424-b853-1a00f21086e1})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="111"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="114"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="117"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="120"/>
<source>Address</source>
<extracomment>The name of the ParamType (DeviceClass: eightChannelSwitch, Type: device, ID: {e3e6e596-0cd4-42a3-8401-ccf6349314b7})
----------
The name of the ParamType (DeviceClass: dualChannelSwitch, Type: device, ID: {b9a1a23d-1fbf-4849-8aa2-2855e7deaf84})
----------
The name of the ParamType (DeviceClass: singleChannelSwitch, Type: device, ID: {c9d6b7fd-fa21-473a-b5ed-9c5227749f06})
----------
The name of the ParamType (DeviceClass: temperatureSensor, Type: device, ID: {b4368f34-d9bb-496f-84ba-091bd4b6a332})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="123"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="126"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="129"/>
<source>Auto add one wire devices</source>
<extracomment>The name of the ParamType (DeviceClass: oneWireInterface, ActionType: autoAdd, ID: {64baf50e-8ed4-4526-8b92-7e4662d6fa39})
----------
The name of the ParamType (DeviceClass: oneWireInterface, EventType: autoAdd, ID: {64baf50e-8ed4-4526-8b92-7e4662d6fa39})
----------
The name of the StateType ({64baf50e-8ed4-4526-8b92-7e4662d6fa39}) of DeviceClass oneWireInterface</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="132"/>
<source>Auto add one wire devices changed</source>
<extracomment>The name of the EventType ({64baf50e-8ed4-4526-8b92-7e4662d6fa39}) of DeviceClass oneWireInterface</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="135"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="138"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="141"/>
<source>Digital output</source>
<extracomment>The name of the ParamType (DeviceClass: singleChannelSwitch, ActionType: digitalOutput, ID: {ca10a9fd-e4e0-4608-a2d2-6a4ce9644f40})
----------
The name of the ParamType (DeviceClass: singleChannelSwitch, EventType: digitalOutput, ID: {ca10a9fd-e4e0-4608-a2d2-6a4ce9644f40})
----------
The name of the StateType ({ca10a9fd-e4e0-4608-a2d2-6a4ce9644f40}) of DeviceClass singleChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="144"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="147"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="150"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="153"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="156"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="159"/>
<source>Digital output 1</source>
<extracomment>The name of the ParamType (DeviceClass: eightChannelSwitch, ActionType: digitalOutput1, ID: {78fa12c0-246c-4112-8be6-5943d3c3cda5})
----------
The name of the ParamType (DeviceClass: eightChannelSwitch, EventType: digitalOutput1, ID: {78fa12c0-246c-4112-8be6-5943d3c3cda5})
----------
The name of the StateType ({78fa12c0-246c-4112-8be6-5943d3c3cda5}) of DeviceClass eightChannelSwitch
----------
The name of the ParamType (DeviceClass: dualChannelSwitch, ActionType: digitalOutput1, ID: {f8b6b4a7-355c-4580-a676-8a4d0d619ff9})
----------
The name of the ParamType (DeviceClass: dualChannelSwitch, EventType: digitalOutput1, ID: {f8b6b4a7-355c-4580-a676-8a4d0d619ff9})
----------
The name of the StateType ({f8b6b4a7-355c-4580-a676-8a4d0d619ff9}) of DeviceClass dualChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="162"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="165"/>
<source>Digital output 1 changed</source>
<extracomment>The name of the EventType ({78fa12c0-246c-4112-8be6-5943d3c3cda5}) of DeviceClass eightChannelSwitch
----------
The name of the EventType ({f8b6b4a7-355c-4580-a676-8a4d0d619ff9}) of DeviceClass dualChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="168"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="171"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="174"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="177"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="180"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="183"/>
<source>Digital output 2</source>
<extracomment>The name of the ParamType (DeviceClass: eightChannelSwitch, ActionType: digitalOutput2, ID: {c7d2f4a8-2b13-4a48-81a8-72f4908c775b})
----------
The name of the ParamType (DeviceClass: eightChannelSwitch, EventType: digitalOutput2, ID: {c7d2f4a8-2b13-4a48-81a8-72f4908c775b})
----------
The name of the StateType ({c7d2f4a8-2b13-4a48-81a8-72f4908c775b}) of DeviceClass eightChannelSwitch
----------
The name of the ParamType (DeviceClass: dualChannelSwitch, ActionType: digitalOutput2, ID: {82a78aed-5994-4af5-aecb-1806be5de1f3})
----------
The name of the ParamType (DeviceClass: dualChannelSwitch, EventType: digitalOutput2, ID: {82a78aed-5994-4af5-aecb-1806be5de1f3})
----------
The name of the StateType ({82a78aed-5994-4af5-aecb-1806be5de1f3}) of DeviceClass dualChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="186"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="189"/>
<source>Digital output 2 changed</source>
<extracomment>The name of the EventType ({c7d2f4a8-2b13-4a48-81a8-72f4908c775b}) of DeviceClass eightChannelSwitch
----------
The name of the EventType ({82a78aed-5994-4af5-aecb-1806be5de1f3}) of DeviceClass dualChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="192"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="195"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="198"/>
<source>Digital output 3</source>
<extracomment>The name of the ParamType (DeviceClass: eightChannelSwitch, ActionType: digitalOutput3, ID: {4b2ac595-eba9-4364-8cd7-00ff8bccda5a})
----------
The name of the ParamType (DeviceClass: eightChannelSwitch, EventType: digitalOutput3, ID: {4b2ac595-eba9-4364-8cd7-00ff8bccda5a})
----------
The name of the StateType ({4b2ac595-eba9-4364-8cd7-00ff8bccda5a}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="201"/>
<source>Digital output 3 changed</source>
<extracomment>The name of the EventType ({4b2ac595-eba9-4364-8cd7-00ff8bccda5a}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="204"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="207"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="210"/>
<source>Digital output 4</source>
<extracomment>The name of the ParamType (DeviceClass: eightChannelSwitch, ActionType: digitalOutput4, ID: {bbbd1863-ef04-4687-803d-3c9ccdfc8d8f})
----------
The name of the ParamType (DeviceClass: eightChannelSwitch, EventType: digitalOutput4, ID: {bbbd1863-ef04-4687-803d-3c9ccdfc8d8f})
----------
The name of the StateType ({bbbd1863-ef04-4687-803d-3c9ccdfc8d8f}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="213"/>
<source>Digital output 4 changed</source>
<extracomment>The name of the EventType ({bbbd1863-ef04-4687-803d-3c9ccdfc8d8f}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="216"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="219"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="222"/>
<source>Digital output 5</source>
<extracomment>The name of the ParamType (DeviceClass: eightChannelSwitch, ActionType: digitalOutput5, ID: {50855d2b-a700-4030-8674-fee00cc0b4e2})
----------
The name of the ParamType (DeviceClass: eightChannelSwitch, EventType: digitalOutput5, ID: {50855d2b-a700-4030-8674-fee00cc0b4e2})
----------
The name of the StateType ({50855d2b-a700-4030-8674-fee00cc0b4e2}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="225"/>
<source>Digital output 5 changed</source>
<extracomment>The name of the EventType ({50855d2b-a700-4030-8674-fee00cc0b4e2}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="228"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="231"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="234"/>
<source>Digital output 6</source>
<extracomment>The name of the ParamType (DeviceClass: eightChannelSwitch, ActionType: digitalOutput6, ID: {a91ce593-09ba-4754-8a2e-e3f507313585})
----------
The name of the ParamType (DeviceClass: eightChannelSwitch, EventType: digitalOutput6, ID: {a91ce593-09ba-4754-8a2e-e3f507313585})
----------
The name of the StateType ({a91ce593-09ba-4754-8a2e-e3f507313585}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="237"/>
<source>Digital output 6 changed</source>
<extracomment>The name of the EventType ({a91ce593-09ba-4754-8a2e-e3f507313585}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="240"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="243"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="246"/>
<source>Digital output 7</source>
<extracomment>The name of the ParamType (DeviceClass: eightChannelSwitch, ActionType: digitalOutput7, ID: {5f46047c-b00d-486f-b169-b738fbc89cdb})
----------
The name of the ParamType (DeviceClass: eightChannelSwitch, EventType: digitalOutput7, ID: {5f46047c-b00d-486f-b169-b738fbc89cdb})
----------
The name of the StateType ({5f46047c-b00d-486f-b169-b738fbc89cdb}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="249"/>
<source>Digital output 7 changed</source>
<extracomment>The name of the EventType ({5f46047c-b00d-486f-b169-b738fbc89cdb}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="252"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="255"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="258"/>
<source>Digital output 8</source>
<extracomment>The name of the ParamType (DeviceClass: eightChannelSwitch, ActionType: digitalOutput8, ID: {63334a17-0847-4f53-8007-1b5e72b88aa8})
----------
The name of the ParamType (DeviceClass: eightChannelSwitch, EventType: digitalOutput8, ID: {63334a17-0847-4f53-8007-1b5e72b88aa8})
----------
The name of the StateType ({63334a17-0847-4f53-8007-1b5e72b88aa8}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="261"/>
<source>Digital output 8 changed</source>
<extracomment>The name of the EventType ({63334a17-0847-4f53-8007-1b5e72b88aa8}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="264"/>
<source>Digital output changed</source>
<extracomment>The name of the EventType ({ca10a9fd-e4e0-4608-a2d2-6a4ce9644f40}) of DeviceClass singleChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="267"/>
<source>OWFS init arguments</source>
<extracomment>The name of the ParamType (DeviceClass: oneWireInterface, Type: device, ID: {a0e773ff-fd19-499e-96f0-830168229cd3})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="270"/>
<source>One Wire</source>
<extracomment>The name of the plugin OneWire ({2c697fb7-0645-466d-9cb9-aa1922c85bee})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="273"/>
<source>One wire</source>
<extracomment>The name of the vendor ({cecc5fae-29cf-40c0-b1f8-0af2dc8e8a63})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="276"/>
<source>One wire interface</source>
<extracomment>The name of the DeviceClass ({c36c68d9-6182-4ae1-972d-b8b5e0cf185f})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="279"/>
<source>Set auto add mode</source>
<extracomment>The name of the ActionType ({64baf50e-8ed4-4526-8b92-7e4662d6fa39}) of DeviceClass oneWireInterface</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="282"/>
<source>Set digital output</source>
<extracomment>The name of the ActionType ({ca10a9fd-e4e0-4608-a2d2-6a4ce9644f40}) of DeviceClass singleChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="285"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="288"/>
<source>Set digital output 1</source>
<extracomment>The name of the ActionType ({78fa12c0-246c-4112-8be6-5943d3c3cda5}) of DeviceClass eightChannelSwitch
----------
The name of the ActionType ({f8b6b4a7-355c-4580-a676-8a4d0d619ff9}) of DeviceClass dualChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="291"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="294"/>
<source>Set digital output 2</source>
<extracomment>The name of the ActionType ({c7d2f4a8-2b13-4a48-81a8-72f4908c775b}) of DeviceClass eightChannelSwitch
----------
The name of the ActionType ({82a78aed-5994-4af5-aecb-1806be5de1f3}) of DeviceClass dualChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="297"/>
<source>Set digital output 3</source>
<extracomment>The name of the ActionType ({4b2ac595-eba9-4364-8cd7-00ff8bccda5a}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="300"/>
<source>Set digital output 4</source>
<extracomment>The name of the ActionType ({bbbd1863-ef04-4687-803d-3c9ccdfc8d8f}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="303"/>
<source>Set digital output 5</source>
<extracomment>The name of the ActionType ({50855d2b-a700-4030-8674-fee00cc0b4e2}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="306"/>
<source>Set digital output 6</source>
<extracomment>The name of the ActionType ({a91ce593-09ba-4754-8a2e-e3f507313585}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="309"/>
<source>Set digital output 7</source>
<extracomment>The name of the ActionType ({5f46047c-b00d-486f-b169-b738fbc89cdb}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="312"/>
<source>Set digital output 8</source>
<extracomment>The name of the ActionType ({63334a17-0847-4f53-8007-1b5e72b88aa8}) of DeviceClass eightChannelSwitch</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="315"/>
<source>Temperature Sensor</source>
<extracomment>The name of the DeviceClass ({e13beb24-953c-48b3-9262-7cde31d42ef5})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="318"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="321"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="324"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="327"/>
<source>Type</source>
<extracomment>The name of the ParamType (DeviceClass: eightChannelSwitch, Type: device, ID: {34c8f771-4141-4183-9eaf-becbaf362ac8})
----------
The name of the ParamType (DeviceClass: dualChannelSwitch, Type: device, ID: {b71ed57b-e768-4119-829e-a0f2c9fa5e18})
----------
The name of the ParamType (DeviceClass: singleChannelSwitch, Type: device, ID: {6efc8cb6-81ae-45c0-8910-708401d1ba68})
----------
The name of the ParamType (DeviceClass: temperatureSensor, Type: device, ID: {5005822d-6a32-4bb8-9b77-f79da7382f76})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="330"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="333"/>
<source>connected</source>
<extracomment>The name of the ParamType (DeviceClass: oneWireInterface, EventType: connected, ID: {d0ded173-c382-4ee3-8e24-3647b4e16afa})
----------
The name of the StateType ({d0ded173-c382-4ee3-8e24-3647b4e16afa}) of DeviceClass oneWireInterface</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="336"/>
<source>connected changed</source>
<extracomment>The name of the EventType ({d0ded173-c382-4ee3-8e24-3647b4e16afa}) of DeviceClass oneWireInterface</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="339"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="342"/>
<source>temperature</source>
<extracomment>The name of the ParamType (DeviceClass: temperatureSensor, EventType: temperature, ID: {b04ee2a5-9b27-4ffc-9e12-7e05f5a41690})
----------
The name of the StateType ({b04ee2a5-9b27-4ffc-9e12-7e05f5a41690}) of DeviceClass temperatureSensor</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/onewire/plugininfo.h" line="345"/>
<source>temperature changed</source>
<extracomment>The name of the EventType ({b04ee2a5-9b27-4ffc-9e12-7e05f5a41690}) of DeviceClass temperatureSensor</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
</TS>