From 9d63b12f92c2a2f20519448a48db026862994798 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Tue, 6 Mar 2018 22:49:36 +0100 Subject: [PATCH 01/62] rename to nymea --- avahimonitor/avahimonitor.pro | 2 +- avahimonitor/devicepluginavahimonitor.cpp | 4 +- avahimonitor/devicepluginavahimonitor.h | 4 +- avahimonitor/devicepluginavahimonitor.json | 2 +- awattar/awattar.pro | 2 +- awattar/devicepluginawattar.cpp | 4 +- awattar/devicepluginawattar.h | 4 +- awattar/heatpump.cpp | 2 +- awattar/heatpump.h | 2 +- commandlauncher/commandlauncher.pro | 2 +- .../deviceplugincommandlauncher.cpp | 12 +- commandlauncher/deviceplugincommandlauncher.h | 4 +- .../deviceplugincommandlauncher.json | 2 +- conrad/conrad.pro | 2 +- conrad/devicepluginconrad.cpp | 4 +- conrad/devicepluginconrad.h | 4 +- datetime/alarm.cpp | 2 +- datetime/alarm.h | 2 +- datetime/countdown.cpp | 2 +- datetime/countdown.h | 2 +- datetime/datetime.pro | 2 +- datetime/deviceplugindatetime.cpp | 4 +- datetime/deviceplugindatetime.h | 4 +- datetime/deviceplugindatetime.json | 2 +- debian/changelog | 6 + debian/control | 517 ++++++++++-------- debian/copyright | 2 +- debian/guh-plugin-avahimonitor.install.in | 1 - debian/guh-plugin-awattar.install.in | 1 - debian/guh-plugin-commandlauncher.install.in | 1 - debian/guh-plugin-conrad.install.in | 1 - debian/guh-plugin-datetime.install.in | 1 - debian/guh-plugin-denon.install.in | 1 - debian/guh-plugin-elgato.install.in | 1 - debian/guh-plugin-elro.install.in | 1 - debian/guh-plugin-eq-3.install.in | 1 - debian/guh-plugin-genericelements.install.in | 1 - debian/guh-plugin-gpio.install.in | 1 - debian/guh-plugin-intertechno.install.in | 1 - debian/guh-plugin-kodi.install.in | 1 - debian/guh-plugin-leynew.install.in | 1 - debian/guh-plugin-lgsmarttv.install.in | 1 - debian/guh-plugin-mailnotification.install.in | 1 - debian/guh-plugin-multisensor.install.in | 1 - debian/guh-plugin-netatmo.install.in | 1 - debian/guh-plugin-networkdetector.install.in | 1 - debian/guh-plugin-openweathermap.install.in | 1 - debian/guh-plugin-orderbutton.install.in | 1 - debian/guh-plugin-osdomotics.install.in | 1 - debian/guh-plugin-philipshue.install.in | 1 - debian/guh-plugin-plantcare.install.in | 1 - debian/guh-plugin-pushbullet.install.in | 1 - debian/guh-plugin-senic.install.in | 1 - debian/guh-plugin-simulation.install.in | 1 - debian/guh-plugin-snapd.install.in | 1 - debian/guh-plugin-tcpcommander.install.in | 1 - debian/guh-plugin-udpcommander.install.in | 1 - debian/guh-plugin-unitec.install.in | 1 - debian/guh-plugin-usbwde.install.in | 1 - debian/guh-plugin-wakeonlan.install.in | 1 - debian/guh-plugin-wemo.install.in | 1 - debian/guh-plugin-ws2812.install.in | 1 - debian/guh-plugins-translations.dirs | 1 - debian/guh-plugins-translations.install.in | 1 - debian/nymea-plugin-avahimonitor.install.in | 1 + debian/nymea-plugin-awattar.install.in | 1 + .../nymea-plugin-commandlauncher.install.in | 1 + debian/nymea-plugin-conrad.install.in | 1 + debian/nymea-plugin-datetime.install.in | 1 + debian/nymea-plugin-denon.install.in | 1 + debian/nymea-plugin-elgato.install.in | 1 + debian/nymea-plugin-elro.install.in | 1 + debian/nymea-plugin-eq-3.install.in | 1 + .../nymea-plugin-genericelements.install.in | 1 + debian/nymea-plugin-gpio.install.in | 1 + debian/nymea-plugin-intertechno.install.in | 1 + debian/nymea-plugin-kodi.install.in | 1 + debian/nymea-plugin-leynew.install.in | 1 + debian/nymea-plugin-lgsmarttv.install.in | 1 + .../nymea-plugin-mailnotification.install.in | 1 + debian/nymea-plugin-multisensor.install.in | 1 + debian/nymea-plugin-netatmo.install.in | 1 + .../nymea-plugin-networkdetector.install.in | 1 + debian/nymea-plugin-openweathermap.install.in | 1 + debian/nymea-plugin-orderbutton.install.in | 1 + debian/nymea-plugin-osdomotics.install.in | 1 + debian/nymea-plugin-philipshue.install.in | 1 + debian/nymea-plugin-plantcare.install.in | 1 + debian/nymea-plugin-pushbullet.install.in | 1 + debian/nymea-plugin-senic.install.in | 1 + debian/nymea-plugin-simulation.install.in | 1 + debian/nymea-plugin-snapd.install.in | 1 + debian/nymea-plugin-tcpcommander.install.in | 1 + debian/nymea-plugin-udpcommander.install.in | 1 + debian/nymea-plugin-unitec.install.in | 1 + debian/nymea-plugin-usbwde.install.in | 1 + debian/nymea-plugin-wakeonlan.install.in | 1 + debian/nymea-plugin-wemo.install.in | 1 + debian/nymea-plugin-ws2812.install.in | 1 + debian/nymea-plugins-translations.dirs | 1 + debian/nymea-plugins-translations.install.in | 1 + denon/denon.pro | 2 +- denon/denonconnection.cpp | 2 +- denon/denonconnection.h | 2 +- denon/deviceplugindenon.cpp | 4 +- denon/deviceplugindenon.h | 4 +- elgato/aveabulb.cpp | 2 +- elgato/aveabulb.h | 2 +- elgato/devicepluginelgato.cpp | 4 +- elgato/devicepluginelgato.h | 4 +- elgato/elgato.pro | 2 +- elro/devicepluginelro.cpp | 4 +- elro/devicepluginelro.h | 4 +- elro/elro.pro | 2 +- eq-3/deviceplugineq-3.cpp | 8 +- eq-3/deviceplugineq-3.h | 4 +- eq-3/eq-3.pro | 2 +- eq-3/maxcube.cpp | 2 +- eq-3/maxcube.h | 2 +- eq-3/maxcubediscovery.cpp | 2 +- eq-3/maxcubediscovery.h | 2 +- eq-3/maxdevice.cpp | 2 +- eq-3/maxdevice.h | 2 +- eq-3/radiatorthermostat.cpp | 2 +- eq-3/radiatorthermostat.h | 2 +- eq-3/room.cpp | 2 +- eq-3/room.h | 2 +- eq-3/wallthermostat.cpp | 2 +- eq-3/wallthermostat.h | 2 +- .../deviceplugingenericelements.cpp | 4 +- genericelements/deviceplugingenericelements.h | 4 +- .../deviceplugingenericelements.json | 2 +- genericelements/genericelements.pro | 2 +- gpio/deviceplugingpio.cpp | 4 +- gpio/deviceplugingpio.h | 4 +- gpio/gpio.pro | 2 +- gpio/gpiodescriptor.cpp | 2 +- gpio/gpiodescriptor.h | 2 +- intertechno/devicepluginintertechno.cpp | 4 +- intertechno/devicepluginintertechno.h | 4 +- intertechno/intertechno.pro | 2 +- kodi/devicepluginkodi.cpp | 16 +- kodi/devicepluginkodi.h | 4 +- kodi/images.qrc | 2 +- kodi/images/{guh-logo.png => nymea-logo.png} | Bin kodi/images/{guh-logo.svg => nymea-logo.svg} | 0 kodi/kodi.cpp | 4 +- kodi/kodi.h | 2 +- kodi/kodi.pro | 2 +- kodi/kodiconnection.cpp | 2 +- kodi/kodiconnection.h | 2 +- kodi/kodijsonhandler.cpp | 2 +- kodi/kodijsonhandler.h | 2 +- kodi/kodireply.cpp | 2 +- kodi/kodireply.h | 2 +- leynew/devicepluginleynew.cpp | 4 +- leynew/devicepluginleynew.h | 4 +- leynew/leynew.pro | 2 +- lgsmarttv/devicepluginlgsmarttv.cpp | 4 +- lgsmarttv/devicepluginlgsmarttv.h | 4 +- lgsmarttv/lgsmarttv.pro | 2 +- lgsmarttv/tvdevice.cpp | 10 +- lgsmarttv/tvdevice.h | 2 +- lgsmarttv/tveventhandler.cpp | 4 +- lgsmarttv/tveventhandler.h | 2 +- lircd/devicepluginlircd.cpp | 8 +- .../devicepluginmailnotification.cpp | 8 +- .../devicepluginmailnotification.h | 4 +- .../devicepluginmailnotification.json | 2 +- mailnotification/mailnotification.pro | 2 +- mailnotification/smtpclient.cpp | 4 +- mailnotification/smtpclient.h | 2 +- multisensor/devicepluginmultisensor.cpp | 4 +- multisensor/devicepluginmultisensor.h | 4 +- multisensor/multisensor.pro | 2 +- netatmo/devicepluginnetatmo.cpp | 4 +- netatmo/devicepluginnetatmo.h | 4 +- netatmo/netatmo.pro | 2 +- netatmo/netatmobasestation.cpp | 2 +- netatmo/netatmobasestation.h | 2 +- netatmo/netatmooutdoormodule.cpp | 2 +- netatmo/netatmooutdoormodule.h | 2 +- .../devicepluginnetworkdetector.cpp | 6 +- networkdetector/devicepluginnetworkdetector.h | 4 +- .../devicepluginnetworkdetector.json | 2 +- networkdetector/host.cpp | 2 +- networkdetector/host.h | 2 +- networkdetector/networkdetector.pro | 2 +- guh-plugins.pro => nymea-plugins.pro | 0 openweathermap/devicepluginopenweathermap.cpp | 4 +- openweathermap/devicepluginopenweathermap.h | 4 +- openweathermap/openweathermap.pro | 2 +- orderbutton/devicepluginorderbutton.cpp | 4 +- orderbutton/devicepluginorderbutton.h | 4 +- orderbutton/devicepluginorderbutton.json | 2 +- orderbutton/orderbutton.pro | 2 +- osdomotics/devicepluginosdomotics.cpp | 6 +- osdomotics/devicepluginosdomotics.h | 4 +- osdomotics/osdomotics.pro | 2 +- philipshue/devicepluginphilipshue.cpp | 8 +- philipshue/devicepluginphilipshue.h | 4 +- philipshue/huebridge.cpp | 2 +- philipshue/huebridge.h | 2 +- philipshue/huedevice.cpp | 2 +- philipshue/huedevice.h | 2 +- philipshue/huelight.cpp | 2 +- philipshue/huelight.h | 2 +- philipshue/hueremote.cpp | 2 +- philipshue/hueremote.h | 2 +- philipshue/pairinginfo.cpp | 2 +- philipshue/pairinginfo.h | 2 +- philipshue/philipshue.pro | 2 +- plantcare/devicepluginplantcare.cpp | 8 +- plantcare/devicepluginplantcare.h | 4 +- plantcare/devicepluginplantcare.json | 2 +- plantcare/plantcare.pro | 2 +- plugins.pri | 14 +- pushbullet/devicepluginpushbullet.cpp | 2 +- pushbullet/devicepluginpushbullet.h | 4 +- pushbullet/pushbullet.pro | 2 +- senic/devicepluginsenic.cpp | 4 +- senic/devicepluginsenic.h | 4 +- senic/nuimo.cpp | 2 +- senic/nuimo.h | 2 +- senic/senic.pro | 2 +- simulation/devicepluginsimulation.cpp | 8 +- simulation/devicepluginsimulation.h | 10 +- simulation/simulation.pro | 2 +- snapd/devicepluginsnapd.cpp | 2 +- snapd/devicepluginsnapd.h | 4 +- snapd/snapd.pro | 2 +- snapd/snapdconnection.cpp | 2 +- snapd/snapdconnection.h | 2 +- snapd/snapdcontrol.cpp | 2 +- snapd/snapdcontrol.h | 2 +- snapd/snapdreply.cpp | 2 +- snapd/snapdreply.h | 2 +- tcpcommander/deviceplugintcpcommander.cpp | 8 +- tcpcommander/deviceplugintcpcommander.h | 10 +- tcpcommander/tcpcommander.pro | 2 +- tcpcommander/tcpserver.cpp | 8 +- tcpcommander/tcpserver.h | 8 +- udpcommander/devicepluginudpcommander.cpp | 16 +- udpcommander/devicepluginudpcommander.h | 4 +- udpcommander/devicepluginudpcommander.json | 2 +- udpcommander/udpcommander.pro | 2 +- unitec/devicepluginunitec.cpp | 6 +- unitec/devicepluginunitec.h | 4 +- unitec/unitec.pro | 2 +- usbwde/devicepluginusbwde.cpp | 2 +- usbwde/devicepluginusbwde.h | 4 +- usbwde/usbwde.pro | 2 +- wakeonlan/devicepluginwakeonlan.cpp | 4 +- wakeonlan/devicepluginwakeonlan.h | 4 +- wakeonlan/devicepluginwakeonlan.json | 2 +- wakeonlan/wakeonlan.pro | 2 +- wemo/devicepluginwemo.cpp | 8 +- wemo/devicepluginwemo.h | 4 +- wemo/wemo.pro | 2 +- ws2812/devicepluginws2812.cpp | 4 +- ws2812/devicepluginws2812.h | 4 +- ws2812/devicepluginws2812.json | 2 +- ws2812/ws2812.pro | 2 +- 263 files changed, 634 insertions(+), 587 deletions(-) delete mode 100644 debian/guh-plugin-avahimonitor.install.in delete mode 100644 debian/guh-plugin-awattar.install.in delete mode 100644 debian/guh-plugin-commandlauncher.install.in delete mode 100644 debian/guh-plugin-conrad.install.in delete mode 100644 debian/guh-plugin-datetime.install.in delete mode 100644 debian/guh-plugin-denon.install.in delete mode 100644 debian/guh-plugin-elgato.install.in delete mode 100644 debian/guh-plugin-elro.install.in delete mode 100644 debian/guh-plugin-eq-3.install.in delete mode 100644 debian/guh-plugin-genericelements.install.in delete mode 100644 debian/guh-plugin-gpio.install.in delete mode 100644 debian/guh-plugin-intertechno.install.in delete mode 100644 debian/guh-plugin-kodi.install.in delete mode 100644 debian/guh-plugin-leynew.install.in delete mode 100644 debian/guh-plugin-lgsmarttv.install.in delete mode 100644 debian/guh-plugin-mailnotification.install.in delete mode 100644 debian/guh-plugin-multisensor.install.in delete mode 100644 debian/guh-plugin-netatmo.install.in delete mode 100644 debian/guh-plugin-networkdetector.install.in delete mode 100644 debian/guh-plugin-openweathermap.install.in delete mode 100644 debian/guh-plugin-orderbutton.install.in delete mode 100644 debian/guh-plugin-osdomotics.install.in delete mode 100644 debian/guh-plugin-philipshue.install.in delete mode 100644 debian/guh-plugin-plantcare.install.in delete mode 100644 debian/guh-plugin-pushbullet.install.in delete mode 100644 debian/guh-plugin-senic.install.in delete mode 100644 debian/guh-plugin-simulation.install.in delete mode 100644 debian/guh-plugin-snapd.install.in delete mode 100644 debian/guh-plugin-tcpcommander.install.in delete mode 100644 debian/guh-plugin-udpcommander.install.in delete mode 100644 debian/guh-plugin-unitec.install.in delete mode 100644 debian/guh-plugin-usbwde.install.in delete mode 100644 debian/guh-plugin-wakeonlan.install.in delete mode 100644 debian/guh-plugin-wemo.install.in delete mode 100644 debian/guh-plugin-ws2812.install.in delete mode 100644 debian/guh-plugins-translations.dirs delete mode 100644 debian/guh-plugins-translations.install.in create mode 100644 debian/nymea-plugin-avahimonitor.install.in create mode 100644 debian/nymea-plugin-awattar.install.in create mode 100644 debian/nymea-plugin-commandlauncher.install.in create mode 100644 debian/nymea-plugin-conrad.install.in create mode 100644 debian/nymea-plugin-datetime.install.in create mode 100644 debian/nymea-plugin-denon.install.in create mode 100644 debian/nymea-plugin-elgato.install.in create mode 100644 debian/nymea-plugin-elro.install.in create mode 100644 debian/nymea-plugin-eq-3.install.in create mode 100644 debian/nymea-plugin-genericelements.install.in create mode 100644 debian/nymea-plugin-gpio.install.in create mode 100644 debian/nymea-plugin-intertechno.install.in create mode 100644 debian/nymea-plugin-kodi.install.in create mode 100644 debian/nymea-plugin-leynew.install.in create mode 100644 debian/nymea-plugin-lgsmarttv.install.in create mode 100644 debian/nymea-plugin-mailnotification.install.in create mode 100644 debian/nymea-plugin-multisensor.install.in create mode 100644 debian/nymea-plugin-netatmo.install.in create mode 100644 debian/nymea-plugin-networkdetector.install.in create mode 100644 debian/nymea-plugin-openweathermap.install.in create mode 100644 debian/nymea-plugin-orderbutton.install.in create mode 100644 debian/nymea-plugin-osdomotics.install.in create mode 100644 debian/nymea-plugin-philipshue.install.in create mode 100644 debian/nymea-plugin-plantcare.install.in create mode 100644 debian/nymea-plugin-pushbullet.install.in create mode 100644 debian/nymea-plugin-senic.install.in create mode 100644 debian/nymea-plugin-simulation.install.in create mode 100644 debian/nymea-plugin-snapd.install.in create mode 100644 debian/nymea-plugin-tcpcommander.install.in create mode 100644 debian/nymea-plugin-udpcommander.install.in create mode 100644 debian/nymea-plugin-unitec.install.in create mode 100644 debian/nymea-plugin-usbwde.install.in create mode 100644 debian/nymea-plugin-wakeonlan.install.in create mode 100644 debian/nymea-plugin-wemo.install.in create mode 100644 debian/nymea-plugin-ws2812.install.in create mode 100644 debian/nymea-plugins-translations.dirs create mode 100644 debian/nymea-plugins-translations.install.in rename kodi/images/{guh-logo.png => nymea-logo.png} (100%) rename kodi/images/{guh-logo.svg => nymea-logo.svg} (100%) rename guh-plugins.pro => nymea-plugins.pro (100%) diff --git a/avahimonitor/avahimonitor.pro b/avahimonitor/avahimonitor.pro index d58a2c2f..55db9a5a 100644 --- a/avahimonitor/avahimonitor.pro +++ b/avahimonitor/avahimonitor.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginavahimonitor) +TARGET = $$qtLibraryTarget(nymea_devicepluginavahimonitor) SOURCES += \ devicepluginavahimonitor.cpp diff --git a/avahimonitor/devicepluginavahimonitor.cpp b/avahimonitor/devicepluginavahimonitor.cpp index 9749d78f..b4574808 100644 --- a/avahimonitor/devicepluginavahimonitor.cpp +++ b/avahimonitor/devicepluginavahimonitor.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2014 Michael Zanetti * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -27,7 +27,7 @@ \brief Plugin to monitor zeroconf devices in the local network. \ingroup plugins - \ingroup guh-plugins-maker + \ingroup nymea-plugins-maker \chapter Plugin properties Following JSON file contains the definition and the description of all available \l{DeviceClass}{DeviceClasses} diff --git a/avahimonitor/devicepluginavahimonitor.h b/avahimonitor/devicepluginavahimonitor.h index b4ce50c0..1ad123a3 100644 --- a/avahimonitor/devicepluginavahimonitor.h +++ b/avahimonitor/devicepluginavahimonitor.h @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2014 Michael Zanetti * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -33,7 +33,7 @@ class DevicePluginAvahiMonitor : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginavahimonitor.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginavahimonitor.json") Q_INTERFACES(DevicePlugin) public: diff --git a/avahimonitor/devicepluginavahimonitor.json b/avahimonitor/devicepluginavahimonitor.json index b9e4fc78..8399dcb7 100644 --- a/avahimonitor/devicepluginavahimonitor.json +++ b/avahimonitor/devicepluginavahimonitor.json @@ -4,7 +4,7 @@ "id": "d83fb167-cef7-4347-8c58-fa39df7bea4f", "vendors": [ { - "displayName": "guh", + "displayName": "guh GmbH", "name": "guh", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ diff --git a/awattar/awattar.pro b/awattar/awattar.pro index fb9be0fa..2ddcec28 100644 --- a/awattar/awattar.pro +++ b/awattar/awattar.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginawattar) +TARGET = $$qtLibraryTarget(nymea_devicepluginawattar) SOURCES += \ devicepluginawattar.cpp \ diff --git a/awattar/devicepluginawattar.cpp b/awattar/devicepluginawattar.cpp index a93553c5..8922a418 100644 --- a/awattar/devicepluginawattar.cpp +++ b/awattar/devicepluginawattar.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for aWATTar, an austrian energy provider. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to receive the current energy market price from the \l{https://www.awattar.com/}{aWATTar GmbH}. In order to use this plugin you need to enter the access token from your energy provider. You can find more diff --git a/awattar/devicepluginawattar.h b/awattar/devicepluginawattar.h index e388d072..aceaec14 100644 --- a/awattar/devicepluginawattar.h +++ b/awattar/devicepluginawattar.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -37,7 +37,7 @@ class DevicePluginAwattar : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginawattar.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginawattar.json") Q_INTERFACES(DevicePlugin) public: diff --git a/awattar/heatpump.cpp b/awattar/heatpump.cpp index 6c3d28d7..2d8b0944 100644 --- a/awattar/heatpump.cpp +++ b/awattar/heatpump.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/awattar/heatpump.h b/awattar/heatpump.h index 6e972f37..e88db6da 100644 --- a/awattar/heatpump.h +++ b/awattar/heatpump.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/commandlauncher/commandlauncher.pro b/commandlauncher/commandlauncher.pro index 9955aa64..9e479d98 100644 --- a/commandlauncher/commandlauncher.pro +++ b/commandlauncher/commandlauncher.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_deviceplugincommandlauncher) +TARGET = $$qtLibraryTarget(nymea_deviceplugincommandlauncher) SOURCES += \ deviceplugincommandlauncher.cpp diff --git a/commandlauncher/deviceplugincommandlauncher.cpp b/commandlauncher/deviceplugincommandlauncher.cpp index 7e12d1dd..e1e0d0d6 100644 --- a/commandlauncher/deviceplugincommandlauncher.cpp +++ b/commandlauncher/deviceplugincommandlauncher.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2014 Michael Zanetti * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -27,27 +27,27 @@ \brief Plugin for system commands. \ingroup plugins - \ingroup guh-plugins-maker + \ingroup nymea-plugins-maker The application and script launcher plugin allows you to execute bash commands and start bash scripts. \chapter Application launcher The application launcher \l{DeviceClass} allows you to call bash applications or commands (with parameters) - from guh. Once, the application started, the \tt running \l{State} will change to \tt true, if the application + from nymea. Once, the application started, the \tt running \l{State} will change to \tt true, if the application is finished, the \tt running \l{State} will change to \tt false. \section3 Example An example command could be \l{http://linux.die.net/man/1/espeak}{espeak}. (\tt{apt-get install espeak}) \code - espeak -v en "Chuck Norris is using gooe" # gooe = guh pronounced correctly + espeak -v en "Chuck Norris is using nymea" \endcode \chapter Bashscript launcher The bashscript launcher \l{DeviceClass} allows you to call bash script (with parameters) - from guh. Once, the script is running, the \tt running \l{State} will change to \tt true, if the script + from nymea. Once, the script is running, the \tt running \l{State} will change to \tt true, if the script is finished, the \tt running \l{State} will change to \tt false. \section3 Example @@ -62,7 +62,7 @@ # Create archive filename... day=$(date +%Y%m%d) - hostname="guh.guru" + hostname="nymea.io" archive_file="$day-$hostname.tgz" # Print start status message... diff --git a/commandlauncher/deviceplugincommandlauncher.h b/commandlauncher/deviceplugincommandlauncher.h index fee4e3e2..63dac59d 100644 --- a/commandlauncher/deviceplugincommandlauncher.h +++ b/commandlauncher/deviceplugincommandlauncher.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -32,7 +32,7 @@ class DevicePluginCommandLauncher : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "deviceplugincommandlauncher.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "deviceplugincommandlauncher.json") Q_INTERFACES(DevicePlugin) public: diff --git a/commandlauncher/deviceplugincommandlauncher.json b/commandlauncher/deviceplugincommandlauncher.json index be4e3a69..17b4c130 100644 --- a/commandlauncher/deviceplugincommandlauncher.json +++ b/commandlauncher/deviceplugincommandlauncher.json @@ -5,7 +5,7 @@ "vendors": [ { "name": "guh", - "displayName": "guh", + "displayName": "guh GmbH", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ { diff --git a/conrad/conrad.pro b/conrad/conrad.pro index eb2801e7..ee96505d 100644 --- a/conrad/conrad.pro +++ b/conrad/conrad.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginconrad) +TARGET = $$qtLibraryTarget(nymea_devicepluginconrad) SOURCES += \ devicepluginconrad.cpp diff --git a/conrad/devicepluginconrad.cpp b/conrad/devicepluginconrad.cpp index 18964992..2e44344c 100644 --- a/conrad/devicepluginconrad.cpp +++ b/conrad/devicepluginconrad.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2014 Michael Zanetti * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -27,7 +27,7 @@ \brief Plugin for Conrad 433 MHz devices. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to controll RF 433 MHz actors an receive remote signals from \l{http://www.conrad.at}{Conrad} devices. diff --git a/conrad/devicepluginconrad.h b/conrad/devicepluginconrad.h index 79412ede..329361ff 100644 --- a/conrad/devicepluginconrad.h +++ b/conrad/devicepluginconrad.h @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2014 Michael Zanetti * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -30,7 +30,7 @@ class DevicePluginConrad : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "org.guh.DevicePlugin" FILE "devicepluginconrad.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginconrad.json") Q_INTERFACES(DevicePlugin) public: diff --git a/datetime/alarm.cpp b/datetime/alarm.cpp index 77bf7ed7..87f28c12 100644 --- a/datetime/alarm.cpp +++ b/datetime/alarm.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/datetime/alarm.h b/datetime/alarm.h index 0f0f6795..8c9edcc8 100644 --- a/datetime/alarm.h +++ b/datetime/alarm.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/datetime/countdown.cpp b/datetime/countdown.cpp index 1a968182..b60a6cd8 100644 --- a/datetime/countdown.cpp +++ b/datetime/countdown.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/datetime/countdown.h b/datetime/countdown.h index e507ccf7..7bee6701 100644 --- a/datetime/countdown.h +++ b/datetime/countdown.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/datetime/datetime.pro b/datetime/datetime.pro index 944d8e43..7ee87ac8 100644 --- a/datetime/datetime.pro +++ b/datetime/datetime.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_deviceplugindatetime) +TARGET = $$qtLibraryTarget(nymea_deviceplugindatetime) SOURCES += \ deviceplugindatetime.cpp \ diff --git a/datetime/deviceplugindatetime.cpp b/datetime/deviceplugindatetime.cpp index ebadb979..49a64115 100644 --- a/datetime/deviceplugindatetime.cpp +++ b/datetime/deviceplugindatetime.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for timezone based time information. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins The time plugin allows you create rules based on the time, day, month, year, weekday or on weekend. diff --git a/datetime/deviceplugindatetime.h b/datetime/deviceplugindatetime.h index bb901b6c..bdb993dc 100644 --- a/datetime/deviceplugindatetime.h +++ b/datetime/deviceplugindatetime.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -37,7 +37,7 @@ class DevicePluginDateTime : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "deviceplugindatetime.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "deviceplugindatetime.json") Q_INTERFACES(DevicePlugin) public: diff --git a/datetime/deviceplugindatetime.json b/datetime/deviceplugindatetime.json index 00ffc808..3bda703f 100644 --- a/datetime/deviceplugindatetime.json +++ b/datetime/deviceplugindatetime.json @@ -5,7 +5,7 @@ "vendors": [ { "name": "guh", - "displayName": "guh", + "displayName": "guh GmbH", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ { diff --git a/debian/changelog b/debian/changelog index eb980c85..ded1bcc9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +nymea-plugins (0.2.0) UNRELEASED; urgency=medium + + * rename to nymea + + -- Michael Zanetti Tue, 06 Mar 2018 22:49:05 +0100 + guh-plugins (0.1.0) xenial; urgency=medium * Add metapackages diff --git a/debian/control b/debian/control index 38c91786..55f2ce51 100644 --- a/debian/control +++ b/debian/control @@ -1,9 +1,9 @@ -Source: guh-plugins +Source: nymea-plugins Section: utils Priority: options Maintainer: Michael Zanetti Build-depends: debhelper (>= 0.0.0), - libguh1-dev, + libnymea1-dev, libqt5serialport5-dev, python:any, qtbase5-dev, @@ -11,647 +11,688 @@ Build-depends: debhelper (>= 0.0.0), Standards-Version: 3.9.3 -Package: guh-plugin-avahimonitor +Package: nymea-plugin-avahimonitor Architecture: any Section: libs Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for avahimonitor - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-avahimonitor +Description: nymea.io plugin for avahimonitor + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for avahimonitor + This package will install the nymea.io plugin for avahimonitor -Package: guh-plugin-awattar +Package: nymea-plugin-awattar Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for awattar - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-awattar +Description: nymea.io plugin for awattar + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for awattar + This package will install the nymea.io plugin for awattar -Package: guh-plugin-commandlauncher +Package: nymea-plugin-commandlauncher Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for commandlauncher - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-commandlauncher +Description: nymea.io plugin for commandlauncher + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for commandlauncher + This package will install the nymea.io plugin for commandlauncher -Package: guh-plugin-conrad +Package: nymea-plugin-conrad Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for conrad - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-conrad +Description: nymea.io plugin for conrad + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for conrad + This package will install the nymea.io plugin for conrad -Package: guh-plugin-datetime +Package: nymea-plugin-datetime Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for datetime - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-datetime +Description: nymea.io plugin for datetime + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for datetime + This package will install the nymea.io plugin for datetime -Package: guh-plugin-denon +Package: nymea-plugin-denon Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for denon - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-denon +Description: nymea.io plugin for denon + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for denon + This package will install the nymea.io plugin for denon -Package: guh-plugin-elro +Package: nymea-plugin-elro Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for elro - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-elro +Description: nymea.io plugin for elro + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for elro + This package will install the nymea.io plugin for elro -Package: guh-plugin-eq-3 +Package: nymea-plugin-eq-3 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for eq-3 - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-eq-3 +Description: nymea.io plugin for eq-3 + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for eq-3 + This package will install the nymea.io plugin for eq-3 -Package: guh-plugin-genericelements +Package: nymea-plugin-genericelements Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for genericelements - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-genericelements +Description: nymea.io plugin for genericelements + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for genericelements + This package will install the nymea.io plugin for genericelements -Package: guh-plugin-gpio +Package: nymea-plugin-gpio Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for gpio - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-gpio +Description: nymea.io plugin for gpio + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for gpio + This package will install the nymea.io plugin for gpio -Package: guh-plugin-intertechno +Package: nymea-plugin-intertechno Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for intertechno - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-intertechno +Description: nymea.io plugin for intertechno + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for intertechno + This package will install the nymea.io plugin for intertechno -Package: guh-plugin-kodi +Package: nymea-plugin-kodi Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for kodi - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-kodi +Description: nymea.io plugin for kodi + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for kodi + This package will install the nymea.io plugin for kodi -Package: guh-plugin-leynew +Package: nymea-plugin-leynew Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for leynew - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-leynew +Description: nymea.io plugin for leynew + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for leynew + This package will install the nymea.io plugin for leynew -Package: guh-plugin-lgsmarttv +Package: nymea-plugin-lgsmarttv Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for lgsmarttv - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-lgsmarttv +Description: nymea.io plugin for lgsmarttv + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for lgsmarttv + This package will install the nymea.io plugin for lgsmarttv -Package: guh-plugin-mailnotification +Package: nymea-plugin-mailnotification Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for mailnotification - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-mailnotification +Description: nymea.io plugin for mailnotification + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for mailnotification + This package will install the nymea.io plugin for mailnotification -Package: guh-plugin-multisensor +Package: nymea-plugin-multisensor Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for multisensor - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-multisensor +Description: nymea.io plugin for multisensor + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for multisensor + This package will install the nymea.io plugin for multisensor -Package: guh-plugin-netatmo +Package: nymea-plugin-netatmo Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for netatmo - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-netatmo +Description: nymea.io plugin for netatmo + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for netatmo + This package will install the nymea.io plugin for netatmo -Package: guh-plugin-networkdetector +Package: nymea-plugin-networkdetector Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, nmap, - guh-plugins-translations, -Description: guh.io plugin for networkdetector - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-networkdetector +Description: nymea.io plugin for networkdetector + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for networkdetector + This package will install the nymea.io plugin for networkdetector -Package: guh-plugin-openweathermap +Package: nymea-plugin-openweathermap Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for openweathermap - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-openweathermap +Description: nymea.io plugin for openweathermap + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for openweathermap + This package will install the nymea.io plugin for openweathermap -Package: guh-plugin-orderbutton +Package: nymea-plugin-orderbutton Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for orderbutton - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-orderbutton +Description: nymea.io plugin for orderbutton + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for orderbutton + This package will install the nymea.io plugin for orderbutton -Package: guh-plugin-osdomotics +Package: nymea-plugin-osdomotics Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for osdomotics - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-osdmotics +Description: nymea.io plugin for osdomotics + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for osdomotics + This package will install the nymea.io plugin for osdomotics -Package: guh-plugin-philipshue +Package: nymea-plugin-philipshue Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for philipshue - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-philipshue +Description: nymea.io plugin for philipshue + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for philipshue + This package will install the nymea.io plugin for philipshue -Package: guh-plugin-plantcare +Package: nymea-plugin-plantcare Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for plantcare - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-plantcare +Description: nymea.io plugin for plantcare + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for plantcare + This package will install the nymea.io plugin for plantcare -Package: guh-plugin-pushbullet +Package: nymea-plugin-pushbullet Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for pushbullet - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-pushbullet +Description: nymea.io plugin for pushbullet + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for pushbullet + This package will install the nymea.io plugin for pushbullet -Package: guh-plugin-udpcommander +Package: nymea-plugin-udpcommander Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for UDP commander - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-udpcommander +Description: nymea.io plugin for UDP commander + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for udpcommander + This package will install the nymea.io plugin for udpcommander -Package: guh-plugin-unitec +Package: nymea-plugin-unitec Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for unitec - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-unitec +Description: nymea.io plugin for unitec + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for unitec + This package will install the nymea.io plugin for unitec -Package: guh-plugin-usbwde +Package: nymea-plugin-usbwde Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for usbwde - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-usbwde +Description: nymea.io plugin for usbwde + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for usbwde + This package will install the nymea.io plugin for usbwde -Package: guh-plugin-wakeonlan +Package: nymea-plugin-wakeonlan Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for wakeonlan - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-wakeonlan +Description: nymea.io plugin for wakeonlan + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for wakeonlan + This package will install the nymea.io plugin for wakeonlan -Package: guh-plugin-wemo +Package: nymea-plugin-wemo Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for wemo - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-wemo +Description: nymea.io plugin for wemo + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for wemo + This package will install the nymea.io plugin for wemo -Package: guh-plugin-ws2812 +Package: nymea-plugin-ws2812 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for ws2812 - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-ws2812 +Description: nymea.io plugin for ws2812 + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for ws2812 + This package will install the nymea.io plugin for ws2812 -Package: guh-plugin-tcpcommander +Package: nymea-plugin-tcpcommander Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for TCP commander - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-tcpcommander +Description: nymea.io plugin for TCP commander + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for TCP commander + This package will install the nymea.io plugin for TCP commander -Package: guh-plugin-simulation +Package: nymea-plugin-simulation Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for simulated devices - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-simulation +Description: nymea.io plugin for simulated devices + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for simulated devices + This package will install the nymea.io plugin for simulated devices -Package: guh-plugin-elgato +Package: nymea-plugin-elgato Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for elgato - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-elgato +Description: nymea.io plugin for elgato + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for elgato + This package will install the nymea.io plugin for elgato -Package: guh-plugin-senic +Package: nymea-plugin-senic Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for senic - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-senic +Description: nymea.io plugin for senic + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for senic + This package will install the nymea.io plugin for senic -Package: guh-plugin-snapd +Package: nymea-plugin-snapd Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for snapd - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Replaces: guh-plugin-snapd +Description: nymea.io plugin for snapd + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for snapd + This package will install the nymea.io plugin for snapd -Package: guh-plugins-translations +Package: nymea-plugins-translations Section: misc Architecture: all Depends: ${misc:Depends} -Description: Translation files for guh plugins - translations - The guh daemon is a plugin based IoT (Internet of Things) server. The +Replaces: guh-plugins-translations +Description: Translation files for nymea plugins - translations + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package provides the translation files for all guh plugins. + This package provides the translation files for all nymea plugins. -Package: guh-plugins +Package: nymea-plugins Section: libs Architecture: all -Depends: guh-plugin-awattar, - guh-plugin-datetime, - guh-plugin-denon, - guh-plugin-eq-3, - guh-plugin-kodi, - guh-plugin-lgsmarttv, - guh-plugin-mailnotification, - guh-plugin-multisensor, - guh-plugin-netatmo, - guh-plugin-networkdetector, - guh-plugin-openweathermap, - guh-plugin-philipshue, - guh-plugin-pushbullet, - guh-plugin-usbwde, - guh-plugin-wakeonlan, - guh-plugin-wemo, - guh-plugin-elgato, - guh-plugin-senic -Description: Plugins for guh IoT server - the default plugin collection - The guh daemon is a plugin based IoT (Internet of Things) server. The +Depends: nymea-plugin-awattar, + nymea-plugin-datetime, + nymea-plugin-denon, + nymea-plugin-eq-3, + nymea-plugin-kodi, + nymea-plugin-lgsmarttv, + nymea-plugin-mailnotification, + nymea-plugin-multisensor, + nymea-plugin-netatmo, + nymea-plugin-networkdetector, + nymea-plugin-openweathermap, + nymea-plugin-philipshue, + nymea-plugin-pushbullet, + nymea-plugin-usbwde, + nymea-plugin-wakeonlan, + nymea-plugin-wemo, + nymea-plugin-elgato, + nymea-plugin-senic +Replaces: guh-plugins +Description: Plugins for nymea IoT server - the default plugin collection + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the default guh plugins. + This package will install the default nymea plugins. -Package: guh-plugins-maker +Package: nymea-plugins-maker Section: libs Architecture: all -Depends: guh-plugin-commandlauncher, - guh-plugin-udpcommander, - guh-plugin-tcpcommander, - guh-plugin-genericelements, - guh-plugin-avahimonitor, - guh-plugin-gpio, -Description: Plugins for guh IoT server - Meta package for makers, tinkers and hackers - The guh daemon is a plugin based IoT (Internet of Things) server. The +Depends: nymea-plugin-commandlauncher, + nymea-plugin-udpcommander, + nymea-plugin-tcpcommander, + nymea-plugin-genericelements, + nymea-plugin-avahimonitor, + nymea-plugin-gpio, +Replaces: guh-plugins-maker +Description: Plugins for nymea IoT server - Meta package for makers, tinkers and hackers + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install guh plugins for maker, tinker and hackers. + This package will install nymea plugins for maker, tinker and hackers. -Package: guh-plugins-merkurboard +Package: nymea-plugins-merkurboard Section: libs Architecture: all -Depends: guh-plugin-osdomotics, - guh-plugin-plantcare, - guh-plugin-ws2812, - guh-plugin-orderbutton, -Description: Plugins for guh IoT server - Meta package for 6LoWPAN Merkur boards - The guh daemon is a plugin based IoT (Internet of Things) server. The +Depends: nymea-plugin-osdomotics, + nymea-plugin-plantcare, + nymea-plugin-ws2812, + nymea-plugin-orderbutton, +Replaces: guh-plugins-merkurboard +Description: Plugins for nymea IoT server - Meta package for 6LoWPAN Merkur boards + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the 6LoWPAN Merkur board plugins for guh. + This package will install the 6LoWPAN Merkur board plugins for nymea. -Package: guh-plugins-433mhz +Package: nymea-plugins-433mhz Section: libs Architecture: all -Depends: guh-plugin-elro, - guh-plugin-conrad, - guh-plugin-intertechno, - guh-plugin-leynew, - guh-plugin-unitec, -Description: Plugins for guh IoT server - Meta package for RF 433 MHz plugins - The guh daemon is a plugin based IoT (Internet of Things) server. The +Depends: nymea-plugin-elro, + nymea-plugin-conrad, + nymea-plugin-intertechno, + nymea-plugin-leynew, + nymea-plugin-unitec, +Replaces: guh-plugins-433mhz +Description: Plugins for nymea IoT server - Meta package for RF 433 MHz plugins + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the RF 433 MHz plugins for guh. + This package will install the RF 433 MHz plugins for nymea. -Package: guh-plugins-all +Package: nymea-plugins-all Section: libs Architecture: all -Depends: guh-plugins, - guh-plugins-433mhz, - guh-plugins-maker, - guh-plugins-merkurboard, -Description: Plugins for guh IoT server - Meta package for all plugins - The guh daemon is a plugin based IoT (Internet of Things) server. The +Depends: nymea-plugins, + nymea-plugins-433mhz, + nymea-plugins-maker, + nymea-plugins-merkurboard, +Replaces: guh-plugins-all +Description: Plugins for nymea IoT server - Meta package for all plugins + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install all the available plugins for guh. + This package will install all the available plugins for nymea. diff --git a/debian/copyright b/debian/copyright index bea535ac..ee080ae0 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,5 +1,5 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: guhio +Upstream-Name: nymea-plugins Upstream-Contact: Simon Stürz Copyright: 2014-2017, guh GmbH Download: http://www.github.com/guh/guh-plugins diff --git a/debian/guh-plugin-avahimonitor.install.in b/debian/guh-plugin-avahimonitor.install.in deleted file mode 100644 index c26066f9..00000000 --- a/debian/guh-plugin-avahimonitor.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginavahimonitor.so \ No newline at end of file diff --git a/debian/guh-plugin-awattar.install.in b/debian/guh-plugin-awattar.install.in deleted file mode 100644 index 42889dca..00000000 --- a/debian/guh-plugin-awattar.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginawattar.so \ No newline at end of file diff --git a/debian/guh-plugin-commandlauncher.install.in b/debian/guh-plugin-commandlauncher.install.in deleted file mode 100644 index faf2298a..00000000 --- a/debian/guh-plugin-commandlauncher.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_deviceplugincommandlauncher.so \ No newline at end of file diff --git a/debian/guh-plugin-conrad.install.in b/debian/guh-plugin-conrad.install.in deleted file mode 100644 index 40003bf1..00000000 --- a/debian/guh-plugin-conrad.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginconrad.so \ No newline at end of file diff --git a/debian/guh-plugin-datetime.install.in b/debian/guh-plugin-datetime.install.in deleted file mode 100644 index 242a61a0..00000000 --- a/debian/guh-plugin-datetime.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_deviceplugindatetime.so \ No newline at end of file diff --git a/debian/guh-plugin-denon.install.in b/debian/guh-plugin-denon.install.in deleted file mode 100644 index a7539eb3..00000000 --- a/debian/guh-plugin-denon.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_deviceplugindenon.so \ No newline at end of file diff --git a/debian/guh-plugin-elgato.install.in b/debian/guh-plugin-elgato.install.in deleted file mode 100644 index 13621ec6..00000000 --- a/debian/guh-plugin-elgato.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginelgato.so diff --git a/debian/guh-plugin-elro.install.in b/debian/guh-plugin-elro.install.in deleted file mode 100644 index ba733efe..00000000 --- a/debian/guh-plugin-elro.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginelro.so \ No newline at end of file diff --git a/debian/guh-plugin-eq-3.install.in b/debian/guh-plugin-eq-3.install.in deleted file mode 100644 index ad0c40e4..00000000 --- a/debian/guh-plugin-eq-3.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_deviceplugineq3.so diff --git a/debian/guh-plugin-genericelements.install.in b/debian/guh-plugin-genericelements.install.in deleted file mode 100644 index 7991688e..00000000 --- a/debian/guh-plugin-genericelements.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_deviceplugingenericelements.so \ No newline at end of file diff --git a/debian/guh-plugin-gpio.install.in b/debian/guh-plugin-gpio.install.in deleted file mode 100644 index dd184af1..00000000 --- a/debian/guh-plugin-gpio.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_deviceplugingpio.so \ No newline at end of file diff --git a/debian/guh-plugin-intertechno.install.in b/debian/guh-plugin-intertechno.install.in deleted file mode 100644 index 90d48590..00000000 --- a/debian/guh-plugin-intertechno.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginintertechno.so \ No newline at end of file diff --git a/debian/guh-plugin-kodi.install.in b/debian/guh-plugin-kodi.install.in deleted file mode 100644 index 0c692eb1..00000000 --- a/debian/guh-plugin-kodi.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginkodi.so \ No newline at end of file diff --git a/debian/guh-plugin-leynew.install.in b/debian/guh-plugin-leynew.install.in deleted file mode 100644 index 698526d1..00000000 --- a/debian/guh-plugin-leynew.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginleynew.so \ No newline at end of file diff --git a/debian/guh-plugin-lgsmarttv.install.in b/debian/guh-plugin-lgsmarttv.install.in deleted file mode 100644 index 1495ca32..00000000 --- a/debian/guh-plugin-lgsmarttv.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginlgsmarttv.so \ No newline at end of file diff --git a/debian/guh-plugin-mailnotification.install.in b/debian/guh-plugin-mailnotification.install.in deleted file mode 100644 index df923ef2..00000000 --- a/debian/guh-plugin-mailnotification.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginmailnotification.so \ No newline at end of file diff --git a/debian/guh-plugin-multisensor.install.in b/debian/guh-plugin-multisensor.install.in deleted file mode 100644 index cbcab752..00000000 --- a/debian/guh-plugin-multisensor.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginmultisensor.so \ No newline at end of file diff --git a/debian/guh-plugin-netatmo.install.in b/debian/guh-plugin-netatmo.install.in deleted file mode 100644 index 7ca1a83c..00000000 --- a/debian/guh-plugin-netatmo.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginnetatmo.so \ No newline at end of file diff --git a/debian/guh-plugin-networkdetector.install.in b/debian/guh-plugin-networkdetector.install.in deleted file mode 100644 index 1736f7bc..00000000 --- a/debian/guh-plugin-networkdetector.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginnetworkdetector.so \ No newline at end of file diff --git a/debian/guh-plugin-openweathermap.install.in b/debian/guh-plugin-openweathermap.install.in deleted file mode 100644 index 14ebe041..00000000 --- a/debian/guh-plugin-openweathermap.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginopenweathermap.so \ No newline at end of file diff --git a/debian/guh-plugin-orderbutton.install.in b/debian/guh-plugin-orderbutton.install.in deleted file mode 100644 index 08f7a10c..00000000 --- a/debian/guh-plugin-orderbutton.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginorderbutton.so \ No newline at end of file diff --git a/debian/guh-plugin-osdomotics.install.in b/debian/guh-plugin-osdomotics.install.in deleted file mode 100644 index dcf8df01..00000000 --- a/debian/guh-plugin-osdomotics.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginosdomotics.so \ No newline at end of file diff --git a/debian/guh-plugin-philipshue.install.in b/debian/guh-plugin-philipshue.install.in deleted file mode 100644 index 4e044ff8..00000000 --- a/debian/guh-plugin-philipshue.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginphilipshue.so \ No newline at end of file diff --git a/debian/guh-plugin-plantcare.install.in b/debian/guh-plugin-plantcare.install.in deleted file mode 100644 index 463ca0b1..00000000 --- a/debian/guh-plugin-plantcare.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginplantcare.so \ No newline at end of file diff --git a/debian/guh-plugin-pushbullet.install.in b/debian/guh-plugin-pushbullet.install.in deleted file mode 100644 index ff726669..00000000 --- a/debian/guh-plugin-pushbullet.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginpushbullet.so \ No newline at end of file diff --git a/debian/guh-plugin-senic.install.in b/debian/guh-plugin-senic.install.in deleted file mode 100644 index 0fe1924a..00000000 --- a/debian/guh-plugin-senic.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginsenic.so diff --git a/debian/guh-plugin-simulation.install.in b/debian/guh-plugin-simulation.install.in deleted file mode 100644 index 76112969..00000000 --- a/debian/guh-plugin-simulation.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginsimulation.so diff --git a/debian/guh-plugin-snapd.install.in b/debian/guh-plugin-snapd.install.in deleted file mode 100644 index 281b705a..00000000 --- a/debian/guh-plugin-snapd.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginsnapd.so diff --git a/debian/guh-plugin-tcpcommander.install.in b/debian/guh-plugin-tcpcommander.install.in deleted file mode 100644 index 9c2e4152..00000000 --- a/debian/guh-plugin-tcpcommander.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_deviceplugintcpcommander.so diff --git a/debian/guh-plugin-udpcommander.install.in b/debian/guh-plugin-udpcommander.install.in deleted file mode 100644 index dc788d36..00000000 --- a/debian/guh-plugin-udpcommander.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginudpcommander.so \ No newline at end of file diff --git a/debian/guh-plugin-unitec.install.in b/debian/guh-plugin-unitec.install.in deleted file mode 100644 index c11266e2..00000000 --- a/debian/guh-plugin-unitec.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginunitec.so \ No newline at end of file diff --git a/debian/guh-plugin-usbwde.install.in b/debian/guh-plugin-usbwde.install.in deleted file mode 100644 index 422446c8..00000000 --- a/debian/guh-plugin-usbwde.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginusbwde.so \ No newline at end of file diff --git a/debian/guh-plugin-wakeonlan.install.in b/debian/guh-plugin-wakeonlan.install.in deleted file mode 100644 index 91fba24d..00000000 --- a/debian/guh-plugin-wakeonlan.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginwakeonlan.so \ No newline at end of file diff --git a/debian/guh-plugin-wemo.install.in b/debian/guh-plugin-wemo.install.in deleted file mode 100644 index c23c7929..00000000 --- a/debian/guh-plugin-wemo.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginwemo.so \ No newline at end of file diff --git a/debian/guh-plugin-ws2812.install.in b/debian/guh-plugin-ws2812.install.in deleted file mode 100644 index e33c1096..00000000 --- a/debian/guh-plugin-ws2812.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginws2812.so \ No newline at end of file diff --git a/debian/guh-plugins-translations.dirs b/debian/guh-plugins-translations.dirs deleted file mode 100644 index 667a6a9b..00000000 --- a/debian/guh-plugins-translations.dirs +++ /dev/null @@ -1 +0,0 @@ -usr/share/guh/translations diff --git a/debian/guh-plugins-translations.install.in b/debian/guh-plugins-translations.install.in deleted file mode 100644 index 370cf002..00000000 --- a/debian/guh-plugins-translations.install.in +++ /dev/null @@ -1 +0,0 @@ -translations/*.qm usr/share/guh/translations diff --git a/debian/nymea-plugin-avahimonitor.install.in b/debian/nymea-plugin-avahimonitor.install.in new file mode 100644 index 00000000..f3c0fd06 --- /dev/null +++ b/debian/nymea-plugin-avahimonitor.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginavahimonitor.so \ No newline at end of file diff --git a/debian/nymea-plugin-awattar.install.in b/debian/nymea-plugin-awattar.install.in new file mode 100644 index 00000000..cbb2e27d --- /dev/null +++ b/debian/nymea-plugin-awattar.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginawattar.so \ No newline at end of file diff --git a/debian/nymea-plugin-commandlauncher.install.in b/debian/nymea-plugin-commandlauncher.install.in new file mode 100644 index 00000000..39bff18d --- /dev/null +++ b/debian/nymea-plugin-commandlauncher.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_deviceplugincommandlauncher.so \ No newline at end of file diff --git a/debian/nymea-plugin-conrad.install.in b/debian/nymea-plugin-conrad.install.in new file mode 100644 index 00000000..f820061b --- /dev/null +++ b/debian/nymea-plugin-conrad.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginconrad.so \ No newline at end of file diff --git a/debian/nymea-plugin-datetime.install.in b/debian/nymea-plugin-datetime.install.in new file mode 100644 index 00000000..828b615d --- /dev/null +++ b/debian/nymea-plugin-datetime.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_deviceplugindatetime.so \ No newline at end of file diff --git a/debian/nymea-plugin-denon.install.in b/debian/nymea-plugin-denon.install.in new file mode 100644 index 00000000..38f6830c --- /dev/null +++ b/debian/nymea-plugin-denon.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_deviceplugindenon.so \ No newline at end of file diff --git a/debian/nymea-plugin-elgato.install.in b/debian/nymea-plugin-elgato.install.in new file mode 100644 index 00000000..4647b312 --- /dev/null +++ b/debian/nymea-plugin-elgato.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginelgato.so diff --git a/debian/nymea-plugin-elro.install.in b/debian/nymea-plugin-elro.install.in new file mode 100644 index 00000000..035894a2 --- /dev/null +++ b/debian/nymea-plugin-elro.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginelro.so \ No newline at end of file diff --git a/debian/nymea-plugin-eq-3.install.in b/debian/nymea-plugin-eq-3.install.in new file mode 100644 index 00000000..a0021906 --- /dev/null +++ b/debian/nymea-plugin-eq-3.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_deviceplugineq3.so diff --git a/debian/nymea-plugin-genericelements.install.in b/debian/nymea-plugin-genericelements.install.in new file mode 100644 index 00000000..c87d473b --- /dev/null +++ b/debian/nymea-plugin-genericelements.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_deviceplugingenericelements.so \ No newline at end of file diff --git a/debian/nymea-plugin-gpio.install.in b/debian/nymea-plugin-gpio.install.in new file mode 100644 index 00000000..f525c8d3 --- /dev/null +++ b/debian/nymea-plugin-gpio.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_deviceplugingpio.so \ No newline at end of file diff --git a/debian/nymea-plugin-intertechno.install.in b/debian/nymea-plugin-intertechno.install.in new file mode 100644 index 00000000..a5b59dc7 --- /dev/null +++ b/debian/nymea-plugin-intertechno.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginintertechno.so \ No newline at end of file diff --git a/debian/nymea-plugin-kodi.install.in b/debian/nymea-plugin-kodi.install.in new file mode 100644 index 00000000..17b10eb6 --- /dev/null +++ b/debian/nymea-plugin-kodi.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginkodi.so \ No newline at end of file diff --git a/debian/nymea-plugin-leynew.install.in b/debian/nymea-plugin-leynew.install.in new file mode 100644 index 00000000..781ce187 --- /dev/null +++ b/debian/nymea-plugin-leynew.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginleynew.so \ No newline at end of file diff --git a/debian/nymea-plugin-lgsmarttv.install.in b/debian/nymea-plugin-lgsmarttv.install.in new file mode 100644 index 00000000..f1b065b6 --- /dev/null +++ b/debian/nymea-plugin-lgsmarttv.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginlgsmarttv.so \ No newline at end of file diff --git a/debian/nymea-plugin-mailnotification.install.in b/debian/nymea-plugin-mailnotification.install.in new file mode 100644 index 00000000..c736259e --- /dev/null +++ b/debian/nymea-plugin-mailnotification.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginmailnotification.so \ No newline at end of file diff --git a/debian/nymea-plugin-multisensor.install.in b/debian/nymea-plugin-multisensor.install.in new file mode 100644 index 00000000..94cdcb43 --- /dev/null +++ b/debian/nymea-plugin-multisensor.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginmultisensor.so \ No newline at end of file diff --git a/debian/nymea-plugin-netatmo.install.in b/debian/nymea-plugin-netatmo.install.in new file mode 100644 index 00000000..5664e422 --- /dev/null +++ b/debian/nymea-plugin-netatmo.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginnetatmo.so \ No newline at end of file diff --git a/debian/nymea-plugin-networkdetector.install.in b/debian/nymea-plugin-networkdetector.install.in new file mode 100644 index 00000000..ee1bcbf8 --- /dev/null +++ b/debian/nymea-plugin-networkdetector.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginnetworkdetector.so \ No newline at end of file diff --git a/debian/nymea-plugin-openweathermap.install.in b/debian/nymea-plugin-openweathermap.install.in new file mode 100644 index 00000000..6c6e8fd5 --- /dev/null +++ b/debian/nymea-plugin-openweathermap.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginopenweathermap.so \ No newline at end of file diff --git a/debian/nymea-plugin-orderbutton.install.in b/debian/nymea-plugin-orderbutton.install.in new file mode 100644 index 00000000..0bcc6dca --- /dev/null +++ b/debian/nymea-plugin-orderbutton.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginorderbutton.so \ No newline at end of file diff --git a/debian/nymea-plugin-osdomotics.install.in b/debian/nymea-plugin-osdomotics.install.in new file mode 100644 index 00000000..6846975e --- /dev/null +++ b/debian/nymea-plugin-osdomotics.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginosdomotics.so \ No newline at end of file diff --git a/debian/nymea-plugin-philipshue.install.in b/debian/nymea-plugin-philipshue.install.in new file mode 100644 index 00000000..991dcc25 --- /dev/null +++ b/debian/nymea-plugin-philipshue.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginphilipshue.so \ No newline at end of file diff --git a/debian/nymea-plugin-plantcare.install.in b/debian/nymea-plugin-plantcare.install.in new file mode 100644 index 00000000..725d6068 --- /dev/null +++ b/debian/nymea-plugin-plantcare.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginplantcare.so \ No newline at end of file diff --git a/debian/nymea-plugin-pushbullet.install.in b/debian/nymea-plugin-pushbullet.install.in new file mode 100644 index 00000000..cc408109 --- /dev/null +++ b/debian/nymea-plugin-pushbullet.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginpushbullet.so \ No newline at end of file diff --git a/debian/nymea-plugin-senic.install.in b/debian/nymea-plugin-senic.install.in new file mode 100644 index 00000000..716ee40e --- /dev/null +++ b/debian/nymea-plugin-senic.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginsenic.so diff --git a/debian/nymea-plugin-simulation.install.in b/debian/nymea-plugin-simulation.install.in new file mode 100644 index 00000000..b1fa7ae9 --- /dev/null +++ b/debian/nymea-plugin-simulation.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginsimulation.so diff --git a/debian/nymea-plugin-snapd.install.in b/debian/nymea-plugin-snapd.install.in new file mode 100644 index 00000000..5d738bbb --- /dev/null +++ b/debian/nymea-plugin-snapd.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginsnapd.so diff --git a/debian/nymea-plugin-tcpcommander.install.in b/debian/nymea-plugin-tcpcommander.install.in new file mode 100644 index 00000000..c1395c41 --- /dev/null +++ b/debian/nymea-plugin-tcpcommander.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_deviceplugintcpcommander.so diff --git a/debian/nymea-plugin-udpcommander.install.in b/debian/nymea-plugin-udpcommander.install.in new file mode 100644 index 00000000..388c8549 --- /dev/null +++ b/debian/nymea-plugin-udpcommander.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginudpcommander.so \ No newline at end of file diff --git a/debian/nymea-plugin-unitec.install.in b/debian/nymea-plugin-unitec.install.in new file mode 100644 index 00000000..d74e9a65 --- /dev/null +++ b/debian/nymea-plugin-unitec.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginunitec.so \ No newline at end of file diff --git a/debian/nymea-plugin-usbwde.install.in b/debian/nymea-plugin-usbwde.install.in new file mode 100644 index 00000000..5b93c812 --- /dev/null +++ b/debian/nymea-plugin-usbwde.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginusbwde.so \ No newline at end of file diff --git a/debian/nymea-plugin-wakeonlan.install.in b/debian/nymea-plugin-wakeonlan.install.in new file mode 100644 index 00000000..8964e048 --- /dev/null +++ b/debian/nymea-plugin-wakeonlan.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginwakeonlan.so \ No newline at end of file diff --git a/debian/nymea-plugin-wemo.install.in b/debian/nymea-plugin-wemo.install.in new file mode 100644 index 00000000..a13aa338 --- /dev/null +++ b/debian/nymea-plugin-wemo.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginwemo.so \ No newline at end of file diff --git a/debian/nymea-plugin-ws2812.install.in b/debian/nymea-plugin-ws2812.install.in new file mode 100644 index 00000000..64b21ec3 --- /dev/null +++ b/debian/nymea-plugin-ws2812.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginws2812.so \ No newline at end of file diff --git a/debian/nymea-plugins-translations.dirs b/debian/nymea-plugins-translations.dirs new file mode 100644 index 00000000..43694e3a --- /dev/null +++ b/debian/nymea-plugins-translations.dirs @@ -0,0 +1 @@ +usr/share/nymea/translations diff --git a/debian/nymea-plugins-translations.install.in b/debian/nymea-plugins-translations.install.in new file mode 100644 index 00000000..69dcb0ca --- /dev/null +++ b/debian/nymea-plugins-translations.install.in @@ -0,0 +1 @@ +translations/*.qm usr/share/nymea/translations diff --git a/denon/denon.pro b/denon/denon.pro index 3b902e55..9475acb3 100644 --- a/denon/denon.pro +++ b/denon/denon.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_deviceplugindenon) +TARGET = $$qtLibraryTarget(nymea_deviceplugindenon) SOURCES += \ deviceplugindenon.cpp \ diff --git a/denon/denonconnection.cpp b/denon/denonconnection.cpp index 75ab892e..d55e15ed 100644 --- a/denon/denonconnection.cpp +++ b/denon/denonconnection.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2016 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/denon/denonconnection.h b/denon/denonconnection.h index a8886d5b..5241aafb 100644 --- a/denon/denonconnection.h +++ b/denon/denonconnection.h @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2016 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/denon/deviceplugindenon.cpp b/denon/deviceplugindenon.cpp index 20227aeb..31502663 100644 --- a/denon/deviceplugindenon.cpp +++ b/denon/deviceplugindenon.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2016 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -27,7 +27,7 @@ \brief Plugin for Denon AV \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plug-in supports the \l {http://www.denon.de/de/product/hometheater/avreceivers/avrx1000}{Denon AV Amplifier AVR-X1000} diff --git a/denon/deviceplugindenon.h b/denon/deviceplugindenon.h index bdfc2fc0..03bf0593 100644 --- a/denon/deviceplugindenon.h +++ b/denon/deviceplugindenon.h @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2016 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -41,7 +41,7 @@ class DevicePluginDenon : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "deviceplugindenon.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "deviceplugindenon.json") Q_INTERFACES(DevicePlugin) public: diff --git a/elgato/aveabulb.cpp b/elgato/aveabulb.cpp index e9fb0cf1..bcb5e411 100644 --- a/elgato/aveabulb.cpp +++ b/elgato/aveabulb.cpp @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/elgato/aveabulb.h b/elgato/aveabulb.h index d2028939..08e362eb 100644 --- a/elgato/aveabulb.h +++ b/elgato/aveabulb.h @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/elgato/devicepluginelgato.cpp b/elgato/devicepluginelgato.cpp index d21060ce..22cb4f93 100644 --- a/elgato/devicepluginelgato.cpp +++ b/elgato/devicepluginelgato.cpp @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -24,7 +24,7 @@ \brief Plugin for Elgato Avea Blutooth lamp. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to find and controll the Bluetooth Low Energy bulb from \l{https://www.elgato.com/en/smart/avea}{Elgato Avea}. diff --git a/elgato/devicepluginelgato.h b/elgato/devicepluginelgato.h index 7eee753f..8144c7e3 100644 --- a/elgato/devicepluginelgato.h +++ b/elgato/devicepluginelgato.h @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -29,7 +29,7 @@ class DevicePluginElgato : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginelgato.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginelgato.json") Q_INTERFACES(DevicePlugin) public: diff --git a/elgato/elgato.pro b/elgato/elgato.pro index 66c85847..e2a0a1e5 100644 --- a/elgato/elgato.pro +++ b/elgato/elgato.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginelgato) +TARGET = $$qtLibraryTarget(nymea_devicepluginelgato) SOURCES += \ devicepluginelgato.cpp \ diff --git a/elro/devicepluginelro.cpp b/elro/devicepluginelro.cpp index 8c4792cb..c6ab7a0c 100644 --- a/elro/devicepluginelro.cpp +++ b/elro/devicepluginelro.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for all Elro 433 MHz based devices. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to controll RF 433 MHz actors an receive remote signals from \l{http://www.elroshop.eu/}{Elro} devices. diff --git a/elro/devicepluginelro.h b/elro/devicepluginelro.h index b9c3360b..d341e183 100644 --- a/elro/devicepluginelro.h +++ b/elro/devicepluginelro.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -29,7 +29,7 @@ class DevicePluginElro : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginelro.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginelro.json") Q_INTERFACES(DevicePlugin) public: diff --git a/elro/elro.pro b/elro/elro.pro index 7c9ec86a..bd563663 100644 --- a/elro/elro.pro +++ b/elro/elro.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginelro) +TARGET = $$qtLibraryTarget(nymea_devicepluginelro) SOURCES += \ devicepluginelro.cpp diff --git a/eq-3/deviceplugineq-3.cpp b/eq-3/deviceplugineq-3.cpp index 0b9fb1c2..2b4de16d 100644 --- a/eq-3/deviceplugineq-3.cpp +++ b/eq-3/deviceplugineq-3.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,12 +26,12 @@ \brief Plugin for the eQ-3 heating system. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to find and controll devices from Max!(eQ-3). To use this devices, you need at least one \l{http://www.eq-3.de/max-heizungssteuerung-produktdetail/items/bc-lgw-o-tw.html}{Max! Cube LAN Gateway} in you local network. Once the cube is connected (DHCP), you can auto detect the cube in the network and - add it to your \l{https://guh.guru}{guh} devices. Also more than one cube in the network is supported. All + add it to your \l{https://nymea.io}{nymea} devices. Also more than one cube in the network is supported. All devices, which are connected to a cube, will be autogenerated. For the setup of a cube, the original software is recomanded (min/max setpoint temperature, weekly programm...). @@ -40,7 +40,7 @@ This \l{http://www.eq-3.de/max-heizungssteuerung-produktdetail/ items/bc-lgw-o-tw.html}{cube} can be discovered in the network. Every device, which is connected with the cube, will be appear automatically, once the cube is configrued and - added to guh. + added to nymea. \section2 Max! Wall Thermostat In order to use this device, you need a \l{http://www.eq-3.de/max-heizungssteuerung-produktdetail/ diff --git a/eq-3/deviceplugineq-3.h b/eq-3/deviceplugineq-3.h index 0bef0abc..664e8570 100644 --- a/eq-3/deviceplugineq-3.h +++ b/eq-3/deviceplugineq-3.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -35,7 +35,7 @@ class DevicePluginEQ3: public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "deviceplugineq-3.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "deviceplugineq-3.json") Q_INTERFACES(DevicePlugin) public: diff --git a/eq-3/eq-3.pro b/eq-3/eq-3.pro index f828738f..22da5243 100644 --- a/eq-3/eq-3.pro +++ b/eq-3/eq-3.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_deviceplugineq3) +TARGET = $$qtLibraryTarget(nymea_deviceplugineq3) SOURCES += \ deviceplugineq-3.cpp \ diff --git a/eq-3/maxcube.cpp b/eq-3/maxcube.cpp index 71c7da13..bc02b608 100644 --- a/eq-3/maxcube.cpp +++ b/eq-3/maxcube.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/maxcube.h b/eq-3/maxcube.h index 76c17dfe..2eb607f8 100644 --- a/eq-3/maxcube.h +++ b/eq-3/maxcube.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/maxcubediscovery.cpp b/eq-3/maxcubediscovery.cpp index 10c29021..18f89ca6 100644 --- a/eq-3/maxcubediscovery.cpp +++ b/eq-3/maxcubediscovery.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/maxcubediscovery.h b/eq-3/maxcubediscovery.h index a65c9503..7eef2f24 100644 --- a/eq-3/maxcubediscovery.h +++ b/eq-3/maxcubediscovery.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/maxdevice.cpp b/eq-3/maxdevice.cpp index b3038376..31fa32e2 100644 --- a/eq-3/maxdevice.cpp +++ b/eq-3/maxdevice.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/maxdevice.h b/eq-3/maxdevice.h index a610925f..a5959486 100644 --- a/eq-3/maxdevice.h +++ b/eq-3/maxdevice.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/radiatorthermostat.cpp b/eq-3/radiatorthermostat.cpp index a77d7392..a1b4b101 100644 --- a/eq-3/radiatorthermostat.cpp +++ b/eq-3/radiatorthermostat.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/radiatorthermostat.h b/eq-3/radiatorthermostat.h index f6572442..5a599cf1 100644 --- a/eq-3/radiatorthermostat.h +++ b/eq-3/radiatorthermostat.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/room.cpp b/eq-3/room.cpp index 4cb4bfe7..afe50338 100644 --- a/eq-3/room.cpp +++ b/eq-3/room.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/room.h b/eq-3/room.h index a977153a..800baaed 100644 --- a/eq-3/room.h +++ b/eq-3/room.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/wallthermostat.cpp b/eq-3/wallthermostat.cpp index 5ba790f2..98e5874b 100644 --- a/eq-3/wallthermostat.cpp +++ b/eq-3/wallthermostat.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/eq-3/wallthermostat.h b/eq-3/wallthermostat.h index 84ef4fb4..48489a89 100644 --- a/eq-3/wallthermostat.h +++ b/eq-3/wallthermostat.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/genericelements/deviceplugingenericelements.cpp b/genericelements/deviceplugingenericelements.cpp index 4a0feaf6..59bf0744 100644 --- a/genericelements/deviceplugingenericelements.cpp +++ b/genericelements/deviceplugingenericelements.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Common elements to test the rule engine. \ingroup plugins - \ingroup guh-tests + \ingroup nymea-tests The generic elements plugin allows you create virtual buttons, which can be connected with a rule. This gives you the possibility to execute multiple \l{Action}{Actions} with one signal. Without a rule this generic elements are diff --git a/genericelements/deviceplugingenericelements.h b/genericelements/deviceplugingenericelements.h index 520e0edc..0d82d4ba 100644 --- a/genericelements/deviceplugingenericelements.h +++ b/genericelements/deviceplugingenericelements.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -29,7 +29,7 @@ class DevicePluginGenericElements : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "deviceplugingenericelements.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "deviceplugingenericelements.json") Q_INTERFACES(DevicePlugin) public: diff --git a/genericelements/deviceplugingenericelements.json b/genericelements/deviceplugingenericelements.json index 9d638484..d7b86fba 100644 --- a/genericelements/deviceplugingenericelements.json +++ b/genericelements/deviceplugingenericelements.json @@ -5,7 +5,7 @@ "vendors": [ { "name": "guh", - "displayName": "guh", + "displayName": "guh GmbH", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ { diff --git a/genericelements/genericelements.pro b/genericelements/genericelements.pro index ed91a3cf..15e685e4 100644 --- a/genericelements/genericelements.pro +++ b/genericelements/genericelements.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_deviceplugingenericelements) +TARGET = $$qtLibraryTarget(nymea_deviceplugingenericelements) SOURCES += \ deviceplugingenericelements.cpp diff --git a/gpio/deviceplugingpio.cpp b/gpio/deviceplugingpio.cpp index ac9f86c8..0e7cdc1b 100644 --- a/gpio/deviceplugingpio.cpp +++ b/gpio/deviceplugingpio.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin to control gpios on different boards. \ingroup plugins - \ingroup guh-plugins-maker + \ingroup nymea-plugins-maker \chapter Raspberry Pi 2 diff --git a/gpio/deviceplugingpio.h b/gpio/deviceplugingpio.h index f95d2e83..413f1f42 100644 --- a/gpio/deviceplugingpio.h +++ b/gpio/deviceplugingpio.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -33,7 +33,7 @@ class DevicePluginGpio : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "deviceplugingpio.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "deviceplugingpio.json") Q_INTERFACES(DevicePlugin) public: diff --git a/gpio/gpio.pro b/gpio/gpio.pro index 0556e7ce..70861f43 100644 --- a/gpio/gpio.pro +++ b/gpio/gpio.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_deviceplugingpio) +TARGET = $$qtLibraryTarget(nymea_deviceplugingpio) SOURCES += \ deviceplugingpio.cpp \ diff --git a/gpio/gpiodescriptor.cpp b/gpio/gpiodescriptor.cpp index 6e77c3b8..bf9930d0 100644 --- a/gpio/gpiodescriptor.cpp +++ b/gpio/gpiodescriptor.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/gpio/gpiodescriptor.h b/gpio/gpiodescriptor.h index 26fdf60f..6fbb9930 100644 --- a/gpio/gpiodescriptor.h +++ b/gpio/gpiodescriptor.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/intertechno/devicepluginintertechno.cpp b/intertechno/devicepluginintertechno.cpp index 74fce34c..28b7af1c 100644 --- a/intertechno/devicepluginintertechno.cpp +++ b/intertechno/devicepluginintertechno.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for InterTechno 433 MHz devices. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to controll RF 433 MHz actors an receive remote signals from \l{http://www.intertechno.at}{Intertechno} devices. diff --git a/intertechno/devicepluginintertechno.h b/intertechno/devicepluginintertechno.h index d13a31cb..53f6d193 100644 --- a/intertechno/devicepluginintertechno.h +++ b/intertechno/devicepluginintertechno.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -29,7 +29,7 @@ class DevicePluginIntertechno : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginintertechno.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginintertechno.json") Q_INTERFACES(DevicePlugin) public: diff --git a/intertechno/intertechno.pro b/intertechno/intertechno.pro index 5ce9fbdb..ea43070c 100644 --- a/intertechno/intertechno.pro +++ b/intertechno/intertechno.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginintertechno) +TARGET = $$qtLibraryTarget(nymea_devicepluginintertechno) SOURCES += \ devicepluginintertechno.cpp diff --git a/kodi/devicepluginkodi.cpp b/kodi/devicepluginkodi.cpp index 8f581aa4..af10bac4 100644 --- a/kodi/devicepluginkodi.cpp +++ b/kodi/devicepluginkodi.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,10 +26,10 @@ \brief Plugin for the Kodi media center. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows you to controll the media center \l{http://kodi.tv/}{Kodi}. If you want to discover - and control Kodi with guh, you need to activate the remote access and the UPnP service. + and control Kodi with nymea, you need to activate the remote access and the UPnP service. \chapter "Activate UPnP" In order to discover Kodi in the network, you need to activate the UPnP serive in the Kodi settings: @@ -46,7 +46,7 @@ \chapter Activate "Remote Control" - In order to control Kodi over the network with guh, you need to activate the remote control permissions: + In order to control Kodi over the network with nymea, you need to activate the remote control permissions: \section2 Settings \unicode{0x2192} Services \unicode{0x2192} Remote Control Activate all options. @@ -69,18 +69,18 @@ DevicePluginKodi::DevicePluginKodi() { // Q_INIT_RESOURCE(images); -// QFile file(":/images/guh-logo.png"); +// QFile file(":/images/nymea-logo.png"); // if (!file.open(QIODevice::ReadOnly)) { // qCWarning(dcKodi) << "could not open" << file.fileName(); // return; // } -// QByteArray guhLogoByteArray = file.readAll(); -// if (guhLogoByteArray.isEmpty()) { +// QByteArray nymeaLogoByteArray = file.readAll(); +// if (nymeaLogoByteArray.isEmpty()) { // qCWarning(dcKodi) << "could not read" << file.fileName(); // return; // } - // m_logo = guhLogoByteArray; + // m_logo = nymeaLogoByteArray; } DevicePluginKodi::~DevicePluginKodi() diff --git a/kodi/devicepluginkodi.h b/kodi/devicepluginkodi.h index fe5b4c55..cc16db0f 100644 --- a/kodi/devicepluginkodi.h +++ b/kodi/devicepluginkodi.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -34,7 +34,7 @@ class DevicePluginKodi : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginkodi.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginkodi.json") Q_INTERFACES(DevicePlugin) public: diff --git a/kodi/images.qrc b/kodi/images.qrc index 9bd2ce57..e14f5d87 100644 --- a/kodi/images.qrc +++ b/kodi/images.qrc @@ -1,5 +1,5 @@ - images/guh-logo.png + images/nymea-logo.png diff --git a/kodi/images/guh-logo.png b/kodi/images/nymea-logo.png similarity index 100% rename from kodi/images/guh-logo.png rename to kodi/images/nymea-logo.png diff --git a/kodi/images/guh-logo.svg b/kodi/images/nymea-logo.svg similarity index 100% rename from kodi/images/guh-logo.svg rename to kodi/images/nymea-logo.svg diff --git a/kodi/kodi.cpp b/kodi/kodi.cpp index 4bb23266..187594c8 100644 --- a/kodi/kodi.cpp +++ b/kodi/kodi.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -87,7 +87,7 @@ int Kodi::volume() const void Kodi::showNotification(const QString &message, const int &displayTime, const QString ¬ificationType, const ActionId &actionId) { QVariantMap params; - params.insert("title", "guh notification"); + params.insert("title", "nymea notification"); params.insert("message", message); params.insert("displaytime", displayTime); params.insert("image", notificationType); diff --git a/kodi/kodi.h b/kodi/kodi.h index 9259dcdd..96792334 100644 --- a/kodi/kodi.h +++ b/kodi/kodi.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/kodi/kodi.pro b/kodi/kodi.pro index 32924116..051c2712 100644 --- a/kodi/kodi.pro +++ b/kodi/kodi.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginkodi) +TARGET = $$qtLibraryTarget(nymea_devicepluginkodi) SOURCES += \ devicepluginkodi.cpp \ diff --git a/kodi/kodiconnection.cpp b/kodi/kodiconnection.cpp index 0db62b9e..d1994b2f 100644 --- a/kodi/kodiconnection.cpp +++ b/kodi/kodiconnection.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/kodi/kodiconnection.h b/kodi/kodiconnection.h index 9b643bf6..3ab0769e 100644 --- a/kodi/kodiconnection.h +++ b/kodi/kodiconnection.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/kodi/kodijsonhandler.cpp b/kodi/kodijsonhandler.cpp index a498f084..74e7080d 100644 --- a/kodi/kodijsonhandler.cpp +++ b/kodi/kodijsonhandler.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/kodi/kodijsonhandler.h b/kodi/kodijsonhandler.h index 7897f36f..1bde5cd5 100644 --- a/kodi/kodijsonhandler.h +++ b/kodi/kodijsonhandler.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/kodi/kodireply.cpp b/kodi/kodireply.cpp index f4f86e9c..2f6c9f91 100644 --- a/kodi/kodireply.cpp +++ b/kodi/kodireply.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/kodi/kodireply.h b/kodi/kodireply.h index 59cc4d9b..1a921325 100644 --- a/kodi/kodireply.h +++ b/kodi/kodireply.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/leynew/devicepluginleynew.cpp b/leynew/devicepluginleynew.cpp index 58e76afc..f0658a9f 100644 --- a/leynew/devicepluginleynew.cpp +++ b/leynew/devicepluginleynew.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for the Leynew RF 433 MHz led controller. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to controll RF 433 MHz actors an receive remote signals from \l{http://www.leynew.com/en/}{Leynew} devices. diff --git a/leynew/devicepluginleynew.h b/leynew/devicepluginleynew.h index b492bd5c..a516c138 100644 --- a/leynew/devicepluginleynew.h +++ b/leynew/devicepluginleynew.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -29,7 +29,7 @@ class DevicePluginLeynew : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginleynew.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginleynew.json") Q_INTERFACES(DevicePlugin) public: diff --git a/leynew/leynew.pro b/leynew/leynew.pro index 8e796032..a4e20542 100644 --- a/leynew/leynew.pro +++ b/leynew/leynew.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginleynew) +TARGET = $$qtLibraryTarget(nymea_devicepluginleynew) SOURCES += \ devicepluginleynew.cpp diff --git a/lgsmarttv/devicepluginlgsmarttv.cpp b/lgsmarttv/devicepluginlgsmarttv.cpp index da5dd5d4..64be07b4 100644 --- a/lgsmarttv/devicepluginlgsmarttv.cpp +++ b/lgsmarttv/devicepluginlgsmarttv.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for LG smart TVs. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to interact with \l{http://www.lg.com/us/experience-tvs/smart-tv}{LG Smart Tv's} with the \l{http://developer.lgappstv.com/TV_HELP/index.jsp?topic=%2Flge.tvsdk.references.book%2Fhtml%2FUDAP%2FUDAP%2FLG+UDAP+2+0+Protocol+Specifications.htm}{LG UDAP 2.0 Protocol Specifications}. diff --git a/lgsmarttv/devicepluginlgsmarttv.h b/lgsmarttv/devicepluginlgsmarttv.h index 44800c5c..1031704c 100644 --- a/lgsmarttv/devicepluginlgsmarttv.h +++ b/lgsmarttv/devicepluginlgsmarttv.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -32,7 +32,7 @@ class DevicePluginLgSmartTv : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginlgsmarttv.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginlgsmarttv.json") Q_INTERFACES(DevicePlugin) public: diff --git a/lgsmarttv/lgsmarttv.pro b/lgsmarttv/lgsmarttv.pro index 1fb2ea89..575ad2d0 100644 --- a/lgsmarttv/lgsmarttv.pro +++ b/lgsmarttv/lgsmarttv.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginlgsmarttv) +TARGET = $$qtLibraryTarget(nymea_devicepluginlgsmarttv) QT+= network xml diff --git a/lgsmarttv/tvdevice.cpp b/lgsmarttv/tvdevice.cpp index e0ec1fa0..e86e6b3c 100644 --- a/lgsmarttv/tvdevice.cpp +++ b/lgsmarttv/tvdevice.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -169,7 +169,7 @@ QPair TvDevice::createPairingRequest(const QHostAdd QNetworkRequest request; request.setUrl(QUrl(urlString)); request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("text/xml; charset=utf-8")); - request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("UDAP/2.0 guh")); + request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("UDAP/2.0 nymea")); QByteArray data = "hello" + key.toUtf8() + "8080"; return QPair(request, data); @@ -180,7 +180,7 @@ QPair TvDevice::createEndPairingRequest(const QUrl QNetworkRequest request; request.setUrl(url); request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("text/xml; charset=utf-8")); - request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("UDAP/2.0 guh")); + request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("UDAP/2.0 nymea")); request.setRawHeader("Connection", "Close"); QByteArray data = "byebye8080"; @@ -193,7 +193,7 @@ QPair TvDevice::createEndPairingRequest(const QHost QNetworkRequest request; request.setUrl(QUrl(urlString)); request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("text/xml; charset=utf-8")); - request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("UDAP/2.0 guh")); + request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("UDAP/2.0 nymea")); request.setRawHeader("Connection", "Close"); QByteArray data = "byebye8080"; @@ -228,7 +228,7 @@ QPair TvDevice::createPressButtonRequest(const TvDe QNetworkRequest request; request.setUrl(QUrl(urlString)); request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("text/xml; charset=utf-8")); - request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("UDAP/2.0 guh")); + request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("UDAP/2.0 nymea")); QByteArray data; data.append("HandleKeyInput"); diff --git a/lgsmarttv/tvdevice.h b/lgsmarttv/tvdevice.h index 694db662..d7ee038f 100644 --- a/lgsmarttv/tvdevice.h +++ b/lgsmarttv/tvdevice.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/lgsmarttv/tveventhandler.cpp b/lgsmarttv/tveventhandler.cpp index c93fd432..69515a98 100644 --- a/lgsmarttv/tveventhandler.cpp +++ b/lgsmarttv/tveventhandler.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -69,7 +69,7 @@ void TvEventHandler::readClient() textStream.setAutoDetectUnicode(true); textStream << "HTTP/1.0 200 OK\r\n" "Content-Type: text/html; charset=\"utf-8\"\r\n" - "User-Agent: UDAP/2.0 guh\r\n" + "User-Agent: UDAP/2.0 nymea\r\n" << "Date: " << QDateTime::currentDateTime().toString() << "\n"; emit eventOccured(data); diff --git a/lgsmarttv/tveventhandler.h b/lgsmarttv/tveventhandler.h index 4b11ebb4..c40c8f0b 100644 --- a/lgsmarttv/tveventhandler.h +++ b/lgsmarttv/tveventhandler.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/lircd/devicepluginlircd.cpp b/lircd/devicepluginlircd.cpp index 323e4329..4c30f4ff 100644 --- a/lircd/devicepluginlircd.cpp +++ b/lircd/devicepluginlircd.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2014 Michael Zanetti * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -27,11 +27,11 @@ \brief Plugin for the LIRC infrared daemon. \ingroup plugins - \ingroup guh-plugins-maker + \ingroup nymea-plugins-maker This plugin allows to interact with \l{http://www.lirc.org/}{LIRC} daemon and controll commonly used remote controls. - If lircd (LIRC daemon) is configured on your system, guh will connect to the lirc daemon and all configured remote - controls of lircd will appear in guh. + If lircd (LIRC daemon) is configured on your system, nymea will connect to the lirc daemon and all configured remote + controls of lircd will appear in nymea. \chapter Plugin properties Following JSON file contains the definition and the description of all available \l{DeviceClass}{DeviceClasses} diff --git a/mailnotification/devicepluginmailnotification.cpp b/mailnotification/devicepluginmailnotification.cpp index 7a8877f1..db03c965 100644 --- a/mailnotification/devicepluginmailnotification.cpp +++ b/mailnotification/devicepluginmailnotification.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -23,15 +23,15 @@ /*! \page mailnotification.html \title Mail Notification - \brief Plugin which allows to get mail notification from guh. + \brief Plugin which allows to get mail notification from nymea. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins The mail notification plugin allows you to send a mail notification from a mail account by performing an \l{Action}. - ATTENTION: The password currently will be saved as plain text in the guh settings file. + ATTENTION: The password currently will be saved as plain text in the nymea settings file. This will be changed soon... \chapter Supported services diff --git a/mailnotification/devicepluginmailnotification.h b/mailnotification/devicepluginmailnotification.h index ea173d41..de3147e9 100644 --- a/mailnotification/devicepluginmailnotification.h +++ b/mailnotification/devicepluginmailnotification.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -30,7 +30,7 @@ class DevicePluginMailNotification : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginmailnotification.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginmailnotification.json") Q_INTERFACES(DevicePlugin) public: diff --git a/mailnotification/devicepluginmailnotification.json b/mailnotification/devicepluginmailnotification.json index e3468f3b..e5ada3ba 100644 --- a/mailnotification/devicepluginmailnotification.json +++ b/mailnotification/devicepluginmailnotification.json @@ -5,7 +5,7 @@ "vendors": [ { "name": "guh", - "displayName": "guh", + "displayName": "guh GmbH", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ { diff --git a/mailnotification/mailnotification.pro b/mailnotification/mailnotification.pro index 3e778bda..eeab88c2 100644 --- a/mailnotification/mailnotification.pro +++ b/mailnotification/mailnotification.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginmailnotification) +TARGET = $$qtLibraryTarget(nymea_devicepluginmailnotification) QT+= network diff --git a/mailnotification/smtpclient.cpp b/mailnotification/smtpclient.cpp index a1dced40..e6e9764f 100644 --- a/mailnotification/smtpclient.cpp +++ b/mailnotification/smtpclient.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -230,7 +230,7 @@ bool SmtpClient::sendMail(const QString &subject, const QString &body, const Act m_message = "To: " + m_rcpt + "\n"; m_message.append("From: " + m_sender + "\n"); - m_message.append("Subject: [guh notification] | " + subject + "\n"); + m_message.append("Subject: [nymea notification] | " + subject + "\n"); m_message.append(body); m_message.replace( QString::fromLatin1( "\n" ), QString::fromLatin1( "\r\n" ) ); m_message.replace( QString::fromLatin1( "\r\n.\r\n" ), QString::fromLatin1( "\r\n..\r\n" ) ); diff --git a/mailnotification/smtpclient.h b/mailnotification/smtpclient.h index 0f13bac8..6f7e5ee1 100644 --- a/mailnotification/smtpclient.h +++ b/mailnotification/smtpclient.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/multisensor/devicepluginmultisensor.cpp b/multisensor/devicepluginmultisensor.cpp index fd343149..fb362375 100644 --- a/multisensor/devicepluginmultisensor.cpp +++ b/multisensor/devicepluginmultisensor.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stuerz * * Copyright (C) 2016 nicc * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -27,7 +27,7 @@ \brief Plugin for TI SensorTag. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows finding and controlling the Bluetooth Low Energy SensorTag from Texas Instruments. diff --git a/multisensor/devicepluginmultisensor.h b/multisensor/devicepluginmultisensor.h index 6fd6d471..0731b207 100644 --- a/multisensor/devicepluginmultisensor.h +++ b/multisensor/devicepluginmultisensor.h @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stuerz * * Copyright (C) 2016 nicc * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -36,7 +36,7 @@ class DevicePluginMultiSensor : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginmultisensor.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginmultisensor.json") Q_INTERFACES(DevicePlugin) public: diff --git a/multisensor/multisensor.pro b/multisensor/multisensor.pro index e7949ff5..83fe6c9b 100644 --- a/multisensor/multisensor.pro +++ b/multisensor/multisensor.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginmultisensor) +TARGET = $$qtLibraryTarget(nymea_devicepluginmultisensor) SOURCES += \ devicepluginmultisensor.cpp \ diff --git a/netatmo/devicepluginnetatmo.cpp b/netatmo/devicepluginnetatmo.cpp index 761eb97b..1dbf4e06 100644 --- a/netatmo/devicepluginnetatmo.cpp +++ b/netatmo/devicepluginnetatmo.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for the Netatmo weather stations. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to receive data from you netatmo weather station. diff --git a/netatmo/devicepluginnetatmo.h b/netatmo/devicepluginnetatmo.h index 26cb42dd..e7236071 100644 --- a/netatmo/devicepluginnetatmo.h +++ b/netatmo/devicepluginnetatmo.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -35,7 +35,7 @@ class DevicePluginNetatmo : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginnetatmo.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginnetatmo.json") Q_INTERFACES(DevicePlugin) public: diff --git a/netatmo/netatmo.pro b/netatmo/netatmo.pro index 73f4765a..cac78656 100644 --- a/netatmo/netatmo.pro +++ b/netatmo/netatmo.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginnetatmo) +TARGET = $$qtLibraryTarget(nymea_devicepluginnetatmo) SOURCES += \ devicepluginnetatmo.cpp \ diff --git a/netatmo/netatmobasestation.cpp b/netatmo/netatmobasestation.cpp index ef787333..f52df09d 100644 --- a/netatmo/netatmobasestation.cpp +++ b/netatmo/netatmobasestation.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/netatmo/netatmobasestation.h b/netatmo/netatmobasestation.h index 1d921bba..6b1ce9b1 100644 --- a/netatmo/netatmobasestation.h +++ b/netatmo/netatmobasestation.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/netatmo/netatmooutdoormodule.cpp b/netatmo/netatmooutdoormodule.cpp index 485baac5..f989b5f9 100644 --- a/netatmo/netatmooutdoormodule.cpp +++ b/netatmo/netatmooutdoormodule.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/netatmo/netatmooutdoormodule.h b/netatmo/netatmooutdoormodule.h index bfba6b4b..8ad9a251 100644 --- a/netatmo/netatmooutdoormodule.h +++ b/netatmo/netatmooutdoormodule.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/networkdetector/devicepluginnetworkdetector.cpp b/networkdetector/devicepluginnetworkdetector.cpp index 77e65202..6cc3c822 100644 --- a/networkdetector/devicepluginnetworkdetector.cpp +++ b/networkdetector/devicepluginnetworkdetector.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2016 Simon Stürz * * Copyright (C) 2016 Michael Zanetti * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -27,12 +27,12 @@ \brief Plugin to monitor devices in the local network. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to find and monitor network devices in your local network by using the hostname of the devices. - \underline{NOTE}: the application \c nmap has to be installed and guh has to run as root. + \underline{NOTE}: the application \c nmap has to be installed and nymea has to run as root. \chapter Plugin properties Following JSON file contains the definition and the description of all available \l{DeviceClass}{DeviceClasses} diff --git a/networkdetector/devicepluginnetworkdetector.h b/networkdetector/devicepluginnetworkdetector.h index 705f935f..4c861d80 100644 --- a/networkdetector/devicepluginnetworkdetector.h +++ b/networkdetector/devicepluginnetworkdetector.h @@ -3,7 +3,7 @@ * Copyright (C) 2016 Simon Stürz * * Copyright (C) 2016 Michael Zanetti * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -38,7 +38,7 @@ class DevicePluginNetworkDetector : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginnetworkdetector.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginnetworkdetector.json") Q_INTERFACES(DevicePlugin) public: diff --git a/networkdetector/devicepluginnetworkdetector.json b/networkdetector/devicepluginnetworkdetector.json index 171ded1f..799ce515 100644 --- a/networkdetector/devicepluginnetworkdetector.json +++ b/networkdetector/devicepluginnetworkdetector.json @@ -5,7 +5,7 @@ "vendors": [ { "name": "guh", - "displayName": "guh", + "displayName": "guh GmbH", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ { diff --git a/networkdetector/host.cpp b/networkdetector/host.cpp index 7a1047c2..d7d78e52 100644 --- a/networkdetector/host.cpp +++ b/networkdetector/host.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/networkdetector/host.h b/networkdetector/host.h index 85ffaceb..6ceefaac 100644 --- a/networkdetector/host.h +++ b/networkdetector/host.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/networkdetector/networkdetector.pro b/networkdetector/networkdetector.pro index e1ef5d8e..4553866d 100644 --- a/networkdetector/networkdetector.pro +++ b/networkdetector/networkdetector.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginnetworkdetector) +TARGET = $$qtLibraryTarget(nymea_devicepluginnetworkdetector) SOURCES += \ devicepluginnetworkdetector.cpp \ diff --git a/guh-plugins.pro b/nymea-plugins.pro similarity index 100% rename from guh-plugins.pro rename to nymea-plugins.pro diff --git a/openweathermap/devicepluginopenweathermap.cpp b/openweathermap/devicepluginopenweathermap.cpp index 46a38f81..699a047b 100644 --- a/openweathermap/devicepluginopenweathermap.cpp +++ b/openweathermap/devicepluginopenweathermap.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for the Open Weather Map online weather service. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to get the current weather data from \l{http://www.openweathermap.org}{OpenWeatherMap}. The weather data will be refreshed every 15 minutes automatically, but can also refreshed manually. diff --git a/openweathermap/devicepluginopenweathermap.h b/openweathermap/devicepluginopenweathermap.h index ac96b0d9..ab7103db 100644 --- a/openweathermap/devicepluginopenweathermap.h +++ b/openweathermap/devicepluginopenweathermap.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -34,7 +34,7 @@ class DevicePluginOpenweathermap : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginopenweathermap.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginopenweathermap.json") Q_INTERFACES(DevicePlugin) public: diff --git a/openweathermap/openweathermap.pro b/openweathermap/openweathermap.pro index 2bfee45a..f99d03f9 100644 --- a/openweathermap/openweathermap.pro +++ b/openweathermap/openweathermap.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginopenweathermap) +TARGET = $$qtLibraryTarget(nymea_devicepluginopenweathermap) QT+= network diff --git a/orderbutton/devicepluginorderbutton.cpp b/orderbutton/devicepluginorderbutton.cpp index 25c50f70..114cb180 100644 --- a/orderbutton/devicepluginorderbutton.cpp +++ b/orderbutton/devicepluginorderbutton.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2016 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -27,7 +27,7 @@ \brief Demonstration of an orderbutton based on 6LoWPAN networking. \ingroup plugins - \ingroup guh-plugins-merkur + \ingroup nymea-plugins-merkur \chapter Plugin properties diff --git a/orderbutton/devicepluginorderbutton.h b/orderbutton/devicepluginorderbutton.h index fe18fd0e..3ae9a3ca 100644 --- a/orderbutton/devicepluginorderbutton.h +++ b/orderbutton/devicepluginorderbutton.h @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2015 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -35,7 +35,7 @@ class DevicePluginOrderButton : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginorderbutton.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginorderbutton.json") Q_INTERFACES(DevicePlugin) public: diff --git a/orderbutton/devicepluginorderbutton.json b/orderbutton/devicepluginorderbutton.json index 6e9ba234..657cf545 100644 --- a/orderbutton/devicepluginorderbutton.json +++ b/orderbutton/devicepluginorderbutton.json @@ -14,7 +14,7 @@ ], "vendors": [ { - "displayName": "guh", + "displayName": "guh GmbH", "name": "guh", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ diff --git a/orderbutton/orderbutton.pro b/orderbutton/orderbutton.pro index 2c41e23b..a3c2f80f 100644 --- a/orderbutton/orderbutton.pro +++ b/orderbutton/orderbutton.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginorderbutton) +TARGET = $$qtLibraryTarget(nymea_devicepluginorderbutton) SOURCES += \ devicepluginorderbutton.cpp diff --git a/osdomotics/devicepluginosdomotics.cpp b/osdomotics/devicepluginosdomotics.cpp index f6e45091..fbc5f595 100644 --- a/osdomotics/devicepluginosdomotics.cpp +++ b/osdomotics/devicepluginosdomotics.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,9 +26,9 @@ \brief Plugin for the OSDomotics Merkur board based on the OSDomotics tutorials. \ingroup plugins - \ingroup guh-plugins-merkur + \ingroup nymea-plugins-merkur - This plugin allows you to connect guh to a 6LoWPAN network by adding a Mercury Board from OSDomotics + This plugin allows you to connect nymea to a 6LoWPAN network by adding a Mercury Board from OSDomotics as a RPL router to your devices \l{http://osdwiki.open-entry.com/doku.php/de:tutorials:contiki:merkur_board_rpl_usb_router}{OSDomotics Tutorial- RPL Router}. All nodes in the 6LoWPAN network of the added RPL router will appear automatically in the system. diff --git a/osdomotics/devicepluginosdomotics.h b/osdomotics/devicepluginosdomotics.h index d12ccacc..d68eafe6 100644 --- a/osdomotics/devicepluginosdomotics.h +++ b/osdomotics/devicepluginosdomotics.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -35,7 +35,7 @@ class DevicePluginOsdomotics : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginosdomotics.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginosdomotics.json") Q_INTERFACES(DevicePlugin) public: diff --git a/osdomotics/osdomotics.pro b/osdomotics/osdomotics.pro index 7b73f3e3..3eab2323 100644 --- a/osdomotics/osdomotics.pro +++ b/osdomotics/osdomotics.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginosdomotics) +TARGET = $$qtLibraryTarget(nymea_devicepluginosdomotics) SOURCES += \ devicepluginosdomotics.cpp diff --git a/philipshue/devicepluginphilipshue.cpp b/philipshue/devicepluginphilipshue.cpp index 3d698a7a..70d4ae54 100644 --- a/philipshue/devicepluginphilipshue.cpp +++ b/philipshue/devicepluginphilipshue.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2014 Michael Zanetti * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -27,10 +27,10 @@ \brief Plugin for the Philips Hue lighting system. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to interact with the \l{http://www2.meethue.com/}{Philips hue} bridge. Each light bulp connected to the bridge - will appear automatically in the system, once the bridge is added to guh. + will appear automatically in the system, once the bridge is added to nymea. \chapter Plugin properties Following JSON file contains the definition and the description of all available \l{DeviceClass}{DeviceClasses} @@ -231,7 +231,7 @@ DeviceManager::DeviceSetupStatus DevicePluginPhilipsHue::confirmPairing(const Pa pairingInfo->setHost(QHostAddress(params.paramValue(hueBridgeBridgeHostParamTypeId).toString())); QVariantMap deviceTypeParam; - deviceTypeParam.insert("devicetype", "guh"); + deviceTypeParam.insert("devicetype", "nymea"); QJsonDocument jsonDoc = QJsonDocument::fromVariant(deviceTypeParam); diff --git a/philipshue/devicepluginphilipshue.h b/philipshue/devicepluginphilipshue.h index f754141f..bdea4dfa 100644 --- a/philipshue/devicepluginphilipshue.h +++ b/philipshue/devicepluginphilipshue.h @@ -3,7 +3,7 @@ * Copyright (C) 2014 Michael Zanetti * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -39,7 +39,7 @@ class DevicePluginPhilipsHue: public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginphilipshue.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginphilipshue.json") Q_INTERFACES(DevicePlugin) public: diff --git a/philipshue/huebridge.cpp b/philipshue/huebridge.cpp index 53e6d35d..97b1f32f 100644 --- a/philipshue/huebridge.cpp +++ b/philipshue/huebridge.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/philipshue/huebridge.h b/philipshue/huebridge.h index 7a91fd50..3d3df7ae 100644 --- a/philipshue/huebridge.h +++ b/philipshue/huebridge.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/philipshue/huedevice.cpp b/philipshue/huedevice.cpp index cb35a8ae..3f4ae5c5 100644 --- a/philipshue/huedevice.cpp +++ b/philipshue/huedevice.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/philipshue/huedevice.h b/philipshue/huedevice.h index 83dc54bc..6679e9f3 100644 --- a/philipshue/huedevice.h +++ b/philipshue/huedevice.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/philipshue/huelight.cpp b/philipshue/huelight.cpp index 9d0d87e4..7e1a2270 100644 --- a/philipshue/huelight.cpp +++ b/philipshue/huelight.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2014 Michael Zanetti * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/philipshue/huelight.h b/philipshue/huelight.h index da9503ef..1971d237 100644 --- a/philipshue/huelight.h +++ b/philipshue/huelight.h @@ -3,7 +3,7 @@ * Copyright (C) 2014 Michael Zanetti * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/philipshue/hueremote.cpp b/philipshue/hueremote.cpp index 6873e521..898cc290 100644 --- a/philipshue/hueremote.cpp +++ b/philipshue/hueremote.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/philipshue/hueremote.h b/philipshue/hueremote.h index 5bcae2f3..b1453c72 100644 --- a/philipshue/hueremote.h +++ b/philipshue/hueremote.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/philipshue/pairinginfo.cpp b/philipshue/pairinginfo.cpp index 2a7602e6..24dd9ac7 100644 --- a/philipshue/pairinginfo.cpp +++ b/philipshue/pairinginfo.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/philipshue/pairinginfo.h b/philipshue/pairinginfo.h index 86bf1364..17931120 100644 --- a/philipshue/pairinginfo.h +++ b/philipshue/pairinginfo.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/philipshue/philipshue.pro b/philipshue/philipshue.pro index 895096a4..aa095613 100644 --- a/philipshue/philipshue.pro +++ b/philipshue/philipshue.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginphilipshue) +TARGET = $$qtLibraryTarget(nymea_devicepluginphilipshue) QT += network diff --git a/plantcare/devicepluginplantcare.cpp b/plantcare/devicepluginplantcare.cpp index f15c4aa2..e3e91f4a 100644 --- a/plantcare/devicepluginplantcare.cpp +++ b/plantcare/devicepluginplantcare.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2016 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -24,12 +24,12 @@ /*! \page plantcare.html \title Plantcare - \brief Plugin for the guh Plantcare example based on 6LoWPAN networking. + \brief Plugin for the nymea Plantcare example based on 6LoWPAN networking. \ingroup plugins - \ingroup guh-plugins-merkur + \ingroup nymea-plugins-merkur - This allows to controll the guh plantcare demo for 6LoWPAN networks. + This allows to controll the nymea plantcare demo for 6LoWPAN networks. \chapter Plugin properties Following JSON file contains the definition and the description of all available \l{DeviceClass}{DeviceClasses} diff --git a/plantcare/devicepluginplantcare.h b/plantcare/devicepluginplantcare.h index 2d42b8bb..6df6736e 100644 --- a/plantcare/devicepluginplantcare.h +++ b/plantcare/devicepluginplantcare.h @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2015 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -35,7 +35,7 @@ class DevicePluginPlantCare : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginplantcare.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginplantcare.json") Q_INTERFACES(DevicePlugin) public: diff --git a/plantcare/devicepluginplantcare.json b/plantcare/devicepluginplantcare.json index 3c65f2b0..fea5eee9 100644 --- a/plantcare/devicepluginplantcare.json +++ b/plantcare/devicepluginplantcare.json @@ -14,7 +14,7 @@ ], "vendors": [ { - "displayName": "guh", + "displayName": "guh GmbH", "name": "guh", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ diff --git a/plantcare/plantcare.pro b/plantcare/plantcare.pro index ba9aeebb..133cb21f 100644 --- a/plantcare/plantcare.pro +++ b/plantcare/plantcare.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginplantcare) +TARGET = $$qtLibraryTarget(nymea_devicepluginplantcare) SOURCES += \ devicepluginplantcare.cpp diff --git a/plugins.pri b/plugins.pri index 61c98c97..08c9dceb 100644 --- a/plugins.pri +++ b/plugins.pri @@ -6,24 +6,24 @@ QT += network bluetooth dbus QMAKE_CXXFLAGS += -Werror -std=c++11 -g QMAKE_LFLAGS += -std=c++11 -INCLUDEPATH += /usr/include/guh -LIBS += -lguh +INCLUDEPATH += /usr/include/nymea +LIBS += -lnymea HEADERS += $${OUT_PWD}/plugininfo.h -PLUGIN_PATH=/usr/lib/$$system('dpkg-architecture -q DEB_HOST_MULTIARCH')/guh/plugins/ +PLUGIN_PATH=/usr/lib/$$system('dpkg-architecture -q DEB_HOST_MULTIARCH')/nymea/plugins/ # Check if this is a snap build snappy{ - INCLUDEPATH+=$$(SNAPCRAFT_STAGE)/usr/include/guh + INCLUDEPATH+=$$(SNAPCRAFT_STAGE)/usr/include/nymea } # Make the device plugin json file visible in the Qt Creator OTHER_FILES+=$$PWD/$${TARGET}/deviceplugin"$$TARGET".json # Create plugininfo file -plugininfo.commands = guh-generateplugininfo --filetype i --jsonfile $$PWD/$${TARGET}/deviceplugin"$$TARGET".json --output plugininfo.h --builddir $$OUT_PWD; \ - guh-generateplugininfo --filetype e --jsonfile $$PWD/$${TARGET}/deviceplugin"$$TARGET".json --output extern-plugininfo.h --builddir $$OUT_PWD; +plugininfo.commands = nymea-generateplugininfo --filetype i --jsonfile $$PWD/$${TARGET}/deviceplugin"$$TARGET".json --output plugininfo.h --builddir $$OUT_PWD; \ + nymea-generateplugininfo --filetype e --jsonfile $$PWD/$${TARGET}/deviceplugin"$$TARGET".json --output extern-plugininfo.h --builddir $$OUT_PWD; plugininfo.depends = FORCE QMAKE_EXTRA_TARGETS += plugininfo PRE_TARGETDEPS += plugininfo @@ -35,7 +35,7 @@ lupdate.depends += plugininfo lupdate.commands = lupdate -recursive -no-obsolete $$PWD/"$$TARGET"/"$$TARGET".pro; QMAKE_EXTRA_TARGETS += lupdate -translations.path = /usr/share/guh/translations +translations.path = /usr/share/nymea/translations translations.files = $$[QT_SOURCE_TREE]/translations/*.qm # Install plugin diff --git a/pushbullet/devicepluginpushbullet.cpp b/pushbullet/devicepluginpushbullet.cpp index 41adbe6b..4eeef069 100644 --- a/pushbullet/devicepluginpushbullet.cpp +++ b/pushbullet/devicepluginpushbullet.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Alexander Lampret * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/pushbullet/devicepluginpushbullet.h b/pushbullet/devicepluginpushbullet.h index 59658add..262fbc33 100644 --- a/pushbullet/devicepluginpushbullet.h +++ b/pushbullet/devicepluginpushbullet.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Alexander Lampret * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -34,7 +34,7 @@ class DevicePluginPushbullet: public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginpushbullet.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginpushbullet.json") Q_INTERFACES(DevicePlugin) public: diff --git a/pushbullet/pushbullet.pro b/pushbullet/pushbullet.pro index 3da24b11..609659c3 100644 --- a/pushbullet/pushbullet.pro +++ b/pushbullet/pushbullet.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginpushbullet) +TARGET = $$qtLibraryTarget(nymea_devicepluginpushbullet) QT += network diff --git a/senic/devicepluginsenic.cpp b/senic/devicepluginsenic.cpp index f5bebf37..e06c0aaf 100644 --- a/senic/devicepluginsenic.cpp +++ b/senic/devicepluginsenic.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2016-2018 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for Senic Nuimo. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins \chapter Plugin properties Following JSON file contains the definition and the description of all available \l{DeviceClass}{DeviceClasses} diff --git a/senic/devicepluginsenic.h b/senic/devicepluginsenic.h index 493faf53..78ae69e7 100644 --- a/senic/devicepluginsenic.h +++ b/senic/devicepluginsenic.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2016-2018 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -33,7 +33,7 @@ class DevicePluginSenic : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginsenic.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginsenic.json") Q_INTERFACES(DevicePlugin) public: diff --git a/senic/nuimo.cpp b/senic/nuimo.cpp index beabdb38..82471f83 100644 --- a/senic/nuimo.cpp +++ b/senic/nuimo.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2016-2018 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/senic/nuimo.h b/senic/nuimo.h index e2858257..fa2f6135 100644 --- a/senic/nuimo.h +++ b/senic/nuimo.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2016-2018 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/senic/senic.pro b/senic/senic.pro index 21e679f3..3165abd3 100644 --- a/senic/senic.pro +++ b/senic/senic.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginsenic) +TARGET = $$qtLibraryTarget(nymea_devicepluginsenic) SOURCES += \ devicepluginsenic.cpp \ diff --git a/simulation/devicepluginsimulation.cpp b/simulation/devicepluginsimulation.cpp index ed38b7e8..f4261512 100644 --- a/simulation/devicepluginsimulation.cpp +++ b/simulation/devicepluginsimulation.cpp @@ -3,19 +3,19 @@ * Copyright (C) 2017 Bernhard Trinnes * * Copyright (C) 2018 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * - * Guh is free software: you can redistribute it and/or modify * + * nymea is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, version 2 of the License. * * * - * Guh is distributed in the hope that it will be useful, * + * nymea is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with guh. If not, see . * + * along with nymea. If not, see . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/simulation/devicepluginsimulation.h b/simulation/devicepluginsimulation.h index 271f76d1..c79d3bff 100644 --- a/simulation/devicepluginsimulation.h +++ b/simulation/devicepluginsimulation.h @@ -3,19 +3,19 @@ * Copyright (C) 2017 Bernhard Trinnes * * Copyright (C) 2018 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * - * Guh is free software: you can redistribute it and/or modify * + * nymea is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, version 2 of the License. * * * - * Guh is distributed in the hope that it will be useful, * + * nymea is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with guh. If not, see . * + * along with nymea. If not, see . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ @@ -30,7 +30,7 @@ class DevicePluginSimulation : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginsimulation.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginsimulation.json") Q_INTERFACES(DevicePlugin) diff --git a/simulation/simulation.pro b/simulation/simulation.pro index 84b8b21f..7a579118 100644 --- a/simulation/simulation.pro +++ b/simulation/simulation.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginsimulation) +TARGET = $$qtLibraryTarget(nymea_devicepluginsimulation) SOURCES += \ devicepluginsimulation.cpp \ diff --git a/snapd/devicepluginsnapd.cpp b/snapd/devicepluginsnapd.cpp index 91bb6d50..00c1306d 100644 --- a/snapd/devicepluginsnapd.cpp +++ b/snapd/devicepluginsnapd.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2017-2018 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * - * Guh is free software: you can redistribute it and/or modify * + * nymea is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, version 2 of the License. * * * - * Guh is distributed in the hope that it will be useful, * + * nymea is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with guh. If not, see . * + * along with nymea. If not, see . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/tcpcommander/deviceplugintcpcommander.h b/tcpcommander/deviceplugintcpcommander.h index d2f00ab4..5fa9ca40 100644 --- a/tcpcommander/deviceplugintcpcommander.h +++ b/tcpcommander/deviceplugintcpcommander.h @@ -2,19 +2,19 @@ * * * Copyright (C) 2017 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * - * Guh is free software: you can redistribute it and/or modify * + * nymea is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, version 2 of the License. * * * - * Guh is distributed in the hope that it will be useful, * + * nymea is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with guh. If not, see . * + * along with nymea. If not, see . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ @@ -29,7 +29,7 @@ class DevicePluginTcpCommander : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "deviceplugintcpcommander.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "deviceplugintcpcommander.json") Q_INTERFACES(DevicePlugin) public: diff --git a/tcpcommander/tcpcommander.pro b/tcpcommander/tcpcommander.pro index c72b3825..66a8e629 100644 --- a/tcpcommander/tcpcommander.pro +++ b/tcpcommander/tcpcommander.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_deviceplugintcpcommander) +TARGET = $$qtLibraryTarget(nymea_deviceplugintcpcommander) SOURCES += \ deviceplugintcpcommander.cpp \ diff --git a/tcpcommander/tcpserver.cpp b/tcpcommander/tcpserver.cpp index 0004ba50..20399ec3 100644 --- a/tcpcommander/tcpserver.cpp +++ b/tcpcommander/tcpserver.cpp @@ -2,19 +2,19 @@ * * * Copyright (C) 2017 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * - * Guh is free software: you can redistribute it and/or modify * + * nymea is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, version 2 of the License. * * * - * Guh is distributed in the hope that it will be useful, * + * nymea is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with guh. If not, see . * + * along with nymea. If not, see . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/tcpcommander/tcpserver.h b/tcpcommander/tcpserver.h index e5fc78b8..9d8a3af5 100644 --- a/tcpcommander/tcpserver.h +++ b/tcpcommander/tcpserver.h @@ -2,19 +2,19 @@ * * * Copyright (C) 2017 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * - * Guh is free software: you can redistribute it and/or modify * + * nymea is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, version 2 of the License. * * * - * Guh is distributed in the hope that it will be useful, * + * nymea is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with guh. If not, see . * + * along with nymea. If not, see . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/udpcommander/devicepluginudpcommander.cpp b/udpcommander/devicepluginudpcommander.cpp index 8eddefac..3ac4064e 100644 --- a/udpcommander/devicepluginudpcommander.cpp +++ b/udpcommander/devicepluginudpcommander.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,28 +26,28 @@ \brief Plugin for catching UDP commands from the network. \ingroup plugins - \ingroup guh-plugins-maker + \ingroup nymea-plugins-maker This plugin allows to receive UDP packages over a certain UDP port and generates an \l{Event} if the message content matches the \l{Param} command. - \note This plugin is ment to be combined with a \l{guhserver::Rule}. + \note This plugin is ment to be combined with a \l{nymeaserver::Rule}. \section3 Example - If you create an UDP Commander on port 2323 and with the command \c{"Light 1 ON"}, following command will trigger an \l{Event} in guh - and allows you to connect this \l{Event} with a \l{guhserver::Rule}. + If you create an UDP Commander on port 2323 and with the command \c{"Light 1 ON"}, following command will trigger an \l{Event} in nymea + and allows you to connect this \l{Event} with a \l{nymeaserver::Rule}. - \note In this example guh is running on \c localhost + \note In this example nymea is running on \c localhost \code $ echo "Light 1 ON" | nc -u localhost 2323 OK \endcode - This allows you to execute \l{Action}{Actions} in your home automation system when a certain UDP message will be sent to guh. + This allows you to execute \l{Action}{Actions} in your home automation system when a certain UDP message will be sent to nymea. - If the command will be recognized from guh, the sender will receive as answere a \c{"OK"} string. + If the command will be recognized from nymea, the sender will receive as answere a \c{"OK"} string. \chapter Plugin properties Following JSON file contains the definition and the description of all available \l{DeviceClass}{DeviceClasses} diff --git a/udpcommander/devicepluginudpcommander.h b/udpcommander/devicepluginudpcommander.h index 86e6721b..01c56c55 100644 --- a/udpcommander/devicepluginudpcommander.h +++ b/udpcommander/devicepluginudpcommander.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -32,7 +32,7 @@ class DevicePluginUdpCommander : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginudpcommander.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginudpcommander.json") Q_INTERFACES(DevicePlugin) public: diff --git a/udpcommander/devicepluginudpcommander.json b/udpcommander/devicepluginudpcommander.json index e4ec49fe..e3824887 100644 --- a/udpcommander/devicepluginudpcommander.json +++ b/udpcommander/devicepluginudpcommander.json @@ -5,7 +5,7 @@ "vendors": [ { "name": "guh", - "displayName": "guh", + "displayName": "guh GmbH", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ { diff --git a/udpcommander/udpcommander.pro b/udpcommander/udpcommander.pro index 82d2d26a..067b7da1 100644 --- a/udpcommander/udpcommander.pro +++ b/udpcommander/udpcommander.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginudpcommander) +TARGET = $$qtLibraryTarget(nymea_devicepluginudpcommander) SOURCES += \ devicepluginudpcommander.cpp diff --git a/unitec/devicepluginunitec.cpp b/unitec/devicepluginunitec.cpp index bdda754f..e8270f7e 100644 --- a/unitec/devicepluginunitec.cpp +++ b/unitec/devicepluginunitec.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,13 +26,13 @@ \brief Plugin for Unitech RF 433 MHz devices. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to controll RF 433 MHz actors an receive remote signals from \l{http://www.unitec-elektro.de}{Unitec} devices. The unitec socket units have a learn function. If you plug in the switch, a red light will start to blink. This means - the socket is in the learning mode. Now you can add a Unitec switch (48111) to guh with your desired Channel (A,B,C or D). + the socket is in the learning mode. Now you can add a Unitec switch (48111) to nymea with your desired Channel (A,B,C or D). In order to pair the socket you just have to press the power ON, and the switch has to be in the pairing mode. If the pairing was successfull, the switch will turn on. If the switches will be removed from the socket or there will be a power breakdown, the switch has to be re-paired. The device can not remember the teached channel. diff --git a/unitec/devicepluginunitec.h b/unitec/devicepluginunitec.h index aaa0b638..be650f90 100644 --- a/unitec/devicepluginunitec.h +++ b/unitec/devicepluginunitec.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -29,7 +29,7 @@ class DevicePluginUnitec : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginunitec.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginunitec.json") Q_INTERFACES(DevicePlugin) public: diff --git a/unitec/unitec.pro b/unitec/unitec.pro index 94aeb35a..fca27818 100644 --- a/unitec/unitec.pro +++ b/unitec/unitec.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginunitec) +TARGET = $$qtLibraryTarget(nymea_devicepluginunitec) SOURCES += \ devicepluginunitec.cpp diff --git a/usbwde/devicepluginusbwde.cpp b/usbwde/devicepluginusbwde.cpp index 35971ce5..ae910db5 100644 --- a/usbwde/devicepluginusbwde.cpp +++ b/usbwde/devicepluginusbwde.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Alexander Lampret * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * diff --git a/usbwde/devicepluginusbwde.h b/usbwde/devicepluginusbwde.h index 5168f311..0fb45794 100644 --- a/usbwde/devicepluginusbwde.h +++ b/usbwde/devicepluginusbwde.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2016 Alexander Lampret * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -33,7 +33,7 @@ class DevicePluginUsbWde : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginusbwde.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginusbwde.json") Q_INTERFACES(DevicePlugin) public: diff --git a/usbwde/usbwde.pro b/usbwde/usbwde.pro index 4d37533d..db743b7a 100644 --- a/usbwde/usbwde.pro +++ b/usbwde/usbwde.pro @@ -2,7 +2,7 @@ include(../plugins.pri) QT += serialport -TARGET = $$qtLibraryTarget(guh_devicepluginusbwde) +TARGET = $$qtLibraryTarget(nymea_devicepluginusbwde) SOURCES += \ devicepluginusbwde.cpp diff --git a/wakeonlan/devicepluginwakeonlan.cpp b/wakeonlan/devicepluginwakeonlan.cpp index cb3b09a7..8c151319 100644 --- a/wakeonlan/devicepluginwakeonlan.cpp +++ b/wakeonlan/devicepluginwakeonlan.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for wake up devices in the LAN (wol). \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins Wake-on-LAN (WOL) is an Ethernet computer networking standard that allows a computer to be turned on or awakened by a network message. This plugin allows you to send a diff --git a/wakeonlan/devicepluginwakeonlan.h b/wakeonlan/devicepluginwakeonlan.h index 9eb27ee6..fe69ab64 100644 --- a/wakeonlan/devicepluginwakeonlan.h +++ b/wakeonlan/devicepluginwakeonlan.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -31,7 +31,7 @@ class DevicePluginWakeOnLan : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginwakeonlan.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginwakeonlan.json") Q_INTERFACES(DevicePlugin) public: diff --git a/wakeonlan/devicepluginwakeonlan.json b/wakeonlan/devicepluginwakeonlan.json index 1ab8cceb..b8e2e717 100644 --- a/wakeonlan/devicepluginwakeonlan.json +++ b/wakeonlan/devicepluginwakeonlan.json @@ -5,7 +5,7 @@ "vendors": [ { "name": "guh", - "displayName": "guh", + "displayName": "guh GmbH", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ { diff --git a/wakeonlan/wakeonlan.pro b/wakeonlan/wakeonlan.pro index 9f1bedcf..e16564e3 100644 --- a/wakeonlan/wakeonlan.pro +++ b/wakeonlan/wakeonlan.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginwakeonlan) +TARGET = $$qtLibraryTarget(nymea_devicepluginwakeonlan) QT += network diff --git a/wemo/devicepluginwemo.cpp b/wemo/devicepluginwemo.cpp index d7343fb4..dbfc4303 100644 --- a/wemo/devicepluginwemo.cpp +++ b/wemo/devicepluginwemo.cpp @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -26,7 +26,7 @@ \brief Plugin for Belkin WeMo sockets. \ingroup plugins - \ingroup guh-plugins + \ingroup nymea-plugins This plugin allows to find and controll devices from WeMo, the \l{http://www.belkin.com/de/PRODUKTE/home-automation/c/wemo-home-automation/}{Belkin} @@ -145,7 +145,7 @@ void DevicePluginWemo::refresh(Device *device) QNetworkRequest request; request.setUrl(QUrl("http://" + device->paramValue(wemoSwitchHostParamTypeId).toString() + ":" + device->paramValue(wemoSwitchPortParamTypeId).toString() + "/upnp/control/basicevent1")); request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("text/xml; charset=\"utf-8\"")); - request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("guh")); + request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("nymea")); request.setRawHeader("SOAPACTION", "\"urn:Belkin:service:basicevent:1#GetBinaryState\""); QNetworkReply *reply = hardwareManager()->networkManager()->post(request, getBinarayStateMessage); @@ -165,7 +165,7 @@ bool DevicePluginWemo::setPower(Device *device, const bool &power, const ActionI QNetworkRequest request; request.setUrl(QUrl("http://" + device->paramValue(wemoSwitchHostParamTypeId).toString() + ":" + device->paramValue(wemoSwitchPortParamTypeId).toString() + "/upnp/control/basicevent1")); request.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("text/xml; charset=\"utf-8\"")); - request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("guh")); + request.setHeader(QNetworkRequest::UserAgentHeader,QVariant("nymea")); request.setRawHeader("SOAPACTION", "\"urn:Belkin:service:basicevent:1#SetBinaryState\""); QNetworkReply *reply = hardwareManager()->networkManager()->post(request, setPowerMessage); diff --git a/wemo/devicepluginwemo.h b/wemo/devicepluginwemo.h index 1f1861d9..0eb91b8b 100644 --- a/wemo/devicepluginwemo.h +++ b/wemo/devicepluginwemo.h @@ -2,7 +2,7 @@ * * * Copyright (C) 2015 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -32,7 +32,7 @@ class DevicePluginWemo : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginwemo.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginwemo.json") Q_INTERFACES(DevicePlugin) public: diff --git a/wemo/wemo.pro b/wemo/wemo.pro index eeb361ac..cc51324a 100644 --- a/wemo/wemo.pro +++ b/wemo/wemo.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginwemo) +TARGET = $$qtLibraryTarget(nymea_devicepluginwemo) QT+= network diff --git a/ws2812/devicepluginws2812.cpp b/ws2812/devicepluginws2812.cpp index 180545e7..672dc85d 100644 --- a/ws2812/devicepluginws2812.cpp +++ b/ws2812/devicepluginws2812.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2016 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -27,7 +27,7 @@ \brief Plugin to controll ws2812 LEDs based on 6LoWPAN networking. \ingroup plugins - \ingroup guh-plugins-merkur + \ingroup nymea-plugins-merkur The plugin for the \l{http://cdn.sparkfun.com/datasheets/Components/LED/WS2812.pdf}{ws2812} led module. This plugin allows to control a ws2812 module over a 6LoWPAN network. diff --git a/ws2812/devicepluginws2812.h b/ws2812/devicepluginws2812.h index eda5499c..016a0c6e 100644 --- a/ws2812/devicepluginws2812.h +++ b/ws2812/devicepluginws2812.h @@ -3,7 +3,7 @@ * Copyright (C) 2015 Simon Stürz * * Copyright (C) 2015 Bernhard Trinnes * * * - * This file is part of guh. * + * This file is part of nymea. * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * @@ -36,7 +36,7 @@ class DevicePluginWs2812 : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginws2812.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginws2812.json") Q_INTERFACES(DevicePlugin) public: diff --git a/ws2812/devicepluginws2812.json b/ws2812/devicepluginws2812.json index b8d4db61..fd0731e9 100644 --- a/ws2812/devicepluginws2812.json +++ b/ws2812/devicepluginws2812.json @@ -14,7 +14,7 @@ ], "vendors": [ { - "displayName": "guh", + "displayName": "guh GmbH", "name": "guh", "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6", "deviceClasses": [ diff --git a/ws2812/ws2812.pro b/ws2812/ws2812.pro index 4f14ed88..9b10f0f2 100644 --- a/ws2812/ws2812.pro +++ b/ws2812/ws2812.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginws2812) +TARGET = $$qtLibraryTarget(nymea_devicepluginws2812) SOURCES += \ devicepluginws2812.cpp From 14396d1aee0c1a1da7bbe5eb68b5fbc3691147ed Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 12 Mar 2018 15:25:38 +0100 Subject: [PATCH 02/62] turn some warnings into errors to avoid spamming the log --- snapd/snapdcontrol.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/snapd/snapdcontrol.cpp b/snapd/snapdcontrol.cpp index f3d9ad57..218b2a0e 100644 --- a/snapd/snapdcontrol.cpp +++ b/snapd/snapdcontrol.cpp @@ -52,17 +52,17 @@ bool SnapdControl::available() const { QFileInfo fileInfo(m_snapdSocketPath); if (!fileInfo.exists()) { - qCWarning(dcSnapd()) << "The socket descriptor" << m_snapdSocketPath << "does not exist"; + qCDebug(dcSnapd()) << "The socket descriptor" << m_snapdSocketPath << "does not exist"; return false; } if (!fileInfo.isReadable()) { - qCWarning(dcSnapd()) << "The socket descriptor" << m_snapdSocketPath << "is not readable"; + qCDebug(dcSnapd()) << "The socket descriptor" << m_snapdSocketPath << "is not readable"; return false; } if (!fileInfo.isWritable()) { - qCWarning(dcSnapd()) << "The socket descriptor" << m_snapdSocketPath << "is not writable"; + qCDebug(dcSnapd()) << "The socket descriptor" << m_snapdSocketPath << "is not writable"; return false; } From 794cedde26d336699d46f46f942681def02fbe38 Mon Sep 17 00:00:00 2001 From: Bernhard Trinnes Date: Mon, 12 Mar 2018 17:44:08 +0100 Subject: [PATCH 03/62] added keba plug-in --- keba/devicepluginkeba.cpp | 243 +++++++++++++++++++++++++++++++++++++ keba/devicepluginkeba.h | 63 ++++++++++ keba/devicepluginkeba.json | 103 ++++++++++++++++ keba/keba.pro | 9 ++ nymea-plugins.pro | 1 + 5 files changed, 419 insertions(+) create mode 100644 keba/devicepluginkeba.cpp create mode 100644 keba/devicepluginkeba.h create mode 100644 keba/devicepluginkeba.json create mode 100644 keba/keba.pro diff --git a/keba/devicepluginkeba.cpp b/keba/devicepluginkeba.cpp new file mode 100644 index 00000000..6cf2824e --- /dev/null +++ b/keba/devicepluginkeba.cpp @@ -0,0 +1,243 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2016 Simon Stuerz * + * Copyright (C) 2016 Christian Stachowitz * + * * + * This file is part of nymea. * + * * + * Nymea is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, version 2 of the License. * + * * + * Nymea is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with nymea. If not, see . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include "devicepluginkeba.h" + +#include +#include +#include +#include +#include "plugininfo.h" +#include + + +DevicePluginKeba::DevicePluginKeba() +{ + +} + +DevicePluginKeba::~DevicePluginKeba() +{ + hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer); +} + +void DevicePluginKeba::init() +{ + m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(60); + connect(m_pluginTimer, &PluginTimer::timeout, this, &DevicePluginKeba::updateData); +} + +DeviceManager::DeviceSetupStatus DevicePluginKeba::setupDevice(Device *device) +{ + qCDebug(dcKebaKeContact()) << "Setting up a new device:" << device->name() << device->params(); + + if(m_kebaDevices.isEmpty()) + { + m_kebaSocket = new QUdpSocket(this); + if (!m_kebaSocket->bind(QHostAddress::AnyIPv4,7090)) { + qCWarning(dcKebaKeContact()) << "can't bind to port"; + delete m_kebaSocket; + return DeviceManager::DeviceSetupStatusFailure; + } + connect(m_kebaSocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); + qCDebug(dcKebaKeContact()) << "create keba socket"; + } + QHostAddress address = QHostAddress(device->paramValue(wallboxIpParamTypeId).toString()); + + //Check if the IP is empty + if(address.isNull()){ + return DeviceManager::DeviceSetupStatusFailure; + } + + // check if IP is already added to another keba device + if(m_kebaDevices.keys().contains(address)){ + return DeviceManager::DeviceSetupStatusFailure; + } + + m_kebaDevices.insert(address, device); + return DeviceManager::DeviceSetupStatusSuccess; +} + +void DevicePluginKeba::postSetupDevice(Device *device) +{ + qCDebug(dcKebaKeContact()) << "Post setup" << device->name(); + QByteArray datagram; + datagram.append("report 2"); + m_kebaSocket->writeDatagram(datagram.data(),datagram.size(), QHostAddress(device->paramValue(wallboxIpParamTypeId).toString()) , 7090); +} + +void DevicePluginKeba::deviceRemoved(Device *device) +{ + // Remove devices + QHostAddress address = m_kebaDevices.key(device); + m_kebaDevices.remove(address); + + if(m_kebaDevices.isEmpty()){ + m_kebaSocket->close(); + m_kebaSocket->deleteLater(); + qCDebug(dcKebaKeContact()) << "clear socket"; + } +} + +void DevicePluginKeba::updateData() +{ + foreach (QHostAddress address, m_kebaDevices.keys()) { + QByteArray datagram; + datagram.append("report 2"); + qCDebug(dcKebaKeContact()) << "datagram : " << datagram; + m_kebaSocket->writeDatagram(datagram.data(),datagram.size(), address , 7090); + //set reachable false until successful reply from device + m_kebaDevices.value(address)->setStateValue(wallboxReachableStateTypeId,false); + } +} + +DeviceManager::DeviceError DevicePluginKeba::executeAction(Device *device, const Action &action) +{ + qCDebug(dcKebaKeContact()) << "Execute action" << device->name() << action.actionTypeId().toString(); + + if (device->deviceClassId() == wallboxDeviceClassId) { + + // Print information that we are executing now the update action + qCDebug(dcKebaKeContact()) << "Execute update action" << action.id(); + + if(action.actionTypeId() == wallboxMaxCurrentActionTypeId){ + // Print information that we are executing now the update action + qCDebug(dcKebaKeContact()) << "update max current to : " << action.param(wallboxMaxCurrentStateParamTypeId).value().toString(); + QByteArray datagram; + datagram.append("curr " + QVariant(action.param(wallboxMaxCurrentStateParamTypeId).value().toInt()*1000).toString()); + qCDebug(dcKebaKeContact()) << "datagram : " << datagram; + m_kebaSocket->writeDatagram(datagram.data(),datagram.size(), QHostAddress(device->paramValue(wallboxIpParamTypeId).toString()) , 7090); + } + else if(action.actionTypeId() == wallboxOutEnableActionTypeId){ + // Print information that we are executing now the update action + qCDebug(dcKebaKeContact()) << "output enable : " << action.param(wallboxOutEnableStateParamTypeId).value().toString(); + QByteArray datagram; + if(action.param(wallboxOutEnableStateParamTypeId).value().toBool()){ + datagram.append("ena 1"); + } + else{ + datagram.append("ena 0"); + } + qCDebug(dcKebaKeContact()) << "datagram : " << datagram; + m_kebaSocket->writeDatagram(datagram.data(),datagram.size(), QHostAddress(device->paramValue(wallboxIpParamTypeId).toString()) , 7090); + } + + return DeviceManager::DeviceErrorNoError; + } + + return DeviceManager::DeviceErrorDeviceClassNotFound; +} + +void DevicePluginKeba::readPendingDatagrams() +{ + QUdpSocket *socket= qobject_cast(sender()); + + QByteArray datagram; + QHostAddress sender; + quint16 senderPort; + + while (socket->hasPendingDatagrams()) { + datagram.resize(socket->pendingDatagramSize()); + socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort); + + qCDebug(dcKebaKeContact()) << " got command from" << sender.toString() << senderPort; + } + + if(!m_kebaDevices.keys().contains(sender)){ + qCDebug(dcKebaKeContact()) << " unknown sender:" << sender.toString() << senderPort; + return; + } + + // Convert the rawdata to a json document + QJsonParseError error; + QJsonDocument jsonDoc = QJsonDocument::fromJson(datagram, &error); + if (error.error != QJsonParseError::NoError) { + qCWarning(dcKebaKeContact()) << "Failed to parse JSON data" << datagram << ":" << error.errorString(); + return; + } + + // print the fetched data in json format to stdout + //qCDebug(dcKebaKeContact()) << qUtf8Printable(jsonDoc.toJson()); + + QVariantMap data = jsonDoc.toVariant().toMap(); + + qCDebug(dcKebaKeContact()) << "IP" << sender << "device: " << m_kebaDevices.value(sender); + + if(data.contains("ID")){ + // check if ID matches report 2 or report 3 + if(data.value("ID").toString() == "2"){ + //set reachable + m_kebaDevices.value(sender)->setStateValue(wallboxReachableStateTypeId,true); + //activity state + if(data.value("State").toString() == "0"){ + m_kebaDevices.value(sender)->setStateValue(wallboxActivityStateTypeId,"starting"); + } + else if(data.value("State").toString() == "1"){ + m_kebaDevices.value(sender)->setStateValue(wallboxActivityStateTypeId,"not ready for charging"); + } + else if(data.value("State").toString() == "2"){ + m_kebaDevices.value(sender)->setStateValue(wallboxActivityStateTypeId,"ready for charging"); + } + else if(data.value("State").toString() == "3"){ + m_kebaDevices.value(sender)->setStateValue(wallboxActivityStateTypeId,"charging"); + } + else if(data.value("State").toString() == "4"){ + m_kebaDevices.value(sender)->setStateValue(wallboxActivityStateTypeId,"error"); + } + else if(data.value("State").toString() == "5"){ + m_kebaDevices.value(sender)->setStateValue(wallboxActivityStateTypeId,"authorization rejected"); + } + // plug state + if(data.value("Plug").toString() == "0"){ + m_kebaDevices.value(sender)->setStateValue(wallboxPlugStateStateTypeId,"unplugged"); + } + else if(data.value("Plug").toString() == "1"){ + m_kebaDevices.value(sender)->setStateValue(wallboxPlugStateStateTypeId,"plugged on charging station"); + } + else if(data.value("Plug").toString() == "3"){ + m_kebaDevices.value(sender)->setStateValue(wallboxPlugStateStateTypeId,"locked plug on charging station"); + } + else if(data.value("Plug").toString() == "5"){ + m_kebaDevices.value(sender)->setStateValue(wallboxPlugStateStateTypeId,"plugged on charging station and vehicle"); + } + else if(data.value("Plug").toString() == "7"){ + m_kebaDevices.value(sender)->setStateValue(wallboxPlugStateStateTypeId,"locked plug on charging station and vehicle"); + } + //maximum current setting + m_kebaDevices.value(sender)->setStateValue(wallboxMaxCurrentStateTypeId,data.value("Curr user").toInt()/1000); + //output setting + m_kebaDevices.value(sender)->setStateValue(wallboxOutEnableStateTypeId,data.value("Enable user").toBool()); + + //request next report + QByteArray datagram; + datagram.append("report 3"); + qCDebug(dcKebaKeContact()) << "datagram : " << datagram; + socket->writeDatagram(datagram.data(),datagram.size(), QHostAddress(m_kebaDevices.value(sender)->paramValue(wallboxIpParamTypeId).toString()) , 7090); + } + else if(data.value("ID").toString() == "3"){ + //power of current charging session + m_kebaDevices.value(sender)->setStateValue(wallboxPowerStateTypeId,data.value("E pres").toInt() / 1000); + //current phase 1 + m_kebaDevices.value(sender)->setStateValue(wallboxCurrentStateTypeId,data.value("I1").toInt() * 1000); + } + } + +} diff --git a/keba/devicepluginkeba.h b/keba/devicepluginkeba.h new file mode 100644 index 00000000..d58442a6 --- /dev/null +++ b/keba/devicepluginkeba.h @@ -0,0 +1,63 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2016 Simon Stuerz * + * Copyright (C) 2016 Christian Stachowitz * + * * + * This file is part of nymea. * + * * + * Nymea is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, version 2 of the License. * + * * + * Nymea is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with nymea. If not, see . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef DEVICEPLUGINKEBA_H +#define DEVICEPLUGINKEBA_H + +#include "plugin/deviceplugin.h" +#include "devicemanager.h" +#include "plugintimer.h" + +#include +#include +#include + +class DevicePluginKeba : public DevicePlugin +{ + Q_OBJECT + + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginkeba.json") + Q_INTERFACES(DevicePlugin) + +public: + explicit DevicePluginKeba(); + ~DevicePluginKeba(); + + void init() override; + DeviceManager::DeviceSetupStatus setupDevice(Device *device) override; + + void postSetupDevice(Device* device) override; + void deviceRemoved(Device* device) override; + + DeviceManager::DeviceError executeAction(Device *device, const Action &action) override; + void updateData(); + +private: + PluginTimer *m_pluginTimer = nullptr; + QHash m_kebaDevices; + QUdpSocket *m_kebaSocket; + +private slots: + void readPendingDatagrams(); + +}; + +#endif // DEVICEPLUGINKEBA_H diff --git a/keba/devicepluginkeba.json b/keba/devicepluginkeba.json new file mode 100644 index 00000000..1eebfcae --- /dev/null +++ b/keba/devicepluginkeba.json @@ -0,0 +1,103 @@ +{ + "displayName": "Keba KeContact", + "name": "KebaKeContact", + "id": "9142b09f-30a9-43d0-9ede-2f8debe075ac", + "vendors": [ + { + "id": "f7cda40b-829a-4675-abaa-485697430f5f", + "displayName": "Keba", + "name": "keba", + "deviceClasses": [ + { + "id": "900dacec-cae7-4a37-95ba-501846368ea2", + "name": "wallbox", + "displayName": "Keba KeContact P30", + "deviceIcon": "Energy", + "createMethods": ["user"], + "interfaces": [], + "criticalStateTypeId": "b1a574a6-46b6-44ea-a0bb-9b4de3198967", + "basicTags": [ + "Energy" + ], + "paramTypes":[ + { + "id": "730cd3d3-5f0e-4028-a8c2-ced7574f13f3", + "name": "ip", + "displayName": "IP Address", + "type": "QString", + "inputType": "IPv4Address", + "defaultValue":"0.0.0.0" + } + ], + "stateTypes": [ + { + "id": "539e5602-6dd9-465d-9705-3bb59bcf8982", + "name": "activity", + "displayName": "Activity", + "displayNameEvent": "Activity changed", + "type": "QString", + "defaultValue": "-" + }, + { + "id": "3b4d29f3-3101-47ad-90fd-269b6348783b", + "name": "plugState", + "displayName": "Plug State", + "displayNameEvent": "Plug State changed", + "type": "QString", + "defaultValue": "-" + }, + { + "id": "a29c1748-fe97-4830-a56e-e1cc4e618385", + "name": "current", + "displayName": "Current", + "displayNameEvent": "Current changed", + "type": "int", + "unit": "Ampere", + "defaultValue": 0 + }, + { + "id": "593656f0-babf-4308-8767-68f34e10fb15", + "name": "maxCurrent", + "displayName": "maximal Current", + "displayNameEvent": "Maximal Current changed", + "displayNameAction": "Set maximal current", + "type": "int", + "unit": "Ampere", + "defaultValue": 6, + "minValue": 6, + "maxValue": 63, + "writable": true + }, + { + "id": "e8f069ca-7fa7-4568-8d4c-165f6d048720", + "name": "power", + "displayName": "Power", + "displayNameEvent": "Power changed", + "type": "int", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "0cd5396a-bc41-4c8f-b037-db10991a76c7", + "name": "outEnable", + "displayName": "Output", + "displayNameEvent": "Output Enable changed", + "displayNameAction": "Set Output", + "type": "bool", + "defaultValue": false, + "writable": true + }, + { + "id": "b1a574a6-46b6-44ea-a0bb-9b4de3198967", + "name": "reachable", + "displayName": "reachable", + "displayNameEvent": "Device Reachable changed", + "type": "bool", + "defaultValue": false + } + ] + } + ] + } + ] +} diff --git a/keba/keba.pro b/keba/keba.pro new file mode 100644 index 00000000..edac80c1 --- /dev/null +++ b/keba/keba.pro @@ -0,0 +1,9 @@ +include(../plugins.pri) + +TARGET = $$qtLibraryTarget(nymea_devicepluginkeba) + +SOURCES += \ + devicepluginkeba.cpp \ + +HEADERS += \ + devicepluginkeba.h \ diff --git a/nymea-plugins.pro b/nymea-plugins.pro index febe0e95..3d3d7b16 100644 --- a/nymea-plugins.pro +++ b/nymea-plugins.pro @@ -36,6 +36,7 @@ PLUGIN_DIRS = \ gpio \ snapd \ simulation \ + keba \ CONFIG+=all From 00a7ee5ecf953373ec30c8513af532c7a3e9b7dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Mon, 12 Mar 2018 18:33:42 +0100 Subject: [PATCH 04/62] Add debian package of keba plugin and add translations --- debian/control | 15 +++ debian/nymea-plugin-keba.install.in | 1 + keba/devicepluginkeba.cpp | 24 ++-- keba/devicepluginkeba.h | 2 +- keba/keba.pro | 2 + ...2b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts | 127 ++++++++++++++++++ plugins.pri | 1 + 7 files changed, 159 insertions(+), 13 deletions(-) create mode 100644 debian/nymea-plugin-keba.install.in create mode 100644 keba/translations/9142b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts diff --git a/debian/control b/debian/control index 55f2ce51..d181a514 100644 --- a/debian/control +++ b/debian/control @@ -573,6 +573,21 @@ Description: nymea.io plugin for snapd This package will install the nymea.io plugin for snapd +Package: nymea-plugin-keba +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + nymea-plugins-translations, +Replaces: guh-plugin-keba +Description: nymea.io plugin for keba + The nymea daemon is a plugin based IoT (Internet of Things) server. The + server works like a translator for devices, things and services and + allows them to interact. + With the powerful rule engine you are able to connect any device available + in the system and create individual scenes and behaviors for your environment. + . + This package will install the nymea.io plugin for keba + Package: nymea-plugins-translations diff --git a/debian/nymea-plugin-keba.install.in b/debian/nymea-plugin-keba.install.in new file mode 100644 index 00000000..050c7a82 --- /dev/null +++ b/debian/nymea-plugin-keba.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginkeba.so diff --git a/keba/devicepluginkeba.cpp b/keba/devicepluginkeba.cpp index 6cf2824e..30f54ba8 100644 --- a/keba/devicepluginkeba.cpp +++ b/keba/devicepluginkeba.cpp @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright (C) 2016 Simon Stuerz * + * Copyright (C) 2016-2018 Simon Stuerz * * Copyright (C) 2016 Christian Stachowitz * * * * This file is part of nymea. * @@ -28,7 +28,6 @@ #include "plugininfo.h" #include - DevicePluginKeba::DevicePluginKeba() { @@ -49,21 +48,22 @@ DeviceManager::DeviceSetupStatus DevicePluginKeba::setupDevice(Device *device) { qCDebug(dcKebaKeContact()) << "Setting up a new device:" << device->name() << device->params(); - if(m_kebaDevices.isEmpty()) - { + if(m_kebaDevices.isEmpty()) { m_kebaSocket = new QUdpSocket(this); - if (!m_kebaSocket->bind(QHostAddress::AnyIPv4,7090)) { - qCWarning(dcKebaKeContact()) << "can't bind to port"; + if (!m_kebaSocket->bind(QHostAddress::AnyIPv4, 7090)) { + qCWarning(dcKebaKeContact()) << "Cannot bind to port" << 7090; delete m_kebaSocket; return DeviceManager::DeviceSetupStatusFailure; } connect(m_kebaSocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); - qCDebug(dcKebaKeContact()) << "create keba socket"; + qCDebug(dcKebaKeContact()) << "Create keba socket"; } + QHostAddress address = QHostAddress(device->paramValue(wallboxIpParamTypeId).toString()); //Check if the IP is empty - if(address.isNull()){ + if (address.isNull()) { + delete m_kebaSocket; return DeviceManager::DeviceSetupStatusFailure; } @@ -81,7 +81,7 @@ void DevicePluginKeba::postSetupDevice(Device *device) qCDebug(dcKebaKeContact()) << "Post setup" << device->name(); QByteArray datagram; datagram.append("report 2"); - m_kebaSocket->writeDatagram(datagram.data(),datagram.size(), QHostAddress(device->paramValue(wallboxIpParamTypeId).toString()) , 7090); + m_kebaSocket->writeDatagram(datagram.data(), datagram.size(), QHostAddress(device->paramValue(wallboxIpParamTypeId).toString()), 7090); } void DevicePluginKeba::deviceRemoved(Device *device) @@ -120,10 +120,10 @@ DeviceManager::DeviceError DevicePluginKeba::executeAction(Device *device, const if(action.actionTypeId() == wallboxMaxCurrentActionTypeId){ // Print information that we are executing now the update action - qCDebug(dcKebaKeContact()) << "update max current to : " << action.param(wallboxMaxCurrentStateParamTypeId).value().toString(); + qCDebug(dcKebaKeContact()) << "Update max current to : " << action.param(wallboxMaxCurrentStateParamTypeId).value().toString(); QByteArray datagram; datagram.append("curr " + QVariant(action.param(wallboxMaxCurrentStateParamTypeId).value().toInt()*1000).toString()); - qCDebug(dcKebaKeContact()) << "datagram : " << datagram; + qCDebug(dcKebaKeContact()) << "Datagram : " << datagram; m_kebaSocket->writeDatagram(datagram.data(),datagram.size(), QHostAddress(device->paramValue(wallboxIpParamTypeId).toString()) , 7090); } else if(action.actionTypeId() == wallboxOutEnableActionTypeId){ @@ -136,7 +136,7 @@ DeviceManager::DeviceError DevicePluginKeba::executeAction(Device *device, const else{ datagram.append("ena 0"); } - qCDebug(dcKebaKeContact()) << "datagram : " << datagram; + qCDebug(dcKebaKeContact()) << "Datagram : " << datagram; m_kebaSocket->writeDatagram(datagram.data(),datagram.size(), QHostAddress(device->paramValue(wallboxIpParamTypeId).toString()) , 7090); } diff --git a/keba/devicepluginkeba.h b/keba/devicepluginkeba.h index d58442a6..d95076b8 100644 --- a/keba/devicepluginkeba.h +++ b/keba/devicepluginkeba.h @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright (C) 2016 Simon Stuerz * + * Copyright (C) 2016-2018 Simon Stuerz * * Copyright (C) 2016 Christian Stachowitz * * * * This file is part of nymea. * diff --git a/keba/keba.pro b/keba/keba.pro index edac80c1..31f1c777 100644 --- a/keba/keba.pro +++ b/keba/keba.pro @@ -1,3 +1,5 @@ +TRANSLATIONS += translations/9142b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts + include(../plugins.pri) TARGET = $$qtLibraryTarget(nymea_devicepluginkeba) diff --git a/keba/translations/9142b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts b/keba/translations/9142b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts new file mode 100644 index 00000000..5907f0d5 --- /dev/null +++ b/keba/translations/9142b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts @@ -0,0 +1,127 @@ + + + + + KebaKeContact + + + KebaKeContact + The name of the plugin KebaKeContact (9142b09f-30a9-43d0-9ede-2f8debe075ac) + + + + + Keba + The name of the vendor (f7cda40b-829a-4675-abaa-485697430f5f) + + + + + Keba KeContact P30 + The name of the DeviceClass (900dacec-cae7-4a37-95ba-501846368ea2) + + + + + IP Address + The name of the paramType (730cd3d3-5f0e-4028-a8c2-ced7574f13f3) of wallbox + + + + + Activity changed + The name of the autocreated EventType (539e5602-6dd9-465d-9705-3bb59bcf8982) + + + + + activity + The name of the ParamType of StateType (539e5602-6dd9-465d-9705-3bb59bcf8982) of DeviceClass wallbox + + + + + Plug State changed + The name of the autocreated EventType (3b4d29f3-3101-47ad-90fd-269b6348783b) + + + + + plugState + The name of the ParamType of StateType (3b4d29f3-3101-47ad-90fd-269b6348783b) of DeviceClass wallbox + + + + + Current changed + The name of the autocreated EventType (a29c1748-fe97-4830-a56e-e1cc4e618385) + + + + + current + The name of the ParamType of StateType (a29c1748-fe97-4830-a56e-e1cc4e618385) of DeviceClass wallbox + + + + + Maximal Current changed + The name of the autocreated EventType (593656f0-babf-4308-8767-68f34e10fb15) + + + + + maxCurrent + The name of the ParamType of StateType (593656f0-babf-4308-8767-68f34e10fb15) of DeviceClass wallbox + + + + + Set maximal current + The name of the autocreated ActionType (593656f0-babf-4308-8767-68f34e10fb15) + + + + + Power changed + The name of the autocreated EventType (e8f069ca-7fa7-4568-8d4c-165f6d048720) + + + + + power + The name of the ParamType of StateType (e8f069ca-7fa7-4568-8d4c-165f6d048720) of DeviceClass wallbox + + + + + Output Enable changed + The name of the autocreated EventType (0cd5396a-bc41-4c8f-b037-db10991a76c7) + + + + + outEnable + The name of the ParamType of StateType (0cd5396a-bc41-4c8f-b037-db10991a76c7) of DeviceClass wallbox + + + + + Set Output + The name of the autocreated ActionType (0cd5396a-bc41-4c8f-b037-db10991a76c7) + + + + + Device Reachable changed + The name of the autocreated EventType (b1a574a6-46b6-44ea-a0bb-9b4de3198967) + + + + + reachable + The name of the ParamType of StateType (b1a574a6-46b6-44ea-a0bb-9b4de3198967) of DeviceClass wallbox + + + + diff --git a/plugins.pri b/plugins.pri index 08c9dceb..a1c6b05a 100644 --- a/plugins.pri +++ b/plugins.pri @@ -37,6 +37,7 @@ QMAKE_EXTRA_TARGETS += lupdate translations.path = /usr/share/nymea/translations translations.files = $$[QT_SOURCE_TREE]/translations/*.qm +TRANSLATIONS += $$files($$[QT_SOURCE_TREE]/translations/*.ts, true) # Install plugin target.path = $$PLUGIN_PATH From c085a255c54dc49839ba5270f4396ff8d8f58551 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Mon, 12 Mar 2018 21:04:55 +0100 Subject: [PATCH 05/62] Automatic translations update by Jenkins --- ...fb167-cef7-4347-8c58-fa39df7bea4f-de_DE.ts | 12 +- ...fb167-cef7-4347-8c58-fa39df7bea4f-en_US.ts | 12 +- ...7b796-4872-4eab-a7af-94ca9ddd8199-de_DE.ts | 2 +- ...7b796-4872-4eab-a7af-94ca9ddd8199-en_US.ts | 2 +- ...014c6-87fb-4233-85ed-01d18625018d-de_DE.ts | 12 +- ...014c6-87fb-4233-85ed-01d18625018d-en_US.ts | 12 +- ...2161e-39b7-4416-8623-39e730721efb-de_DE.ts | 2 +- ...2161e-39b7-4416-8623-39e730721efb-en_US.ts | 2 +- ...35df1-1b51-4c93-94fa-3febc77e0318-de_DE.ts | 12 +- ...35df1-1b51-4c93-94fa-3febc77e0318-en_US.ts | 12 +- ...f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts | 2 +- ...f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts | 2 +- ...a6557-649d-43de-990b-3484f972ad86-de_DE.ts | 2 +- ...a6557-649d-43de-990b-3484f972ad86-en_US.ts | 2 +- ...a115f-2a9f-49b3-9575-9e36d137c8d6-de_DE.ts | 12 +- ...a115f-2a9f-49b3-9575-9e36d137c8d6-en_US.ts | 12 +- simulation/translations/de_DE.ts | 458 ++++++++++++++++++ simulation/translations/en_US.ts | 458 ++++++++++++++++++ ...bce59-59bf-48b3-b781-54a6f45800f3-de_DE.ts | 70 +-- ...bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts | 70 +-- ...8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts | 12 +- ...8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts | 12 +- ...87848-de56-451e-84a6-edd26ad4958f-de_DE.ts | 4 +- ...87848-de56-451e-84a6-edd26ad4958f-en_US.ts | 2 +- ...68c75-3261-4bf1-8912-798d2d3bbd3b-de_DE.ts | 12 +- ...68c75-3261-4bf1-8912-798d2d3bbd3b-en_US.ts | 12 +- 26 files changed, 1075 insertions(+), 147 deletions(-) diff --git a/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-de_DE.ts b/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-de_DE.ts index 3be1068b..5ba17330 100644 --- a/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-de_DE.ts +++ b/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-de_DE.ts @@ -9,18 +9,18 @@ The name of the DeviceClass (97f0154d-6945-49b8-bd65-0a8cea0c6652) - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - AvahiMonitor The name of the plugin AvahiMonitor (d83fb167-cef7-4347-8c58-fa39df7bea4f) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + service name diff --git a/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-en_US.ts b/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-en_US.ts index 00c029ea..0815b3e5 100644 --- a/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-en_US.ts +++ b/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-en_US.ts @@ -9,18 +9,18 @@ The name of the DeviceClass (97f0154d-6945-49b8-bd65-0a8cea0c6652) - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - AvahiMonitor The name of the plugin AvahiMonitor (d83fb167-cef7-4347-8c58-fa39df7bea4f) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + service name diff --git a/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-de_DE.ts b/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-de_DE.ts index 38dfc496..78838ca9 100644 --- a/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-de_DE.ts +++ b/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-de_DE.ts @@ -11,7 +11,7 @@ - guh + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) diff --git a/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-en_US.ts b/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-en_US.ts index 85406941..e0b770ac 100644 --- a/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-en_US.ts +++ b/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-en_US.ts @@ -11,7 +11,7 @@ - guh + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) diff --git a/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-de_DE.ts b/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-de_DE.ts index 19879a37..6916ed47 100644 --- a/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-de_DE.ts +++ b/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-de_DE.ts @@ -3,12 +3,6 @@ DateTime - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - guh - Today @@ -111,6 +105,12 @@ The name of the plugin DateTime (c26014c6-87fb-4233-85ed-01d18625018d) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + timeZone diff --git a/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-en_US.ts b/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-en_US.ts index 707e3d13..109dbdd2 100644 --- a/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-en_US.ts +++ b/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-en_US.ts @@ -3,12 +3,6 @@ DateTime - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - Today @@ -111,6 +105,12 @@ The name of the plugin DateTime (c26014c6-87fb-4233-85ed-01d18625018d) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + timeZone diff --git a/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-de_DE.ts b/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-de_DE.ts index 09c310a8..7064f4df 100644 --- a/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-de_DE.ts +++ b/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-de_DE.ts @@ -11,7 +11,7 @@ - guh + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) diff --git a/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-en_US.ts b/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-en_US.ts index 85e8c0be..5569f9d4 100644 --- a/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-en_US.ts +++ b/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-en_US.ts @@ -11,7 +11,7 @@ - guh + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) diff --git a/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-de_DE.ts b/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-de_DE.ts index 829f2d2e..540625b6 100644 --- a/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-de_DE.ts +++ b/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-de_DE.ts @@ -3,12 +3,6 @@ MailNotification - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - guh - Custom mail @@ -135,6 +129,12 @@ The name of the ActionType 054613b0-3666-4dad-9252-e0ebca187edc of deviceClass y The name of the plugin MailNotification (1ae35df1-1b51-4c93-94fa-3febc77e0318) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + Yahoo diff --git a/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-en_US.ts b/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-en_US.ts index 5a4f9161..d47c0644 100644 --- a/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-en_US.ts +++ b/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-en_US.ts @@ -3,12 +3,6 @@ MailNotification - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - Custom mail @@ -135,6 +129,12 @@ The name of the ActionType 054613b0-3666-4dad-9252-e0ebca187edc of deviceClass y The name of the plugin MailNotification (1ae35df1-1b51-4c93-94fa-3febc77e0318) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + Yahoo diff --git a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts index 3181607c..cfc46a97 100644 --- a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts +++ b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts @@ -11,7 +11,7 @@ - guh + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) diff --git a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts index 4ba06b80..df29d9d9 100644 --- a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts +++ b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts @@ -11,7 +11,7 @@ - guh + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) diff --git a/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-de_DE.ts b/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-de_DE.ts index 9d21c868..c17173fd 100644 --- a/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-de_DE.ts +++ b/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-de_DE.ts @@ -17,7 +17,7 @@ - guh + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) diff --git a/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-en_US.ts b/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-en_US.ts index beeabf88..db18194f 100644 --- a/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-en_US.ts +++ b/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-en_US.ts @@ -17,7 +17,7 @@ - guh + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) diff --git a/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-de_DE.ts b/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-de_DE.ts index 8935f175..73d23369 100644 --- a/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-de_DE.ts +++ b/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-de_DE.ts @@ -21,12 +21,6 @@ The name of the plugin PlantCare (80ea115f-2a9f-49b3-9575-9e36d137c8d6) - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - host @@ -69,6 +63,12 @@ The name of the autocreated EventType (8a7efda1-b6b7-41c8-ad07-4d892a532d1c) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + moisture diff --git a/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-en_US.ts b/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-en_US.ts index 713f0a34..1dec88d1 100644 --- a/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-en_US.ts +++ b/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-en_US.ts @@ -21,12 +21,6 @@ The name of the plugin PlantCare (80ea115f-2a9f-49b3-9575-9e36d137c8d6) - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - host @@ -69,6 +63,12 @@ The name of the autocreated EventType (8a7efda1-b6b7-41c8-ad07-4d892a532d1c) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + moisture diff --git a/simulation/translations/de_DE.ts b/simulation/translations/de_DE.ts index 1552582e..9c24321e 100644 --- a/simulation/translations/de_DE.ts +++ b/simulation/translations/de_DE.ts @@ -1,4 +1,462 @@ + + Simulation + + Simulation + The name of the plugin Simulation (b7368429-e312-4c82-9eab-e1cd996e43d6) +---------- +The name of the vendor (fd2ae067-2c3d-4332-9c4b-ee0af653bcaf) + + + + Simple Button + The name of the DeviceClass (73bb670b-e7a3-40da-bd6f-3260f017ec80) + + + + Press the button + The name of the ActionType 64c4ced5-9a1a-4858-81dd-1b5c94dba495 of deviceClass simpleButton + + + + Button pressed + The name of the EventType f9652210-9aed-4f38-8c19-2fd54f703fbe of deviceClass simpleButton + + + + Power Button + The name of the DeviceClass (910b2f58-70dc-4da3-89ae-9e7393290ccb) + + + + Power changed + The name of the autocreated EventType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) +---------- +The name of the autocreated EventType (e1910c53-a6bc-434b-9caa-0d08e214c122) +---------- +The name of the autocreated EventType (b786029d-f3a6-4b47-978a-ac1a581aac0f) +---------- +The name of the autocreated EventType (9faaffe5-6a76-47d2-a14a-550f60390245) +---------- +The name of the autocreated EventType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) + + + + power + The name of the ParamType of StateType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) of DeviceClass alternativeButton +---------- +The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heating +---------- +The name of the ParamType of StateType (b786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass evCharger +---------- +The name of the ParamType of StateType (9faaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass colorBulb +---------- +The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass socket +---------- +The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod + + + + Set power + The name of the autocreated ActionType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) +---------- +The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) +---------- +The name of the autocreated ActionType (b786029d-f3a6-4b47-978a-ac1a581aac0f) +---------- +The name of the autocreated ActionType (9faaffe5-6a76-47d2-a14a-550f60390245) +---------- +The name of the autocreated ActionType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) + + + + Temperature sensor + The name of the DeviceClass (77c6ccff-84e8-4983-b69e-5e1a3f4723f2) + + + + Temperature changed + The name of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) + + + + temperature + The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor + + + + Humidity changed + The name of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) + + + + humidity + The name of the ParamType of StateType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor + + + + Battery level changed + The name of the autocreated EventType (45c0de32-b519-47d7-9f82-e5f09d1542d4) +---------- +The name of the autocreated EventType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) +---------- +The name of the autocreated EventType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) + + + + batteryLevel + The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) of DeviceClass motionDetector +---------- +The name of the ParamType of StateType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) of DeviceClass battery + + + + Battery critical changed + The name of the autocreated EventType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) +---------- +The name of the autocreated EventType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) +---------- +The name of the autocreated EventType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) + + + + batteryCritical + The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) of DeviceClass motionDetector +---------- +The name of the ParamType of StateType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) of DeviceClass battery + + + + Connected changed + The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) +---------- +The name of the autocreated EventType (b481b6e7-77c1-40b0-859a-286876b05959) + + + + connected + The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (b481b6e7-77c1-40b0-859a-286876b05959) of DeviceClass motionDetector +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass fingerPrintSensor +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass smartMeter +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass battery +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod + + + + Motion Detector + The name of the DeviceClass (990fc2ba-260a-4648-9a93-e803e219da4f) + + + + Motion detected + The name of the autocreated EventType (5ab00bfc-7345-44a2-90d4-852c810e59ec) + + + + active + The name of the ParamType of StateType (5ab00bfc-7345-44a2-90d4-852c810e59ec) of DeviceClass motionDetector + + + + Heating + The name of the DeviceClass (62e302f4-b92a-4b55-bd18-a1e0cc56362a) + + + + Active status changed + The name of the autocreated EventType (47a16375-1027-42cc-82d3-56cbfdb1193c) + + + + heatingActive + The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heating +---------- +The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heatingRod + + + + target temperature changed + The name of the autocreated EventType (8256a670-85c5-4043-9133-05518812848c) + + + + targetTemperature + The name of the ParamType of StateType (8256a670-85c5-4043-9133-05518812848c) of DeviceClass heating + + + + change target temperature + The name of the autocreated ActionType (8256a670-85c5-4043-9133-05518812848c) + + + + EV Charging Station + The name of the DeviceClass (1fa40afa-6a07-4a97-918b-76e3944ea0fb) + + + + Current changed + The name of the autocreated EventType (87600986-da37-4032-af37-015995910368) + + + + current + The name of the ParamType of StateType (87600986-da37-4032-af37-015995910368) of DeviceClass evCharger + + + + Set current + The name of the autocreated ActionType (87600986-da37-4032-af37-015995910368) + + + + charging status changed + The name of the autocreated EventType (9d3f56e1-bb73-4efd-814c-50477c609c17) + + + + evCharging + The name of the ParamType of StateType (9d3f56e1-bb73-4efd-814c-50477c609c17) of DeviceClass evCharger + + + + Garage Door + The name of the DeviceClass (cfb44bcf-b4b9-4bef-89f7-3a55baf35668) + + + + Garage door status changed + The name of the autocreated EventType (f786029d-f3a6-4b47-978a-ac1a581aac0f) + + + + door + The name of the ParamType of StateType (f786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass garageDoor + + + + Open + The name of the ActionType 1786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor +---------- +The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter + + + + Stop + The name of the ActionType 2786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor + + + + Close + The name of the ActionType 3786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor + + + + Roller Shutter + The name of the DeviceClass (1039b7ee-5351-400b-a477-5b8fc1447138) + + + + Shutter status changed + The name of the autocreated EventType (1386029d-f3a6-4b47-978a-ac1a581aac0f) + + + + shutterStatus + The name of the ParamType of StateType (1386029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass rollerShutter + + + + stop + The name of the ActionType 27860292-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter + + + + close + The name of the ActionType 37860293-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter + + + + Color Bulb + The name of the DeviceClass (1039b7ee-5121-400b-a477-5b8fc14471ff) + + + + Color temperature changed + The name of the autocreated EventType (cff4206f-f219-4f06-93c4-4ca515a56f79) + + + + colorTemperature + The name of the ParamType of StateType (cff4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass colorBulb + + + + Set color temperature + The name of the autocreated ActionType (cff4206f-f219-4f06-93c4-4ca515a56f79) + + + + Color changed + The name of the autocreated EventType (df5423f1-b924-4b20-80b6-77eecc65d089) + + + + color + The name of the ParamType of StateType (df5423f1-b924-4b20-80b6-77eecc65d089) of DeviceClass colorBulb + + + + Set color + The name of the autocreated ActionType (df5423f1-b924-4b20-80b6-77eecc65d089) + + + + Brightness changed + The name of the autocreated EventType (90e91f11-a208-468c-a5a2-7f47e08229e2) + + + + brightness + The name of the ParamType of StateType (90e91f11-a208-468c-a5a2-7f47e08229e2) of DeviceClass colorBulb + + + + Set brigtness + The name of the autocreated ActionType (90e91f11-a208-468c-a5a2-7f47e08229e2) + + + + Socket + The name of the DeviceClass (1039b7ee-5351-400b-a477-5b8fc14471ff) + + + + Finger Print Sensor + The name of the DeviceClass (45906fb3-9bf5-4331-9b69-0a0407b8511e) + + + + Access granted + The name of the EventType 1d2dde79-7121-4f8c-b7c1-904ced66a79e of deviceClass fingerPrintSensor + + + + Access denied + The name of the EventType 992b7742-af0c-447c-bd94-9ec70b872268 of deviceClass fingerPrintSensor + + + + Smart Meter + The name of the DeviceClass (c242f229-d3f4-4d3d-854c-817b52aa18ab) + + + + Reachable changed + The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) + + + + Power consumption changed + The name of the autocreated EventType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) + + + + powerConsumption + The name of the ParamType of StateType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) of DeviceClass smartMeter + + + + Today's energy production changed + The name of the autocreated EventType (5ac91819-c855-441c-a734-ee5cc0514822) + + + + energyToday + The name of the ParamType of StateType (5ac91819-c855-441c-a734-ee5cc0514822) of DeviceClass smartMeter + + + + Battery + The name of the DeviceClass (280c481e-757a-4af7-b1d3-dc9cfc1d46a5) + + + + Charging amount changed + The name of the autocreated EventType (c977e60a-e820-4647-addb-cf0b39732ffb) + + + + charging + The name of the ParamType of StateType (c977e60a-e820-4647-addb-cf0b39732ffb) of DeviceClass battery + + + + Max charging power changed + The name of the autocreated EventType (bdf328a6-eebc-4b67-8165-551bc21e9be6) + + + + maxCharging + The name of the ParamType of StateType (bdf328a6-eebc-4b67-8165-551bc21e9be6) of DeviceClass battery + + + + Set max charging power + The name of the autocreated ActionType (bdf328a6-eebc-4b67-8165-551bc21e9be6) + + + + Heating Rod + The name of the DeviceClass (b2565887-443a-45ae-a2e7-67fb1b1003d8) + + + + Power + The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) + + + + Max power changed + The name of the autocreated EventType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) + + + + maxPower + The name of the ParamType of StateType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) of DeviceClass heatingRod + + + + Set max power + The name of the autocreated ActionType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) + + + + Target water temperature changed + The name of the autocreated EventType (49388b11-8076-4698-8091-5c5f5762fd08) + + + + waterTemperature + The name of the ParamType of StateType (49388b11-8076-4698-8091-5c5f5762fd08) of DeviceClass heatingRod + + + + Set target water temperature + The name of the autocreated ActionType (49388b11-8076-4698-8091-5c5f5762fd08) + + + diff --git a/simulation/translations/en_US.ts b/simulation/translations/en_US.ts index 6401616d..91c09981 100644 --- a/simulation/translations/en_US.ts +++ b/simulation/translations/en_US.ts @@ -1,4 +1,462 @@ + + Simulation + + Simulation + The name of the plugin Simulation (b7368429-e312-4c82-9eab-e1cd996e43d6) +---------- +The name of the vendor (fd2ae067-2c3d-4332-9c4b-ee0af653bcaf) + + + + Simple Button + The name of the DeviceClass (73bb670b-e7a3-40da-bd6f-3260f017ec80) + + + + Press the button + The name of the ActionType 64c4ced5-9a1a-4858-81dd-1b5c94dba495 of deviceClass simpleButton + + + + Button pressed + The name of the EventType f9652210-9aed-4f38-8c19-2fd54f703fbe of deviceClass simpleButton + + + + Power Button + The name of the DeviceClass (910b2f58-70dc-4da3-89ae-9e7393290ccb) + + + + Power changed + The name of the autocreated EventType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) +---------- +The name of the autocreated EventType (e1910c53-a6bc-434b-9caa-0d08e214c122) +---------- +The name of the autocreated EventType (b786029d-f3a6-4b47-978a-ac1a581aac0f) +---------- +The name of the autocreated EventType (9faaffe5-6a76-47d2-a14a-550f60390245) +---------- +The name of the autocreated EventType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) + + + + power + The name of the ParamType of StateType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) of DeviceClass alternativeButton +---------- +The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heating +---------- +The name of the ParamType of StateType (b786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass evCharger +---------- +The name of the ParamType of StateType (9faaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass colorBulb +---------- +The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass socket +---------- +The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod + + + + Set power + The name of the autocreated ActionType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) +---------- +The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) +---------- +The name of the autocreated ActionType (b786029d-f3a6-4b47-978a-ac1a581aac0f) +---------- +The name of the autocreated ActionType (9faaffe5-6a76-47d2-a14a-550f60390245) +---------- +The name of the autocreated ActionType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) + + + + Temperature sensor + The name of the DeviceClass (77c6ccff-84e8-4983-b69e-5e1a3f4723f2) + + + + Temperature changed + The name of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) + + + + temperature + The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor + + + + Humidity changed + The name of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) + + + + humidity + The name of the ParamType of StateType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor + + + + Battery level changed + The name of the autocreated EventType (45c0de32-b519-47d7-9f82-e5f09d1542d4) +---------- +The name of the autocreated EventType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) +---------- +The name of the autocreated EventType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) + + + + batteryLevel + The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) of DeviceClass motionDetector +---------- +The name of the ParamType of StateType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) of DeviceClass battery + + + + Battery critical changed + The name of the autocreated EventType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) +---------- +The name of the autocreated EventType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) +---------- +The name of the autocreated EventType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) + + + + batteryCritical + The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) of DeviceClass motionDetector +---------- +The name of the ParamType of StateType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) of DeviceClass battery + + + + Connected changed + The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) +---------- +The name of the autocreated EventType (b481b6e7-77c1-40b0-859a-286876b05959) + + + + connected + The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (b481b6e7-77c1-40b0-859a-286876b05959) of DeviceClass motionDetector +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass fingerPrintSensor +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass smartMeter +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass battery +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod + + + + Motion Detector + The name of the DeviceClass (990fc2ba-260a-4648-9a93-e803e219da4f) + + + + Motion detected + The name of the autocreated EventType (5ab00bfc-7345-44a2-90d4-852c810e59ec) + + + + active + The name of the ParamType of StateType (5ab00bfc-7345-44a2-90d4-852c810e59ec) of DeviceClass motionDetector + + + + Heating + The name of the DeviceClass (62e302f4-b92a-4b55-bd18-a1e0cc56362a) + + + + Active status changed + The name of the autocreated EventType (47a16375-1027-42cc-82d3-56cbfdb1193c) + + + + heatingActive + The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heating +---------- +The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heatingRod + + + + target temperature changed + The name of the autocreated EventType (8256a670-85c5-4043-9133-05518812848c) + + + + targetTemperature + The name of the ParamType of StateType (8256a670-85c5-4043-9133-05518812848c) of DeviceClass heating + + + + change target temperature + The name of the autocreated ActionType (8256a670-85c5-4043-9133-05518812848c) + + + + EV Charging Station + The name of the DeviceClass (1fa40afa-6a07-4a97-918b-76e3944ea0fb) + + + + Current changed + The name of the autocreated EventType (87600986-da37-4032-af37-015995910368) + + + + current + The name of the ParamType of StateType (87600986-da37-4032-af37-015995910368) of DeviceClass evCharger + + + + Set current + The name of the autocreated ActionType (87600986-da37-4032-af37-015995910368) + + + + charging status changed + The name of the autocreated EventType (9d3f56e1-bb73-4efd-814c-50477c609c17) + + + + evCharging + The name of the ParamType of StateType (9d3f56e1-bb73-4efd-814c-50477c609c17) of DeviceClass evCharger + + + + Garage Door + The name of the DeviceClass (cfb44bcf-b4b9-4bef-89f7-3a55baf35668) + + + + Garage door status changed + The name of the autocreated EventType (f786029d-f3a6-4b47-978a-ac1a581aac0f) + + + + door + The name of the ParamType of StateType (f786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass garageDoor + + + + Open + The name of the ActionType 1786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor +---------- +The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter + + + + Stop + The name of the ActionType 2786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor + + + + Close + The name of the ActionType 3786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor + + + + Roller Shutter + The name of the DeviceClass (1039b7ee-5351-400b-a477-5b8fc1447138) + + + + Shutter status changed + The name of the autocreated EventType (1386029d-f3a6-4b47-978a-ac1a581aac0f) + + + + shutterStatus + The name of the ParamType of StateType (1386029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass rollerShutter + + + + stop + The name of the ActionType 27860292-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter + + + + close + The name of the ActionType 37860293-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter + + + + Color Bulb + The name of the DeviceClass (1039b7ee-5121-400b-a477-5b8fc14471ff) + + + + Color temperature changed + The name of the autocreated EventType (cff4206f-f219-4f06-93c4-4ca515a56f79) + + + + colorTemperature + The name of the ParamType of StateType (cff4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass colorBulb + + + + Set color temperature + The name of the autocreated ActionType (cff4206f-f219-4f06-93c4-4ca515a56f79) + + + + Color changed + The name of the autocreated EventType (df5423f1-b924-4b20-80b6-77eecc65d089) + + + + color + The name of the ParamType of StateType (df5423f1-b924-4b20-80b6-77eecc65d089) of DeviceClass colorBulb + + + + Set color + The name of the autocreated ActionType (df5423f1-b924-4b20-80b6-77eecc65d089) + + + + Brightness changed + The name of the autocreated EventType (90e91f11-a208-468c-a5a2-7f47e08229e2) + + + + brightness + The name of the ParamType of StateType (90e91f11-a208-468c-a5a2-7f47e08229e2) of DeviceClass colorBulb + + + + Set brigtness + The name of the autocreated ActionType (90e91f11-a208-468c-a5a2-7f47e08229e2) + + + + Socket + The name of the DeviceClass (1039b7ee-5351-400b-a477-5b8fc14471ff) + + + + Finger Print Sensor + The name of the DeviceClass (45906fb3-9bf5-4331-9b69-0a0407b8511e) + + + + Access granted + The name of the EventType 1d2dde79-7121-4f8c-b7c1-904ced66a79e of deviceClass fingerPrintSensor + + + + Access denied + The name of the EventType 992b7742-af0c-447c-bd94-9ec70b872268 of deviceClass fingerPrintSensor + + + + Smart Meter + The name of the DeviceClass (c242f229-d3f4-4d3d-854c-817b52aa18ab) + + + + Reachable changed + The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) + + + + Power consumption changed + The name of the autocreated EventType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) + + + + powerConsumption + The name of the ParamType of StateType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) of DeviceClass smartMeter + + + + Today's energy production changed + The name of the autocreated EventType (5ac91819-c855-441c-a734-ee5cc0514822) + + + + energyToday + The name of the ParamType of StateType (5ac91819-c855-441c-a734-ee5cc0514822) of DeviceClass smartMeter + + + + Battery + The name of the DeviceClass (280c481e-757a-4af7-b1d3-dc9cfc1d46a5) + + + + Charging amount changed + The name of the autocreated EventType (c977e60a-e820-4647-addb-cf0b39732ffb) + + + + charging + The name of the ParamType of StateType (c977e60a-e820-4647-addb-cf0b39732ffb) of DeviceClass battery + + + + Max charging power changed + The name of the autocreated EventType (bdf328a6-eebc-4b67-8165-551bc21e9be6) + + + + maxCharging + The name of the ParamType of StateType (bdf328a6-eebc-4b67-8165-551bc21e9be6) of DeviceClass battery + + + + Set max charging power + The name of the autocreated ActionType (bdf328a6-eebc-4b67-8165-551bc21e9be6) + + + + Heating Rod + The name of the DeviceClass (b2565887-443a-45ae-a2e7-67fb1b1003d8) + + + + Power + The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) + + + + Max power changed + The name of the autocreated EventType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) + + + + maxPower + The name of the ParamType of StateType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) of DeviceClass heatingRod + + + + Set max power + The name of the autocreated ActionType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) + + + + Target water temperature changed + The name of the autocreated EventType (49388b11-8076-4698-8091-5c5f5762fd08) + + + + waterTemperature + The name of the ParamType of StateType (49388b11-8076-4698-8091-5c5f5762fd08) of DeviceClass heatingRod + + + + Set target water temperature + The name of the autocreated ActionType (49388b11-8076-4698-8091-5c5f5762fd08) + + + diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de_DE.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de_DE.ts index 484bc541..d65febb6 100644 --- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de_DE.ts +++ b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de_DE.ts @@ -4,193 +4,199 @@ Snapd - + Snapd The name of the plugin Snapd (b82bce59-59bf-48b3-b781-54a6f45800f3) Snapd - + Advanced mode The name of the paramType (017fe4c5-fc41-41fe-8e67-08fdaccb89ea) of Snapd Fortgeschrittener Modus - + + Automatic daily refresh schedule + The name of the paramType (d2e697d1-9a68-4666-bf40-8d70fa694eec) of Snapd + + + + Canonical The name of the vendor (60582ddf-32ea-4fcd-a6f2-f3beaaf21517) Canonical - + snapdAvailable The name of the ParamType of StateType (6b662b3e-fd12-4f24-be77-aec066f16d8c) of DeviceClass snapdControl - + System update available changed The name of the autocreated EventType (a6b1d24b-d523-4516-9bce-5b467e5e09b2) Systemupdate Verfügbarkeit geändert - + updateAvailable The name of the ParamType of StateType (a6b1d24b-d523-4516-9bce-5b467e5e09b2) of DeviceClass snapdControl - + updateRunning The name of the ParamType of StateType (01ca7a22-5607-4c5e-a465-a2ae7e8b529c) of DeviceClass snapdControl - + lastUpdateTime The name of the ParamType of StateType (c671545a-6bde-4c08-8e37-0d256841a3a5) of DeviceClass snapdControl - + nextUpdateTime The name of the ParamType of StateType (122c2423-a1d9-400f-80f8-b1f798975914) of DeviceClass snapdControl - + status The name of the ParamType of StateType (4987aca3-3916-4cb3-938f-df6c99d04dbf) of DeviceClass snapdControl - + channel The name of the ParamType of StateType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) of DeviceClass snap - + version The name of the ParamType of StateType (532a95f3-db29-427e-bb32-d5a22029e586) of DeviceClass snap - + revision The name of the ParamType of StateType (f26a6404-e011-11e7-9224-2350048461eb) of DeviceClass snap - + Last automatic system update time changed The name of the autocreated EventType (c671545a-6bde-4c08-8e37-0d256841a3a5) Letztes automatisches Systemupdate geändert - + Next automatic system update time changed The name of the autocreated EventType (122c2423-a1d9-400f-80f8-b1f798975914) Nächstes automatisches Systemupdate geändert - + ID The name of the paramType (9afb98fb-f717-4f4c-8009-1a6514054c5f) of snap ID - + Summary The name of the paramType (12b9a65f-970b-49b5-b1d0-1625fc6d8758) of snap Zusammenfassung - + Description The name of the paramType (fe24c61b-e154-4259-b7ca-6f0602e9d1c3) of snap Beschreibung - + Developer The name of the paramType (76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5) of snap Entwickler - + Set channel The name of the autocreated ActionType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) Setze Kanal - + Version changed The name of the autocreated EventType (532a95f3-db29-427e-bb32-d5a22029e586) Version geändert - + Revision changed The name of the autocreated EventType (f26a6404-e011-11e7-9224-2350048461eb) Revision geändert - + Rollback to previous version The name of the ActionType e061dee6-62fc-45cc-9c9f-403c2be52939 of deviceClass snap Zurücksetzen auf vorhergehende Version - + Start update The name of the ActionType 45626b75-f09d-4dd1-b6c4-ee33201b47b0 of deviceClass snapdControl Starte Systemupdate - + Update manager The name of the DeviceClass (d90cda58-4d8c-4b7f-a982-38e56a95b72a) Update Manager - + Update manager available changed The name of the autocreated EventType (6b662b3e-fd12-4f24-be77-aec066f16d8c) Update Manager Verfügbarkeit geändert - + Snap The name of the DeviceClass (ff0840d7-fcfc-4403-9d9f-301610d5a437) Snap - + System update running changed The name of the autocreated EventType (01ca7a22-5607-4c5e-a465-a2ae7e8b529c) Systemupdate aktiv geändert - + Status changed The name of the autocreated EventType (4987aca3-3916-4cb3-938f-df6c99d04dbf) Status geändert - + Name The name of the paramType (4f38614d-8be0-48dc-a24d-cee9ff1f2a89) of snap Name - + Channel changed The name of the autocreated EventType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) Kanal geändert - + Check for updates The name of the ActionType 4738f2c9-666e-45b9-91d3-7bcbf722b669 of deviceClass snapdControl Nach Aktualisierungen suchen diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts index ec22ad61..28c8dbec 100644 --- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts +++ b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts @@ -4,193 +4,199 @@ Snapd - + Snapd The name of the plugin Snapd (b82bce59-59bf-48b3-b781-54a6f45800f3) - + Advanced mode The name of the paramType (017fe4c5-fc41-41fe-8e67-08fdaccb89ea) of Snapd - + + Automatic daily refresh schedule + The name of the paramType (d2e697d1-9a68-4666-bf40-8d70fa694eec) of Snapd + + + + Canonical The name of the vendor (60582ddf-32ea-4fcd-a6f2-f3beaaf21517) - + snapdAvailable The name of the ParamType of StateType (6b662b3e-fd12-4f24-be77-aec066f16d8c) of DeviceClass snapdControl - + System update available changed The name of the autocreated EventType (a6b1d24b-d523-4516-9bce-5b467e5e09b2) - + updateAvailable The name of the ParamType of StateType (a6b1d24b-d523-4516-9bce-5b467e5e09b2) of DeviceClass snapdControl - + updateRunning The name of the ParamType of StateType (01ca7a22-5607-4c5e-a465-a2ae7e8b529c) of DeviceClass snapdControl - + lastUpdateTime The name of the ParamType of StateType (c671545a-6bde-4c08-8e37-0d256841a3a5) of DeviceClass snapdControl - + nextUpdateTime The name of the ParamType of StateType (122c2423-a1d9-400f-80f8-b1f798975914) of DeviceClass snapdControl - + status The name of the ParamType of StateType (4987aca3-3916-4cb3-938f-df6c99d04dbf) of DeviceClass snapdControl - + channel The name of the ParamType of StateType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) of DeviceClass snap - + version The name of the ParamType of StateType (532a95f3-db29-427e-bb32-d5a22029e586) of DeviceClass snap - + revision The name of the ParamType of StateType (f26a6404-e011-11e7-9224-2350048461eb) of DeviceClass snap - + Last automatic system update time changed The name of the autocreated EventType (c671545a-6bde-4c08-8e37-0d256841a3a5) - + Next automatic system update time changed The name of the autocreated EventType (122c2423-a1d9-400f-80f8-b1f798975914) - + ID The name of the paramType (9afb98fb-f717-4f4c-8009-1a6514054c5f) of snap - + Summary The name of the paramType (12b9a65f-970b-49b5-b1d0-1625fc6d8758) of snap - + Description The name of the paramType (fe24c61b-e154-4259-b7ca-6f0602e9d1c3) of snap - + Developer The name of the paramType (76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5) of snap - + Set channel The name of the autocreated ActionType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) - + Version changed The name of the autocreated EventType (532a95f3-db29-427e-bb32-d5a22029e586) - + Revision changed The name of the autocreated EventType (f26a6404-e011-11e7-9224-2350048461eb) - + Rollback to previous version The name of the ActionType e061dee6-62fc-45cc-9c9f-403c2be52939 of deviceClass snap - + Start update The name of the ActionType 45626b75-f09d-4dd1-b6c4-ee33201b47b0 of deviceClass snapdControl - + Update manager The name of the DeviceClass (d90cda58-4d8c-4b7f-a982-38e56a95b72a) - + Update manager available changed The name of the autocreated EventType (6b662b3e-fd12-4f24-be77-aec066f16d8c) - + Snap The name of the DeviceClass (ff0840d7-fcfc-4403-9d9f-301610d5a437) - + System update running changed The name of the autocreated EventType (01ca7a22-5607-4c5e-a465-a2ae7e8b529c) - + Status changed The name of the autocreated EventType (4987aca3-3916-4cb3-938f-df6c99d04dbf) - + Name The name of the paramType (4f38614d-8be0-48dc-a24d-cee9ff1f2a89) of snap - + Channel changed The name of the autocreated EventType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) - + Check for updates The name of the ActionType 4738f2c9-666e-45b9-91d3-7bcbf722b669 of deviceClass snapdControl diff --git a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts index 7421c349..6ba7f7f1 100644 --- a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts +++ b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts @@ -9,18 +9,18 @@ The name of the DeviceClass (6ecd5a8d-595a-4520-85e3-dcc9679edf66) - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - UdpCommander The name of the plugin UdpCommander (24a8474c-1d86-499e-a76e-9cbfbf48dd72) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + port diff --git a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts index 2e81ef0c..ff171155 100644 --- a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts +++ b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts @@ -9,18 +9,18 @@ The name of the DeviceClass (6ecd5a8d-595a-4520-85e3-dcc9679edf66) - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - UdpCommander The name of the plugin UdpCommander (24a8474c-1d86-499e-a76e-9cbfbf48dd72) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + port diff --git a/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-de_DE.ts b/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-de_DE.ts index 2e4b8bbb..5735cb7e 100644 --- a/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-de_DE.ts +++ b/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-de_DE.ts @@ -11,9 +11,9 @@ - guh + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - guh + diff --git a/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-en_US.ts b/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-en_US.ts index ba37ed7f..a2a3d79e 100644 --- a/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-en_US.ts +++ b/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-en_US.ts @@ -11,7 +11,7 @@ - guh + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) diff --git a/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-de_DE.ts b/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-de_DE.ts index 3d634be7..ac26c28b 100644 --- a/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-de_DE.ts +++ b/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-de_DE.ts @@ -21,12 +21,6 @@ The name of the plugin Ws2812 (60b68c75-3261-4bf1-8912-798d2d3bbd3b) - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - host @@ -87,6 +81,12 @@ The name of the autocreated EventType (08091cde-983d-42f7-bdd7-d89c312ccbed) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + reachable diff --git a/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-en_US.ts b/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-en_US.ts index de7deed4..66a2709b 100644 --- a/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-en_US.ts +++ b/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-en_US.ts @@ -21,12 +21,6 @@ The name of the plugin Ws2812 (60b68c75-3261-4bf1-8912-798d2d3bbd3b) - - - guh - The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - host @@ -87,6 +81,12 @@ The name of the autocreated EventType (08091cde-983d-42f7-bdd7-d89c312ccbed) + + + guh GmbH + The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + reachable From 1b0a5701aaf06d94825725502113edff0b39dc49 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 12 Mar 2018 21:31:12 +0100 Subject: [PATCH 06/62] fix battery interface implementation in philips hue --- philipshue/devicepluginphilipshue.cpp | 3 ++- philipshue/devicepluginphilipshue.json | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/philipshue/devicepluginphilipshue.cpp b/philipshue/devicepluginphilipshue.cpp index 70d4ae54..cc9e3c22 100644 --- a/philipshue/devicepluginphilipshue.cpp +++ b/philipshue/devicepluginphilipshue.cpp @@ -550,7 +550,8 @@ void DevicePluginPhilipsHue::remoteStateChanged() } device->setStateValue(hueRemoteConnectedStateTypeId, remote->reachable()); - device->setStateValue(hueRemoteBatteryStateTypeId, remote->battery()); + device->setStateValue(hueRemoteBatteryLevelStateTypeId, remote->battery()); + device->setStateValue(hueRemoteBatteryCriticalStateTypeId, remote->battery() < 5); } void DevicePluginPhilipsHue::onRemoteButtonEvent(const int &buttonCode) diff --git a/philipshue/devicepluginphilipshue.json b/philipshue/devicepluginphilipshue.json index 69d5165e..ec0f34ee 100644 --- a/philipshue/devicepluginphilipshue.json +++ b/philipshue/devicepluginphilipshue.json @@ -527,15 +527,22 @@ }, { "id": "683e493a-9796-4d5e-b0e3-61cb178d5819", - "name": "battery", + "name": "batteryLevel", "displayName": "battery", "displayNameEvent": "battery changed", - "displayNameAction": "Set battery", "type": "int", "unit": "Percentage", "defaultValue": 0, "minValue": 0, "maxValue": 100 + }, + { + "id": "f8516899-6312-4110-bb97-70ffa81dc530", + "name": "batteryCritical", + "displayName": "battery critical", + "displayNameEvent": "battery critical changed", + "type": "bool", + "defaultValue": false } ], "eventTypes": [ From 1a54b60f4596487fe6c16ce63c6861002ac5943b Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 12 Mar 2018 23:55:56 +0100 Subject: [PATCH 07/62] add support for the Hue Tap button --- philipshue/devicepluginphilipshue.cpp | 98 +++++++++++++++++++++----- philipshue/devicepluginphilipshue.json | 98 +++++++++++++++++++++++++- philipshue/hueremote.cpp | 8 ++- philipshue/hueremote.h | 6 +- 4 files changed, 188 insertions(+), 22 deletions(-) diff --git a/philipshue/devicepluginphilipshue.cpp b/philipshue/devicepluginphilipshue.cpp index cc9e3c22..da71589a 100644 --- a/philipshue/devicepluginphilipshue.cpp +++ b/philipshue/devicepluginphilipshue.cpp @@ -2,6 +2,7 @@ * * * Copyright (C) 2014 Michael Zanetti * * Copyright (C) 2015 Simon Stürz * + * Copyright (C) 2018 Michael Zanetti * * * * This file is part of nymea. * * * @@ -114,8 +115,9 @@ DeviceManager::DeviceSetupStatus DevicePluginPhilipsHue::setupDevice(Device *dev bridge->setName(device->paramValue(hueBridgeBridgeNameParamTypeId).toString()); bridge->setMacAddress(device->paramValue(hueBridgeBridgeMacParamTypeId).toString()); bridge->setZigbeeChannel(device->paramValue(hueBridgeBridgeZigbeeChannelParamTypeId).toInt()); - m_bridges.insert(bridge, device); + + discoverBridgeDevices(bridge); return DeviceManager::DeviceSetupStatusSuccess; } @@ -173,7 +175,7 @@ DeviceManager::DeviceSetupStatus DevicePluginPhilipsHue::setupDevice(Device *dev // hue remote if (device->deviceClassId() == hueRemoteDeviceClassId) { - qCDebug(dcPhilipsHue) << "Setup Hue remote" << device->params(); + qCDebug(dcPhilipsHue) << "Setup Hue remote" << device->params() << device->deviceClassId(); HueRemote *hueRemote = new HueRemote(this); hueRemote->setId(device->paramValue(hueRemoteSensorIdParamTypeId).toInt()); @@ -195,6 +197,24 @@ DeviceManager::DeviceSetupStatus DevicePluginPhilipsHue::setupDevice(Device *dev return DeviceManager::DeviceSetupStatusSuccess; } + // hue tap + if (device->deviceClassId() == hueTapDeviceClassId) { + HueRemote *hueTap = new HueRemote(this); + hueTap->setName(device->name()); + hueTap->setId(device->paramValue(hueTapSensorIdParamTypeId).toInt()); + hueTap->setBridgeId(DeviceId(device->paramValue(hueTapBridgeParamTypeId).toString())); + hueTap->setModelId(device->paramValue(hueTapModelIdParamTypeId).toString()); + device->setParentId(hueTap->bridgeId()); + + connect(hueTap, &HueRemote::stateChanged, this, &DevicePluginPhilipsHue::remoteStateChanged); + connect(hueTap, &HueRemote::buttonPressed, this, &DevicePluginPhilipsHue::onRemoteButtonEvent); + + m_remotes.insert(hueTap, device); + return DeviceManager::DeviceSetupStatusSuccess; + } + + qCWarning(dcPhilipsHue()) << "Unhandled setupDevice call" << device->deviceClassId(); + return DeviceManager::DeviceSetupStatusFailure; } @@ -212,7 +232,7 @@ void DevicePluginPhilipsHue::deviceRemoved(Device *device) light->deleteLater(); } - if (device->deviceClassId() == hueRemoteDeviceClassId) { + if (device->deviceClassId() == hueRemoteDeviceClassId || device->deviceClassId() == hueTapDeviceClassId) { HueRemote *remote = m_remotes.key(device); m_remotes.remove(remote); remote->deleteLater(); @@ -366,7 +386,7 @@ void DevicePluginPhilipsHue::networkManagerReplyReady() // check HTTP status code if (status != 200 || reply->error() != QNetworkReply::NoError) { - if (device->stateValue(hueRemoteConnectedStateTypeId).toBool()) { + if (device->stateValue(hueRemoteConnectedStateTypeId).toBool() || device->stateValue(hueTapConnectedStateTypeId).toBool()) { qCWarning(dcPhilipsHue) << "Refresh Hue sensors request error:" << status << reply->errorString(); bridgeReachableChanged(device, false); } @@ -399,6 +419,8 @@ void DevicePluginPhilipsHue::networkManagerReplyReady() return; } processSetNameResponse(device, reply->readAll()); + } else { + qCWarning(dcPhilipsHue()) << "Unhandled bridge reply" << reply->readAll(); } reply->deleteLater(); } @@ -548,18 +570,27 @@ void DevicePluginPhilipsHue::remoteStateChanged() qCWarning(dcPhilipsHue) << "Could not find device for remote" << remote->name(); return; } - - device->setStateValue(hueRemoteConnectedStateTypeId, remote->reachable()); - device->setStateValue(hueRemoteBatteryLevelStateTypeId, remote->battery()); - device->setStateValue(hueRemoteBatteryCriticalStateTypeId, remote->battery() < 5); + if (device->deviceClassId() == hueTapDeviceClassId) { + device->setStateValue(hueTapConnectedStateTypeId, remote->reachable()); + } else { + device->setStateValue(hueRemoteConnectedStateTypeId, remote->reachable()); + device->setStateValue(hueRemoteBatteryLevelStateTypeId, remote->battery()); + device->setStateValue(hueRemoteBatteryCriticalStateTypeId, remote->battery() < 5); + } } void DevicePluginPhilipsHue::onRemoteButtonEvent(const int &buttonCode) { HueRemote *remote = static_cast(sender()); + Device *device = m_remotes.value(remote); - Param param(hueRemoteButtonNameParamTypeId); EventTypeId id; + Param param; + if (device->deviceClassId() == hueRemoteDeviceClassId) { + param = Param(hueRemoteButtonNameParamTypeId); + } else if (device->deviceClassId() == hueTapDeviceClassId) { + param = Param(hueTapButtonNameParamTypeId); + } // TODO: Legacy events should be removed eventually switch (buttonCode) { @@ -603,6 +634,22 @@ void DevicePluginPhilipsHue::onRemoteButtonEvent(const int &buttonCode) param.setValue("OFF"); id = hueRemoteLongPressedEventTypeId; break; + case HueRemote::TapButton1Pressed: + param.setValue("•"); + id = hueTapPressedEventTypeId; + break; + case HueRemote::TapButton2Pressed: + param.setValue("••"); + id = hueTapPressedEventTypeId; + break; + case HueRemote::TapButton3Pressed: + param.setValue("•••"); + id = hueTapPressedEventTypeId; + break; + case HueRemote::TapButton4Pressed: + param.setValue("•••••"); + id = hueTapPressedEventTypeId; + break; default: break; } @@ -879,7 +926,6 @@ void DevicePluginPhilipsHue::processBridgeSensorDiscoveryResponse(Device *device } // create sensors if not already added - QList sensorDescriptors; QVariantMap sensorsMap = jsonDoc.toVariant().toMap(); foreach (QString sensorId, sensorsMap.keys()) { QVariantMap sensorMap = sensorsMap.value(sensorId).toMap(); @@ -890,7 +936,6 @@ void DevicePluginPhilipsHue::processBridgeSensorDiscoveryResponse(Device *device if (sensorAlreadyAdded(uuid)) continue; - // check if this is a white light if (model == "RWL021" || model == "RWL020") { DeviceDescriptor descriptor(hueRemoteDeviceClassId, "Philips Hue Remote", sensorMap.value("name").toString()); ParamList params; @@ -903,14 +948,22 @@ void DevicePluginPhilipsHue::processBridgeSensorDiscoveryResponse(Device *device params.append(Param(hueRemoteUuidParamTypeId, uuid)); params.append(Param(hueRemoteSensorIdParamTypeId, sensorId)); descriptor.setParams(params); - sensorDescriptors.append(descriptor); + emit autoDevicesAppeared(hueRemoteDeviceClassId, {descriptor}); qCDebug(dcPhilipsHue) << "Found new remote" << sensorMap.value("name").toString() << model; + } else if (model == "ZGPSWITCH") { + DeviceDescriptor descriptor(hueTapDeviceClassId, "Hue Tap", sensorMap.value("name").toString()); + ParamList params; + params.append(Param(hueTapBridgeParamTypeId, device->id().toString())); + params.append(Param(hueTapUuidParamTypeId, uuid)); + params.append(Param(hueTapModelIdParamTypeId, model)); + params.append(Param(hueTapSensorIdParamTypeId, sensorId)); + descriptor.setParams(params); + emit autoDevicesAppeared(hueTapDeviceClassId, {descriptor}); + qCDebug(dcPhilipsHue()) << "Found hue tap:" << sensorMap << hueTapDeviceClassId; + } else { + qCDebug(dcPhilipsHue()) << "Found unknown sensor:" << model; } } - - if (!sensorDescriptors.isEmpty()) - emit autoDevicesAppeared(hueRemoteDeviceClassId, sensorDescriptors); - } void DevicePluginPhilipsHue::processLightRefreshResponse(Device *device, const QByteArray &data) @@ -1045,7 +1098,7 @@ void DevicePluginPhilipsHue::processSensorsRefreshResponse(Device *device, const QVariantMap sensorMap = sensorsMap.value(sensorId).toMap(); foreach (HueRemote *remote, m_remotes.keys()) { if (remote->id() == sensorId.toInt() && remote->bridgeId() == device->id()) { - //qCDebug(dcPhilipsHue) << "update remote" << remote->id() << remote->name(); + qCDebug(dcPhilipsHue) << "update remote" << remote->id() << remote->name(); remote->updateStates(sensorMap.value("state").toMap(), sensorMap.value("config").toMap()); } } @@ -1225,7 +1278,11 @@ void DevicePluginPhilipsHue::bridgeReachableChanged(Device *device, const bool & foreach (HueRemote *remote, m_remotes.keys()) { if (remote->bridgeId() == device->id()) { remote->setReachable(false); - m_remotes.value(remote)->setStateValue(hueRemoteConnectedStateTypeId, false); + if (m_remotes.value(remote)->deviceClassId() == hueRemoteDeviceClassId) { + m_remotes.value(remote)->setStateValue(hueRemoteConnectedStateTypeId, false); + } else if (m_remotes.value(remote)->deviceClassId() == hueTapDeviceClassId) { + m_remotes.value(remote)->setStateValue(hueTapConnectedStateTypeId, false); + } } } } @@ -1269,6 +1326,11 @@ bool DevicePluginPhilipsHue::sensorAlreadyAdded(const QString &uuid) return true; } } + if (device->deviceClassId() == hueTapDeviceClassId) { + if (device->paramValue(hueTapUuidParamTypeId).toString() == uuid) { + return true; + } + } } return false; } diff --git a/philipshue/devicepluginphilipshue.json b/philipshue/devicepluginphilipshue.json index ec0f34ee..81b3bbfd 100644 --- a/philipshue/devicepluginphilipshue.json +++ b/philipshue/devicepluginphilipshue.json @@ -596,7 +596,7 @@ "name": "buttonName", "displayName": "Button name", "type": "QString", - "possibleValues": ["ON", "OFF", "DIM UP", "DIM DOWN"] + "allowedValues": ["ON", "OFF", "DIM UP", "DIM DOWN"] } ] }, @@ -610,7 +610,101 @@ "name": "buttonName", "displayName": "Button name", "type": "QString", - "possibleValues": ["ON", "OFF", "DIM UP", "DIM DOWN"] + "allowedValues": ["ON", "OFF", "DIM UP", "DIM DOWN"] + } + ] + } + ] + }, + { + "id": "2b8c1fb8-67ee-42e9-947b-16e0a09f0d4e", + "name": "hueTap", + "displayName": "Hue Tap", + "deviceIcon": "Switch", + "interfaces": ["simplemultibutton", "connectable"], + "createMethods": ["auto"], + "paramTypes": [ + { + "id": "3d450f00-b521-4a2c-985f-046fad5122cb", + "name": "name", + "displayName": "name", + "type" : "QString", + "inputType": "TextLine" + }, + { + "id": "c9e7483b-2f4e-4280-a437-8471f4dc9b22", + "name": "bridge", + "displayName": "bridge", + "type" : "QString", + "readOnly": true + }, + { + "id": "62d92175-db3a-4da2-a72b-f58f34cb6911", + "name": "modelId", + "displayName": "model id", + "type" : "QString", + "readOnly": true + }, + { + "id": "eace85b9-5369-466f-89eb-46c4de718305", + "name": "type", + "displayName": "type", + "type" : "QString", + "readOnly": true + }, + { + "id": "25cf4167-6c28-4497-9fa9-3d02faf4f3ed", + "name": "uuid", + "displayName": "uuid", + "type" : "QString", + "readOnly": true + }, + { + "id": "fb507641-9c78-4a28-937d-711775454e90", + "name": "apiKey", + "displayName": "api key", + "type" : "QString", + "inputType": "TextLine", + "readOnly": true + }, + { + "id": "6be56a1b-f64a-4188-a052-1fab11e01718", + "name": "host", + "displayName": "host address", + "type" : "QString", + "inputType": "IPv4Address", + "readOnly": true + }, + { + "id": "5eca2b24-8986-4487-bc12-50e91d023d97", + "name": "sensorId", + "displayName": "sensor id", + "type" : "int", + "readOnly": true + } + ], + "stateTypes": [ + { + "id": "5e21b032-1230-4e93-8543-0c4773da17d3", + "name": "connected", + "displayName": "reachable", + "displayNameEvent": "reachable changed", + "defaultValue": false, + "type": "bool" + } + ], + "eventTypes": [ + { + "id": "c45dd703-7cbd-48f7-88dc-31045cc3d39c", + "name": "pressed", + "displayName": "Button pressed", + "paramTypes": [ + { + "id": "8ed643c0-1b8a-4709-8abf-717cf213f4a4", + "name": "buttonName", + "displayName": "Button name", + "type": "QString", + "allowedValues": ["•", "••", "•••", "••••"] } ] } diff --git a/philipshue/hueremote.cpp b/philipshue/hueremote.cpp index 898cc290..4ff69d69 100644 --- a/philipshue/hueremote.cpp +++ b/philipshue/hueremote.cpp @@ -40,7 +40,13 @@ void HueRemote::setBattery(const int &battery) void HueRemote::updateStates(const QVariantMap &statesMap, const QVariantMap &configMap) { - setReachable(configMap.value("reachable", false).toBool()); + if (configMap.contains("reachable")) { + setReachable(configMap.value("reachable", false).toBool()); + } else { + // Hue Tap doesn't have a reachable property as it's a ultra low power device. Let's mark it reachable by default as we only + // get this response if the bridge is reachable. + setReachable(true); + } setBattery(configMap.value("battery", 0).toInt()); emit stateChanged(); diff --git a/philipshue/hueremote.h b/philipshue/hueremote.h index b1453c72..0ffb6ade 100644 --- a/philipshue/hueremote.h +++ b/philipshue/hueremote.h @@ -44,7 +44,11 @@ public: DimDownLongPressed = 3001, DimDownPressed = 3002, OffLongPressed = 4001, - OffPressed = 4002 + OffPressed = 4002, + TapButton1Pressed = 34, + TapButton2Pressed = 16, + TapButton3Pressed = 17, + TapButton4Pressed = 18 }; explicit HueRemote(QObject *parent = 0); From cc4cf9ddd6d3d65081c00a89d9f04998b98e769f Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Tue, 13 Mar 2018 12:42:49 +0100 Subject: [PATCH 08/62] don't try to ping on ipv6 link local address, that won't work --- networkdetector/devicemonitor.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/networkdetector/devicemonitor.cpp b/networkdetector/devicemonitor.cpp index 3680b7fc..648abd28 100644 --- a/networkdetector/devicemonitor.cpp +++ b/networkdetector/devicemonitor.cpp @@ -14,6 +14,7 @@ DeviceMonitor::DeviceMonitor(const QString &macAddress, const QString &ipAddress connect(m_arpLookupProcess, SIGNAL(finished(int)), this, SLOT(arpLookupFinished(int))); m_pingProcess = new QProcess(this); + m_pingProcess->setReadChannelMode(QProcess::MergedChannels); connect(m_pingProcess, SIGNAL(finished(int)), this, SLOT(pingFinished(int))); } @@ -29,11 +30,12 @@ void DeviceMonitor::update() void DeviceMonitor::lookupArpCache() { - m_arpLookupProcess->start("ip", {"-s", "neighbor", "list"}); + m_arpLookupProcess->start("ip", {"-4", "-s", "neighbor", "list"}); } void DeviceMonitor::ping() { +// qCDebug(dcNetworkDetector()) << "Running:" << "ping" << "-c" << "1" << m_host->address(); m_pingProcess->start("ping", {"-c", "1", m_host->address()}); } @@ -66,14 +68,14 @@ void DeviceMonitor::arpLookupFinished(int exitCode) } } else { // ARP claims the device to be stale... try to ping it. - qCDebug(dcNetworkDetector()) << "Device" << m_host->macAddress() << "found in ARP cache but is marked as" << parts.last() << ". Trying to ping it..."; + qCDebug(dcNetworkDetector()) << "Device" << m_host->macAddress() << "found in ARP cache but is marked as" << parts.last() << ". Trying to ping it on" << m_host->address(); ping(); } break; } } if (!found) { - qCDebug(dcNetworkDetector()) << "Device" << m_host->macAddress() << "not found in ARP cache. Trying to ping it..."; + qCDebug(dcNetworkDetector()) << "Device" << m_host->macAddress() << "not found in ARP cache. Trying to ping it on" << m_host->address(); ping(); } From 0479ecb0bb790157fd01f61a113c92f9c718adbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Thu, 22 Feb 2018 23:24:43 +0100 Subject: [PATCH 09/62] Add first version of new sensor tag --- multisensor/devicepluginmultisensor.cpp | 31 +- multisensor/devicepluginmultisensor.h | 9 +- multisensor/devicepluginmultisensor.json | 155 ++++-- multisensor/sensortag.cpp | 639 ++++++++++++++++++----- multisensor/sensortag.h | 167 ++++-- 5 files changed, 779 insertions(+), 222 deletions(-) diff --git a/multisensor/devicepluginmultisensor.cpp b/multisensor/devicepluginmultisensor.cpp index fb362375..e1e9aadb 100644 --- a/multisensor/devicepluginmultisensor.cpp +++ b/multisensor/devicepluginmultisensor.cpp @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright (C) 2015 Simon Stuerz * + * Copyright (C) 2015-2018 Simon Stuerz * * Copyright (C) 2016 nicc * * * * This file is part of nymea. * @@ -52,10 +52,15 @@ DevicePluginMultiSensor::DevicePluginMultiSensor() } +DevicePluginMultiSensor::~DevicePluginMultiSensor() +{ + hardwareManager()->pluginTimerManager()->unregisterTimer(m_reconnectTimer); +} + void DevicePluginMultiSensor::init() { - m_measureTimer = hardwareManager()->pluginTimerManager()->registerTimer(60); - connect(m_measureTimer, &PluginTimer::timeout, this, &DevicePluginMultiSensor::onPluginTimer); + m_reconnectTimer = hardwareManager()->pluginTimerManager()->registerTimer(10); + connect(m_reconnectTimer, &PluginTimer::timeout, this, &DevicePluginMultiSensor::onPluginTimer); } DeviceManager::DeviceError DevicePluginMultiSensor::discoverDevices(const DeviceClassId &deviceClassId, const ParamList ¶ms) @@ -89,8 +94,6 @@ DeviceManager::DeviceSetupStatus DevicePluginMultiSensor::setupDevice(Device *de BluetoothLowEnergyDevice *bluetoothDevice = hardwareManager()->bluetoothLowEnergyManager()->registerDevice(deviceInfo, QLowEnergyController::PublicAddress); SensorTag *sensor = new SensorTag(device, bluetoothDevice, this); - connect(sensor, &SensorTag::leftKeyPressed, this, &DevicePluginMultiSensor::onSensorLeftButtonPressed); - connect(sensor, &SensorTag::rightKeyPressed, this, &DevicePluginMultiSensor::onSensorRightButtonPressed); m_sensors.insert(device, sensor); sensor->bluetoothDevice()->connectDevice(); @@ -124,23 +127,13 @@ bool DevicePluginMultiSensor::verifyExistingDevices(const QBluetoothDeviceInfo & void DevicePluginMultiSensor::onPluginTimer() { - foreach (SensorTag *sensor, m_sensors) { - sensor->measure(); + foreach (SensorTag *sensor, m_sensors.values()) { + if (!sensor->bluetoothDevice()->connected()) { + sensor->bluetoothDevice()->connectDevice(); + } } } -void DevicePluginMultiSensor::onSensorLeftButtonPressed() -{ - SensorTag *sensor = static_cast(sender()); - emit emitEvent(Event(sensortagLeftKeyEventTypeId, sensor->device()->id())); -} - -void DevicePluginMultiSensor::onSensorRightButtonPressed() -{ - SensorTag *sensor = static_cast(sender()); - emit emitEvent(Event(sensortagRightKeyEventTypeId, sensor->device()->id())); -} - void DevicePluginMultiSensor::onBluetoothDiscoveryFinished() { BluetoothDiscoveryReply *reply = static_cast(sender()); diff --git a/multisensor/devicepluginmultisensor.h b/multisensor/devicepluginmultisensor.h index 0731b207..22206770 100644 --- a/multisensor/devicepluginmultisensor.h +++ b/multisensor/devicepluginmultisensor.h @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright (C) 2015 Simon Stuerz * + * Copyright (C) 2015-2018 Simon Stuerz * * Copyright (C) 2016 nicc * * * * This file is part of nymea. * @@ -41,6 +41,7 @@ class DevicePluginMultiSensor : public DevicePlugin public: explicit DevicePluginMultiSensor(); + ~DevicePluginMultiSensor(); void init() override; DeviceManager::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const ParamList ¶ms) override; @@ -48,17 +49,13 @@ public: void deviceRemoved(Device *device) override; private: - PluginTimer *m_measureTimer = nullptr; + PluginTimer *m_reconnectTimer = nullptr; QHash m_sensors; bool verifyExistingDevices(const QBluetoothDeviceInfo &deviceInfo); private slots: void onPluginTimer(); - - void onSensorLeftButtonPressed(); - void onSensorRightButtonPressed(); - void onBluetoothDiscoveryFinished(); }; diff --git a/multisensor/devicepluginmultisensor.json b/multisensor/devicepluginmultisensor.json index 93711f0f..f71831a8 100644 --- a/multisensor/devicepluginmultisensor.json +++ b/multisensor/devicepluginmultisensor.json @@ -2,6 +2,47 @@ "displayName": "MultiSensor", "name": "MultiSensor", "id": "23bf0d8d-df7d-4bee-80ee-f015c5a7f52e", + "paramTypes": [ + { + "id": "5786c91a-d94d-461a-8d22-f978dd1438ab", + "name": "accelerometerEnabled", + "displayName": "Accelerometer enabled", + "type": "bool", + "defaultValue": true + }, + { + "id": "94517544-cb97-4816-8993-cb4cf2651a1e", + "name": "gyroscopeEnabled", + "displayName": "Gyroscope enabled", + "type": "bool", + "defaultValue": false + }, + { + "id": "96aae111-b1c1-48a1-9b1f-b56efa546d0d", + "name": "magnetometerEnabled", + "displayName": "Magnetometer enabled", + "type": "bool", + "defaultValue": false + }, + { + "id": "5237c89c-c21d-4d78-ac99-8be661b40da7", + "name": "measurementPeriodMovement", + "displayName": "Measurement period movement sensor", + "type": "int", + "minValue": 10, + "maxValue": 2500, + "defaultValue": 2000 + }, + { + "id": "c5308565-5dc9-409e-ae99-577c212c7a92", + "name": "measurementPeriod", + "displayName": "Measurement period for enviromental sensors", + "type": "int", + "minValue": 10, + "maxValue": 2500, + "defaultValue": 500 + } + ], "vendors": [ { "id": "2edf543e-dc2c-4693-bb0c-e76c0d305fad", @@ -9,12 +50,12 @@ "displayName": "Texas Instruments", "deviceClasses": [ { - "displayName": "Sensor Tag", - "name": "sensortag", "id": "158a06b6-b27f-4951-957e-6f1e3b44f604", + "name": "sensortag", + "displayName": "Sensor Tag (CC2650)", "createMethods": ["discovery"], "deviceIcon": "Thermometer", - "criticalStateTypeId": "a9629b11-0f34-47f0-a0f0-f758a6aec2b4", + "interfaces": ["connectable", "humiditysensor", "temperaturesensor"], "basicTags": [ "Device", "Sensor" @@ -23,14 +64,14 @@ { "id": "bdb9d684-2f98-45f5-889c-f184c1e73dc7", "name": "name", - "displayName": "name", + "displayName": "Name", "type": "QString", "inputType": "TextLine" }, { "id": "d51ed68e-c84a-4136-a5b5-be2f95fd5a0f", "name": "mac", - "displayName": "mac address", + "displayName": "MAC address", "type": "QString", "inputType": "MacAddress" } @@ -39,29 +80,12 @@ { "id": "a9629b11-0f34-47f0-a0f0-f758a6aec2b4", "name": "connected", - "displayName": "connected", - "displayNameEvent": "connected changed", + "displayName": "Connected", + "displayNameEvent": "Connected changed", "type": "bool", + "cached": false, "defaultValue": false }, - { - "id": "c664e9ec-a045-49ba-add1-1642ceba7c4f", - "name": "IRtemperature", - "displayName": "IR temperature", - "displayNameEvent": "IR temperature changed", - "type": "double", - "unit": "DegreeCelsius", - "defaultValue": 0 - }, - { - "id": "e83a50ff-96c9-4b6d-889f-f4238353e794", - "name": "humidity", - "displayName": "humidity", - "displayNameEvent": "humidity changed", - "type": "double", - "unit": "Percentage", - "defaultValue": 0 - }, { "id": "8359ada9-df1c-4e60-bb87-9e21d05ee2e2", "name": "temperature", @@ -71,34 +95,79 @@ "unit": "DegreeCelsius", "defaultValue": 0 }, + { + "id": "c664e9ec-a045-49ba-add1-1642ceba7c4f", + "name": "objectTemperature", + "displayName": "Object temperature", + "displayNameEvent": "Object temperature changed", + "type": "double", + "unit": "DegreeCelsius", + "defaultValue": 0 + }, + { + "id": "e83a50ff-96c9-4b6d-889f-f4238353e794", + "name": "humidity", + "displayName": "Humidity", + "displayNameEvent": "Humidity changed", + "type": "double", + "minValue": 0, + "maxValue": 100, + "unit": "Percentage", + "defaultValue": 0 + }, { "id": "645633ad-77d4-45b2-8be8-d6ca7a12eb7a", "name": "pressure", - "displayName": "pressure", - "displayNameEvent": "pressure changed", + "displayName": "Barometric pressure", + "displayNameEvent": "Barometric pressure changed", "type": "double", "unit": "HectoPascal", "defaultValue": 0 }, { - "id": "4be5ca26-0565-419d-b18b-2a5a385d2a3d", - "name": "moving", - "displayName": "moving", - "displayNameEvent": "moving changed", - "type": "bool", - "defaultValue": false - } - ], - "eventTypes": [ - { - "id": "61478490-bed0-4fed-9d58-f13c35b4f220", - "name": "leftKey", - "displayName": "left key pressed" + "id": "6635dce4-2d8d-4608-a836-768c3014f356", + "name": "lightIntensity", + "displayName": "Light intensity", + "displayNameEvent": "Light intensity changed", + "type": "double", + "unit": "Lux", + "defaultValue": 0 }, { - "id": "b7e927db-af28-4fdc-8eb7-edb02258ff5a", - "name": "rightKey", - "displayName": "right key pressed" + "id": "4be5ca26-0565-419d-b18b-2a5a385d2a3d", + "name": "moving", + "displayName": "Moving", + "displayNameEvent": "Moving changed", + "type": "bool", + "cached": false, + "defaultValue": false + }, + { + "id": "758d9b39-7390-40f5-8e19-d8b0f4a0a0c6", + "name": "magnetDetected", + "displayName": "Magnet detected", + "displayNameEvent": "Magnet detected changed", + "type": "bool", + "cached": false, + "defaultValue": false + }, + { + "id": "8995e49e-ca2d-4dd9-a22f-de6c566c2115", + "name": "leftButtonPressed", + "displayName": "Left button pressed", + "displayNameEvent": "Left button pressed changed", + "type": "bool", + "cached": false, + "defaultValue": false + }, + { + "id": "ef8eedc5-6a45-4dfb-bb55-ada1a931b20b", + "name": "rightButtonPressed", + "displayName": "Right button pressed", + "displayNameEvent": "Right button pressed changed", + "type": "bool", + "cached": false, + "defaultValue": false } ] } diff --git a/multisensor/sensortag.cpp b/multisensor/sensortag.cpp index 6d261e7b..8e331e4e 100644 --- a/multisensor/sensortag.cpp +++ b/multisensor/sensortag.cpp @@ -1,6 +1,30 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2015-2018 Simon Stuerz * + * * + * This file is part of guh. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + #include "sensortag.h" #include "extern-plugininfo.h" +#include + SensorTag::SensorTag(Device *device, BluetoothLowEnergyDevice *bluetoothDevice, QObject *parent) : QObject(parent), m_device(device), @@ -20,28 +44,212 @@ BluetoothLowEnergyDevice *SensorTag::bluetoothDevice() return m_bluetoothDevice; } -void SensorTag::updateInfraredValue(const QByteArray &value) +void SensorTag::setAccelerometerEnabled(bool enabled) { - qCDebug(dcMultiSensor()) << "Infrared value" << value; + m_accelerometerEnabled = enabled; } -void SensorTag::updateButtonValue(const QByteArray &value) +void SensorTag::configurePeriod(QLowEnergyService *serice, const QLowEnergyCharacteristic &characteristic, int measurementPeriod) { - const quint8 *data = reinterpret_cast(value.constData()); - if (*data & 1) - emit leftKeyPressed(); - if (*data & 2) - emit rightKeyPressed(); + Q_ASSERT(measurementPeriod % 10 == 0); + QByteArray payload; + QDataStream stream(&payload, QIODevice::WriteOnly); + stream << static_cast(measurementPeriod / 10); + + qCDebug(dcMultiSensor()) << "Configure period to" << measurementPeriod << payload.toHex(); + serice->writeCharacteristic(characteristic, payload); } -void SensorTag::updateHumidityValue(const QByteArray &value) +void SensorTag::configureMovement(bool gyroscopeEnabled, bool accelerometerEnabled, bool magnetometerEnabled, bool wakeOnMotion) { - qCDebug(dcMultiSensor()) << "Humidity value" << value; + if (!m_movementService || !m_movementConfigurationCharacteristic.isValid()) + return; + + quint16 configuration = 0; + if (gyroscopeEnabled) { + configuration |= (1 << 0); // enable x-axis + configuration |= (1 << 1); // enable y-axis + configuration |= (1 << 2); // enable z-axis + } + + if (accelerometerEnabled) { + configuration |= (1 << 3); // enable x-axis + configuration |= (1 << 4); // enable y-axis + configuration |= (1 << 5); // enable z-axis + } + + if (magnetometerEnabled) { + configuration |= (1 << 6); // enable all axis + } + + if (wakeOnMotion) { + configuration |= (1 << 8); // enable + } + + // Accelerometer 2 Bit ( 0 = 2G, 1 = 4G, 2 = 8G, 3 = 16G) + // Default 0 + + QByteArray data; + QDataStream stream(&data, QIODevice::WriteOnly); + stream.setByteOrder(QDataStream::BigEndian); + stream << configuration; + + qCDebug(dcMultiSensor()) << "Configure movement sensor" << data.toHex(); + m_movementService->writeCharacteristic(m_movementConfigurationCharacteristic, data); } -void SensorTag::updatePressureValue(const QByteArray &value) +void SensorTag::processTemperatureData(const QByteArray &data) { - qCDebug(dcMultiSensor()) << "Pressure value" << value; + Q_ASSERT(data.count() == 4); + + quint16 rawObjectTemperature = 0; + quint16 rawAmbientTemperature = 0; + + QByteArray payload(data); + QDataStream stream(&payload, QIODevice::ReadOnly); + stream.setByteOrder(QDataStream::LittleEndian); + stream >> rawObjectTemperature >> rawAmbientTemperature ; + + float scaleFactor = 0.03125; + float objectTemperature = static_cast(rawObjectTemperature) / 4 * scaleFactor; + float ambientTemperature = static_cast(rawAmbientTemperature) / 4 * scaleFactor; + + //qCDebug(dcMultiSensor()) << "Temperature value" << data.toHex(); + //qCDebug(dcMultiSensor()) << "Object temperature" << roundValue(objectTemperature) << "°C"; + //qCDebug(dcMultiSensor()) << "Ambient temperature" << roundValue(ambientTemperature) << "°C"; + + m_device->setStateValue(sensortagObjectTemperatureStateTypeId, roundValue(objectTemperature)); + m_device->setStateValue(sensortagTemperatureStateTypeId, roundValue(ambientTemperature)); +} + +void SensorTag::processKeyData(const QByteArray &data) +{ + Q_ASSERT(data.count() == 1); + quint8 flags = static_cast(data.at(0)); + setLeftButtonPressed(testBitUint8(flags, 0)); + setRightButtonPressed(testBitUint8(flags, 1)); + setMagnetDetected(!testBitUint8(flags, 2)); +} + +void SensorTag::processHumidityData(const QByteArray &data) +{ + Q_ASSERT(data.count() == 4); + quint16 rawHumidityTemperature = 0; + quint16 rawHumidity = 0; + + QByteArray payload(data); + QDataStream stream(&payload, QIODevice::ReadOnly); + stream.setByteOrder(QDataStream::LittleEndian); + stream >> rawHumidityTemperature >> rawHumidity ; + + //double humidityTemperature = (rawHumidityTemperature / 65536.0 * 165.0) - 40; + double humidity = rawHumidity / 65536.0 * 100.0; + + //qCDebug(dcMultiSensor()) << "Humidity" << humidity << "%" << humidityTemperature << "°C"; + m_device->setStateValue(sensortagHumidityStateTypeId, roundValue(humidity)); +} + +void SensorTag::processPressureData(const QByteArray &data) +{ + Q_ASSERT(data.count() == 6); + + QByteArray pressureData(data.right(3)); + quint32 rawPressure = static_cast(pressureData.at(2)); + rawPressure <<= 8; + rawPressure |= static_cast(pressureData.at(1)); + rawPressure <<= 8; + rawPressure |= static_cast(pressureData.at(0)); + + //qCDebug(dcMultiSensor()) << "Pressure:" << roundValue(rawPressure / 100.0) << "mBar"; + m_device->setStateValue(sensortagPressureStateTypeId, roundValue(rawPressure / 100.0)); +} + +void SensorTag::processOpticalData(const QByteArray &data) +{ + Q_ASSERT(data.count() == 2); + + quint16 rawOptical = 0; + QByteArray payload(data); + QDataStream stream(&payload, QIODevice::ReadOnly); + stream.setByteOrder(QDataStream::LittleEndian); + stream >> rawOptical; + + quint16 lumm = rawOptical & 0x0FFF; + quint16 lume = (rawOptical & 0xF000) >> 12; + + double lux = lumm * (0.01 * pow(2,lume)); + + //qCDebug(dcMultiSensor()) << "Lux:" << lux; + device()->setStateValue(sensortagLightIntensityStateTypeId, roundValue(lux)); +} + +void SensorTag::processMovementData(const QByteArray &data) +{ + qCDebug(dcMultiSensor()) << "Movement value" << data.toHex(); + + QByteArray payload(data); + QDataStream stream(&payload, QIODevice::ReadOnly); + + qint16 gyroXRaw = 0; qint16 gyroYRaw = 0; qint16 gyroZRaw = 0; + stream >> gyroXRaw >> gyroYRaw >> gyroZRaw; + + qint16 accXRaw = 0; qint16 accYRaw = 0; qint16 accZRaw = 0; + stream >> accXRaw >> accYRaw >> accZRaw; + + qint16 magXRaw = 0; qint16 magYRaw = 0; qint16 magZRaw = 0; + stream >> magXRaw >> magYRaw >> magZRaw; + + + // Calculate rotation, unit deg/s, range -250, +250 + double gyroX = static_cast(gyroXRaw) / (65536 / 500); + double gyroY = static_cast(gyroYRaw) / (65536 / 500); + double gyroZ = static_cast(gyroZRaw) / (65536 / 500); + qCDebug(dcMultiSensor()) << "Gyroscope x:" << gyroX << " y:" << gyroY << " z:" << gyroZ; + +} + +void SensorTag::setLeftButtonPressed(bool pressed) +{ + if (m_leftButtonPressed == pressed) + return; + + qCDebug(dcMultiSensor()) << "Left button" << (pressed ? "pressed" : "released"); + m_leftButtonPressed = pressed; + emit leftButtonPressedChainged(m_leftButtonPressed); + m_device->setStateValue(sensortagLeftButtonPressedStateTypeId, m_leftButtonPressed); +} + +void SensorTag::setRightButtonPressed(bool pressed) +{ + if (m_rightButtonPressed == pressed) + return; + + qCDebug(dcMultiSensor()) << "Right button" << (pressed ? "pressed" : "released"); + m_rightButtonPressed = pressed; + emit rightButtonPressedChainged(m_rightButtonPressed); + m_device->setStateValue(sensortagRightButtonPressedStateTypeId, m_rightButtonPressed); +} + +void SensorTag::setMagnetDetected(bool detected) +{ + if (m_magnetDetected == detected) + return; + + qCDebug(dcMultiSensor()) << "Magnet detector" << (detected ? "active" : "inactive"); + m_magnetDetected = detected; + emit magnetDetectedChainged(m_magnetDetected); + m_device->setStateValue(sensortagMagnetDetectedStateTypeId, m_magnetDetected); +} + +bool SensorTag::testBitUint8(quint8 value, int bitPosition) +{ + return (((value)>> (bitPosition)) & 1); +} + +double SensorTag::roundValue(float value) +{ + int tmpValue = static_cast(value * 10); + return static_cast(tmpValue) / 10.0; } void SensorTag::onConnectedChanged(const bool &connected) @@ -51,80 +259,79 @@ void SensorTag::onConnectedChanged(const bool &connected) if (!connected) { // Clean up services - m_infraredService->deleteLater(); - m_buttonService->deleteLater(); + m_temperatureService->deleteLater(); m_humidityService->deleteLater(); m_pressureService->deleteLater(); + m_opticalService->deleteLater(); + m_keyService->deleteLater(); + m_movementService->deleteLater(); - m_infraredService = nullptr; - m_buttonService = nullptr; + m_temperatureService = nullptr; m_humidityService = nullptr; m_pressureService = nullptr; + m_opticalService = nullptr; + m_keyService = nullptr; + m_movementService = nullptr; } - } void SensorTag::onServiceDiscoveryFinished() { - if (!m_bluetoothDevice->serviceUuids().contains(infraredServiceUuid)) { - qCWarning(dcMultiSensor()) << "Could not find infrared service"; - return; + foreach (const QBluetoothUuid serviceUuid, m_bluetoothDevice->serviceUuids()) { + qCDebug(dcMultiSensor()) << "-->" << serviceUuid; } - if (!m_bluetoothDevice->serviceUuids().contains(accelerometerServiceUuid)) { - qCWarning(dcMultiSensor()) << "Could not find accelereometer service"; + if (!m_bluetoothDevice->serviceUuids().contains(temperatureServiceUuid)) { + qCWarning(dcMultiSensor()) << "Could not find temperature service"; + m_bluetoothDevice->disconnectDevice(); return; } if (!m_bluetoothDevice->serviceUuids().contains(humidityServiceUuid)) { qCWarning(dcMultiSensor()) << "Could not find humidity service"; - return; - } - - if (!m_bluetoothDevice->serviceUuids().contains(magnetometerServiceUuid)) { - qCWarning(dcMultiSensor()) << "Could not find magnetometer service"; + m_bluetoothDevice->disconnectDevice(); return; } if (!m_bluetoothDevice->serviceUuids().contains(pressureServiceUuid)) { qCWarning(dcMultiSensor()) << "Could not find pressure service"; + m_bluetoothDevice->disconnectDevice(); return; } - if (!m_bluetoothDevice->serviceUuids().contains(gyroscopeServiceUuid)) { - qCWarning(dcMultiSensor()) << "Could not find magnetometer service"; + if (!m_bluetoothDevice->serviceUuids().contains(opticalServiceUuid)) { + qCWarning(dcMultiSensor()) << "Could not find optical service"; + m_bluetoothDevice->disconnectDevice(); return; } + if (!m_bluetoothDevice->serviceUuids().contains(keyServiceUuid)) { + qCWarning(dcMultiSensor()) << "Could not find key service"; + m_bluetoothDevice->disconnectDevice(); + return; + } + + if (!m_bluetoothDevice->serviceUuids().contains(movementServiceUuid)) { + qCWarning(dcMultiSensor()) << "Could not find movement service"; + m_bluetoothDevice->disconnectDevice(); + return; + } + + // IR Temperature - if (!m_infraredService) { - m_infraredService = m_bluetoothDevice->controller()->createServiceObject(infraredServiceUuid, this); - if (!m_infraredService) { - qCWarning(dcMultiSensor()) << "Could not create infrared service."; + if (!m_temperatureService) { + m_temperatureService = m_bluetoothDevice->controller()->createServiceObject(temperatureServiceUuid, this); + if (!m_temperatureService) { + qCWarning(dcMultiSensor()) << "Could not create temperature service."; + m_bluetoothDevice->disconnectDevice(); return; } - connect(m_infraredService, &QLowEnergyService::stateChanged, this, &SensorTag::onInfraredServiceStateChanged); - connect(m_infraredService, &QLowEnergyService::characteristicChanged, this, &SensorTag::onInfraredServiceCharacteristicChanged); + connect(m_temperatureService, &QLowEnergyService::stateChanged, this, &SensorTag::onTemperatureServiceStateChanged); + connect(m_temperatureService, &QLowEnergyService::characteristicChanged, this, &SensorTag::onTemperatureServiceCharacteristicChanged); - if (m_infraredService->state() == QLowEnergyService::DiscoveryRequired) { - m_infraredService->discoverDetails(); - } - } - - // Buttons - if (!m_buttonService) { - m_buttonService = m_bluetoothDevice->controller()->createServiceObject(buttonServiceUuid, this); - if (!m_buttonService) { - qCWarning(dcMultiSensor()) << "Could not create button service."; - return; - } - - connect(m_buttonService, &QLowEnergyService::stateChanged, this, &SensorTag::onButtonServiceStateChanged); - connect(m_buttonService, &QLowEnergyService::characteristicChanged, this, &SensorTag::onButtonServiceCharacteristicChanged); - - if (m_buttonService->state() == QLowEnergyService::DiscoveryRequired) { - m_buttonService->discoverDetails(); + if (m_temperatureService->state() == QLowEnergyService::DiscoveryRequired) { + m_temperatureService->discoverDetails(); } } @@ -133,6 +340,7 @@ void SensorTag::onServiceDiscoveryFinished() m_humidityService = m_bluetoothDevice->controller()->createServiceObject(humidityServiceUuid, this); if (!m_humidityService) { qCWarning(dcMultiSensor()) << "Could not create humidity service."; + m_bluetoothDevice->disconnectDevice(); return; } @@ -148,6 +356,7 @@ void SensorTag::onServiceDiscoveryFinished() m_pressureService = m_bluetoothDevice->controller()->createServiceObject(pressureServiceUuid, this); if (!m_pressureService) { qCWarning(dcMultiSensor()) << "Could not create pressure service."; + m_bluetoothDevice->disconnectDevice(); return; } @@ -157,17 +366,69 @@ void SensorTag::onServiceDiscoveryFinished() m_pressureService->discoverDetails(); } } + + + // Optical + if (!m_opticalService) { + m_opticalService = m_bluetoothDevice->controller()->createServiceObject(opticalServiceUuid, this); + if (!m_opticalService) { + qCWarning(dcMultiSensor()) << "Could not create optical service."; + m_bluetoothDevice->disconnectDevice(); + return; + } + + connect(m_opticalService, &QLowEnergyService::stateChanged, this, &SensorTag::onOpticalServiceStateChanged); + connect(m_opticalService, &QLowEnergyService::characteristicChanged, this, &SensorTag::onOpticalServiceCharacteristicChanged); + + if (m_opticalService->state() == QLowEnergyService::DiscoveryRequired) { + m_opticalService->discoverDetails(); + } + } + + // Key + if (!m_keyService) { + m_keyService = m_bluetoothDevice->controller()->createServiceObject(keyServiceUuid, this); + if (!m_keyService) { + qCWarning(dcMultiSensor()) << "Could not create key service."; + m_bluetoothDevice->disconnectDevice(); + return; + } + + connect(m_keyService, &QLowEnergyService::stateChanged, this, &SensorTag::onKeyServiceStateChanged); + connect(m_keyService, &QLowEnergyService::characteristicChanged, this, &SensorTag::onKeyServiceCharacteristicChanged); + + if (m_keyService->state() == QLowEnergyService::DiscoveryRequired) { + m_keyService->discoverDetails(); + } + } + + // Movement + if (!m_movementService) { + m_movementService = m_bluetoothDevice->controller()->createServiceObject(movementServiceUuid, this); + if (!m_movementService) { + qCWarning(dcMultiSensor()) << "Could not create movement service."; + m_bluetoothDevice->disconnectDevice(); + return; + } + + connect(m_movementService, &QLowEnergyService::stateChanged, this, &SensorTag::onMovementServiceStateChanged); + connect(m_movementService, &QLowEnergyService::characteristicChanged, this, &SensorTag::onMovementServiceCharacteristicChanged); + + if (m_movementService->state() == QLowEnergyService::DiscoveryRequired) { + m_movementService->discoverDetails(); + } + } } -void SensorTag::onInfraredServiceStateChanged(const QLowEnergyService::ServiceState &state) +void SensorTag::onTemperatureServiceStateChanged(const QLowEnergyService::ServiceState &state) { // Only continue if discovered if (state != QLowEnergyService::ServiceDiscovered) return; - qCDebug(dcMultiSensor()) << "Infrared sensor service discovered."; + qCDebug(dcMultiSensor()) << "Temperature sensor service discovered."; - foreach (const QLowEnergyCharacteristic &characteristic, m_infraredService->characteristics()) { + foreach (const QLowEnergyCharacteristic &characteristic, m_temperatureService->characteristics()) { qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); @@ -175,66 +436,47 @@ void SensorTag::onInfraredServiceStateChanged(const QLowEnergyService::ServiceSt } // Data characteristic - m_infraredDataCharacteristic = m_infraredService->characteristic(QBluetoothUuid(QUuid("f000aa01-0451-4000-b000-000000000000"))); - if (!m_infraredDataCharacteristic.isValid()) { - qCWarning(dcMultiSensor()) << "Invalid infrared data characteristic."; + m_temperatureDataCharacteristic = m_temperatureService->characteristic(QBluetoothUuid(QUuid("f000aa01-0451-4000-b000-000000000000"))); + if (!m_temperatureDataCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid temperature data characteristic."; + m_bluetoothDevice->disconnectDevice(); + return; } // Enable notifications - QLowEnergyDescriptor notificationDescriptor = m_infraredDataCharacteristic.descriptor(QBluetoothUuid::ClientCharacteristicConfiguration); - m_infraredService->writeDescriptor(notificationDescriptor, QByteArray::fromHex("0100")); + QLowEnergyDescriptor notificationDescriptor = m_temperatureDataCharacteristic.descriptor(QBluetoothUuid::ClientCharacteristicConfiguration); + m_temperatureService->writeDescriptor(notificationDescriptor, QByteArray::fromHex("0100")); // Config characteristic - m_infraredConfigCharacteristic = m_infraredService->characteristic(QBluetoothUuid(QUuid("f000aa02-0451-4000-b000-000000000000"))); - if (!m_infraredConfigCharacteristic.isValid()) { - qCWarning(dcMultiSensor()) << "Invalid infrared configuration characteristic."; + m_temperatureConfigurationCharacteristic = m_temperatureService->characteristic(temperatureConfigurationCharacteristicUuid); + if (!m_temperatureConfigurationCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid temperature configuration characteristic."; + m_bluetoothDevice->disconnectDevice(); + return; } + // Period characteristic + m_temperaturePeriodCharacteristic = m_temperatureService->characteristic(temperaturePeriodCharacteristicUuid); + if (!m_temperaturePeriodCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid temperature period characteristic."; + m_bluetoothDevice->disconnectDevice(); + return; + } + + configurePeriod(m_temperatureService, m_temperaturePeriodCharacteristic, m_temperaturePeriod); + // Enable measuring - m_infraredService->writeCharacteristic(m_infraredConfigCharacteristic, QByteArray::fromHex("01")); + m_temperatureService->writeCharacteristic(m_temperatureConfigurationCharacteristic, QByteArray::fromHex("01")); } -void SensorTag::onInfraredServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) +void SensorTag::onTemperatureServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) { - if (characteristic == m_infraredDataCharacteristic) { - updateInfraredValue(value); + if (characteristic == m_temperatureDataCharacteristic) { + processTemperatureData(value); // FIXME: Disable measuring - // m_infraredService->writeCharacteristic(m_infraredConfigCharacteristic, QByteArray::fromHex("00")); - } -} - -void SensorTag::onButtonServiceStateChanged(const QLowEnergyService::ServiceState &state) -{ - // Only continue if discovered - if (state != QLowEnergyService::ServiceDiscovered) - return; - - qCDebug(dcMultiSensor()) << "Button sensor service discovered."; - - foreach (const QLowEnergyCharacteristic &characteristic, m_buttonService->characteristics()) { - qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); - foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { - qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); - } - } - - // Data characteristic - m_buttonCharacteristic = m_buttonService->characteristic(QBluetoothUuid(QUuid("0000ffe1-0000-1000-8000-00805f9b34fb"))); - if (!m_buttonCharacteristic.isValid()) { - qCWarning(dcMultiSensor()) << "Invalid button data characteristic."; - } - - // Enable notifications - QLowEnergyDescriptor notificationDescriptor = m_buttonCharacteristic.descriptor(QBluetoothUuid::ClientCharacteristicConfiguration); - m_buttonService->writeDescriptor(notificationDescriptor, QByteArray::fromHex("0100")); -} - -void SensorTag::onButtonServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) -{ - if (characteristic == m_buttonCharacteristic) { - updateButtonValue(value); + // m_temperatureService->writeCharacteristic(m_temperatureConfigCharacteristic, QByteArray::fromHex("00")); } } @@ -254,9 +496,11 @@ void SensorTag::onHumidityServiceStateChanged(const QLowEnergyService::ServiceSt } // Data characteristic - m_humidityDataCharacteristic = m_humidityService->characteristic(QBluetoothUuid(QUuid("f000aa21-0451-4000-b000-000000000000"))); + m_humidityDataCharacteristic = m_humidityService->characteristic(humidityDataCharacteristicUuid); if (!m_humidityDataCharacteristic.isValid()) { qCWarning(dcMultiSensor()) << "Invalid humidity data characteristic."; + m_bluetoothDevice->disconnectDevice(); + return; } // Enable notifications @@ -264,19 +508,31 @@ void SensorTag::onHumidityServiceStateChanged(const QLowEnergyService::ServiceSt m_humidityService->writeDescriptor(notificationDescriptor, QByteArray::fromHex("0100")); // Config characteristic - m_humidityConfigCharacteristic = m_humidityService->characteristic(QBluetoothUuid(QUuid("f000aa22-0451-4000-b000-000000000000"))); - if (!m_humidityConfigCharacteristic.isValid()) { + m_humidityConfigurationCharacteristic = m_humidityService->characteristic(humidityConfigurationCharacteristicUuid); + if (!m_humidityConfigurationCharacteristic.isValid()) { qCWarning(dcMultiSensor()) << "Invalid humidity configuration characteristic."; + m_bluetoothDevice->disconnectDevice(); + return; } + // Period characteristic + m_humidityPeriodCharacteristic = m_humidityService->characteristic(humidityPeriodCharacteristicUuid); + if (!m_humidityPeriodCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid humidity period characteristic."; + m_bluetoothDevice->disconnectDevice(); + return; + } + + configurePeriod(m_humidityService, m_humidityPeriodCharacteristic, m_humidityPeriod); + // Enable measuring - m_humidityService->writeCharacteristic(m_humidityConfigCharacteristic, QByteArray::fromHex("01")); + m_humidityService->writeCharacteristic(m_humidityConfigurationCharacteristic, QByteArray::fromHex("01")); } void SensorTag::onHumidityServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) { if (characteristic == m_humidityDataCharacteristic) { - updateHumidityValue(value); + processHumidityData(value); // FIXME: Disable measuring // m_humidityService->writeCharacteristic(m_humidityConfigCharacteristic, QByteArray::fromHex("00")); } @@ -298,9 +554,11 @@ void SensorTag::onPressureServiceStateChanged(const QLowEnergyService::ServiceSt } // Data characteristic - m_pressureDataCharacteristic = m_pressureService->characteristic(QBluetoothUuid(QUuid("f000aa41-0451-4000-b000-000000000000"))); + m_pressureDataCharacteristic = m_pressureService->characteristic(pressureDataCharacteristicUuid); if (!m_pressureDataCharacteristic.isValid()) { qCWarning(dcMultiSensor()) << "Invalid pressure data characteristic."; + m_bluetoothDevice->disconnectDevice(); + return; } // Enable notifications @@ -308,36 +566,179 @@ void SensorTag::onPressureServiceStateChanged(const QLowEnergyService::ServiceSt m_pressureService->writeDescriptor(notificationDescriptor, QByteArray::fromHex("0100")); // Config characteristic - m_pressureConfigCharacteristic = m_pressureService->characteristic(QBluetoothUuid(QUuid("f000aa42-0451-4000-b000-000000000000"))); - if (!m_pressureConfigCharacteristic.isValid()) { + m_pressureConfigurationCharacteristic = m_pressureService->characteristic(pressureConfigurationCharacteristicUuid); + if (!m_pressureConfigurationCharacteristic.isValid()) { qCWarning(dcMultiSensor()) << "Invalid pressure configuration characteristic."; + m_bluetoothDevice->disconnectDevice(); + return; } + // Period characteristic + m_pressurePeriodCharacteristic = m_pressureService->characteristic(pressurePeriodCharacteristicUuid); + if (!m_pressurePeriodCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid pressure period characteristic."; + m_bluetoothDevice->disconnectDevice(); + return; + } + + configurePeriod(m_pressureService, m_pressurePeriodCharacteristic, m_pressurePeriod); + // Enable measuring - m_pressureService->writeCharacteristic(m_pressureConfigCharacteristic, QByteArray::fromHex("01")); + m_pressureService->writeCharacteristic(m_pressureConfigurationCharacteristic, QByteArray::fromHex("01")); } void SensorTag::onPressureServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) { if (characteristic == m_pressureDataCharacteristic) { - updatePressureValue(value); + processPressureData(value); // FIXME: Disable measuring // m_pressureService->writeCharacteristic(m_pressureConfigCharacteristic, QByteArray::fromHex("00")); } } -void SensorTag::measure() +void SensorTag::onOpticalServiceStateChanged(const QLowEnergyService::ServiceState &state) { - if (!m_bluetoothDevice->connected()) + // Only continue if discovered + if (state != QLowEnergyService::ServiceDiscovered) return; - // TODO: measure using plugintimer to save energy + qCDebug(dcMultiSensor()) << "Optical sensor service discovered."; -// qCDebug(dcMultiSensor()) << "Measure data" << m_bluetoothDevice->name() << m_bluetoothDevice->address().toString(); + foreach (const QLowEnergyCharacteristic &characteristic, m_pressureService->characteristics()) { + qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); + foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + } + } -// m_infraredService->writeCharacteristic(m_infraredConfigCharacteristic, QByteArray::fromHex("01")); -// m_humidityService->writeCharacteristic(m_humidityConfigCharacteristic, QByteArray::fromHex("01")); -// m_pressureService->writeCharacteristic(m_pressureConfigCharacteristic, QByteArray::fromHex("01")); + // Data characteristic + m_opticalDataCharacteristic = m_opticalService->characteristic(opticalDataCharacteristicUuid); + if (!m_opticalDataCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid optical data characteristic."; + m_bluetoothDevice->disconnectDevice(); + return; + } + + // Enable notifications + QLowEnergyDescriptor notificationDescriptor = m_opticalDataCharacteristic.descriptor(QBluetoothUuid::ClientCharacteristicConfiguration); + m_opticalService->writeDescriptor(notificationDescriptor, QByteArray::fromHex("0100")); + + // Config characteristic + m_opticalConfigurationCharacteristic = m_opticalService->characteristic(opticalConfigurationCharacteristicUuid); + if (!m_opticalConfigurationCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid optical configuration characteristic."; + m_bluetoothDevice->disconnectDevice(); + } + + // Period characteristic + m_opticalPeriodCharacteristic = m_opticalService->characteristic(opticalPeriodCharacteristicUuid); + if (!m_opticalPeriodCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid optical period characteristic."; + m_bluetoothDevice->disconnectDevice(); + } + + // Set measurement period + configurePeriod(m_opticalService, m_opticalPeriodCharacteristic, m_opticalPeriod); + + // Enable measuring + m_opticalService->writeCharacteristic(m_opticalConfigurationCharacteristic, QByteArray::fromHex("01")); +} + +void SensorTag::onOpticalServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) +{ + if (characteristic == m_opticalDataCharacteristic) { + processOpticalData(value); + // FIXME: Disable measuring + // m_opticalService->writeCharacteristic(m_pressureopticalCharacteristic, QByteArray::fromHex("00")); + } } +void SensorTag::onKeyServiceStateChanged(const QLowEnergyService::ServiceState &state) +{ + // Only continue if discovered + if (state != QLowEnergyService::ServiceDiscovered) + return; + + qCDebug(dcMultiSensor()) << "Key service discovered."; + foreach (const QLowEnergyCharacteristic &characteristic, m_keyService->characteristics()) { + qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); + foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + } + } + + // Data characteristic + m_keyDataCharacteristic = m_keyService->characteristic(keyDataCharacteristicUuid); + if (!m_keyDataCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid button data characteristic."; + m_bluetoothDevice->disconnectDevice(); + } + + // Enable notifications + QLowEnergyDescriptor notificationDescriptor = m_keyDataCharacteristic.descriptor(QBluetoothUuid::ClientCharacteristicConfiguration); + m_keyService->writeDescriptor(notificationDescriptor, QByteArray::fromHex("0100")); +} + +void SensorTag::onKeyServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) +{ + if (characteristic == m_keyDataCharacteristic) { + processKeyData(value); + } +} + +void SensorTag::onMovementServiceStateChanged(const QLowEnergyService::ServiceState &state) +{ + // Only continue if discovered + if (state != QLowEnergyService::ServiceDiscovered) + return; + + qCDebug(dcMultiSensor()) << "Movement sensor service discovered."; + + foreach (const QLowEnergyCharacteristic &characteristic, m_pressureService->characteristics()) { + qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); + foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + } + } + + // Data characteristic + m_movementDataCharacteristic = m_movementService->characteristic(movementDataCharacteristicUuid); + if (!m_movementDataCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid movement data characteristic."; + m_bluetoothDevice->disconnectDevice(); + } + + // Enable notifications + QLowEnergyDescriptor notificationDescriptor = m_movementDataCharacteristic.descriptor(QBluetoothUuid::ClientCharacteristicConfiguration); + m_movementService->writeDescriptor(notificationDescriptor, QByteArray::fromHex("0100")); + + // Config characteristic + m_movementConfigurationCharacteristic = m_movementService->characteristic(movementConfigurationCharacteristicUuid); + if (!m_movementConfigurationCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid movement configuration characteristic."; + m_bluetoothDevice->disconnectDevice(); + } + + // Period characteristic + m_movementPeriodCharacteristic = m_movementService->characteristic(movementPeriodCharacteristicUuid); + if (!m_movementPeriodCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid movement period characteristic."; + m_bluetoothDevice->disconnectDevice(); + } + + // Set measurement period + configurePeriod(m_movementService, m_movementPeriodCharacteristic, m_movementPeriod); + + configureMovement(); + + // Enable measuring + m_movementService->writeCharacteristic(m_movementConfigurationCharacteristic, QByteArray::fromHex("01")); +} + +void SensorTag::onMovementServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) +{ + if (characteristic == m_movementDataCharacteristic) { + processMovementData(value); + } +} diff --git a/multisensor/sensortag.h b/multisensor/sensortag.h index d1a18833..ad98702b 100644 --- a/multisensor/sensortag.h +++ b/multisensor/sensortag.h @@ -1,3 +1,25 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2015-2018 Simon Stuerz * + * * + * This file is part of guh. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + #ifndef SENSORTAG_H #define SENSORTAG_H @@ -7,17 +29,40 @@ #include "extern-plugininfo.h" #include "hardware/bluetoothlowenergy/bluetoothlowenergydevice.h" -static QBluetoothUuid infraredServiceUuid = QBluetoothUuid(QUuid("f000aa00-0451-4000-b000-000000000000")); -static QBluetoothUuid accelerometerServiceUuid = QBluetoothUuid(QUuid("f000aa10-0451-4000-b000-000000000000")); -static QBluetoothUuid humidityServiceUuid = QBluetoothUuid(QUuid("f000aa20-0451-4000-b000-000000000000")); -static QBluetoothUuid magnetometerServiceUuid = QBluetoothUuid(QUuid("f000aa30-0451-4000-b000-000000000000")); -static QBluetoothUuid pressureServiceUuid = QBluetoothUuid(QUuid("f000aa40-0451-4000-b000-000000000000")); -static QBluetoothUuid gyroscopeServiceUuid = QBluetoothUuid(QUuid("f000aa50-0451-4000-b000-000000000000")); -static QBluetoothUuid testServiceUuid = QBluetoothUuid(QUuid("f000aa60-0451-4000-b000-000000000000")); -static QBluetoothUuid otaServiceUuid = QBluetoothUuid(QUuid("f000aac0-0451-4000-b000-000000000000")); -static QBluetoothUuid buttonServiceUuid = QBluetoothUuid(QUuid("0000ffe0-0000-1000-8000-00805f9b34fb")); +// http://processors.wiki.ti.com/index.php/CC2650_SensorTag_User's_Guide + +static QBluetoothUuid temperatureServiceUuid = QBluetoothUuid(QUuid("f000aa00-0451-4000-b000-000000000000")); +static QBluetoothUuid temperatureDataCharacteristicUuid = QBluetoothUuid(QUuid("f000aa01-0451-4000-b000-000000000000")); +static QBluetoothUuid temperatureConfigurationCharacteristicUuid = QBluetoothUuid(QUuid("f000aa02-0451-4000-b000-000000000000")); +static QBluetoothUuid temperaturePeriodCharacteristicUuid = QBluetoothUuid(QUuid("f000aa03-0451-4000-b000-000000000000")); + +static QBluetoothUuid humidityServiceUuid = QBluetoothUuid(QUuid("f000aa20-0451-4000-b000-000000000000")); +static QBluetoothUuid humidityDataCharacteristicUuid = QBluetoothUuid(QUuid("f000aa21-0451-4000-b000-000000000000")); +static QBluetoothUuid humidityConfigurationCharacteristicUuid = QBluetoothUuid(QUuid("f000aa22-0451-4000-b000-000000000000")); +static QBluetoothUuid humidityPeriodCharacteristicUuid = QBluetoothUuid(QUuid("f000aa23-0451-4000-b000-000000000000")); + +static QBluetoothUuid pressureServiceUuid = QBluetoothUuid(QUuid("f000aa40-0451-4000-b000-000000000000")); +static QBluetoothUuid pressureDataCharacteristicUuid = QBluetoothUuid(QUuid("f000aa41-0451-4000-b000-000000000000")); +static QBluetoothUuid pressureConfigurationCharacteristicUuid = QBluetoothUuid(QUuid("f000aa42-0451-4000-b000-000000000000")); +static QBluetoothUuid pressurePeriodCharacteristicUuid = QBluetoothUuid(QUuid("f000aa44-0451-4000-b000-000000000000")); + +static QBluetoothUuid opticalServiceUuid = QBluetoothUuid(QUuid("f000aa70-0451-4000-b000-000000000000")); +static QBluetoothUuid opticalDataCharacteristicUuid = QBluetoothUuid(QUuid("f000aa71-0451-4000-b000-000000000000")); +static QBluetoothUuid opticalConfigurationCharacteristicUuid = QBluetoothUuid(QUuid("f000aa72-0451-4000-b000-000000000000")); +static QBluetoothUuid opticalPeriodCharacteristicUuid = QBluetoothUuid(QUuid("f000aa73-0451-4000-b000-000000000000")); + +static QBluetoothUuid keyServiceUuid = QBluetoothUuid(QUuid("0000ffe0-0000-1000-8000-00805f9b34fb")); +static QBluetoothUuid keyDataCharacteristicUuid = QBluetoothUuid(QUuid("0000ffe1-0000-1000-8000-00805f9b34fb")); + +static QBluetoothUuid ioServiceUuid = QBluetoothUuid(QUuid("f000aa64-0451-4000-b000-000000000000")); +static QBluetoothUuid ioDataCharacteristicUuid = QBluetoothUuid(QUuid("f000aa65-0451-4000-b000-000000000000")); +static QBluetoothUuid ioConfigurationCharacteristicUuid = QBluetoothUuid(QUuid("f000aa66-0451-4000-b000-000000000000")); + +static QBluetoothUuid movementServiceUuid = QBluetoothUuid(QUuid("f000aa80-0451-4000-b000-000000000000")); +static QBluetoothUuid movementDataCharacteristicUuid = QBluetoothUuid(QUuid("f000aa81-0451-4000-b000-000000000000")); +static QBluetoothUuid movementConfigurationCharacteristicUuid = QBluetoothUuid(QUuid("f000aa82-0451-4000-b000-000000000000")); +static QBluetoothUuid movementPeriodCharacteristicUuid = QBluetoothUuid(QUuid("f000aa83-0451-4000-b000-000000000000")); -// Currently unused services class SensorTag : public QObject { @@ -28,49 +73,93 @@ public: Device *device(); BluetoothLowEnergyDevice *bluetoothDevice(); + void setAccelerometerEnabled(bool enabled); + void setGyroscopeEnabled(bool enabled); + void setMagnetometerEnabled(bool enabled); + void setMeasurementPeriod(int period); + private: Device *m_device; BluetoothLowEnergyDevice *m_bluetoothDevice; // Services - QLowEnergyService *m_infraredService = nullptr; - QLowEnergyService *m_buttonService = nullptr; + QLowEnergyService *m_temperatureService = nullptr; QLowEnergyService *m_humidityService = nullptr; QLowEnergyService *m_pressureService = nullptr; - QLowEnergyService *m_accelerometerService = nullptr; - QLowEnergyService *m_magnetometerService = nullptr; - QLowEnergyService *m_gyroscopeService = nullptr; + QLowEnergyService *m_opticalService = nullptr; + QLowEnergyService *m_keyService = nullptr; + QLowEnergyService *m_movementService = nullptr; // Characteristics - QLowEnergyCharacteristic m_infraredDataCharacteristic; - QLowEnergyCharacteristic m_infraredConfigCharacteristic; - QLowEnergyCharacteristic m_buttonCharacteristic; + QLowEnergyCharacteristic m_temperatureDataCharacteristic; + QLowEnergyCharacteristic m_temperatureConfigurationCharacteristic; + QLowEnergyCharacteristic m_temperaturePeriodCharacteristic; + QLowEnergyCharacteristic m_humidityDataCharacteristic; - QLowEnergyCharacteristic m_humidityConfigCharacteristic; + QLowEnergyCharacteristic m_humidityConfigurationCharacteristic; + QLowEnergyCharacteristic m_humidityPeriodCharacteristic; + QLowEnergyCharacteristic m_pressureDataCharacteristic; - QLowEnergyCharacteristic m_pressureConfigCharacteristic; + QLowEnergyCharacteristic m_pressureConfigurationCharacteristic; + QLowEnergyCharacteristic m_pressurePeriodCharacteristic; + QLowEnergyCharacteristic m_opticalDataCharacteristic; + QLowEnergyCharacteristic m_opticalConfigurationCharacteristic; + QLowEnergyCharacteristic m_opticalPeriodCharacteristic; - void updateInfraredValue(const QByteArray &value); - void updateButtonValue(const QByteArray &value); - void updateHumidityValue(const QByteArray &value); - void updatePressureValue(const QByteArray &value); + QLowEnergyCharacteristic m_keyDataCharacteristic; + + QLowEnergyCharacteristic m_movementDataCharacteristic; + QLowEnergyCharacteristic m_movementConfigurationCharacteristic; + QLowEnergyCharacteristic m_movementPeriodCharacteristic; + + // Measure periods + int m_temperaturePeriod = 2500; + int m_humidityPeriod = 2500; + int m_pressurePeriod = 2500; + int m_opticalPeriod = 2500; + int m_movementPeriod = 500; + + bool m_leftButtonPressed = false; + bool m_rightButtonPressed = false; + bool m_magnetDetected = false; + + // Plugin configs + bool m_accelerometerEnabled = true; + bool m_gyroscopeEnabled = false; + bool m_magnetometerEnabled = false; + + void configurePeriod(QLowEnergyService *serice, const QLowEnergyCharacteristic &characteristic, int measurementPeriod); + void configureMovement(bool gyroscopeEnabled = false, bool accelerometerEnabled = true, bool magnetometerEnabled = true, bool wakeOnMotion = true); + + void processTemperatureData(const QByteArray &data); + void processKeyData(const QByteArray &data); + void processHumidityData(const QByteArray &data); + void processPressureData(const QByteArray &data); + void processOpticalData(const QByteArray &data); + void processMovementData(const QByteArray &data); + + // Set methods + void setLeftButtonPressed(bool pressed); + void setRightButtonPressed(bool pressed); + void setMagnetDetected(bool detected); + + // Helper + bool testBitUint8(quint8 value, int bitPosition); + double roundValue(float value); signals: - void leftKeyPressed(); - void rightKeyPressed(); + void leftButtonPressedChainged(bool pressed); + void rightButtonPressedChainged(bool pressed); + void magnetDetectedChainged(bool detected); private slots: void onConnectedChanged(const bool &connected); void onServiceDiscoveryFinished(); - // Infrared sensor service - void onInfraredServiceStateChanged(const QLowEnergyService::ServiceState &state); - void onInfraredServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); - - // Button service - void onButtonServiceStateChanged(const QLowEnergyService::ServiceState &state); - void onButtonServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); + // Temperature sensor service + void onTemperatureServiceStateChanged(const QLowEnergyService::ServiceState &state); + void onTemperatureServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); // Humidity sensor service void onHumidityServiceStateChanged(const QLowEnergyService::ServiceState &state); @@ -80,9 +169,17 @@ private slots: void onPressureServiceStateChanged(const QLowEnergyService::ServiceState &state); void onPressureServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); + // Optical sensor service + void onOpticalServiceStateChanged(const QLowEnergyService::ServiceState &state); + void onOpticalServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); -public slots: - void measure(); + // Button service + void onKeyServiceStateChanged(const QLowEnergyService::ServiceState &state); + void onKeyServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); + + // Movement service + void onMovementServiceStateChanged(const QLowEnergyService::ServiceState &state); + void onMovementServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); }; From 3fdad3ba4d8ccf1ce7363b7670e3ed6ec0633ce6 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Fri, 23 Feb 2018 16:26:40 +0100 Subject: [PATCH 10/62] add missing include --- multisensor/sensortag.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/multisensor/sensortag.cpp b/multisensor/sensortag.cpp index 8e331e4e..2b075e6c 100644 --- a/multisensor/sensortag.cpp +++ b/multisensor/sensortag.cpp @@ -22,6 +22,7 @@ #include "sensortag.h" #include "extern-plugininfo.h" +#include "math.h" #include From 66398c3a296a71522ffa63c3da20181cf17c5c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 23 Feb 2018 17:52:24 +0100 Subject: [PATCH 11/62] Add motion sensor parsing --- multisensor/devicepluginmultisensor.cpp | 47 +++++++++- multisensor/devicepluginmultisensor.h | 2 + multisensor/devicepluginmultisensor.json | 28 ++++-- multisensor/sensortag.cpp | 113 +++++++++++++++++++++-- multisensor/sensortag.h | 5 + 5 files changed, 176 insertions(+), 19 deletions(-) diff --git a/multisensor/devicepluginmultisensor.cpp b/multisensor/devicepluginmultisensor.cpp index e1e9aadb..df77c2da 100644 --- a/multisensor/devicepluginmultisensor.cpp +++ b/multisensor/devicepluginmultisensor.cpp @@ -59,6 +59,8 @@ DevicePluginMultiSensor::~DevicePluginMultiSensor() void DevicePluginMultiSensor::init() { + connect(this, &DevicePluginMultiSensor::configValueChanged, this, &DevicePluginMultiSensor::onPluginConfigurationChanged); + m_reconnectTimer = hardwareManager()->pluginTimerManager()->registerTimer(10); connect(m_reconnectTimer, &PluginTimer::timeout, this, &DevicePluginMultiSensor::onPluginTimer); } @@ -94,15 +96,27 @@ DeviceManager::DeviceSetupStatus DevicePluginMultiSensor::setupDevice(Device *de BluetoothLowEnergyDevice *bluetoothDevice = hardwareManager()->bluetoothLowEnergyManager()->registerDevice(deviceInfo, QLowEnergyController::PublicAddress); SensorTag *sensor = new SensorTag(device, bluetoothDevice, this); + // Preconfigure with plugin configurations + sensor->setAccelerometerEnabled(configValue(MultiSensorAccelerometerEnabledParamTypeId).toBool()); + sensor->setGyroscopeEnabled(configValue(MultiSensorGyroscopeEnabledParamTypeId).toBool()); + sensor->setMagnetometerEnabled(configValue(MultiSensorMagnetometerEnabledParamTypeId).toBool()); + sensor->setMeasurementPeriod(configValue(MultiSensorMeasurementPeriodParamTypeId).toInt()); + sensor->setMeasurementPeriodMovement(configValue(MultiSensorMeasurementPeriodMovementParamTypeId).toInt()); m_sensors.insert(device, sensor); - sensor->bluetoothDevice()->connectDevice(); return DeviceManager::DeviceSetupStatusSuccess; } return DeviceManager::DeviceSetupStatusFailure; } +void DevicePluginMultiSensor::postSetupDevice(Device *device) +{ + // Try to connect right after setup + SensorTag *sensor = m_sensors.value(device); + sensor->bluetoothDevice()->connectDevice(); +} + void DevicePluginMultiSensor::deviceRemoved(Device *device) { @@ -161,3 +175,34 @@ void DevicePluginMultiSensor::onBluetoothDiscoveryFinished() reply->deleteLater(); emit devicesDiscovered(sensortagDeviceClassId, deviceDescriptors); } + +void DevicePluginMultiSensor::onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value) +{ + qCDebug(dcMultiSensor()) << "Plugin configuration changed" << paramTypeId.toString() << value; + + foreach (SensorTag *sensor, m_sensors.values()) { + if (paramTypeId == MultiSensorAccelerometerEnabledParamTypeId) { + sensor->setAccelerometerEnabled(value.toBool()); + } else if (paramTypeId == MultiSensorGyroscopeEnabledParamTypeId) { + sensor->setGyroscopeEnabled(value.toBool()); + } else if (paramTypeId == MultiSensorMagnetometerEnabledParamTypeId) { + sensor->setMagnetometerEnabled(value.toBool()); + } else if (paramTypeId == MultiSensorMeasurementPeriodParamTypeId) { + int valueInt = value.toInt(); + if (valueInt % 10 != 0) { + qCWarning(dcMultiSensor()) << "Measurement period of sensors" << valueInt << "must be a multiple of 10ms"; + // FIXME: force to valid value + return; + } + sensor->setMeasurementPeriod(valueInt); + } else if (paramTypeId == MultiSensorMeasurementPeriodParamTypeId) { + int valueInt = value.toInt(); + if (valueInt % 10 != 0) { + qCWarning(dcMultiSensor()) << "Measurement period of movement sensor" << valueInt << "must be a multiple of 10ms"; + // FIXME: force to valid value + return; + } + sensor->setMeasurementPeriodMovement(valueInt); + } + } +} diff --git a/multisensor/devicepluginmultisensor.h b/multisensor/devicepluginmultisensor.h index 22206770..91e055ca 100644 --- a/multisensor/devicepluginmultisensor.h +++ b/multisensor/devicepluginmultisensor.h @@ -46,6 +46,7 @@ public: void init() override; DeviceManager::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const ParamList ¶ms) override; DeviceManager::DeviceSetupStatus setupDevice(Device *device) override; + void postSetupDevice(Device *device) override; void deviceRemoved(Device *device) override; private: @@ -57,6 +58,7 @@ private: private slots: void onPluginTimer(); void onBluetoothDiscoveryFinished(); + void onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value); }; #endif // DEVICEPLUGINMULTISENSOR_H diff --git a/multisensor/devicepluginmultisensor.json b/multisensor/devicepluginmultisensor.json index f71831a8..64f71a2d 100644 --- a/multisensor/devicepluginmultisensor.json +++ b/multisensor/devicepluginmultisensor.json @@ -24,15 +24,6 @@ "type": "bool", "defaultValue": false }, - { - "id": "5237c89c-c21d-4d78-ac99-8be661b40da7", - "name": "measurementPeriodMovement", - "displayName": "Measurement period movement sensor", - "type": "int", - "minValue": 10, - "maxValue": 2500, - "defaultValue": 2000 - }, { "id": "c5308565-5dc9-409e-ae99-577c212c7a92", "name": "measurementPeriod", @@ -40,7 +31,26 @@ "type": "int", "minValue": 10, "maxValue": 2500, + "defaultValue": 2000 + }, + { + "id": "5237c89c-c21d-4d78-ac99-8be661b40da7", + "name": "measurementPeriodMovement", + "displayName": "Measurement period movement sensor", + "type": "int", + "minValue": 10, + "maxValue": 2500, "defaultValue": 500 + }, + { + "id": "a3298d16-eea6-4474-9061-90466e92d476", + "name": "movementSensitivity", + "displayName": "Movement sensitivity", + "type": "int", + "unit": "Percentage", + "minValue": 0, + "maxValue": 100, + "defaultValue": 50 } ], "vendors": [ diff --git a/multisensor/sensortag.cpp b/multisensor/sensortag.cpp index 2b075e6c..11555462 100644 --- a/multisensor/sensortag.cpp +++ b/multisensor/sensortag.cpp @@ -24,6 +24,7 @@ #include "extern-plugininfo.h" #include "math.h" +#include #include SensorTag::SensorTag(Device *device, BluetoothLowEnergyDevice *bluetoothDevice, QObject *parent) : @@ -47,7 +48,72 @@ BluetoothLowEnergyDevice *SensorTag::bluetoothDevice() void SensorTag::setAccelerometerEnabled(bool enabled) { + qCDebug(dcMultiSensor()) << "Accelerometer" << (enabled ? "enabled" : "disabled"); + + if (m_accelerometerEnabled == enabled) + return; + m_accelerometerEnabled = enabled; + configureMovement(m_gyroscopeEnabled, m_accelerometerEnabled, m_magnetometerEnabled, true); +} + +void SensorTag::setGyroscopeEnabled(bool enabled) +{ + qCDebug(dcMultiSensor()) << "Gyroscope" << (enabled ? "enabled" : "disabled"); + + if (m_gyroscopeEnabled == enabled) + return; + + m_gyroscopeEnabled = enabled; + configureMovement(m_gyroscopeEnabled, m_accelerometerEnabled, m_magnetometerEnabled, true); +} + +void SensorTag::setMagnetometerEnabled(bool enabled) +{ + qCDebug(dcMultiSensor()) << "Magnetometer" << (enabled ? "enabled" : "disabled"); + + if (m_magnetometerEnabled == enabled) + return; + + m_magnetometerEnabled = enabled; + configureMovement(m_gyroscopeEnabled, m_accelerometerEnabled, m_magnetometerEnabled, true); +} + +void SensorTag::setMeasurementPeriod(int period) +{ + qCDebug(dcMultiSensor()) << "Set sensor measurement period to" << period << "ms"; + + m_temperaturePeriod = period; + if (m_temperatureService && m_temperaturePeriodCharacteristic.isValid()) + configurePeriod(m_temperatureService, m_temperaturePeriodCharacteristic, m_temperaturePeriod); + + m_humidityPeriod = period; + if (m_humidityService && m_humidityPeriodCharacteristic.isValid()) + configurePeriod(m_humidityService, m_humidityPeriodCharacteristic, m_humidityPeriod); + + m_pressurePeriod = period; + if (m_pressureService && m_pressurePeriodCharacteristic.isValid()) + configurePeriod(m_pressureService, m_pressurePeriodCharacteristic, m_pressurePeriod); + + m_opticalPeriod = period; + if (m_opticalService && m_opticalPeriodCharacteristic.isValid()) + configurePeriod(m_opticalService, m_opticalPeriodCharacteristic, m_opticalPeriod); + +} + +void SensorTag::setMeasurementPeriodMovement(int period) +{ + qCDebug(dcMultiSensor()) << "Set movement sensor measurement period to" << period << "ms"; + + m_movementPeriod = period; + if (m_movementService && m_movementPeriodCharacteristic.isValid()) + configurePeriod(m_movementService, m_movementPeriodCharacteristic, m_movementPeriod); + +} + +void SensorTag::setMovementSensitivity(int percentage) +{ + m_movementSensitivity = static_cast(percentage) / 100.0; } void SensorTag::configurePeriod(QLowEnergyService *serice, const QLowEnergyCharacteristic &characteristic, int measurementPeriod) @@ -87,12 +153,10 @@ void SensorTag::configureMovement(bool gyroscopeEnabled, bool accelerometerEnabl configuration |= (1 << 8); // enable } - // Accelerometer 2 Bit ( 0 = 2G, 1 = 4G, 2 = 8G, 3 = 16G) - // Default 0 - + // Accelerometer 2 Bit ( 0 = 2G, 1 = 4G, 2 = 8G, 3 = 16G) - Default 0 QByteArray data; QDataStream stream(&data, QIODevice::WriteOnly); - stream.setByteOrder(QDataStream::BigEndian); + stream.setByteOrder(QDataStream::LittleEndian); stream << configuration; qCDebug(dcMultiSensor()) << "Configure movement sensor" << data.toHex(); @@ -143,6 +207,7 @@ void SensorTag::processHumidityData(const QByteArray &data) stream.setByteOrder(QDataStream::LittleEndian); stream >> rawHumidityTemperature >> rawHumidity ; + // Note: we don't need the temperature measurement from the humidity sensor //double humidityTemperature = (rawHumidityTemperature / 65536.0 * 165.0) - 40; double humidity = rawHumidity / 65536.0 * 100.0; @@ -154,6 +219,13 @@ void SensorTag::processPressureData(const QByteArray &data) { Q_ASSERT(data.count() == 6); + QByteArray temperatureData(data.left(3)); + quint32 rawTemperature = static_cast(temperatureData.at(2)); + rawTemperature <<= 8; + rawTemperature |= static_cast(temperatureData.at(1)); + rawTemperature <<= 8; + rawTemperature |= static_cast(temperatureData.at(0)); + QByteArray pressureData(data.right(3)); quint32 rawPressure = static_cast(pressureData.at(2)); rawPressure <<= 8; @@ -161,6 +233,8 @@ void SensorTag::processPressureData(const QByteArray &data) rawPressure <<= 8; rawPressure |= static_cast(pressureData.at(0)); + // Note: we don't need the temperature measurement from the barometic pressure sensor + //qCDebug(dcMultiSensor()) << "Pressure temperature:" << roundValue(rawTemperature / 100.0) << "°C"; //qCDebug(dcMultiSensor()) << "Pressure:" << roundValue(rawPressure / 100.0) << "mBar"; m_device->setStateValue(sensortagPressureStateTypeId, roundValue(rawPressure / 100.0)); } @@ -186,10 +260,11 @@ void SensorTag::processOpticalData(const QByteArray &data) void SensorTag::processMovementData(const QByteArray &data) { - qCDebug(dcMultiSensor()) << "Movement value" << data.toHex(); + qCDebug(dcMultiSensor()) << "--> Movement value" << data.toHex(); QByteArray payload(data); QDataStream stream(&payload, QIODevice::ReadOnly); + stream.setByteOrder(QDataStream::LittleEndian); qint16 gyroXRaw = 0; qint16 gyroYRaw = 0; qint16 gyroZRaw = 0; stream >> gyroXRaw >> gyroYRaw >> gyroZRaw; @@ -201,12 +276,33 @@ void SensorTag::processMovementData(const QByteArray &data) stream >> magXRaw >> magYRaw >> magZRaw; - // Calculate rotation, unit deg/s, range -250, +250 + // Calculate rotation [deg/s], Range +- 250 double gyroX = static_cast(gyroXRaw) / (65536 / 500); double gyroY = static_cast(gyroYRaw) / (65536 / 500); double gyroZ = static_cast(gyroZRaw) / (65536 / 500); - qCDebug(dcMultiSensor()) << "Gyroscope x:" << gyroX << " y:" << gyroY << " z:" << gyroZ; + double accX = static_cast(accXRaw) / (32768 / m_accelerometerRange); + double accY = static_cast(accYRaw) / (32768 / m_accelerometerRange); + double accZ = static_cast(accZRaw) / (32768 / m_accelerometerRange); + + // Calculate magnetism [uT], Range +- 4900 + double magX = static_cast(magXRaw); + double magY = static_cast(magYRaw); + double magZ = static_cast(magZRaw); + + + qCDebug(dcMultiSensor()) << "Accelerometer x:" << accX << " y:" << accY << " z:" << accZ; + //qCDebug(dcMultiSensor()) << "Gyroscope x:" << gyroX << " y:" << gyroY << " z:" << gyroZ; + //qCDebug(dcMultiSensor()) << "Magnetometer x:" << magX << " y:" << magY << " z:" << magZ; + + QVector3D accelerometerVector(accX, accY, accZ); + QVector3D gyroscopeVector(gyroX, gyroY, gyroZ); + QVector3D magnetometerVector(magX, magY, magZ); + + Q_UNUSED(gyroscopeVector) + Q_UNUSED(magnetometerVector) + + qCDebug(dcMultiSensor()) << accelerometerVector.length(); } void SensorTag::setLeftButtonPressed(bool pressed) @@ -318,7 +414,6 @@ void SensorTag::onServiceDiscoveryFinished() return; } - // IR Temperature if (!m_temperatureService) { m_temperatureService = m_bluetoothDevice->controller()->createServiceObject(temperatureServiceUuid, this); @@ -731,7 +826,7 @@ void SensorTag::onMovementServiceStateChanged(const QLowEnergyService::ServiceSt // Set measurement period configurePeriod(m_movementService, m_movementPeriodCharacteristic, m_movementPeriod); - configureMovement(); + configureMovement(m_gyroscopeEnabled, m_accelerometerEnabled, m_magnetometerEnabled, true); // Enable measuring m_movementService->writeCharacteristic(m_movementConfigurationCharacteristic, QByteArray::fromHex("01")); diff --git a/multisensor/sensortag.h b/multisensor/sensortag.h index ad98702b..29c17fae 100644 --- a/multisensor/sensortag.h +++ b/multisensor/sensortag.h @@ -77,6 +77,8 @@ public: void setGyroscopeEnabled(bool enabled); void setMagnetometerEnabled(bool enabled); void setMeasurementPeriod(int period); + void setMeasurementPeriodMovement(int period); + void setMovementSensitivity(int percentage); private: Device *m_device; @@ -119,6 +121,9 @@ private: int m_pressurePeriod = 2500; int m_opticalPeriod = 2500; int m_movementPeriod = 500; + double m_movementSensitivity = 50; + // Note: possible value: 2G, 4G, 8G, 16G, default 2G + int m_accelerometerRange = 2; bool m_leftButtonPressed = false; bool m_rightButtonPressed = false; From 496db05c4c85a749ab8f6f5b4e9cd7153622fa3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 23 Feb 2018 20:53:01 +0100 Subject: [PATCH 12/62] Add sensor actions --- multisensor/devicepluginmultisensor.cpp | 39 +++-- multisensor/devicepluginmultisensor.h | 2 + multisensor/devicepluginmultisensor.json | 37 +++++ multisensor/sensortag.cpp | 189 ++++++++++++++++++++++- multisensor/sensortag.h | 40 ++++- 5 files changed, 283 insertions(+), 24 deletions(-) diff --git a/multisensor/devicepluginmultisensor.cpp b/multisensor/devicepluginmultisensor.cpp index df77c2da..e356dfd8 100644 --- a/multisensor/devicepluginmultisensor.cpp +++ b/multisensor/devicepluginmultisensor.cpp @@ -117,7 +117,6 @@ void DevicePluginMultiSensor::postSetupDevice(Device *device) sensor->bluetoothDevice()->connectDevice(); } - void DevicePluginMultiSensor::deviceRemoved(Device *device) { if (!m_sensors.contains(device)) @@ -129,6 +128,26 @@ void DevicePluginMultiSensor::deviceRemoved(Device *device) sensor->deleteLater(); } +DeviceManager::DeviceError DevicePluginMultiSensor::executeAction(Device *device, const Action &action) +{ + SensorTag *sensor = m_sensors.value(device); + if (action.actionTypeId() == sensortagBuzzerActionTypeId) { + sensor->setBuzzerPower(action.param(sensortagBuzzerStateParamTypeId).value().toBool()); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensortagGreenLedActionTypeId) { + sensor->setGreenLedPower(action.param(sensortagGreenLedStateParamTypeId).value().toBool()); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensortagRedLedActionTypeId) { + sensor->setRedLedPower(action.param(sensortagRedLedStateParamTypeId).value().toBool()); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensortagBuzzerImpulseActionTypeId) { + sensor->buzzerImpulse(); + return DeviceManager::DeviceErrorNoError; + } + + return DeviceManager::DeviceErrorActionTypeNotFound; +} + bool DevicePluginMultiSensor::verifyExistingDevices(const QBluetoothDeviceInfo &deviceInfo) { foreach (Device *device, m_sensors.keys()) { @@ -188,21 +207,11 @@ void DevicePluginMultiSensor::onPluginConfigurationChanged(const ParamTypeId &pa } else if (paramTypeId == MultiSensorMagnetometerEnabledParamTypeId) { sensor->setMagnetometerEnabled(value.toBool()); } else if (paramTypeId == MultiSensorMeasurementPeriodParamTypeId) { - int valueInt = value.toInt(); - if (valueInt % 10 != 0) { - qCWarning(dcMultiSensor()) << "Measurement period of sensors" << valueInt << "must be a multiple of 10ms"; - // FIXME: force to valid value - return; - } - sensor->setMeasurementPeriod(valueInt); + sensor->setMeasurementPeriod(value.toInt()); } else if (paramTypeId == MultiSensorMeasurementPeriodParamTypeId) { - int valueInt = value.toInt(); - if (valueInt % 10 != 0) { - qCWarning(dcMultiSensor()) << "Measurement period of movement sensor" << valueInt << "must be a multiple of 10ms"; - // FIXME: force to valid value - return; - } - sensor->setMeasurementPeriodMovement(valueInt); + sensor->setMeasurementPeriodMovement(value.toInt()); + } else if (paramTypeId == MultiSensorMovementSensitivityParamTypeId) { + sensor->setMovementSensitivity(value.toInt()); } } } diff --git a/multisensor/devicepluginmultisensor.h b/multisensor/devicepluginmultisensor.h index 91e055ca..9b761764 100644 --- a/multisensor/devicepluginmultisensor.h +++ b/multisensor/devicepluginmultisensor.h @@ -49,6 +49,8 @@ public: void postSetupDevice(Device *device) override; void deviceRemoved(Device *device) override; + DeviceManager::DeviceError executeAction(Device *device, const Action &action) override; + private: PluginTimer *m_reconnectTimer = nullptr; QHash m_sensors; diff --git a/multisensor/devicepluginmultisensor.json b/multisensor/devicepluginmultisensor.json index 64f71a2d..0acad317 100644 --- a/multisensor/devicepluginmultisensor.json +++ b/multisensor/devicepluginmultisensor.json @@ -178,6 +178,43 @@ "type": "bool", "cached": false, "defaultValue": false + }, + { + "id": "8d692132-f950-486f-b3dd-fe1ebc574e1d", + "name": "greenLed", + "displayName": "Green LED", + "displayNameEvent": "Green LED power changed", + "displayNameAction": "Set green LED power", + "type": "bool", + "defaultValue": false, + "writable": true + }, + { + "id": "bb585725-6393-42de-aea2-ea4f525ad348", + "name": "redLed", + "displayName": "Red LED", + "displayNameEvent": "Red LED power changed", + "displayNameAction": "Set red LED power", + "type": "bool", + "defaultValue": false, + "writable": true + }, + { + "id": "d522c536-4427-4c53-9980-7820b2649aad", + "name": "buzzer", + "displayName": "Buzzer", + "displayNameEvent": "Buzzer power changed", + "displayNameAction": "Set buzzer power", + "type": "bool", + "defaultValue": false, + "writable": true + } + ], + "actionTypes": [ + { + "id": "a048ab2e-4f17-4467-a166-a7572156c07e", + "name": "buzzerImpulse", + "displayName": "Buzzer impulse" } ] } diff --git a/multisensor/sensortag.cpp b/multisensor/sensortag.cpp index 11555462..0b2e75f9 100644 --- a/multisensor/sensortag.cpp +++ b/multisensor/sensortag.cpp @@ -24,6 +24,7 @@ #include "extern-plugininfo.h" #include "math.h" +#include #include #include @@ -83,6 +84,12 @@ void SensorTag::setMeasurementPeriod(int period) { qCDebug(dcMultiSensor()) << "Set sensor measurement period to" << period << "ms"; + if (period % 10 != 0) { + int adjustedValue = qRound(static_cast(period) / 10.0) * 10; + qCWarning(dcMultiSensor()) << "Measurement period of sensors" << period << "must be a multiple of 10ms. Adjusting it to" << adjustedValue; + period = adjustedValue; + } + m_temperaturePeriod = period; if (m_temperatureService && m_temperaturePeriodCharacteristic.isValid()) configurePeriod(m_temperatureService, m_temperaturePeriodCharacteristic, m_temperaturePeriod); @@ -105,6 +112,12 @@ void SensorTag::setMeasurementPeriodMovement(int period) { qCDebug(dcMultiSensor()) << "Set movement sensor measurement period to" << period << "ms"; + if (period % 10 != 0) { + int adjustedValue = qRound(static_cast(period) / 10.0) * 10; + qCWarning(dcMultiSensor()) << "Measurement period of movement sensor" << period << "must be a multiple of 10ms. Adjusting it to" << adjustedValue; + period = adjustedValue; + } + m_movementPeriod = period; if (m_movementService && m_movementPeriodCharacteristic.isValid()) configurePeriod(m_movementService, m_movementPeriodCharacteristic, m_movementPeriod); @@ -116,6 +129,37 @@ void SensorTag::setMovementSensitivity(int percentage) m_movementSensitivity = static_cast(percentage) / 100.0; } +void SensorTag::setGreenLedPower(bool power) +{ + m_greenLedEnabled = power; + qCDebug(dcMultiSensor()) << "Green LED" << (power ? "enabled" : "disabled"); + configureIo(); + m_device->setStateValue(sensortagGreenLedStateTypeId, m_greenLedEnabled); +} + +void SensorTag::setRedLedPower(bool power) +{ + m_redLedEnabled = power; + qCDebug(dcMultiSensor()) << "Red LED" << (power ? "enabled" : "disabled"); + configureIo(); + m_device->setStateValue(sensortagRedLedStateTypeId, m_redLedEnabled); +} + +void SensorTag::setBuzzerPower(bool power) +{ + m_buzzerEnabled = power; + qCDebug(dcMultiSensor()) << "Buzzer" << (power ? "enabled" : "disabled"); + configureIo(); + m_device->setStateValue(sensortagBuzzerStateTypeId, m_buzzerEnabled); +} + +void SensorTag::buzzerImpulse() +{ + qCDebug(dcMultiSensor()) << "Buzzer impulse"; + setBuzzerPower(true); + QTimer::singleShot(1000, this, &SensorTag::onBuzzerImpulseTimeout); +} + void SensorTag::configurePeriod(QLowEnergyService *serice, const QLowEnergyCharacteristic &characteristic, int measurementPeriod) { Q_ASSERT(measurementPeriod % 10 == 0); @@ -153,7 +197,28 @@ void SensorTag::configureMovement(bool gyroscopeEnabled, bool accelerometerEnabl configuration |= (1 << 8); // enable } - // Accelerometer 2 Bit ( 0 = 2G, 1 = 4G, 2 = 8G, 3 = 16G) - Default 0 + // Accelerometer range 2 Bit ( 0 = 2G, 1 = 4G, 2 = 8G, 3 = 16G) - Default 0 + switch (m_accelerometerRange) { + case SensorAccelerometerRange2G: + // Bit 9 = 0 + // Bit 10 = 0 + break; + case SensorAccelerometerRange4G: + configuration |= (1 << 11); + // Bit 12 = 0 + break; + case SensorAccelerometerRange8G: + // Bit 13 = 0 + configuration |= (1 << 14); + break; + case SensorAccelerometerRange16G: + configuration |= (1 << 15); + configuration |= (1 << 16); + break; + default: + break; + } + QByteArray data; QDataStream stream(&data, QIODevice::WriteOnly); stream.setByteOrder(QDataStream::LittleEndian); @@ -163,6 +228,43 @@ void SensorTag::configureMovement(bool gyroscopeEnabled, bool accelerometerEnabl m_movementService->writeCharacteristic(m_movementConfigurationCharacteristic, data); } +void SensorTag::configureSensorMode(const SensorTag::SensorMode &mode) +{ + if (!m_ioService || !m_ioDataCharacteristic.isValid()) + return; + + qCDebug(dcMultiSensor()) << "Setting" << mode; + QByteArray data; + QDataStream stream(&data, QIODevice::WriteOnly); + stream.setByteOrder(QDataStream::LittleEndian); + stream << static_cast(mode); + + m_ioService->writeCharacteristic(m_ioConfigurationCharacteristic, data); +} + +void SensorTag::configureIo() +{ + if (!m_ioService || !m_ioDataCharacteristic.isValid()) + return; + + // Write value to IO + quint8 configuration = 0; + if (m_redLedEnabled) + configuration |= (1 << 0); // Red LED + + if (m_greenLedEnabled) + configuration |= (1 << 1); // Green LED + + if (m_buzzerEnabled) + configuration |= (1 << 2); // Buzzer + + QByteArray payload; + QDataStream stream(&payload, QIODevice::WriteOnly); + stream << configuration; + + m_ioService->writeCharacteristic(m_ioDataCharacteristic, payload); +} + void SensorTag::processTemperatureData(const QByteArray &data) { Q_ASSERT(data.count() == 4); @@ -281,9 +383,9 @@ void SensorTag::processMovementData(const QByteArray &data) double gyroY = static_cast(gyroYRaw) / (65536 / 500); double gyroZ = static_cast(gyroZRaw) / (65536 / 500); - double accX = static_cast(accXRaw) / (32768 / m_accelerometerRange); - double accY = static_cast(accYRaw) / (32768 / m_accelerometerRange); - double accZ = static_cast(accZRaw) / (32768 / m_accelerometerRange); + double accX = static_cast(accXRaw) / (32768 / static_cast(m_accelerometerRange)); + double accY = static_cast(accYRaw) / (32768 / static_cast(m_accelerometerRange)); + double accZ = static_cast(accZRaw) / (32768 / static_cast(m_accelerometerRange)); // Calculate magnetism [uT], Range +- 4900 double magX = static_cast(magXRaw); @@ -291,7 +393,7 @@ void SensorTag::processMovementData(const QByteArray &data) double magZ = static_cast(magZRaw); - qCDebug(dcMultiSensor()) << "Accelerometer x:" << accX << " y:" << accY << " z:" << accZ; + //qCDebug(dcMultiSensor()) << "Accelerometer x:" << accX << " y:" << accY << " z:" << accZ; //qCDebug(dcMultiSensor()) << "Gyroscope x:" << gyroX << " y:" << gyroY << " z:" << gyroZ; //qCDebug(dcMultiSensor()) << "Magnetometer x:" << magX << " y:" << magY << " z:" << magZ; @@ -302,7 +404,11 @@ void SensorTag::processMovementData(const QByteArray &data) Q_UNUSED(gyroscopeVector) Q_UNUSED(magnetometerVector) - qCDebug(dcMultiSensor()) << accelerometerVector.length(); + double limit = m_accelerometerRange * m_movementSensitivity; + bool motionDetected = (accelerometerVector.length() >= limit); + qCDebug(dcMultiSensor()) << accelerometerVector.length() << " | " << limit << (motionDetected ? "motion" : "-"); + + m_device->setStateValue(sensortagMovingStateTypeId, motionDetected); } void SensorTag::setLeftButtonPressed(bool pressed) @@ -414,6 +520,12 @@ void SensorTag::onServiceDiscoveryFinished() return; } + if (!m_bluetoothDevice->serviceUuids().contains(ioServiceUuid)) { + qCWarning(dcMultiSensor()) << "Could not find IO service"; + m_bluetoothDevice->disconnectDevice(); + return; + } + // IR Temperature if (!m_temperatureService) { m_temperatureService = m_bluetoothDevice->controller()->createServiceObject(temperatureServiceUuid, this); @@ -514,6 +626,23 @@ void SensorTag::onServiceDiscoveryFinished() m_movementService->discoverDetails(); } } + + // IO + if (!m_ioService) { + m_ioService = m_bluetoothDevice->controller()->createServiceObject(ioServiceUuid, this); + if (!m_ioService) { + qCWarning(dcMultiSensor()) << "Could not create IO service."; + m_bluetoothDevice->disconnectDevice(); + return; + } + + connect(m_ioService, &QLowEnergyService::stateChanged, this, &SensorTag::onIoServiceStateChanged); + connect(m_ioService, &QLowEnergyService::characteristicChanged, this, &SensorTag::onIoServiceCharacteristicChanged); + + if (m_ioService->state() == QLowEnergyService::DiscoveryRequired) { + m_ioService->discoverDetails(); + } + } } void SensorTag::onTemperatureServiceStateChanged(const QLowEnergyService::ServiceState &state) @@ -825,7 +954,6 @@ void SensorTag::onMovementServiceStateChanged(const QLowEnergyService::ServiceSt // Set measurement period configurePeriod(m_movementService, m_movementPeriodCharacteristic, m_movementPeriod); - configureMovement(m_gyroscopeEnabled, m_accelerometerEnabled, m_magnetometerEnabled, true); // Enable measuring @@ -838,3 +966,50 @@ void SensorTag::onMovementServiceCharacteristicChanged(const QLowEnergyCharacter processMovementData(value); } } + +void SensorTag::onIoServiceStateChanged(const QLowEnergyService::ServiceState &state) +{ + // Only continue if discovered + if (state != QLowEnergyService::ServiceDiscovered) + return; + + qCDebug(dcMultiSensor()) << "IO service discovered."; + + foreach (const QLowEnergyCharacteristic &characteristic, m_pressureService->characteristics()) { + qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); + foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + } + } + + // Data characteristic + m_ioDataCharacteristic = m_ioService->characteristic(ioDataCharacteristicUuid); + if (!m_ioDataCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid IO data characteristic."; + m_bluetoothDevice->disconnectDevice(); + } + + // Enable notifications + QLowEnergyDescriptor notificationDescriptor = m_ioDataCharacteristic.descriptor(QBluetoothUuid::ClientCharacteristicConfiguration); + m_ioService->writeDescriptor(notificationDescriptor, QByteArray::fromHex("0100")); + + // Config characteristic + m_ioConfigurationCharacteristic = m_ioService->characteristic(ioConfigurationCharacteristicUuid); + if (!m_ioConfigurationCharacteristic.isValid()) { + qCWarning(dcMultiSensor()) << "Invalid IO configuration characteristic."; + m_bluetoothDevice->disconnectDevice(); + } + + configureSensorMode(SensorModeRemote); + configureIo(); +} + +void SensorTag::onIoServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) +{ + qCDebug(dcMultiSensor()) << characteristic.uuid().toString() << value.toHex(); +} + +void SensorTag::onBuzzerImpulseTimeout() +{ + setBuzzerPower(false); +} diff --git a/multisensor/sensortag.h b/multisensor/sensortag.h index 29c17fae..b39e4fd3 100644 --- a/multisensor/sensortag.h +++ b/multisensor/sensortag.h @@ -68,11 +68,27 @@ class SensorTag : public QObject { Q_OBJECT public: + enum SensorAccelerometerRange { + SensorAccelerometerRange2G = 2, + SensorAccelerometerRange4G = 4, + SensorAccelerometerRange8G = 8, + SensorAccelerometerRange16G = 16 + }; + Q_ENUM(SensorAccelerometerRange) + + enum SensorMode { + SensorModeLocal = 0, + SensorModeRemote = 1, + SensorModeTest = 2 + }; + Q_ENUM(SensorMode) + explicit SensorTag(Device *device, BluetoothLowEnergyDevice *bluetoothDevice, QObject *parent = nullptr); Device *device(); BluetoothLowEnergyDevice *bluetoothDevice(); + // Configurations void setAccelerometerEnabled(bool enabled); void setGyroscopeEnabled(bool enabled); void setMagnetometerEnabled(bool enabled); @@ -80,6 +96,12 @@ public: void setMeasurementPeriodMovement(int period); void setMovementSensitivity(int percentage); + // Actions + void setGreenLedPower(bool power); + void setRedLedPower(bool power); + void setBuzzerPower(bool power); + void buzzerImpulse(); + private: Device *m_device; BluetoothLowEnergyDevice *m_bluetoothDevice; @@ -91,6 +113,7 @@ private: QLowEnergyService *m_opticalService = nullptr; QLowEnergyService *m_keyService = nullptr; QLowEnergyService *m_movementService = nullptr; + QLowEnergyService *m_ioService = nullptr; // Characteristics QLowEnergyCharacteristic m_temperatureDataCharacteristic; @@ -115,19 +138,25 @@ private: QLowEnergyCharacteristic m_movementConfigurationCharacteristic; QLowEnergyCharacteristic m_movementPeriodCharacteristic; + QLowEnergyCharacteristic m_ioDataCharacteristic; + QLowEnergyCharacteristic m_ioConfigurationCharacteristic; + // Measure periods int m_temperaturePeriod = 2500; int m_humidityPeriod = 2500; int m_pressurePeriod = 2500; int m_opticalPeriod = 2500; int m_movementPeriod = 500; - double m_movementSensitivity = 50; + double m_movementSensitivity = 0.5; // Note: possible value: 2G, 4G, 8G, 16G, default 2G - int m_accelerometerRange = 2; + SensorAccelerometerRange m_accelerometerRange = SensorAccelerometerRange16G; bool m_leftButtonPressed = false; bool m_rightButtonPressed = false; bool m_magnetDetected = false; + bool m_greenLedEnabled = false; + bool m_redLedEnabled = false; + bool m_buzzerEnabled = false; // Plugin configs bool m_accelerometerEnabled = true; @@ -136,6 +165,8 @@ private: void configurePeriod(QLowEnergyService *serice, const QLowEnergyCharacteristic &characteristic, int measurementPeriod); void configureMovement(bool gyroscopeEnabled = false, bool accelerometerEnabled = true, bool magnetometerEnabled = true, bool wakeOnMotion = true); + void configureSensorMode(const SensorMode &mode); + void configureIo(); void processTemperatureData(const QByteArray &data); void processKeyData(const QByteArray &data); @@ -186,6 +217,11 @@ private slots: void onMovementServiceStateChanged(const QLowEnergyService::ServiceState &state); void onMovementServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); + // IO service + void onIoServiceStateChanged(const QLowEnergyService::ServiceState &state); + void onIoServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); + + void onBuzzerImpulseTimeout(); }; #endif // SENSORTAG_H From a7d11896367828100d48d7bf0325d8d94617d7ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Sat, 24 Feb 2018 10:48:38 +0100 Subject: [PATCH 13/62] Fix IO service clean up --- multisensor/sensortag.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/multisensor/sensortag.cpp b/multisensor/sensortag.cpp index 0b2e75f9..30c8784e 100644 --- a/multisensor/sensortag.cpp +++ b/multisensor/sensortag.cpp @@ -468,6 +468,7 @@ void SensorTag::onConnectedChanged(const bool &connected) m_opticalService->deleteLater(); m_keyService->deleteLater(); m_movementService->deleteLater(); + m_ioService->deleteLater(); m_temperatureService = nullptr; m_humidityService = nullptr; @@ -475,6 +476,7 @@ void SensorTag::onConnectedChanged(const bool &connected) m_opticalService = nullptr; m_keyService = nullptr; m_movementService = nullptr; + m_ioService = nullptr; } } From 7bf7ed37844e0f16450e110755a52bc79c880c39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Sat, 24 Feb 2018 12:14:46 +0100 Subject: [PATCH 14/62] Improve motion detection --- multisensor/devicepluginmultisensor.json | 3 ++ multisensor/sensortag.cpp | 53 +++++++++++++++++------- multisensor/sensortag.h | 6 ++- 3 files changed, 44 insertions(+), 18 deletions(-) diff --git a/multisensor/devicepluginmultisensor.json b/multisensor/devicepluginmultisensor.json index 0acad317..bac8875a 100644 --- a/multisensor/devicepluginmultisensor.json +++ b/multisensor/devicepluginmultisensor.json @@ -186,6 +186,7 @@ "displayNameEvent": "Green LED power changed", "displayNameAction": "Set green LED power", "type": "bool", + "cached": false, "defaultValue": false, "writable": true }, @@ -196,6 +197,7 @@ "displayNameEvent": "Red LED power changed", "displayNameAction": "Set red LED power", "type": "bool", + "cached": false, "defaultValue": false, "writable": true }, @@ -206,6 +208,7 @@ "displayNameEvent": "Buzzer power changed", "displayNameAction": "Set buzzer power", "type": "bool", + "cached": false, "defaultValue": false, "writable": true } diff --git a/multisensor/sensortag.cpp b/multisensor/sensortag.cpp index 30c8784e..53035da0 100644 --- a/multisensor/sensortag.cpp +++ b/multisensor/sensortag.cpp @@ -55,7 +55,18 @@ void SensorTag::setAccelerometerEnabled(bool enabled) return; m_accelerometerEnabled = enabled; - configureMovement(m_gyroscopeEnabled, m_accelerometerEnabled, m_magnetometerEnabled, true); + configureMovement(); +} + +void SensorTag::setAccelerometerRange(const SensorTag::SensorAccelerometerRange &range) +{ + qCDebug(dcMultiSensor()) << "Accelerometer" << range; + + if (m_accelerometerRange == range) + return; + + m_accelerometerRange = range; + configureMovement(); } void SensorTag::setGyroscopeEnabled(bool enabled) @@ -66,7 +77,7 @@ void SensorTag::setGyroscopeEnabled(bool enabled) return; m_gyroscopeEnabled = enabled; - configureMovement(m_gyroscopeEnabled, m_accelerometerEnabled, m_magnetometerEnabled, true); + configureMovement(); } void SensorTag::setMagnetometerEnabled(bool enabled) @@ -77,7 +88,7 @@ void SensorTag::setMagnetometerEnabled(bool enabled) return; m_magnetometerEnabled = enabled; - configureMovement(m_gyroscopeEnabled, m_accelerometerEnabled, m_magnetometerEnabled, true); + configureMovement(); } void SensorTag::setMeasurementPeriod(int period) @@ -171,33 +182,32 @@ void SensorTag::configurePeriod(QLowEnergyService *serice, const QLowEnergyChara serice->writeCharacteristic(characteristic, payload); } -void SensorTag::configureMovement(bool gyroscopeEnabled, bool accelerometerEnabled, bool magnetometerEnabled, bool wakeOnMotion) +void SensorTag::configureMovement() { if (!m_movementService || !m_movementConfigurationCharacteristic.isValid()) return; quint16 configuration = 0; - if (gyroscopeEnabled) { + if (m_gyroscopeEnabled) { configuration |= (1 << 0); // enable x-axis configuration |= (1 << 1); // enable y-axis configuration |= (1 << 2); // enable z-axis } - if (accelerometerEnabled) { + if (m_accelerometerEnabled) { configuration |= (1 << 3); // enable x-axis configuration |= (1 << 4); // enable y-axis configuration |= (1 << 5); // enable z-axis } - if (magnetometerEnabled) { + if (m_magnetometerEnabled) { configuration |= (1 << 6); // enable all axis } - if (wakeOnMotion) { - configuration |= (1 << 8); // enable - } + // Always enable wake on movement in order to save energy + configuration |= (1 << 8); // enable - // Accelerometer range 2 Bit ( 0 = 2G, 1 = 4G, 2 = 8G, 3 = 16G) - Default 0 + // Accelerometer range 2 Bit ( 0 = 2G, 1 = 4G, 2 = 8G, 3 = 16G) switch (m_accelerometerRange) { case SensorAccelerometerRange2G: // Bit 9 = 0 @@ -362,7 +372,7 @@ void SensorTag::processOpticalData(const QByteArray &data) void SensorTag::processMovementData(const QByteArray &data) { - qCDebug(dcMultiSensor()) << "--> Movement value" << data.toHex(); + //qCDebug(dcMultiSensor()) << "--> Movement value" << data.toHex(); QByteArray payload(data); QDataStream stream(&payload, QIODevice::ReadOnly); @@ -383,6 +393,7 @@ void SensorTag::processMovementData(const QByteArray &data) double gyroY = static_cast(gyroYRaw) / (65536 / 500); double gyroZ = static_cast(gyroZRaw) / (65536 / 500); + // Calculate acceleration [G], Range +- m_accelerometerRange double accX = static_cast(accXRaw) / (32768 / static_cast(m_accelerometerRange)); double accY = static_cast(accYRaw) / (32768 / static_cast(m_accelerometerRange)); double accZ = static_cast(accZRaw) / (32768 / static_cast(m_accelerometerRange)); @@ -404,11 +415,18 @@ void SensorTag::processMovementData(const QByteArray &data) Q_UNUSED(gyroscopeVector) Q_UNUSED(magnetometerVector) - double limit = m_accelerometerRange * m_movementSensitivity; - bool motionDetected = (accelerometerVector.length() >= limit); - qCDebug(dcMultiSensor()) << accelerometerVector.length() << " | " << limit << (motionDetected ? "motion" : "-"); + // Initialize the accelerometer value if no data known yet + if (m_lastAccelerometerVectorLenght == -99999) { + m_lastAccelerometerVectorLenght = accelerometerVector.length(); + return; + } + + double delta = qAbs(qAbs(m_lastAccelerometerVectorLenght) - qAbs(accelerometerVector.length())); + bool motionDetected = (delta >= m_movementSensitivity); + //qCDebug(dcMultiSensor()) << accelerometerVector.length() << " | " << delta << m_movementSensitivity << (motionDetected ? "motion" : "-"); m_device->setStateValue(sensortagMovingStateTypeId, motionDetected); + m_lastAccelerometerVectorLenght = accelerometerVector.length(); } void SensorTag::setLeftButtonPressed(bool pressed) @@ -477,6 +495,8 @@ void SensorTag::onConnectedChanged(const bool &connected) m_keyService = nullptr; m_movementService = nullptr; m_ioService = nullptr; + + m_lastAccelerometerVectorLenght = -99999; } } @@ -956,7 +976,7 @@ void SensorTag::onMovementServiceStateChanged(const QLowEnergyService::ServiceSt // Set measurement period configurePeriod(m_movementService, m_movementPeriodCharacteristic, m_movementPeriod); - configureMovement(m_gyroscopeEnabled, m_accelerometerEnabled, m_magnetometerEnabled, true); + configureMovement(); // Enable measuring m_movementService->writeCharacteristic(m_movementConfigurationCharacteristic, QByteArray::fromHex("01")); @@ -1002,6 +1022,7 @@ void SensorTag::onIoServiceStateChanged(const QLowEnergyService::ServiceState &s m_bluetoothDevice->disconnectDevice(); } + configureIo(); configureSensorMode(SensorModeRemote); configureIo(); } diff --git a/multisensor/sensortag.h b/multisensor/sensortag.h index b39e4fd3..eb233420 100644 --- a/multisensor/sensortag.h +++ b/multisensor/sensortag.h @@ -90,6 +90,7 @@ public: // Configurations void setAccelerometerEnabled(bool enabled); + void setAccelerometerRange(const SensorAccelerometerRange &range); void setGyroscopeEnabled(bool enabled); void setMagnetometerEnabled(bool enabled); void setMeasurementPeriod(int period); @@ -148,15 +149,16 @@ private: int m_opticalPeriod = 2500; int m_movementPeriod = 500; double m_movementSensitivity = 0.5; - // Note: possible value: 2G, 4G, 8G, 16G, default 2G SensorAccelerometerRange m_accelerometerRange = SensorAccelerometerRange16G; + // States bool m_leftButtonPressed = false; bool m_rightButtonPressed = false; bool m_magnetDetected = false; bool m_greenLedEnabled = false; bool m_redLedEnabled = false; bool m_buzzerEnabled = false; + double m_lastAccelerometerVectorLenght = -99999; // Plugin configs bool m_accelerometerEnabled = true; @@ -164,7 +166,7 @@ private: bool m_magnetometerEnabled = false; void configurePeriod(QLowEnergyService *serice, const QLowEnergyCharacteristic &characteristic, int measurementPeriod); - void configureMovement(bool gyroscopeEnabled = false, bool accelerometerEnabled = true, bool magnetometerEnabled = true, bool wakeOnMotion = true); + void configureMovement(); void configureSensorMode(const SensorMode &mode); void configureIo(); From 3c04f0057a1d140b76a904f1927d7bb44ce99c44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Sat, 24 Feb 2018 14:29:33 +0100 Subject: [PATCH 15/62] Fix magnet sensor toggle --- multisensor/sensortag.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/multisensor/sensortag.cpp b/multisensor/sensortag.cpp index 53035da0..2f8223d6 100644 --- a/multisensor/sensortag.cpp +++ b/multisensor/sensortag.cpp @@ -305,7 +305,7 @@ void SensorTag::processKeyData(const QByteArray &data) quint8 flags = static_cast(data.at(0)); setLeftButtonPressed(testBitUint8(flags, 0)); setRightButtonPressed(testBitUint8(flags, 1)); - setMagnetDetected(!testBitUint8(flags, 2)); + setMagnetDetected(testBitUint8(flags, 2)); } void SensorTag::processHumidityData(const QByteArray &data) From c6af7eb04e0b202c77de1059f547aa1f5b7bc16c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Sat, 24 Feb 2018 14:30:30 +0100 Subject: [PATCH 16/62] Update default values for plugin configuration --- multisensor/devicepluginmultisensor.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/multisensor/devicepluginmultisensor.json b/multisensor/devicepluginmultisensor.json index bac8875a..af761ba6 100644 --- a/multisensor/devicepluginmultisensor.json +++ b/multisensor/devicepluginmultisensor.json @@ -40,7 +40,7 @@ "type": "int", "minValue": 10, "maxValue": 2500, - "defaultValue": 500 + "defaultValue": 300 }, { "id": "a3298d16-eea6-4474-9061-90466e92d476", @@ -50,7 +50,7 @@ "unit": "Percentage", "minValue": 0, "maxValue": 100, - "defaultValue": 50 + "defaultValue": 40 } ], "vendors": [ From 431d56d366a5827874f604e70b97e5a742a25e5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 13 Mar 2018 14:14:39 +0100 Subject: [PATCH 17/62] Temporary commit for nymea migration --- multisensor/devicepluginmultisensor.cpp | 14 +- multisensor/devicepluginmultisensor.json | 28 +++ multisensor/multisensor.plot | 15 ++ multisensor/multisensor.pro | 8 +- multisensor/sensordataprocessor.cpp | 307 +++++++++++++++++++++++ multisensor/sensordataprocessor.h | 71 ++++++ multisensor/sensorfilter.cpp | 156 ++++++++++++ multisensor/sensorfilter.h | 60 +++++ multisensor/sensortag.cpp | 282 ++++++--------------- multisensor/sensortag.h | 49 ++-- 10 files changed, 758 insertions(+), 232 deletions(-) create mode 100644 multisensor/multisensor.plot create mode 100644 multisensor/sensordataprocessor.cpp create mode 100644 multisensor/sensordataprocessor.h create mode 100644 multisensor/sensorfilter.cpp create mode 100644 multisensor/sensorfilter.h diff --git a/multisensor/devicepluginmultisensor.cpp b/multisensor/devicepluginmultisensor.cpp index e356dfd8..0a391cde 100644 --- a/multisensor/devicepluginmultisensor.cpp +++ b/multisensor/devicepluginmultisensor.cpp @@ -97,6 +97,10 @@ DeviceManager::DeviceSetupStatus DevicePluginMultiSensor::setupDevice(Device *de SensorTag *sensor = new SensorTag(device, bluetoothDevice, this); // Preconfigure with plugin configurations + sensor->setTemperatureSensorEnabled(configValue(MultiSensorTemperatureEnabledParamTypeId).toBool()); + sensor->setHumiditySensorEnabled(configValue(MultiSensorHumidityEnabledParamTypeId).toBool()); + sensor->setPressureSensorEnabled(configValue(MultiSensorPressureEnabledParamTypeId).toBool()); + sensor->setOpticalSensorEnabled(configValue(MultiSensorOpticalEnabledParamTypeId).toBool()); sensor->setAccelerometerEnabled(configValue(MultiSensorAccelerometerEnabledParamTypeId).toBool()); sensor->setGyroscopeEnabled(configValue(MultiSensorGyroscopeEnabledParamTypeId).toBool()); sensor->setMagnetometerEnabled(configValue(MultiSensorMagnetometerEnabledParamTypeId).toBool()); @@ -200,7 +204,15 @@ void DevicePluginMultiSensor::onPluginConfigurationChanged(const ParamTypeId &pa qCDebug(dcMultiSensor()) << "Plugin configuration changed" << paramTypeId.toString() << value; foreach (SensorTag *sensor, m_sensors.values()) { - if (paramTypeId == MultiSensorAccelerometerEnabledParamTypeId) { + if (paramTypeId == MultiSensorTemperatureEnabledParamTypeId) { + sensor->setTemperatureSensorEnabled(value.toBool()); + } else if (paramTypeId == MultiSensorHumidityEnabledParamTypeId) { + sensor->setHumiditySensorEnabled(value.toBool()); + } else if (paramTypeId == MultiSensorPressureEnabledParamTypeId) { + sensor->setPressureSensorEnabled(value.toBool()); + } else if (paramTypeId == MultiSensorOpticalEnabledParamTypeId) { + sensor->setOpticalSensorEnabled(value.toBool()); + } else if (paramTypeId == MultiSensorAccelerometerEnabledParamTypeId) { sensor->setAccelerometerEnabled(value.toBool()); } else if (paramTypeId == MultiSensorGyroscopeEnabledParamTypeId) { sensor->setGyroscopeEnabled(value.toBool()); diff --git a/multisensor/devicepluginmultisensor.json b/multisensor/devicepluginmultisensor.json index af761ba6..1a2e3689 100644 --- a/multisensor/devicepluginmultisensor.json +++ b/multisensor/devicepluginmultisensor.json @@ -3,6 +3,34 @@ "name": "MultiSensor", "id": "23bf0d8d-df7d-4bee-80ee-f015c5a7f52e", "paramTypes": [ + { + "id": "6f0e40a2-0f97-4c1e-8229-757e3c18b345", + "name": "temperatureEnabled", + "displayName": "Temperature sensor enabled", + "type": "bool", + "defaultValue": true + }, + { + "id": "29881172-626a-42d5-83b8-3e2e5ca533be", + "name": "humidityEnabled", + "displayName": "Humidity sensor enabled", + "type": "bool", + "defaultValue": true + }, + { + "id": "50e5e282-9707-4b31-bb3f-a6ca30a7e1ff", + "name": "pressureEnabled", + "displayName": "Pressure sensor enabled", + "type": "bool", + "defaultValue": true + }, + { + "id": "1460a6d6-9fb4-4385-b27b-ee4b7594e454", + "name": "opticalEnabled", + "displayName": "Optical sensor enabled", + "type": "bool", + "defaultValue": true + }, { "id": "5786c91a-d94d-461a-8d22-f978dd1438ab", "name": "accelerometerEnabled", diff --git a/multisensor/multisensor.plot b/multisensor/multisensor.plot new file mode 100644 index 00000000..3bcf24b4 --- /dev/null +++ b/multisensor/multisensor.plot @@ -0,0 +1,15 @@ +# Autocreated plot script for system disk usage +set term png small size 2000,1000 +set output "multisensor.png" +set title "Multisensor filter" +set xlabel "Time" +set ylabel "Value" +set xdata time +set timefmt "%s" +set xtics format "%H:%M:%S" +set yrange [0:*] +set grid + +plot "/tmp/multisensor.log" using 1:2 with lines title "Original value", \ + "/tmp/multisensor.log" using 1:3 with lines title "Filtered value" + diff --git a/multisensor/multisensor.pro b/multisensor/multisensor.pro index 83fe6c9b..86cba0f8 100644 --- a/multisensor/multisensor.pro +++ b/multisensor/multisensor.pro @@ -5,9 +5,13 @@ TARGET = $$qtLibraryTarget(nymea_devicepluginmultisensor) SOURCES += \ devicepluginmultisensor.cpp \ #sensortag-old.cpp \ - sensortag.cpp + sensortag.cpp \ + sensorfilter.cpp \ + sensordataprocessor.cpp HEADERS += \ devicepluginmultisensor.h \ #sensortag-old.h \ - sensortag.h + sensortag.h \ + sensorfilter.h \ + sensordataprocessor.h diff --git a/multisensor/sensordataprocessor.cpp b/multisensor/sensordataprocessor.cpp new file mode 100644 index 00000000..ca841882 --- /dev/null +++ b/multisensor/sensordataprocessor.cpp @@ -0,0 +1,307 @@ +#include "sensordataprocessor.h" +#include "extern-plugininfo.h" +#include "math.h" + +#include +#include +#include +#include + +SensorDataProcessor::SensorDataProcessor(Device *device, QObject *parent) : + QObject(parent), + m_device(device) +{ + // Create data filters + m_temperatureFilter = new SensorFilter(SensorFilter::TypeLowPass, this); + m_temperatureFilter->setLowPassAlpha(0.1); + m_temperatureFilter->setFilterWindowSize(30); + + m_objectTemperatureFilter = new SensorFilter(SensorFilter::TypeLowPass, this); + m_objectTemperatureFilter->setLowPassAlpha(0.4); + m_objectTemperatureFilter->setFilterWindowSize(20); + + m_humidityFilter = new SensorFilter(SensorFilter::TypeLowPass, this); + m_humidityFilter->setLowPassAlpha(0.1); + m_humidityFilter->setFilterWindowSize(30); + + m_pressureFilter = new SensorFilter(SensorFilter::TypeLowPass, this); + m_pressureFilter->setLowPassAlpha(0.1); + m_pressureFilter->setFilterWindowSize(30); + + m_opticalFilter = new SensorFilter(SensorFilter::TypeLowPass, this); + m_opticalFilter->setLowPassAlpha(0.01); + m_opticalFilter->setFilterWindowSize(10); + + m_accelerometerFilter = new SensorFilter(SensorFilter::TypeLowPass, this); + m_accelerometerFilter->setLowPassAlpha(0.6); + m_accelerometerFilter->setFilterWindowSize(40); + + // Check if the data should be logged + if (m_filterDebug) { + m_logFile = new QFile("/tmp/multisensor.log", this); + if (!m_logFile->open(QIODevice::Append | QIODevice::Text)) { + qCWarning(dcMultiSensor()) << "Could not open log file" << m_logFile->fileName(); + delete m_logFile; + m_logFile = nullptr; + } + } +} + +SensorDataProcessor::~SensorDataProcessor() +{ + if (m_logFile) { + m_logFile->close(); + } +} + +void SensorDataProcessor::setAccelerometerRange(int accelerometerRange) +{ + m_accelerometerRange = accelerometerRange; +} + +void SensorDataProcessor::setMovementSensitivity(int movementSensitivity) +{ + m_movementSensitivity = movementSensitivity; +} + +double SensorDataProcessor::roundValue(float value) +{ + int tmpValue = static_cast(value * 10); + return static_cast(tmpValue) / 10.0; +} + +bool SensorDataProcessor::testBitUint8(quint8 value, int bitPosition) +{ + return (((value)>> (bitPosition)) & 1); +} + +void SensorDataProcessor::processTemperatureData(const QByteArray &data) +{ + Q_ASSERT(data.count() == 4); + + quint16 rawObjectTemperature = 0; + quint16 rawAmbientTemperature = 0; + + QByteArray payload(data); + QDataStream stream(&payload, QIODevice::ReadOnly); + stream.setByteOrder(QDataStream::LittleEndian); + stream >> rawObjectTemperature >> rawAmbientTemperature ; + + double scaleFactor = 0.03125; + double objectTemperature = static_cast(rawObjectTemperature) / 4 * scaleFactor; + double ambientTemperature = static_cast(rawAmbientTemperature) / 4 * scaleFactor; + + //qCDebug(dcMultiSensor()) << "Temperature value" << data.toHex(); + //qCDebug(dcMultiSensor()) << "Object temperature" << roundValue(objectTemperature) << "°C"; + //qCDebug(dcMultiSensor()) << "Ambient temperature" << roundValue(ambientTemperature) << "°C"; + + double objectTemperatureFiltered = m_objectTemperatureFilter->filterValue(objectTemperature); + double ambientTemperatureFiltered = m_temperatureFilter->filterValue(ambientTemperature); + + if (m_objectTemperatureFilter->isReady()) { + m_device->setStateValue(sensortagObjectTemperatureStateTypeId, roundValue(objectTemperatureFiltered)); + } + + // Note: only change the state once the filter has collected enought data + if (m_temperatureFilter->isReady()) { + m_device->setStateValue(sensortagTemperatureStateTypeId, roundValue(ambientTemperatureFiltered)); + } + +} + +void SensorDataProcessor::processKeyData(const QByteArray &data) +{ + Q_ASSERT(data.count() == 1); + quint8 flags = static_cast(data.at(0)); + setLeftButtonPressed(testBitUint8(flags, 0)); + setRightButtonPressed(testBitUint8(flags, 1)); + setMagnetDetected(testBitUint8(flags, 2)); +} + +void SensorDataProcessor::processHumidityData(const QByteArray &data) +{ + Q_ASSERT(data.count() == 4); + quint16 rawHumidityTemperature = 0; + quint16 rawHumidity = 0; + + QByteArray payload(data); + QDataStream stream(&payload, QIODevice::ReadOnly); + stream.setByteOrder(QDataStream::LittleEndian); + stream >> rawHumidityTemperature >> rawHumidity ; + + // Note: we don't need the temperature measurement from the humidity sensor + //double humidityTemperature = (rawHumidityTemperature / 65536.0 * 165.0) - 40; + double humidity = rawHumidity / 65536.0 * 100.0; + double humidityFiltered = m_humidityFilter->filterValue(humidity); + + if (m_humidityFilter->isReady()) { + m_device->setStateValue(sensortagHumidityStateTypeId, roundValue(humidityFiltered)); + } +} + +void SensorDataProcessor::processPressureData(const QByteArray &data) +{ + Q_ASSERT(data.count() == 6); + + QByteArray temperatureData(data.left(3)); + quint32 rawTemperature = static_cast(temperatureData.at(2)); + rawTemperature <<= 8; + rawTemperature |= static_cast(temperatureData.at(1)); + rawTemperature <<= 8; + rawTemperature |= static_cast(temperatureData.at(0)); + + QByteArray pressureData(data.right(3)); + quint32 rawPressure = static_cast(pressureData.at(2)); + rawPressure <<= 8; + rawPressure |= static_cast(pressureData.at(1)); + rawPressure <<= 8; + rawPressure |= static_cast(pressureData.at(0)); + + // Note: we don't need the temperature measurement from the barometic pressure sensor + //qCDebug(dcMultiSensor()) << "Pressure temperature:" << roundValue(rawTemperature / 100.0) << "°C"; + //qCDebug(dcMultiSensor()) << "Pressure:" << roundValue(rawPressure / 100.0) << "mBar"; + + double pressureFiltered = m_pressureFilter->filterValue(rawPressure / 100.0); + if (m_pressureFilter->isReady()) { + m_device->setStateValue(sensortagPressureStateTypeId, roundValue(pressureFiltered)); + } +} + +void SensorDataProcessor::processOpticalData(const QByteArray &data) +{ + Q_ASSERT(data.count() == 2); + + quint16 rawOptical = 0; + QByteArray payload(data); + QDataStream stream(&payload, QIODevice::ReadOnly); + stream.setByteOrder(QDataStream::LittleEndian); + stream >> rawOptical; + + quint16 lumm = rawOptical & 0x0FFF; + quint16 lume = (rawOptical & 0xF000) >> 12; + + double lux = lumm * (0.01 * pow(2,lume)); + + //qCDebug(dcMultiSensor()) << "Lux:" << lux; + + double luxFiltered = m_opticalFilter->filterValue(lux); + if (m_opticalFilter->isReady()) { + m_device->setStateValue(sensortagLightIntensityStateTypeId, qRound(luxFiltered)); + } + + logSensorValue(lux, qRound(luxFiltered)); +} + +void SensorDataProcessor::processMovementData(const QByteArray &data) +{ + //qCDebug(dcMultiSensor()) << "--> Movement value" << data.toHex(); + + QByteArray payload(data); + QDataStream stream(&payload, QIODevice::ReadOnly); + stream.setByteOrder(QDataStream::LittleEndian); + + qint16 gyroXRaw = 0; qint16 gyroYRaw = 0; qint16 gyroZRaw = 0; + stream >> gyroXRaw >> gyroYRaw >> gyroZRaw; + + qint16 accXRaw = 0; qint16 accYRaw = 0; qint16 accZRaw = 0; + stream >> accXRaw >> accYRaw >> accZRaw; + + qint16 magXRaw = 0; qint16 magYRaw = 0; qint16 magZRaw = 0; + stream >> magXRaw >> magYRaw >> magZRaw; + + + // Calculate rotation [deg/s], Range +- 250 + double gyroX = static_cast(gyroXRaw) / (65536 / 500); + double gyroY = static_cast(gyroYRaw) / (65536 / 500); + double gyroZ = static_cast(gyroZRaw) / (65536 / 500); + + // Calculate acceleration [G], Range +- m_accelerometerRange + double accX = static_cast(accXRaw) / (32768 / static_cast(m_accelerometerRange)); + double accY = static_cast(accYRaw) / (32768 / static_cast(m_accelerometerRange)); + double accZ = static_cast(accZRaw) / (32768 / static_cast(m_accelerometerRange)); + + // Calculate magnetism [uT], Range +- 4900 + double magX = static_cast(magXRaw); + double magY = static_cast(magYRaw); + double magZ = static_cast(magZRaw); + + + //qCDebug(dcMultiSensor()) << "Accelerometer x:" << accX << " y:" << accY << " z:" << accZ; + //qCDebug(dcMultiSensor()) << "Gyroscope x:" << gyroX << " y:" << gyroY << " z:" << gyroZ; + //qCDebug(dcMultiSensor()) << "Magnetometer x:" << magX << " y:" << magY << " z:" << magZ; + + QVector3D accelerometerVector(accX, accY, accZ); + QVector3D gyroscopeVector(gyroX, gyroY, gyroZ); + QVector3D magnetometerVector(magX, magY, magZ); + + Q_UNUSED(gyroscopeVector) + Q_UNUSED(magnetometerVector) + + double filteredVectorLength = m_accelerometerFilter->filterValue(accelerometerVector.length()); + + // Initialize the accelerometer value if no data known yet + if (m_lastAccelerometerVectorLenght == -99999) { + m_lastAccelerometerVectorLenght = filteredVectorLength; + return; + } + + double delta = qAbs(qAbs(m_lastAccelerometerVectorLenght) - qAbs(filteredVectorLength)); + bool motionDetected = (delta >= m_movementSensitivity); + m_device->setStateValue(sensortagMovingStateTypeId, motionDetected); + m_lastAccelerometerVectorLenght = filteredVectorLength; +} + +void SensorDataProcessor::reset() +{ + m_lastAccelerometerVectorLenght = -99999; + + // Reset data filters + m_temperatureFilter->reset(); + m_objectTemperatureFilter->reset(); + m_humidityFilter->reset(); + m_pressureFilter->reset(); + m_opticalFilter->reset(); + m_accelerometerFilter->reset(); +} + +void SensorDataProcessor::setLeftButtonPressed(bool pressed) +{ + if (m_leftButtonPressed == pressed) + return; + + qCDebug(dcMultiSensor()) << "Left button" << (pressed ? "pressed" : "released"); + m_leftButtonPressed = pressed; + m_device->setStateValue(sensortagLeftButtonPressedStateTypeId, m_leftButtonPressed); +} + +void SensorDataProcessor::setRightButtonPressed(bool pressed) +{ + if (m_rightButtonPressed == pressed) + return; + + qCDebug(dcMultiSensor()) << "Right button" << (pressed ? "pressed" : "released"); + m_rightButtonPressed = pressed; + m_device->setStateValue(sensortagRightButtonPressedStateTypeId, m_rightButtonPressed); +} + +void SensorDataProcessor::setMagnetDetected(bool detected) +{ + if (m_magnetDetected == detected) + return; + + qCDebug(dcMultiSensor()) << "Magnet detector" << (detected ? "active" : "inactive"); + m_magnetDetected = detected; + m_device->setStateValue(sensortagMagnetDetectedStateTypeId, m_magnetDetected); +} + +void SensorDataProcessor::logSensorValue(double originalValue, double filteredValue) +{ + if (!m_filterDebug || !m_logFile) + return; + + QString logLine = QString("%1 %2 %3\n").arg(QDateTime::currentDateTime().toTime_t()).arg(originalValue).arg(filteredValue); + + QTextStream logStream(m_logFile); + logStream.setCodec("UTF-8"); + logStream << logLine; +} diff --git a/multisensor/sensordataprocessor.h b/multisensor/sensordataprocessor.h new file mode 100644 index 00000000..aba7fe94 --- /dev/null +++ b/multisensor/sensordataprocessor.h @@ -0,0 +1,71 @@ +#ifndef SENSORDATAPROCESSOR_H +#define SENSORDATAPROCESSOR_H + +#include +#include + +#include "plugin/device.h" +#include "extern-plugininfo.h" + +#include "sensorfilter.h" + +class SensorDataProcessor : public QObject +{ + Q_OBJECT +public: + explicit SensorDataProcessor(Device *device, QObject *parent = nullptr); + ~SensorDataProcessor(); + + void setAccelerometerRange(int accelerometerRange); + void setMovementSensitivity(int movementSensitivity); + + static double roundValue(float value); + static bool testBitUint8(quint8 value, int bitPosition); + + void processTemperatureData(const QByteArray &data); + void processKeyData(const QByteArray &data); + void processHumidityData(const QByteArray &data); + void processPressureData(const QByteArray &data); + void processOpticalData(const QByteArray &data); + void processMovementData(const QByteArray &data); + + void reset(); + +private: + Device *m_device = nullptr; + double m_lastAccelerometerVectorLenght = -99999; + + int m_accelerometerRange = 16; + double m_movementSensitivity = 0.5; + + bool m_leftButtonPressed = false; + bool m_rightButtonPressed = false; + bool m_magnetDetected = false; + + // Log sensor data for debugging filters + // Note: set this to true for enable sensor filter logging + bool m_filterDebug = true; + QFile *m_logFile = nullptr; + + SensorFilter *m_temperatureFilter = nullptr; + SensorFilter *m_objectTemperatureFilter = nullptr; + SensorFilter *m_humidityFilter = nullptr; + SensorFilter *m_pressureFilter = nullptr; + SensorFilter *m_opticalFilter = nullptr; + SensorFilter *m_accelerometerFilter = nullptr; + + // Set methods + void setLeftButtonPressed(bool pressed); + void setRightButtonPressed(bool pressed); + void setMagnetDetected(bool detected); + + void logSensorValue(double originalValue, double filteredValue); + + +signals: + +private slots: + +}; + +#endif // SENSORDATAPROCESSOR_H diff --git a/multisensor/sensorfilter.cpp b/multisensor/sensorfilter.cpp new file mode 100644 index 00000000..2a69dd0d --- /dev/null +++ b/multisensor/sensorfilter.cpp @@ -0,0 +1,156 @@ +#include "sensorfilter.h" + +#include + +SensorFilter::SensorFilter(Type filterType, QObject *parent) : + QObject(parent), + m_filterType(filterType) +{ + +} + +double SensorFilter::filterValue(double value) +{ + double resultValue = value; + switch (m_filterType) { + case TypeLowPass: + resultValue = lowPassFilterValue(value); + break; + case TypeHighPass: + resultValue = highPassFilterValue(value); + break; + case TypeAverage: + resultValue = averageFilterValue(value); + break; + default: + break; + } + + return resultValue; +} + +bool SensorFilter::isReady() const +{ + // Note: filter is ready once 10% of window filled + return m_inputData.size() >= m_filterWindowSize * 0.1; +} + +void SensorFilter::reset() +{ + m_averageSum = 0; + m_inputData.clear(); +} + +SensorFilter::Type SensorFilter::filterType() const +{ + return m_filterType; +} + +QVector SensorFilter::inputData() const +{ + return m_inputData; +} + +QVector SensorFilter::outputData() const +{ + return m_outputData; +} + +uint SensorFilter::windowSize() const +{ + return m_filterWindowSize; +} + +void SensorFilter::setFilterWindowSize(uint windowSize) +{ + Q_ASSERT_X(windowSize > 0, "value out of range", "The filter window size must be bigger than 0"); + m_filterWindowSize = windowSize; +} + +double SensorFilter::lowPassAlpha() const +{ + return m_lowPassAlpha; +} + +void SensorFilter::setLowPassAlpha(double alpha) +{ + Q_ASSERT_X(alpha > 0 && alpha <= 1, "value out of range", "The alpha low pass filter value must be [ 0 < alpha <= 1 ]"); + m_lowPassAlpha = alpha; +} + +double SensorFilter::highPassAlpha() const +{ + return m_highPassAlpha; +} + +void SensorFilter::setHighPassAlpha(double alpha) +{ + Q_ASSERT_X(alpha > 0 && alpha <= 1, "value out of range", "The alpha high pass filter value must be [ 0 < alpha <= 1 ]"); + m_highPassAlpha = alpha; +} + +void SensorFilter::addInputValue(double value) +{ + m_inputData.append(value); + if (m_inputData.size() > m_filterWindowSize) { + m_inputData.removeFirst(); + } +} + +double SensorFilter::lowPassFilterValue(double value) +{ + addInputValue(value); + + // Check if we have enought data for filtering + if (m_inputData.size() < 2) { + return value; + } + + QVector outputData; + outputData.append(m_inputData.at(0)); + for (int i = 1; i < m_inputData.size(); i++) { + // y[i] := y[i-1] + α * (x[i] - y[i-1]) + outputData.append(outputData.at(i - 1) + m_lowPassAlpha * (m_inputData.at(i) - outputData.at(i - 1))); + } + + m_outputData = outputData; + + return m_outputData.last(); +} + +double SensorFilter::highPassFilterValue(double value) +{ + addInputValue(value); + + // Check if we have enought data for filtering + if (m_inputData.size() < 2) { + return value; + } + + QVector outputData; + outputData.append(m_inputData.at(0)); + for (int i = 1; i < m_inputData.size(); i++) { + // y[i] := α * y[i-1] + α * (x[i] - x[i-1]) + outputData.append(m_highPassAlpha * outputData.at(i - 1) + m_highPassAlpha * (m_inputData.at(i) - m_inputData.at(i - 1))); + } + + m_outputData = outputData; + return m_outputData.last(); +} + +double SensorFilter::averageFilterValue(double value) +{ + if (m_inputData.isEmpty()) { + addInputValue(value); + m_averageSum = value; + return value; + } + + if (m_inputData.size() >= m_filterWindowSize) { + m_averageSum -= m_inputData.takeFirst(); + } + + addInputValue(value); + m_averageSum += value; + return m_averageSum / m_inputData.size(); +} diff --git a/multisensor/sensorfilter.h b/multisensor/sensorfilter.h new file mode 100644 index 00000000..d137ed13 --- /dev/null +++ b/multisensor/sensorfilter.h @@ -0,0 +1,60 @@ +#ifndef SENSORFILTER_H +#define SENSORFILTER_H + +#include +#include + +class SensorFilter : public QObject +{ + Q_OBJECT +public: + enum Type { + TypeLowPass, + TypeHighPass, + TypeAverage + }; + Q_ENUM(Type) + + explicit SensorFilter(Type filterType, QObject *parent = nullptr); + + double filterValue(double value); + + bool isReady() const; + void reset(); + + Type filterType() const; + + QVector inputData() const; + QVector outputData() const; + + // Filter configuration + uint windowSize() const; + void setFilterWindowSize(uint windowSize = 20); + + double lowPassAlpha() const; + void setLowPassAlpha(double alpha = 0.2); + + double highPassAlpha() const; + void setHighPassAlpha(double alpha = 0.2); + +private: + Type m_filterType = TypeLowPass; + int m_filterWindowSize = 20; + double m_lowPassAlpha = 0.2; + double m_highPassAlpha = 0.2; + + double m_averageSum = 0; + + QVector m_inputData; + QVector m_outputData; + + void addInputValue(double value); + + // Filter methods + double lowPassFilterValue(double value); + double highPassFilterValue(double value); + double averageFilterValue(double value); + +}; + +#endif // SENSORFILTER_H diff --git a/multisensor/sensortag.cpp b/multisensor/sensortag.cpp index 2f8223d6..2854d2c0 100644 --- a/multisensor/sensortag.cpp +++ b/multisensor/sensortag.cpp @@ -31,7 +31,8 @@ SensorTag::SensorTag(Device *device, BluetoothLowEnergyDevice *bluetoothDevice, QObject *parent) : QObject(parent), m_device(device), - m_bluetoothDevice(bluetoothDevice) + m_bluetoothDevice(bluetoothDevice), + m_dataProcessor(new SensorDataProcessor(m_device, this)) { connect(m_bluetoothDevice, &BluetoothLowEnergyDevice::connectedChanged, this, &SensorTag::onConnectedChanged); connect(m_bluetoothDevice, &BluetoothLowEnergyDevice::servicesDiscoveryFinished, this, &SensorTag::onServiceDiscoveryFinished); @@ -47,6 +48,50 @@ BluetoothLowEnergyDevice *SensorTag::bluetoothDevice() return m_bluetoothDevice; } +void SensorTag::setTemperatureSensorEnabled(bool enabled) +{ + qCDebug(dcMultiSensor()) << "Temperature sensor" << (enabled ? "enabled" : "disabled"); + + if (m_temperatureEnabled == enabled) + return; + + m_temperatureEnabled = enabled; + setTemperatureSensorPower(m_temperatureEnabled); +} + +void SensorTag::setHumiditySensorEnabled(bool enabled) +{ + qCDebug(dcMultiSensor()) << "Humidity sensor" << (enabled ? "enabled" : "disabled"); + + if (m_humidityEnabled == enabled) + return; + + m_humidityEnabled = enabled; + setHumiditySensorPower(m_humidityEnabled); +} + +void SensorTag::setPressureSensorEnabled(bool enabled) +{ + qCDebug(dcMultiSensor()) << "Pressure sensor" << (enabled ? "enabled" : "disabled"); + + if (m_pressureEnabled == enabled) + return; + + m_pressureEnabled = enabled; + setPressureSensorPower(m_pressureEnabled); +} + +void SensorTag::setOpticalSensorEnabled(bool enabled) +{ + qCDebug(dcMultiSensor()) << "Optical sensor" << (enabled ? "enabled" : "disabled"); + + if (m_opticalEnabled == enabled) + return; + + m_opticalEnabled = enabled; + setOpticalSensorPower(m_opticalEnabled); +} + void SensorTag::setAccelerometerEnabled(bool enabled) { qCDebug(dcMultiSensor()) << "Accelerometer" << (enabled ? "enabled" : "disabled"); @@ -275,203 +320,42 @@ void SensorTag::configureIo() m_ioService->writeCharacteristic(m_ioDataCharacteristic, payload); } -void SensorTag::processTemperatureData(const QByteArray &data) +void SensorTag::setTemperatureSensorPower(bool power) { - Q_ASSERT(data.count() == 4); - - quint16 rawObjectTemperature = 0; - quint16 rawAmbientTemperature = 0; - - QByteArray payload(data); - QDataStream stream(&payload, QIODevice::ReadOnly); - stream.setByteOrder(QDataStream::LittleEndian); - stream >> rawObjectTemperature >> rawAmbientTemperature ; - - float scaleFactor = 0.03125; - float objectTemperature = static_cast(rawObjectTemperature) / 4 * scaleFactor; - float ambientTemperature = static_cast(rawAmbientTemperature) / 4 * scaleFactor; - - //qCDebug(dcMultiSensor()) << "Temperature value" << data.toHex(); - //qCDebug(dcMultiSensor()) << "Object temperature" << roundValue(objectTemperature) << "°C"; - //qCDebug(dcMultiSensor()) << "Ambient temperature" << roundValue(ambientTemperature) << "°C"; - - m_device->setStateValue(sensortagObjectTemperatureStateTypeId, roundValue(objectTemperature)); - m_device->setStateValue(sensortagTemperatureStateTypeId, roundValue(ambientTemperature)); -} - -void SensorTag::processKeyData(const QByteArray &data) -{ - Q_ASSERT(data.count() == 1); - quint8 flags = static_cast(data.at(0)); - setLeftButtonPressed(testBitUint8(flags, 0)); - setRightButtonPressed(testBitUint8(flags, 1)); - setMagnetDetected(testBitUint8(flags, 2)); -} - -void SensorTag::processHumidityData(const QByteArray &data) -{ - Q_ASSERT(data.count() == 4); - quint16 rawHumidityTemperature = 0; - quint16 rawHumidity = 0; - - QByteArray payload(data); - QDataStream stream(&payload, QIODevice::ReadOnly); - stream.setByteOrder(QDataStream::LittleEndian); - stream >> rawHumidityTemperature >> rawHumidity ; - - // Note: we don't need the temperature measurement from the humidity sensor - //double humidityTemperature = (rawHumidityTemperature / 65536.0 * 165.0) - 40; - double humidity = rawHumidity / 65536.0 * 100.0; - - //qCDebug(dcMultiSensor()) << "Humidity" << humidity << "%" << humidityTemperature << "°C"; - m_device->setStateValue(sensortagHumidityStateTypeId, roundValue(humidity)); -} - -void SensorTag::processPressureData(const QByteArray &data) -{ - Q_ASSERT(data.count() == 6); - - QByteArray temperatureData(data.left(3)); - quint32 rawTemperature = static_cast(temperatureData.at(2)); - rawTemperature <<= 8; - rawTemperature |= static_cast(temperatureData.at(1)); - rawTemperature <<= 8; - rawTemperature |= static_cast(temperatureData.at(0)); - - QByteArray pressureData(data.right(3)); - quint32 rawPressure = static_cast(pressureData.at(2)); - rawPressure <<= 8; - rawPressure |= static_cast(pressureData.at(1)); - rawPressure <<= 8; - rawPressure |= static_cast(pressureData.at(0)); - - // Note: we don't need the temperature measurement from the barometic pressure sensor - //qCDebug(dcMultiSensor()) << "Pressure temperature:" << roundValue(rawTemperature / 100.0) << "°C"; - //qCDebug(dcMultiSensor()) << "Pressure:" << roundValue(rawPressure / 100.0) << "mBar"; - m_device->setStateValue(sensortagPressureStateTypeId, roundValue(rawPressure / 100.0)); -} - -void SensorTag::processOpticalData(const QByteArray &data) -{ - Q_ASSERT(data.count() == 2); - - quint16 rawOptical = 0; - QByteArray payload(data); - QDataStream stream(&payload, QIODevice::ReadOnly); - stream.setByteOrder(QDataStream::LittleEndian); - stream >> rawOptical; - - quint16 lumm = rawOptical & 0x0FFF; - quint16 lume = (rawOptical & 0xF000) >> 12; - - double lux = lumm * (0.01 * pow(2,lume)); - - //qCDebug(dcMultiSensor()) << "Lux:" << lux; - device()->setStateValue(sensortagLightIntensityStateTypeId, roundValue(lux)); -} - -void SensorTag::processMovementData(const QByteArray &data) -{ - //qCDebug(dcMultiSensor()) << "--> Movement value" << data.toHex(); - - QByteArray payload(data); - QDataStream stream(&payload, QIODevice::ReadOnly); - stream.setByteOrder(QDataStream::LittleEndian); - - qint16 gyroXRaw = 0; qint16 gyroYRaw = 0; qint16 gyroZRaw = 0; - stream >> gyroXRaw >> gyroYRaw >> gyroZRaw; - - qint16 accXRaw = 0; qint16 accYRaw = 0; qint16 accZRaw = 0; - stream >> accXRaw >> accYRaw >> accZRaw; - - qint16 magXRaw = 0; qint16 magYRaw = 0; qint16 magZRaw = 0; - stream >> magXRaw >> magYRaw >> magZRaw; - - - // Calculate rotation [deg/s], Range +- 250 - double gyroX = static_cast(gyroXRaw) / (65536 / 500); - double gyroY = static_cast(gyroYRaw) / (65536 / 500); - double gyroZ = static_cast(gyroZRaw) / (65536 / 500); - - // Calculate acceleration [G], Range +- m_accelerometerRange - double accX = static_cast(accXRaw) / (32768 / static_cast(m_accelerometerRange)); - double accY = static_cast(accYRaw) / (32768 / static_cast(m_accelerometerRange)); - double accZ = static_cast(accZRaw) / (32768 / static_cast(m_accelerometerRange)); - - // Calculate magnetism [uT], Range +- 4900 - double magX = static_cast(magXRaw); - double magY = static_cast(magYRaw); - double magZ = static_cast(magZRaw); - - - //qCDebug(dcMultiSensor()) << "Accelerometer x:" << accX << " y:" << accY << " z:" << accZ; - //qCDebug(dcMultiSensor()) << "Gyroscope x:" << gyroX << " y:" << gyroY << " z:" << gyroZ; - //qCDebug(dcMultiSensor()) << "Magnetometer x:" << magX << " y:" << magY << " z:" << magZ; - - QVector3D accelerometerVector(accX, accY, accZ); - QVector3D gyroscopeVector(gyroX, gyroY, gyroZ); - QVector3D magnetometerVector(magX, magY, magZ); - - Q_UNUSED(gyroscopeVector) - Q_UNUSED(magnetometerVector) - - // Initialize the accelerometer value if no data known yet - if (m_lastAccelerometerVectorLenght == -99999) { - m_lastAccelerometerVectorLenght = accelerometerVector.length(); - return; - } - - - double delta = qAbs(qAbs(m_lastAccelerometerVectorLenght) - qAbs(accelerometerVector.length())); - bool motionDetected = (delta >= m_movementSensitivity); - //qCDebug(dcMultiSensor()) << accelerometerVector.length() << " | " << delta << m_movementSensitivity << (motionDetected ? "motion" : "-"); - m_device->setStateValue(sensortagMovingStateTypeId, motionDetected); - m_lastAccelerometerVectorLenght = accelerometerVector.length(); -} - -void SensorTag::setLeftButtonPressed(bool pressed) -{ - if (m_leftButtonPressed == pressed) + if (!m_temperatureService || !m_temperatureConfigurationCharacteristic.isValid()) return; - qCDebug(dcMultiSensor()) << "Left button" << (pressed ? "pressed" : "released"); - m_leftButtonPressed = pressed; - emit leftButtonPressedChainged(m_leftButtonPressed); - m_device->setStateValue(sensortagLeftButtonPressedStateTypeId, m_leftButtonPressed); + QByteArray payload = (power ? QByteArray::fromHex("01") : QByteArray::fromHex("00")); + m_temperatureService->writeCharacteristic(m_temperatureConfigurationCharacteristic, payload); } -void SensorTag::setRightButtonPressed(bool pressed) +void SensorTag::setHumiditySensorPower(bool power) { - if (m_rightButtonPressed == pressed) + if (!m_humidityService || !m_humidityConfigurationCharacteristic.isValid()) return; - qCDebug(dcMultiSensor()) << "Right button" << (pressed ? "pressed" : "released"); - m_rightButtonPressed = pressed; - emit rightButtonPressedChainged(m_rightButtonPressed); - m_device->setStateValue(sensortagRightButtonPressedStateTypeId, m_rightButtonPressed); + QByteArray payload = (power ? QByteArray::fromHex("01") : QByteArray::fromHex("00")); + m_humidityService->writeCharacteristic(m_humidityConfigurationCharacteristic, payload); } -void SensorTag::setMagnetDetected(bool detected) +void SensorTag::setPressureSensorPower(bool power) { - if (m_magnetDetected == detected) + if (!m_pressureService || !m_pressureConfigurationCharacteristic.isValid()) return; - qCDebug(dcMultiSensor()) << "Magnet detector" << (detected ? "active" : "inactive"); - m_magnetDetected = detected; - emit magnetDetectedChainged(m_magnetDetected); - m_device->setStateValue(sensortagMagnetDetectedStateTypeId, m_magnetDetected); + QByteArray payload = (power ? QByteArray::fromHex("01") : QByteArray::fromHex("00")); + m_pressureService->writeCharacteristic(m_pressureConfigurationCharacteristic, payload); } -bool SensorTag::testBitUint8(quint8 value, int bitPosition) +void SensorTag::setOpticalSensorPower(bool power) { - return (((value)>> (bitPosition)) & 1); + if (!m_opticalService || !m_opticalConfigurationCharacteristic.isValid()) + return; + + QByteArray payload = (power ? QByteArray::fromHex("01") : QByteArray::fromHex("00")); + m_opticalService->writeCharacteristic(m_opticalConfigurationCharacteristic, payload); } -double SensorTag::roundValue(float value) -{ - int tmpValue = static_cast(value * 10); - return static_cast(tmpValue) / 10.0; -} void SensorTag::onConnectedChanged(const bool &connected) { @@ -496,7 +380,7 @@ void SensorTag::onConnectedChanged(const bool &connected) m_movementService = nullptr; m_ioService = nullptr; - m_lastAccelerometerVectorLenght = -99999; + m_dataProcessor->reset(); } } @@ -667,6 +551,11 @@ void SensorTag::onServiceDiscoveryFinished() } } +void SensorTag::onBuzzerImpulseTimeout() +{ + setBuzzerPower(false); +} + void SensorTag::onTemperatureServiceStateChanged(const QLowEnergyService::ServiceState &state) { // Only continue if discovered @@ -713,17 +602,14 @@ void SensorTag::onTemperatureServiceStateChanged(const QLowEnergyService::Servic configurePeriod(m_temperatureService, m_temperaturePeriodCharacteristic, m_temperaturePeriod); - // Enable measuring - m_temperatureService->writeCharacteristic(m_temperatureConfigurationCharacteristic, QByteArray::fromHex("01")); + // Enable/disable measuring + setTemperatureSensorPower(m_temperatureEnabled); } void SensorTag::onTemperatureServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) { if (characteristic == m_temperatureDataCharacteristic) { - processTemperatureData(value); - - // FIXME: Disable measuring - // m_temperatureService->writeCharacteristic(m_temperatureConfigCharacteristic, QByteArray::fromHex("00")); + m_dataProcessor->processTemperatureData(value); } } @@ -779,9 +665,7 @@ void SensorTag::onHumidityServiceStateChanged(const QLowEnergyService::ServiceSt void SensorTag::onHumidityServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) { if (characteristic == m_humidityDataCharacteristic) { - processHumidityData(value); - // FIXME: Disable measuring - // m_humidityService->writeCharacteristic(m_humidityConfigCharacteristic, QByteArray::fromHex("00")); + m_dataProcessor->processHumidityData(value); } } @@ -837,9 +721,7 @@ void SensorTag::onPressureServiceStateChanged(const QLowEnergyService::ServiceSt void SensorTag::onPressureServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) { if (characteristic == m_pressureDataCharacteristic) { - processPressureData(value); - // FIXME: Disable measuring - // m_pressureService->writeCharacteristic(m_pressureConfigCharacteristic, QByteArray::fromHex("00")); + m_dataProcessor->processPressureData(value); } } @@ -894,11 +776,8 @@ void SensorTag::onOpticalServiceStateChanged(const QLowEnergyService::ServiceSta void SensorTag::onOpticalServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) { if (characteristic == m_opticalDataCharacteristic) { - processOpticalData(value); - // FIXME: Disable measuring - // m_opticalService->writeCharacteristic(m_pressureopticalCharacteristic, QByteArray::fromHex("00")); + m_dataProcessor->processOpticalData(value); } - } void SensorTag::onKeyServiceStateChanged(const QLowEnergyService::ServiceState &state) @@ -930,7 +809,7 @@ void SensorTag::onKeyServiceStateChanged(const QLowEnergyService::ServiceState & void SensorTag::onKeyServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) { if (characteristic == m_keyDataCharacteristic) { - processKeyData(value); + m_dataProcessor->processKeyData(value); } } @@ -985,7 +864,7 @@ void SensorTag::onMovementServiceStateChanged(const QLowEnergyService::ServiceSt void SensorTag::onMovementServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) { if (characteristic == m_movementDataCharacteristic) { - processMovementData(value); + m_dataProcessor->processMovementData(value); } } @@ -1031,8 +910,3 @@ void SensorTag::onIoServiceCharacteristicChanged(const QLowEnergyCharacteristic { qCDebug(dcMultiSensor()) << characteristic.uuid().toString() << value.toHex(); } - -void SensorTag::onBuzzerImpulseTimeout() -{ - setBuzzerPower(false); -} diff --git a/multisensor/sensortag.h b/multisensor/sensortag.h index eb233420..57037337 100644 --- a/multisensor/sensortag.h +++ b/multisensor/sensortag.h @@ -27,6 +27,8 @@ #include "plugin/device.h" #include "extern-plugininfo.h" +#include "sensordataprocessor.h" + #include "hardware/bluetoothlowenergy/bluetoothlowenergydevice.h" // http://processors.wiki.ti.com/index.php/CC2650_SensorTag_User's_Guide @@ -89,10 +91,15 @@ public: BluetoothLowEnergyDevice *bluetoothDevice(); // Configurations + void setTemperatureSensorEnabled(bool enabled); + void setHumiditySensorEnabled(bool enabled); + void setPressureSensorEnabled(bool enabled); + void setOpticalSensorEnabled(bool enabled); void setAccelerometerEnabled(bool enabled); - void setAccelerometerRange(const SensorAccelerometerRange &range); void setGyroscopeEnabled(bool enabled); void setMagnetometerEnabled(bool enabled); + + void setAccelerometerRange(const SensorAccelerometerRange &range); void setMeasurementPeriod(int period); void setMeasurementPeriodMovement(int period); void setMovementSensitivity(int percentage); @@ -152,49 +159,43 @@ private: SensorAccelerometerRange m_accelerometerRange = SensorAccelerometerRange16G; // States - bool m_leftButtonPressed = false; - bool m_rightButtonPressed = false; - bool m_magnetDetected = false; bool m_greenLedEnabled = false; bool m_redLedEnabled = false; bool m_buzzerEnabled = false; - double m_lastAccelerometerVectorLenght = -99999; // Plugin configs + bool m_temperatureEnabled = true; + bool m_humidityEnabled = true; + bool m_pressureEnabled = true; + bool m_opticalEnabled = true; bool m_accelerometerEnabled = true; bool m_gyroscopeEnabled = false; bool m_magnetometerEnabled = false; + SensorDataProcessor *m_dataProcessor = nullptr; + + // Configuration methods void configurePeriod(QLowEnergyService *serice, const QLowEnergyCharacteristic &characteristic, int measurementPeriod); void configureMovement(); void configureSensorMode(const SensorMode &mode); void configureIo(); - void processTemperatureData(const QByteArray &data); - void processKeyData(const QByteArray &data); - void processHumidityData(const QByteArray &data); - void processPressureData(const QByteArray &data); - void processOpticalData(const QByteArray &data); - void processMovementData(const QByteArray &data); - - // Set methods - void setLeftButtonPressed(bool pressed); - void setRightButtonPressed(bool pressed); - void setMagnetDetected(bool detected); - - // Helper - bool testBitUint8(quint8 value, int bitPosition); - double roundValue(float value); + void setTemperatureSensorPower(bool power); + void setHumiditySensorPower(bool power); + void setPressureSensorPower(bool power); + void setOpticalSensorPower(bool power); signals: - void leftButtonPressedChainged(bool pressed); - void rightButtonPressedChainged(bool pressed); - void magnetDetectedChainged(bool detected); + void leftButtonPressedChanged(bool pressed); + void rightButtonPressedChanged(bool pressed); + void magnetDetectedChanged(bool detected); private slots: void onConnectedChanged(const bool &connected); void onServiceDiscoveryFinished(); + void onBuzzerImpulseTimeout(); + // Temperature sensor service void onTemperatureServiceStateChanged(const QLowEnergyService::ServiceState &state); void onTemperatureServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); @@ -222,8 +223,6 @@ private slots: // IO service void onIoServiceStateChanged(const QLowEnergyService::ServiceState &state); void onIoServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value); - - void onBuzzerImpulseTimeout(); }; #endif // SENSORTAG_H From f40692adf25aec48c290ded22292382825d8975c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 13 Mar 2018 15:38:54 +0100 Subject: [PATCH 18/62] Move sensor settings to deviceclass --- multisensor/devicepluginmultisensor.cpp | 139 ++++++++++------- multisensor/devicepluginmultisensor.h | 3 +- multisensor/devicepluginmultisensor.json | 190 +++++++++++++---------- multisensor/sensordataprocessor.cpp | 18 +-- multisensor/sensortag.cpp | 8 +- 5 files changed, 203 insertions(+), 155 deletions(-) diff --git a/multisensor/devicepluginmultisensor.cpp b/multisensor/devicepluginmultisensor.cpp index 0a391cde..3a332cbf 100644 --- a/multisensor/devicepluginmultisensor.cpp +++ b/multisensor/devicepluginmultisensor.cpp @@ -59,8 +59,6 @@ DevicePluginMultiSensor::~DevicePluginMultiSensor() void DevicePluginMultiSensor::init() { - connect(this, &DevicePluginMultiSensor::configValueChanged, this, &DevicePluginMultiSensor::onPluginConfigurationChanged); - m_reconnectTimer = hardwareManager()->pluginTimerManager()->registerTimer(10); connect(m_reconnectTimer, &PluginTimer::timeout, this, &DevicePluginMultiSensor::onPluginTimer); } @@ -69,7 +67,7 @@ DeviceManager::DeviceError DevicePluginMultiSensor::discoverDevices(const Device { Q_UNUSED(params) - if (deviceClassId != sensortagDeviceClassId) + if (deviceClassId != sensorTagDeviceClassId) return DeviceManager::DeviceErrorDeviceClassNotFound; if (!hardwareManager()->bluetoothLowEnergyManager()->available()) @@ -87,26 +85,15 @@ DeviceManager::DeviceSetupStatus DevicePluginMultiSensor::setupDevice(Device *de { qCDebug(dcMultiSensor) << "Setting up Multi Sensor" << device->name() << device->params(); - if (device->deviceClassId() == sensortagDeviceClassId) { + if (device->deviceClassId() == sensorTagDeviceClassId) { - QBluetoothAddress address = QBluetoothAddress(device->paramValue(sensortagMacParamTypeId).toString()); - QString name = device->paramValue(sensortagNameParamTypeId).toString(); + QBluetoothAddress address = QBluetoothAddress(device->paramValue(sensorTagMacParamTypeId).toString()); + QString name = device->paramValue(sensorTagNameParamTypeId).toString(); QBluetoothDeviceInfo deviceInfo = QBluetoothDeviceInfo(address, name, 0); BluetoothLowEnergyDevice *bluetoothDevice = hardwareManager()->bluetoothLowEnergyManager()->registerDevice(deviceInfo, QLowEnergyController::PublicAddress); SensorTag *sensor = new SensorTag(device, bluetoothDevice, this); - // Preconfigure with plugin configurations - sensor->setTemperatureSensorEnabled(configValue(MultiSensorTemperatureEnabledParamTypeId).toBool()); - sensor->setHumiditySensorEnabled(configValue(MultiSensorHumidityEnabledParamTypeId).toBool()); - sensor->setPressureSensorEnabled(configValue(MultiSensorPressureEnabledParamTypeId).toBool()); - sensor->setOpticalSensorEnabled(configValue(MultiSensorOpticalEnabledParamTypeId).toBool()); - sensor->setAccelerometerEnabled(configValue(MultiSensorAccelerometerEnabledParamTypeId).toBool()); - sensor->setGyroscopeEnabled(configValue(MultiSensorGyroscopeEnabledParamTypeId).toBool()); - sensor->setMagnetometerEnabled(configValue(MultiSensorMagnetometerEnabledParamTypeId).toBool()); - sensor->setMeasurementPeriod(configValue(MultiSensorMeasurementPeriodParamTypeId).toInt()); - sensor->setMeasurementPeriodMovement(configValue(MultiSensorMeasurementPeriodMovementParamTypeId).toInt()); - m_sensors.insert(device, sensor); return DeviceManager::DeviceSetupStatusSuccess; @@ -118,6 +105,19 @@ void DevicePluginMultiSensor::postSetupDevice(Device *device) { // Try to connect right after setup SensorTag *sensor = m_sensors.value(device); + + // Configure sensor with state configurations + sensor->setTemperatureSensorEnabled(device->stateValue(sensorTagTemperatureSensorEnabledStateTypeId).toBool()); + sensor->setHumiditySensorEnabled(device->stateValue(sensorTagHumiditySensorEnabledStateTypeId).toBool()); + sensor->setPressureSensorEnabled(device->stateValue(sensorTagPressureSensorEnabledStateTypeId).toBool()); + sensor->setOpticalSensorEnabled(device->stateValue(sensorTagOpticalSensorEnabledStateTypeId).toBool()); + sensor->setAccelerometerEnabled(device->stateValue(sensorTagAccelerometerEnabledStateTypeId).toBool()); + sensor->setGyroscopeEnabled(device->stateValue(sensorTagGyroscopeEnabledStateTypeId).toBool()); + sensor->setMagnetometerEnabled(device->stateValue(sensorTagMagnetometerEnabledStateTypeId).toBool()); + sensor->setMeasurementPeriod(device->stateValue(sensorTagMeasurementPeriodStateTypeId).toInt()); + sensor->setMeasurementPeriodMovement(device->stateValue(sensorTagMeasurementPeriodMovementStateTypeId).toInt()); + + // Connect to the sensor sensor->bluetoothDevice()->connectDevice(); } @@ -135,18 +135,68 @@ void DevicePluginMultiSensor::deviceRemoved(Device *device) DeviceManager::DeviceError DevicePluginMultiSensor::executeAction(Device *device, const Action &action) { SensorTag *sensor = m_sensors.value(device); - if (action.actionTypeId() == sensortagBuzzerActionTypeId) { - sensor->setBuzzerPower(action.param(sensortagBuzzerStateParamTypeId).value().toBool()); + if (action.actionTypeId() == sensorTagBuzzerActionTypeId) { + sensor->setBuzzerPower(action.param(sensorTagBuzzerStateParamTypeId).value().toBool()); return DeviceManager::DeviceErrorNoError; - } else if (action.actionTypeId() == sensortagGreenLedActionTypeId) { - sensor->setGreenLedPower(action.param(sensortagGreenLedStateParamTypeId).value().toBool()); + } else if (action.actionTypeId() == sensorTagGreenLedActionTypeId) { + sensor->setGreenLedPower(action.param(sensorTagGreenLedStateParamTypeId).value().toBool()); return DeviceManager::DeviceErrorNoError; - } else if (action.actionTypeId() == sensortagRedLedActionTypeId) { - sensor->setRedLedPower(action.param(sensortagRedLedStateParamTypeId).value().toBool()); + } else if (action.actionTypeId() == sensorTagRedLedActionTypeId) { + sensor->setRedLedPower(action.param(sensorTagRedLedStateParamTypeId).value().toBool()); return DeviceManager::DeviceErrorNoError; - } else if (action.actionTypeId() == sensortagBuzzerImpulseActionTypeId) { + } else if (action.actionTypeId() == sensorTagBuzzerImpulseActionTypeId) { sensor->buzzerImpulse(); return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensorTagTemperatureSensorEnabledActionTypeId) { + bool enabled = action.param(sensorTagTemperatureSensorEnabledStateParamTypeId).value().toBool(); + device->setStateValue(sensorTagTemperatureSensorEnabledStateTypeId, enabled); + sensor->setTemperatureSensorEnabled(enabled); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensorTagHumiditySensorEnabledActionTypeId) { + bool enabled = action.param(sensorTagHumiditySensorEnabledStateParamTypeId).value().toBool(); + device->setStateValue(sensorTagHumiditySensorEnabledStateTypeId, enabled); + sensor->setHumiditySensorEnabled(enabled); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensorTagPressureSensorEnabledActionTypeId) { + bool enabled = action.param(sensorTagPressureSensorEnabledStateParamTypeId).value().toBool(); + device->setStateValue(sensorTagPressureSensorEnabledStateTypeId, enabled); + sensor->setPressureSensorEnabled(enabled); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensorTagOpticalSensorEnabledActionTypeId) { + bool enabled = action.param(sensorTagOpticalSensorEnabledStateParamTypeId).value().toBool(); + device->setStateValue(sensorTagOpticalSensorEnabledStateTypeId, enabled); + sensor->setOpticalSensorEnabled(enabled); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensorTagAccelerometerEnabledActionTypeId) { + bool enabled = action.param(sensorTagAccelerometerEnabledStateParamTypeId).value().toBool(); + device->setStateValue(sensorTagAccelerometerEnabledStateTypeId, enabled); + sensor->setAccelerometerEnabled(enabled); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensorTagGyroscopeEnabledActionTypeId) { + bool enabled = action.param(sensorTagGyroscopeEnabledStateParamTypeId).value().toBool(); + device->setStateValue(sensorTagGyroscopeEnabledStateTypeId, enabled); + sensor->setGyroscopeEnabled(enabled); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensorTagMagnetometerEnabledActionTypeId) { + bool enabled = action.param(sensorTagMagnetometerEnabledStateParamTypeId).value().toBool(); + device->setStateValue(sensorTagMagnetometerEnabledStateTypeId, enabled); + sensor->setMagnetometerEnabled(enabled); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensorTagMeasurementPeriodActionTypeId) { + int period = action.param(sensorTagMeasurementPeriodStateParamTypeId).value().toInt(); + device->setStateValue(sensorTagMeasurementPeriodStateTypeId, period); + sensor->setMeasurementPeriod(period); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensorTagMeasurementPeriodMovementActionTypeId) { + int period = action.param(sensorTagMeasurementPeriodMovementStateParamTypeId).value().toInt(); + device->setStateValue(sensorTagMeasurementPeriodMovementStateTypeId, period); + sensor->setMeasurementPeriodMovement(period); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == sensorTagMovementSensitivityActionTypeId) { + int sensitivity = action.param(sensorTagMovementSensitivityStateParamTypeId).value().toInt(); + device->setStateValue(sensorTagMovementSensitivityStateTypeId, sensitivity); + sensor->setMovementSensitivity(sensitivity); + return DeviceManager::DeviceErrorNoError; } return DeviceManager::DeviceErrorActionTypeNotFound; @@ -155,7 +205,7 @@ DeviceManager::DeviceError DevicePluginMultiSensor::executeAction(Device *device bool DevicePluginMultiSensor::verifyExistingDevices(const QBluetoothDeviceInfo &deviceInfo) { foreach (Device *device, m_sensors.keys()) { - if (device->paramValue(sensortagMacParamTypeId).toString() == deviceInfo.address().toString()) + if (device->paramValue(sensorTagMacParamTypeId).toString() == deviceInfo.address().toString()) return true; } @@ -177,7 +227,7 @@ void DevicePluginMultiSensor::onBluetoothDiscoveryFinished() if (reply->error() != BluetoothDiscoveryReply::BluetoothDiscoveryReplyErrorNoError) { qCWarning(dcMultiSensor()) << "Bluetooth discovery error:" << reply->error(); reply->deleteLater(); - emit devicesDiscovered(sensortagDeviceClassId, QList()); + emit devicesDiscovered(sensorTagDeviceClassId, QList()); return; } @@ -185,10 +235,10 @@ void DevicePluginMultiSensor::onBluetoothDiscoveryFinished() foreach (const QBluetoothDeviceInfo &deviceInfo, reply->discoveredDevices()) { if (deviceInfo.name().contains("SensorTag")) { if (!verifyExistingDevices(deviceInfo)) { - DeviceDescriptor descriptor(sensortagDeviceClassId, "Sensor Tag", deviceInfo.address().toString()); + DeviceDescriptor descriptor(sensorTagDeviceClassId, "Sensor Tag", deviceInfo.address().toString()); ParamList params; - params.append(Param(sensortagNameParamTypeId, deviceInfo.name())); - params.append(Param(sensortagMacParamTypeId, deviceInfo.address().toString())); + params.append(Param(sensorTagNameParamTypeId, deviceInfo.name())); + params.append(Param(sensorTagMacParamTypeId, deviceInfo.address().toString())); descriptor.setParams(params); deviceDescriptors.append(descriptor); } @@ -196,34 +246,5 @@ void DevicePluginMultiSensor::onBluetoothDiscoveryFinished() } reply->deleteLater(); - emit devicesDiscovered(sensortagDeviceClassId, deviceDescriptors); -} - -void DevicePluginMultiSensor::onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value) -{ - qCDebug(dcMultiSensor()) << "Plugin configuration changed" << paramTypeId.toString() << value; - - foreach (SensorTag *sensor, m_sensors.values()) { - if (paramTypeId == MultiSensorTemperatureEnabledParamTypeId) { - sensor->setTemperatureSensorEnabled(value.toBool()); - } else if (paramTypeId == MultiSensorHumidityEnabledParamTypeId) { - sensor->setHumiditySensorEnabled(value.toBool()); - } else if (paramTypeId == MultiSensorPressureEnabledParamTypeId) { - sensor->setPressureSensorEnabled(value.toBool()); - } else if (paramTypeId == MultiSensorOpticalEnabledParamTypeId) { - sensor->setOpticalSensorEnabled(value.toBool()); - } else if (paramTypeId == MultiSensorAccelerometerEnabledParamTypeId) { - sensor->setAccelerometerEnabled(value.toBool()); - } else if (paramTypeId == MultiSensorGyroscopeEnabledParamTypeId) { - sensor->setGyroscopeEnabled(value.toBool()); - } else if (paramTypeId == MultiSensorMagnetometerEnabledParamTypeId) { - sensor->setMagnetometerEnabled(value.toBool()); - } else if (paramTypeId == MultiSensorMeasurementPeriodParamTypeId) { - sensor->setMeasurementPeriod(value.toInt()); - } else if (paramTypeId == MultiSensorMeasurementPeriodParamTypeId) { - sensor->setMeasurementPeriodMovement(value.toInt()); - } else if (paramTypeId == MultiSensorMovementSensitivityParamTypeId) { - sensor->setMovementSensitivity(value.toInt()); - } - } + emit devicesDiscovered(sensorTagDeviceClassId, deviceDescriptors); } diff --git a/multisensor/devicepluginmultisensor.h b/multisensor/devicepluginmultisensor.h index 9b761764..16d15402 100644 --- a/multisensor/devicepluginmultisensor.h +++ b/multisensor/devicepluginmultisensor.h @@ -1,7 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2015-2018 Simon Stuerz * - * Copyright (C) 2016 nicc * * * * This file is part of nymea. * * * @@ -60,7 +59,7 @@ private: private slots: void onPluginTimer(); void onBluetoothDiscoveryFinished(); - void onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value); + }; #endif // DEVICEPLUGINMULTISENSOR_H diff --git a/multisensor/devicepluginmultisensor.json b/multisensor/devicepluginmultisensor.json index 1a2e3689..34fe1eab 100644 --- a/multisensor/devicepluginmultisensor.json +++ b/multisensor/devicepluginmultisensor.json @@ -1,86 +1,7 @@ { - "displayName": "MultiSensor", + "displayName": "Multi Sensor", "name": "MultiSensor", "id": "23bf0d8d-df7d-4bee-80ee-f015c5a7f52e", - "paramTypes": [ - { - "id": "6f0e40a2-0f97-4c1e-8229-757e3c18b345", - "name": "temperatureEnabled", - "displayName": "Temperature sensor enabled", - "type": "bool", - "defaultValue": true - }, - { - "id": "29881172-626a-42d5-83b8-3e2e5ca533be", - "name": "humidityEnabled", - "displayName": "Humidity sensor enabled", - "type": "bool", - "defaultValue": true - }, - { - "id": "50e5e282-9707-4b31-bb3f-a6ca30a7e1ff", - "name": "pressureEnabled", - "displayName": "Pressure sensor enabled", - "type": "bool", - "defaultValue": true - }, - { - "id": "1460a6d6-9fb4-4385-b27b-ee4b7594e454", - "name": "opticalEnabled", - "displayName": "Optical sensor enabled", - "type": "bool", - "defaultValue": true - }, - { - "id": "5786c91a-d94d-461a-8d22-f978dd1438ab", - "name": "accelerometerEnabled", - "displayName": "Accelerometer enabled", - "type": "bool", - "defaultValue": true - }, - { - "id": "94517544-cb97-4816-8993-cb4cf2651a1e", - "name": "gyroscopeEnabled", - "displayName": "Gyroscope enabled", - "type": "bool", - "defaultValue": false - }, - { - "id": "96aae111-b1c1-48a1-9b1f-b56efa546d0d", - "name": "magnetometerEnabled", - "displayName": "Magnetometer enabled", - "type": "bool", - "defaultValue": false - }, - { - "id": "c5308565-5dc9-409e-ae99-577c212c7a92", - "name": "measurementPeriod", - "displayName": "Measurement period for enviromental sensors", - "type": "int", - "minValue": 10, - "maxValue": 2500, - "defaultValue": 2000 - }, - { - "id": "5237c89c-c21d-4d78-ac99-8be661b40da7", - "name": "measurementPeriodMovement", - "displayName": "Measurement period movement sensor", - "type": "int", - "minValue": 10, - "maxValue": 2500, - "defaultValue": 300 - }, - { - "id": "a3298d16-eea6-4474-9061-90466e92d476", - "name": "movementSensitivity", - "displayName": "Movement sensitivity", - "type": "int", - "unit": "Percentage", - "minValue": 0, - "maxValue": 100, - "defaultValue": 40 - } - ], "vendors": [ { "id": "2edf543e-dc2c-4693-bb0c-e76c0d305fad", @@ -89,7 +10,7 @@ "deviceClasses": [ { "id": "158a06b6-b27f-4951-957e-6f1e3b44f604", - "name": "sensortag", + "name": "sensorTag", "displayName": "Sensor Tag (CC2650)", "createMethods": ["discovery"], "deviceIcon": "Thermometer", @@ -239,6 +160,113 @@ "cached": false, "defaultValue": false, "writable": true + }, + { + "id": "6f0e40a2-0f97-4c1e-8229-757e3c18b345", + "name": "temperatureSensorEnabled", + "displayName": "Temperature sensor enabled", + "displayNameEvent": "Temperature sensor enabled changed", + "displayNameAction": "Set temperature sensor enabled", + "type": "bool", + "defaultValue": true, + "writable": true + }, + { + "id": "29881172-626a-42d5-83b8-3e2e5ca533be", + "name": "humiditySensorEnabled", + "displayName": "Humidity sensor enabled", + "displayNameEvent": "Humidity sensor enabled changed", + "displayNameAction": "Set humidity sensor enabled", + "type": "bool", + "defaultValue": true, + "writable": true + }, + { + "id": "50e5e282-9707-4b31-bb3f-a6ca30a7e1ff", + "name": "pressureSensorEnabled", + "displayName": "Pressure sensor enabled", + "displayNameEvent": "Pressure sensor enabled changed", + "displayNameAction": "Set pressure sensor enabled", + "type": "bool", + "defaultValue": true, + "writable": true + }, + { + "id": "1460a6d6-9fb4-4385-b27b-ee4b7594e454", + "name": "opticalSensorEnabled", + "displayName": "Optical sensor enabled", + "displayNameEvent": "Optical sensor enabled changed", + "displayNameAction": "Set optical sensor enabled", + "type": "bool", + "defaultValue": true, + "writable": true + }, + { + "id": "5786c91a-d94d-461a-8d22-f978dd1438ab", + "name": "accelerometerEnabled", + "displayName": "Accelerometer enabled", + "displayNameEvent": "Accelerometer enabled changed", + "displayNameAction": "Set accelerometer enabled", + "type": "bool", + "defaultValue": true, + "writable": true + }, + { + "id": "94517544-cb97-4816-8993-cb4cf2651a1e", + "name": "gyroscopeEnabled", + "displayName": "Gyroscope enabled", + "displayNameEvent": "Gyroscope enabled changed", + "displayNameAction": "Set gyroscope enabled", + "type": "bool", + "defaultValue": true, + "writable": true + }, + { + "id": "96aae111-b1c1-48a1-9b1f-b56efa546d0d", + "name": "magnetometerEnabled", + "displayName": "Magnetometer enabled", + "displayNameEvent": "Magnetometer enabled changed", + "displayNameAction": "Set magnetometer enabled", + "type": "bool", + "defaultValue": true, + "writable": true + }, + { + "id": "c5308565-5dc9-409e-ae99-577c212c7a92", + "name": "measurementPeriod", + "displayName": "Measurement period for enviromental sensors", + "displayNameEvent": "Measurement period for enviromental sensors changed", + "displayNameAction": "Set measurement period for enviromental sensors", + "type": "int", + "minValue": 10, + "maxValue": 2500, + "defaultValue": 2000, + "writable": true + }, + { + "id": "5237c89c-c21d-4d78-ac99-8be661b40da7", + "name": "measurementPeriodMovement", + "displayName": "Measurement period movement sensor", + "displayNameEvent": "Measurement period movement sensor changed", + "displayNameAction": "Set measurement period movement sensor", + "type": "int", + "minValue": 10, + "maxValue": 2500, + "defaultValue": 300, + "writable": true + }, + { + "id": "a3298d16-eea6-4474-9061-90466e92d476", + "name": "movementSensitivity", + "displayName": "Movement sensitivity", + "displayNameEvent": "Movement sensitivity changed", + "displayNameAction": "Set movement sensitivity", + "type": "int", + "unit": "Percentage", + "minValue": 0, + "maxValue": 100, + "defaultValue": 40, + "writable": true } ], "actionTypes": [ diff --git a/multisensor/sensordataprocessor.cpp b/multisensor/sensordataprocessor.cpp index ca841882..573c9a84 100644 --- a/multisensor/sensordataprocessor.cpp +++ b/multisensor/sensordataprocessor.cpp @@ -99,12 +99,12 @@ void SensorDataProcessor::processTemperatureData(const QByteArray &data) double ambientTemperatureFiltered = m_temperatureFilter->filterValue(ambientTemperature); if (m_objectTemperatureFilter->isReady()) { - m_device->setStateValue(sensortagObjectTemperatureStateTypeId, roundValue(objectTemperatureFiltered)); + m_device->setStateValue(sensorTagObjectTemperatureStateTypeId, roundValue(objectTemperatureFiltered)); } // Note: only change the state once the filter has collected enought data if (m_temperatureFilter->isReady()) { - m_device->setStateValue(sensortagTemperatureStateTypeId, roundValue(ambientTemperatureFiltered)); + m_device->setStateValue(sensorTagTemperatureStateTypeId, roundValue(ambientTemperatureFiltered)); } } @@ -135,7 +135,7 @@ void SensorDataProcessor::processHumidityData(const QByteArray &data) double humidityFiltered = m_humidityFilter->filterValue(humidity); if (m_humidityFilter->isReady()) { - m_device->setStateValue(sensortagHumidityStateTypeId, roundValue(humidityFiltered)); + m_device->setStateValue(sensorTagHumidityStateTypeId, roundValue(humidityFiltered)); } } @@ -163,7 +163,7 @@ void SensorDataProcessor::processPressureData(const QByteArray &data) double pressureFiltered = m_pressureFilter->filterValue(rawPressure / 100.0); if (m_pressureFilter->isReady()) { - m_device->setStateValue(sensortagPressureStateTypeId, roundValue(pressureFiltered)); + m_device->setStateValue(sensorTagPressureStateTypeId, roundValue(pressureFiltered)); } } @@ -186,7 +186,7 @@ void SensorDataProcessor::processOpticalData(const QByteArray &data) double luxFiltered = m_opticalFilter->filterValue(lux); if (m_opticalFilter->isReady()) { - m_device->setStateValue(sensortagLightIntensityStateTypeId, qRound(luxFiltered)); + m_device->setStateValue(sensorTagLightIntensityStateTypeId, qRound(luxFiltered)); } logSensorValue(lux, qRound(luxFiltered)); @@ -247,7 +247,7 @@ void SensorDataProcessor::processMovementData(const QByteArray &data) double delta = qAbs(qAbs(m_lastAccelerometerVectorLenght) - qAbs(filteredVectorLength)); bool motionDetected = (delta >= m_movementSensitivity); - m_device->setStateValue(sensortagMovingStateTypeId, motionDetected); + m_device->setStateValue(sensorTagMovingStateTypeId, motionDetected); m_lastAccelerometerVectorLenght = filteredVectorLength; } @@ -271,7 +271,7 @@ void SensorDataProcessor::setLeftButtonPressed(bool pressed) qCDebug(dcMultiSensor()) << "Left button" << (pressed ? "pressed" : "released"); m_leftButtonPressed = pressed; - m_device->setStateValue(sensortagLeftButtonPressedStateTypeId, m_leftButtonPressed); + m_device->setStateValue(sensorTagLeftButtonPressedStateTypeId, m_leftButtonPressed); } void SensorDataProcessor::setRightButtonPressed(bool pressed) @@ -281,7 +281,7 @@ void SensorDataProcessor::setRightButtonPressed(bool pressed) qCDebug(dcMultiSensor()) << "Right button" << (pressed ? "pressed" : "released"); m_rightButtonPressed = pressed; - m_device->setStateValue(sensortagRightButtonPressedStateTypeId, m_rightButtonPressed); + m_device->setStateValue(sensorTagRightButtonPressedStateTypeId, m_rightButtonPressed); } void SensorDataProcessor::setMagnetDetected(bool detected) @@ -291,7 +291,7 @@ void SensorDataProcessor::setMagnetDetected(bool detected) qCDebug(dcMultiSensor()) << "Magnet detector" << (detected ? "active" : "inactive"); m_magnetDetected = detected; - m_device->setStateValue(sensortagMagnetDetectedStateTypeId, m_magnetDetected); + m_device->setStateValue(sensorTagMagnetDetectedStateTypeId, m_magnetDetected); } void SensorDataProcessor::logSensorValue(double originalValue, double filteredValue) diff --git a/multisensor/sensortag.cpp b/multisensor/sensortag.cpp index 2854d2c0..05e77493 100644 --- a/multisensor/sensortag.cpp +++ b/multisensor/sensortag.cpp @@ -190,7 +190,7 @@ void SensorTag::setGreenLedPower(bool power) m_greenLedEnabled = power; qCDebug(dcMultiSensor()) << "Green LED" << (power ? "enabled" : "disabled"); configureIo(); - m_device->setStateValue(sensortagGreenLedStateTypeId, m_greenLedEnabled); + m_device->setStateValue(sensorTagGreenLedStateTypeId, m_greenLedEnabled); } void SensorTag::setRedLedPower(bool power) @@ -198,7 +198,7 @@ void SensorTag::setRedLedPower(bool power) m_redLedEnabled = power; qCDebug(dcMultiSensor()) << "Red LED" << (power ? "enabled" : "disabled"); configureIo(); - m_device->setStateValue(sensortagRedLedStateTypeId, m_redLedEnabled); + m_device->setStateValue(sensorTagRedLedStateTypeId, m_redLedEnabled); } void SensorTag::setBuzzerPower(bool power) @@ -206,7 +206,7 @@ void SensorTag::setBuzzerPower(bool power) m_buzzerEnabled = power; qCDebug(dcMultiSensor()) << "Buzzer" << (power ? "enabled" : "disabled"); configureIo(); - m_device->setStateValue(sensortagBuzzerStateTypeId, m_buzzerEnabled); + m_device->setStateValue(sensorTagBuzzerStateTypeId, m_buzzerEnabled); } void SensorTag::buzzerImpulse() @@ -360,7 +360,7 @@ void SensorTag::setOpticalSensorPower(bool power) void SensorTag::onConnectedChanged(const bool &connected) { qCDebug(dcMultiSensor()) << "Sensor" << m_bluetoothDevice->name() << m_bluetoothDevice->address().toString() << (connected ? "connected" : "disconnected"); - m_device->setStateValue(sensortagConnectedStateTypeId, connected); + m_device->setStateValue(sensorTagConnectedStateTypeId, connected); if (!connected) { // Clean up services From 60a037a8e37b12a774486a28e4d135aea85d6d2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 13 Mar 2018 16:35:06 +0100 Subject: [PATCH 19/62] Add copyright --- multisensor/sensordataprocessor.cpp | 22 ++++++++++++++++++++++ multisensor/sensordataprocessor.h | 22 ++++++++++++++++++++++ multisensor/sensorfilter.cpp | 22 ++++++++++++++++++++++ multisensor/sensorfilter.h | 23 ++++++++++++++++++++++- 4 files changed, 88 insertions(+), 1 deletion(-) diff --git a/multisensor/sensordataprocessor.cpp b/multisensor/sensordataprocessor.cpp index 573c9a84..414f8dd0 100644 --- a/multisensor/sensordataprocessor.cpp +++ b/multisensor/sensordataprocessor.cpp @@ -1,3 +1,25 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2015-2018 Simon Stuerz * + * * + * This file is part of nymea. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + #include "sensordataprocessor.h" #include "extern-plugininfo.h" #include "math.h" diff --git a/multisensor/sensordataprocessor.h b/multisensor/sensordataprocessor.h index aba7fe94..2a923f12 100644 --- a/multisensor/sensordataprocessor.h +++ b/multisensor/sensordataprocessor.h @@ -1,3 +1,25 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2015-2018 Simon Stuerz * + * * + * This file is part of nymea. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + #ifndef SENSORDATAPROCESSOR_H #define SENSORDATAPROCESSOR_H diff --git a/multisensor/sensorfilter.cpp b/multisensor/sensorfilter.cpp index 2a69dd0d..4d036912 100644 --- a/multisensor/sensorfilter.cpp +++ b/multisensor/sensorfilter.cpp @@ -1,3 +1,25 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2015-2018 Simon Stuerz * + * * + * This file is part of nymea. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + #include "sensorfilter.h" #include diff --git a/multisensor/sensorfilter.h b/multisensor/sensorfilter.h index d137ed13..3d9dc91e 100644 --- a/multisensor/sensorfilter.h +++ b/multisensor/sensorfilter.h @@ -1,3 +1,25 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2015-2018 Simon Stuerz * + * * + * This file is part of nymea. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + #ifndef SENSORFILTER_H #define SENSORFILTER_H @@ -54,7 +76,6 @@ private: double lowPassFilterValue(double value); double highPassFilterValue(double value); double averageFilterValue(double value); - }; #endif // SENSORFILTER_H From 6e508371666c0c75d0cc662cf1a30769bdd1ce33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Thu, 22 Feb 2018 14:46:17 +0100 Subject: [PATCH 20/62] Improve simulation plugin and add netatmo simulation --- simulation/devicepluginsimulation.cpp | 131 ++++++++++++++++++------- simulation/devicepluginsimulation.h | 11 ++- simulation/devicepluginsimulation.json | 89 ++++++++++++++++- 3 files changed, 191 insertions(+), 40 deletions(-) diff --git a/simulation/devicepluginsimulation.cpp b/simulation/devicepluginsimulation.cpp index f4261512..b007eb33 100644 --- a/simulation/devicepluginsimulation.cpp +++ b/simulation/devicepluginsimulation.cpp @@ -22,38 +22,50 @@ #include "devicepluginsimulation.h" #include "plugininfo.h" +#include +#include DevicePluginSimulation::DevicePluginSimulation() { } +DevicePluginSimulation::~DevicePluginSimulation() +{ + hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer20Seconds); + hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer5Min); +} + void DevicePluginSimulation::init() { - m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(10); - connect(m_pluginTimer, &PluginTimer::timeout, this, &DevicePluginSimulation::onPluginTimer); + // Seed the random generator with current time + qsrand(QDateTime::currentMSecsSinceEpoch() / 1000); + + // Change some values every 20 seconds + m_pluginTimer20Seconds = hardwareManager()->pluginTimerManager()->registerTimer(20); + connect(m_pluginTimer20Seconds, &PluginTimer::timeout, this, &DevicePluginSimulation::onPluginTimer20Seconds); + + // Change some values every 5 min + m_pluginTimer5Min = hardwareManager()->pluginTimerManager()->registerTimer(300); + connect(m_pluginTimer5Min, &PluginTimer::timeout, this, &DevicePluginSimulation::onPluginTimer5Minutes); } DeviceManager::DeviceSetupStatus DevicePluginSimulation::setupDevice(Device *device) { - Q_UNUSED(device) - qCDebug(dcSimulation) << device->params(); - + qCDebug(dcSimulation()) << "Set up device" << device->name(); return DeviceManager::DeviceSetupStatusSuccess; } - DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, const Action &action) { - // Check the DeviceClassId for "Simple Button" if (device->deviceClassId() == simpleButtonDeviceClassId ) { // check if this is the "press" action if (action.actionTypeId() == simpleButtonTriggerActionTypeId) { - // Emit the "button pressed" event + qCDebug(dcSimulation()) << "Emit button pressed event for" << device->name(); Event event(simpleButtonPressedEventTypeId, device->id()); emit emitEvent(event); @@ -72,8 +84,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, Param powerParam = action.param(alternativeButtonPowerStateParamTypeId); bool power = powerParam.value().toBool(); - qCDebug(dcSimulation) << "ActionTypeId :" << action.actionTypeId().toString(); - qCDebug(dcSimulation) << "StateTypeId :" << alternativeButtonPowerStateTypeId.toString(); + qCDebug(dcSimulation()) << "Set power" << power << "for button" << device->name(); // Set the "power" state device->setStateValue(alternativeButtonPowerStateTypeId, power); @@ -91,7 +102,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, // get the param value Param powerParam = action.param(heatingPowerStateParamTypeId); bool power = powerParam.value().toBool(); - // Set the "power" state + qCDebug(dcSimulation()) << "Set power" << power << "for heating device" << device->name(); device->setStateValue(heatingPowerStateTypeId, power); return DeviceManager::DeviceErrorNoError; @@ -101,7 +112,8 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, Param temperatureParam = action.param(heatingTargetTemperatureStateParamTypeId); int temperature = temperatureParam.value().toInt(); - // Set the "temperature" state + qCDebug(dcSimulation()) << "Set target temperature" << temperature << "for heating device" << device->name(); + device->setStateValue(heatingTargetTemperatureStateTypeId, temperature); return DeviceManager::DeviceErrorNoError; } @@ -114,7 +126,9 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, // get the param value Param powerParam = action.param(evChargerPowerStateParamTypeId); bool power = powerParam.value().toBool(); - // Set the "power" state + + qCDebug(dcSimulation()) << "Set power" << power << "for heating device" << device->name(); + device->setStateValue(evChargerPowerStateTypeId, power); return DeviceManager::DeviceErrorNoError; @@ -122,7 +136,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, // get the param value Param currentParam = action.param(evChargerCurrentStateParamTypeId); int current = currentParam.value().toInt(); - // Set the "current" state + qCDebug(dcSimulation()) << "Set current" << current << "for EV Charger device" << device->name(); device->setStateValue(evChargerCurrentStateTypeId, current); return DeviceManager::DeviceErrorNoError; } @@ -136,6 +150,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, Param powerParam = action.param(socketPowerStateParamTypeId); bool power = powerParam.value().toBool(); // Set the "power" state + qCDebug(dcSimulation()) << "Set power" << power << "for socket device" << device->name(); device->setStateValue(socketPowerStateTypeId, power); return DeviceManager::DeviceErrorNoError; } @@ -146,21 +161,25 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if(action.actionTypeId() == colorBulbBrightnessActionTypeId){ int brightness = action.param(colorBulbBrightnessStateParamTypeId).value().toInt(); + qCDebug(dcSimulation()) << "Set brightness" << brightness << "for color bulb device" << device->name(); device->setStateValue(colorBulbBrightnessStateTypeId, brightness); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == colorBulbColorTemperatureActionTypeId){ int temperature = action.param(colorBulbColorTemperatureStateParamTypeId).value().toInt(); + qCDebug(dcSimulation()) << "Set color temperature" << temperature << "for color bulb device" << device->name(); device->setStateValue(colorBulbColorTemperatureStateTypeId, temperature); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == colorBulbColorActionTypeId) { - QVariant color = action.param(colorBulbColorStateParamTypeId).value(); + QColor color = action.param(colorBulbColorStateParamTypeId).value().value(); + qCDebug(dcSimulation()) << "Set color" << color << "for color bulb device" << device->name(); device->setStateValue(colorBulbColorStateTypeId, color); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == colorBulbPowerActionTypeId) { bool power = action.param(colorBulbPowerStateParamTypeId).value().toBool(); + qCDebug(dcSimulation()) << "Set power" << power << "for color bulb device" << device->name(); device->setStateValue(colorBulbPowerStateTypeId, power); return DeviceManager::DeviceErrorNoError; } @@ -172,14 +191,17 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if (action.actionTypeId() == heatingRodPowerActionTypeId) { bool power = action.param(heatingRodPowerStateParamTypeId).value().toBool(); + qCDebug(dcSimulation()) << "Set power" << power << "for heating rod device" << device->name(); device->setStateValue(heatingRodPowerStateTypeId, power); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == heatingRodWaterTemperatureActionTypeId) { int temperature = action.param(heatingRodWaterTemperatureStateParamTypeId).value().toInt(); + qCDebug(dcSimulation()) << "Set water temperature" << temperature << "for heating rod device" << device->name(); device->setStateValue(heatingRodWaterTemperatureStateTypeId, temperature); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == heatingRodMaxPowerActionTypeId) { double maxPower = action.param(heatingRodMaxPowerStateParamTypeId).value().toDouble(); + qCDebug(dcSimulation()) << "Set max power" << maxPower << "for heating rod device" << device->name(); device->setStateValue(heatingRodMaxPowerStateTypeId, maxPower); return DeviceManager::DeviceErrorNoError; } @@ -191,7 +213,8 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if (action.actionTypeId() == batteryMaxChargingActionTypeId) { int maxCharging = action.param(batteryMaxChargingStateParamTypeId).value().toInt(); device->setStateValue(batteryMaxChargingStateTypeId, maxCharging); - device->setStateValue(batteryChargingStateTypeId, ((double)maxCharging-10)/1000); + qCDebug(dcSimulation()) << "Set max charging power" << maxCharging << "for battery device" << device->name(); + device->setStateValue(batteryChargingStateTypeId, maxCharging); return DeviceManager::DeviceErrorNoError; } return DeviceManager::DeviceErrorActionTypeNotFound; @@ -200,34 +223,70 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, return DeviceManager::DeviceErrorDeviceClassNotFound; } -int DevicePluginSimulation::getRandomNumber(const int Min, const int Max) +int DevicePluginSimulation::generateRandomIntValue(int min, int max) { - return ((qrand() % ((Max + 1) - Min)) + Min); + // Seed the random generator with current time + qsrand(QDateTime::currentMSecsSinceEpoch() / 1000); + int value = ((qrand() % ((max + 1) - min)) + min); + // qCDebug(dcSimulation()) << "Generateed random int value: [" << min << ", " << max << "] -->" << value; + return value; } -void DevicePluginSimulation::onPluginTimer() +double DevicePluginSimulation::generateRandomDoubleValue(double min, double max) { + double value = generateRandomIntValue(static_cast(min * 10), static_cast(max * 10)) / 10.0; + // qCDebug(dcSimulation()) << "Generated random double value: [" << min << ", " << max << "] -->" << value; + return value; +} + +bool DevicePluginSimulation::generateRandomBoolValue() +{ + bool value = static_cast(generateRandomIntValue(0, 1)); + // qCDebug(dcSimulation()) << "Generated random bool value:" << value; + return value; +} + +void DevicePluginSimulation::onPluginTimer20Seconds() +{ + qCDebug(dcSimulation()) << "Update values for 20s timer"; foreach (Device *device, myDevices()) { if (device->deviceClassId() == temperatureSensorDeviceClassId) { - //generate Random Number - double temperature = ((double)getRandomNumber(200, 230)/10.0); - device->setStateValue(temperatureSensorTemperatureStateTypeId, temperature); - device->setStateValue(temperatureSensorHumidityStateTypeId, getRandomNumber(40, 60)); - device->setStateValue(temperatureSensorBatteryLevelStateTypeId, getRandomNumber(10, 100)); - device->setStateValue(temperatureSensorBatteryCriticalStateTypeId, device->stateValue(temperatureSensorBatteryLevelStateTypeId).toDouble() <= 30); + // Temperature sensor + device->setStateValue(temperatureSensorTemperatureStateTypeId, generateRandomDoubleValue(18, 23)); + device->setStateValue(temperatureSensorHumidityStateTypeId, generateRandomIntValue(40, 55)); + device->setStateValue(temperatureSensorBatteryLevelStateTypeId, generateRandomIntValue(25, 40)); + device->setStateValue(temperatureSensorBatteryCriticalStateTypeId, device->stateValue(temperatureSensorBatteryLevelStateTypeId).toInt() <= 30); device->setStateValue(temperatureSensorConnectedStateTypeId, true); - - } else if(device->deviceClassId() == motionDetectorDeviceClassId){ - bool active = true; - if(getRandomNumber(0, 60)){ - active = false; - } - device->setStateValue(motionDetectorActiveStateTypeId, active); - device->setStateValue(motionDetectorBatteryLevelStateTypeId, getRandomNumber(10, 100)); - device->setStateValue(motionDetectorBatteryCriticalStateTypeId, device->stateValue(motionDetectorBatteryLevelStateTypeId).toDouble() <= 30); + } else if (device->deviceClassId() == motionDetectorDeviceClassId) { + // Motion detector + device->setStateValue(motionDetectorActiveStateTypeId, generateRandomBoolValue()); + device->setStateValue(motionDetectorBatteryLevelStateTypeId, generateRandomIntValue(25, 40)); + device->setStateValue(motionDetectorBatteryCriticalStateTypeId, device->stateValue(motionDetectorBatteryLevelStateTypeId).toInt() <= 30); device->setStateValue(motionDetectorConnectedStateTypeId, true); - } else if(device->deviceClassId() == evChargerDeviceClassId){ - + } else if(device->deviceClassId() == netatmoIndoorDeviceClassId) { + // Netatmo + device->setStateValue(netatmoIndoorUpdateTimeStateTypeId, QDateTime::currentDateTime().toTime_t()); + device->setStateValue(netatmoIndoorHumidityStateTypeId, generateRandomIntValue(35, 45)); + device->setStateValue(netatmoIndoorTemperatureStateTypeId, generateRandomIntValue(20, 25)); + device->setStateValue(netatmoIndoorPressureStateTypeId, generateRandomIntValue(1003, 1008)); + device->setStateValue(netatmoIndoorNoiseStateTypeId, generateRandomIntValue(40, 80)); + device->setStateValue(netatmoIndoorWifiStrengthStateTypeId, generateRandomIntValue(85, 95)); + } + } +} + +void DevicePluginSimulation::onPluginTimer5Minutes() +{ + qCDebug(dcSimulation()) << "Update values for 5 minutes timer"; + foreach (Device *device, myDevices()) { + if(device->deviceClassId() == netatmoIndoorDeviceClassId) { + // Note: should change between > 1000 co2 < 1000 for showcase, please do not change this behaviour + int currentValue = device->stateValue(netatmoIndoorCo2StateTypeId).toInt(); + if (currentValue < 1000) { + device->setStateValue(netatmoIndoorCo2StateTypeId, generateRandomIntValue(1001, 1010)); + } else { + device->setStateValue(netatmoIndoorCo2StateTypeId, generateRandomIntValue(950, 999)); + } } } } diff --git a/simulation/devicepluginsimulation.h b/simulation/devicepluginsimulation.h index c79d3bff..be01afec 100644 --- a/simulation/devicepluginsimulation.h +++ b/simulation/devicepluginsimulation.h @@ -36,18 +36,23 @@ class DevicePluginSimulation : public DevicePlugin public: explicit DevicePluginSimulation(); + ~DevicePluginSimulation(); void init() override; DeviceManager::DeviceSetupStatus setupDevice(Device *device) override; DeviceManager::DeviceError executeAction(Device *device, const Action &action) override; private: - PluginTimer *m_pluginTimer = nullptr; + PluginTimer *m_pluginTimer20Seconds = nullptr; + PluginTimer *m_pluginTimer5Min = nullptr; - int getRandomNumber(const int min, const int max); + int generateRandomIntValue(int min, int max); + double generateRandomDoubleValue(double min, double max); + bool generateRandomBoolValue(); private slots: - void onPluginTimer(); + void onPluginTimer20Seconds(); + void onPluginTimer5Minutes(); }; diff --git a/simulation/devicepluginsimulation.json b/simulation/devicepluginsimulation.json index 290d963e..f3429e72 100644 --- a/simulation/devicepluginsimulation.json +++ b/simulation/devicepluginsimulation.json @@ -564,7 +564,7 @@ "type": "int", "unit": "Watt", "defaultValue": 700, - "minValue": 0, + "minValue": 200, "maxValue": 2000, "writable": true }, @@ -643,6 +643,93 @@ "defaultValue": false } ] + }, + { + "id": "7f1696e3-3145-421e-9a42-5bd3b2fd0e2c", + "name": "netatmoIndoor", + "displayName": "Netatmo Indoor Station", + "deviceIcon": "Thermometer", + "basicTags": [ + "Device", + "Weather", + "Sensor" + ], + "createMethods": ["user"], + "paramTypes": [ ], + "stateTypes": [ + { + "id": "29a95a72-f897-4027-99a8-ab1aee1ebe2b", + "name": "updateTime", + "displayName": "Last update", + "displayNameEvent": "Last update changed", + "unit": "UnixTime", + "type": "int", + "ruleRelevant": false, + "eventRuleRelevant": false, + "defaultValue": 0 + }, + { + "id": "b5244e65-0811-4dc2-afd2-6bf3092d44c7", + "name": "temperature", + "displayName": "Temperature", + "displayNameEvent": "Temperature changed", + "unit": "DegreeCelsius", + "graphRelevant": true, + "type": "double", + "defaultValue": 22.7 + }, + { + "id": "b2225720-dfdc-40f8-a24a-20247e69e575", + "name": "humidity", + "displayName": "Humidity", + "displayNameEvent": "Humidity changed", + "graphRelevant": true, + "unit": "Percentage", + "type": "int", + "defaultValue": 37 + }, + { + "id": "b13fa34e-b63d-4fa4-a786-e82776ee9cbe", + "name": "pressure", + "displayName": "Pressure", + "displayNameEvent": "Pressure changed", + "unit": "MilliBar", + "graphRelevant": true, + "type": "int", + "defaultValue": 1006 + }, + { + "id": "b16ea43e-75ef-4bee-ade6-839682ec3068", + "name": "noise", + "displayName": "Noise", + "displayNameEvent": "Noise changed", + "graphRelevant": true, + "unit": "Dezibel", + "type": "int", + "defaultValue": 68 + }, + { + "id": "c5ebe5c0-b030-4eb6-a3f8-3a400061d09c", + "name": "co2", + "displayName": "CO2", + "displayNameEvent": "CO2 changed", + "graphRelevant": true, + "unit": "PartsPerMillion", + "type": "int", + "defaultValue": 350 + }, + { + "id": "3b8fb712-ff4c-4c0f-83bc-2edac54fede7", + "name": "wifiStrength", + "displayName": "Wifi signal strength", + "displayNameEvent": "Wifi signal strength changed", + "ruleRelevant": false, + "eventRuleRelevant": false, + "unit": "Percentage", + "type": "int", + "defaultValue": 87 + } + ] } ] } From d23a5a3b6538977244590b7418688049777d700d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 13 Mar 2018 17:25:56 +0100 Subject: [PATCH 21/62] Add irrigation --- simulation/devicepluginsimulation.cpp | 17 +++++ simulation/devicepluginsimulation.json | 89 ++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) diff --git a/simulation/devicepluginsimulation.cpp b/simulation/devicepluginsimulation.cpp index b007eb33..51710ab3 100644 --- a/simulation/devicepluginsimulation.cpp +++ b/simulation/devicepluginsimulation.cpp @@ -220,6 +220,15 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, return DeviceManager::DeviceErrorActionTypeNotFound; } + if (device->deviceClassId() == waterValveDeviceClassId) { + if (action.actionTypeId() == waterValvePowerActionTypeId) { + bool power = action.param(waterValvePowerStateParamTypeId).value().toBool(); + device->setStateValue(waterValvePowerStateTypeId, power); + return DeviceManager::DeviceErrorNoError; + } + return DeviceManager::DeviceErrorActionTypeNotFound; + } + return DeviceManager::DeviceErrorDeviceClassNotFound; } @@ -263,6 +272,14 @@ void DevicePluginSimulation::onPluginTimer20Seconds() device->setStateValue(motionDetectorBatteryLevelStateTypeId, generateRandomIntValue(25, 40)); device->setStateValue(motionDetectorBatteryCriticalStateTypeId, device->stateValue(motionDetectorBatteryLevelStateTypeId).toInt() <= 30); device->setStateValue(motionDetectorConnectedStateTypeId, true); + } else if (device->deviceClassId() == gardenSensorDeviceClassId) { + // Garden sensor + device->setStateValue(gardenSensorTemperatureStateTypeId, generateRandomDoubleValue(20, 23)); + device->setStateValue(gardenSensorSoilMoistureStateTypeId, generateRandomIntValue(40, 60)); + device->setStateValue(gardenSensorLightIntensityStateTypeId, generateRandomIntValue(40, 60)); + device->setStateValue(gardenSensorBatteryLevelStateTypeId, generateRandomIntValue(25, 90)); + device->setStateValue(gardenSensorBatteryCriticalStateTypeId, device->stateValue(gardenSensorBatteryLevelStateTypeId).toDouble() <= 30); + device->setStateValue(gardenSensorConnectedStateTypeId, true); } else if(device->deviceClassId() == netatmoIndoorDeviceClassId) { // Netatmo device->setStateValue(netatmoIndoorUpdateTimeStateTypeId, QDateTime::currentDateTime().toTime_t()); diff --git a/simulation/devicepluginsimulation.json b/simulation/devicepluginsimulation.json index f3429e72..691c36b3 100644 --- a/simulation/devicepluginsimulation.json +++ b/simulation/devicepluginsimulation.json @@ -730,6 +730,95 @@ "defaultValue": 87 } ] + }, + { + "id": "b759f558-b484-45b6-9132-218d135c27d6", + "name": "gardenSensor", + "displayName": "Garden sensor", + "createMethods": ["user"], + "deviceIcon": "Thermometer", + "interfaces": ["temperaturesensor", "battery", "connectable"], + "basicTags": ["Device", "Sensor" ], + "paramTypes": [ ], + "stateTypes": [ + { + "id": "63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8", + "name": "soilMoisture", + "displayName": "Soil moisture", + "displayNameEvent": "Soil moisture changed", + "type": "double", + "minValue": 0, + "maxValue": 100, + "unit": "Percentage", + "defaultValue": 0 + }, + { + "id": "169d7a2a-d1c9-4578-bb30-fc7d25690e59", + "name": "temperature", + "displayName": "Temperature", + "displayNameEvent": "Temperature changed", + "type": "double", + "unit": "DegreeCelsius", + "defaultValue": 0 + }, + { + "id": "9781f0a5-3478-4291-ab51-9daa1ba0e44e", + "name": "lightIntensity", + "displayName": "Light intensity", + "displayNameEvent": "Light intensity changed", + "type": "double", + "unit": "Candela", + "defaultValue": 0 + }, + { + "id": "45c0de32-b519-47d7-9f82-e5f09d1542d4", + "name": "batteryLevel", + "displayName": "Battery", + "displayNameEvent": "Battery level changed", + "type": "int", + "minValue": 0, + "maxValue": 100, + "unit": "Percentage", + "defaultValue": 0 + }, + { + "id": "295b9a17-a4b1-4cc9-8ebb-2309b72c75f6", + "name": "batteryCritical", + "displayName": "Battery critical", + "displayNameEvent": "Battery critical changed", + "type": "bool", + "defaultValue": false + }, + { + "id": "e66aba37-2647-4b6b-8740-d59eb98d846c", + "name": "connected", + "displayName": "Connected", + "displayNameEvent": "Connected changed", + "type": "bool", + "defaultValue": true + } + ] + }, + { + "id": "8fc2e79b-1770-4b18-bf01-78ed15893a81", + "name": "waterValve", + "displayName": "Water valve", + "createMethods": ["user"], + "deviceIcon": "None", + "basicTags": ["Device", "Actuator"], + "paramTypes": [ ], + "stateTypes": [ + { + "id": "b7ff029d-f3a6-4b47-978a-ac1a581aac0f", + "name": "power", + "displayName": "Power", + "displayNameEvent": "Power changed", + "displayNameAction": "Set power", + "type": "bool", + "defaultValue": false, + "writable": true + } + ] } ] } From 6c92a398ae882d28e76c86525485dcf7a0f32a25 Mon Sep 17 00:00:00 2001 From: Bernhard Trinnes Date: Mon, 16 Oct 2017 16:51:39 +0200 Subject: [PATCH 22/62] added http commander --- httpcommander/devicepluginhttpcommander.cpp | 143 +++++++++++++++++++ httpcommander/devicepluginhttpcommander.h | 50 +++++++ httpcommander/devicepluginhttpcommander.json | 116 +++++++++++++++ httpcommander/httpcommander.pro | 15 ++ nymea-plugins.pro | 1 + 5 files changed, 325 insertions(+) create mode 100644 httpcommander/devicepluginhttpcommander.cpp create mode 100644 httpcommander/devicepluginhttpcommander.h create mode 100644 httpcommander/devicepluginhttpcommander.json create mode 100644 httpcommander/httpcommander.pro diff --git a/httpcommander/devicepluginhttpcommander.cpp b/httpcommander/devicepluginhttpcommander.cpp new file mode 100644 index 00000000..b968ec29 --- /dev/null +++ b/httpcommander/devicepluginhttpcommander.cpp @@ -0,0 +1,143 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2017 Bernhard Trinnes * + * * + * This file is part of guh. * + * * + * Guh is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, version 2 of the License. * + * * + * Guh is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with guh. If not, see . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include "devicepluginhttpcommander.h" +#include "plugininfo.h" + + +DevicePluginHttpCommander::DevicePluginHttpCommander() +{ +} + +DeviceManager::HardwareResources DevicePluginHttpCommander::requiredHardware() const +{ + return DeviceManager::HardwareResourceNetworkManager | DeviceManager::HardwareResourceTimer; +} + + +DeviceManager::DeviceSetupStatus DevicePluginHttpCommander::setupDevice(Device *device) +{ + if (device->deviceClassId() == httpGetDeviceClassId) { + return DeviceManager::DeviceSetupStatusSuccess; + } + + if (device->deviceClassId() == httpPostDeviceClassId) { + return DeviceManager::DeviceSetupStatusSuccess; + } + return DeviceManager::DeviceSetupStatusFailure; +} + + +void DevicePluginHttpCommander::postSetupDevice(Device *device) +{ + if (device->deviceClassId() == httpGetDeviceClassId) { + QUrl url = device->paramValue(urlParamTypeId).toUrl(); + url.setPort(device->paramValue(portParamTypeId).toInt()); + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("User-Agent", "guhIO 1.0"); + QNetworkReply *reply = networkManagerGet(request);; + m_httpRequests.insert(reply, device); + } +} + + +DeviceManager::DeviceError DevicePluginHttpCommander::executeAction(Device *device, const Action &action) +{ + if (device->deviceClassId() == httpPostDeviceClassId) { + + // check if this is the "press" action + if (action.actionTypeId() == postActionTypeId) { + + QUrl url = device->paramValue(urlParamTypeId).toUrl(); + url.setPort(device->paramValue(portParamTypeId).toInt()); + QByteArray payload = action.param(postDataParamTypeId).value().toByteArray(); + QNetworkReply *reply = networkManagerPost(QNetworkRequest(url), payload); + m_httpRequests.insert(reply, device); + + return DeviceManager::DeviceErrorNoError; + } + return DeviceManager::DeviceErrorActionTypeNotFound; + + } + return DeviceManager::DeviceErrorDeviceClassNotFound; +} + + +void DevicePluginHttpCommander::deviceRemoved(Device *device) +{ + Q_UNUSED(device); +} + + +void DevicePluginHttpCommander::guhTimer() +{ + + foreach (Device *device, myDevices()) { + + if (device->deviceClassId() == httpGetDeviceClassId) { + QUrl url = device->paramValue(urlParamTypeId).toUrl(); + url.setPort(device->paramValue(portParamTypeId).toInt()); + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("User-Agent", "guhIO 1.0"); + QNetworkReply *reply = networkManagerGet(request);; + m_httpRequests.insert(reply, device); + } + } + +} + + +void DevicePluginHttpCommander::networkManagerReplyReady(QNetworkReply *reply) +{ + QByteArray data = reply->readAll(); + qDebug(dcHttpCommander()) << "Reply received"; + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + + if (m_httpRequests.contains(reply)) { + Device *device = m_httpRequests.take(reply); + + if (device->deviceClassId() == httpGetDeviceClassId) { + device->setStateValue(httpResponseStateTypeId, data); + //device->setStateValue(statusStateTypeId, reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString()); + // check HTTP status code + if (status != 200 || reply->error() != QNetworkReply::NoError) { + qCWarning(dcHttpCommander()) << "Request error:" << status << reply->errorString(); + device->setStateValue(reachableStateTypeId, false); + reply->deleteLater(); + return; + } + device->setStateValue(reachableStateTypeId, true); + } else if (device->deviceClassId() == httpPostDeviceClassId) { + + // check HTTP status code + if (status != 200 || reply->error() != QNetworkReply::NoError) { + qCWarning(dcHttpCommander()) << "Request error:" << status << reply->errorString(); + device->setStateValue(reachableStateTypeId, false); + reply->deleteLater(); + return; + } + device->setStateValue(reachableStateTypeId, true); + } + } + reply->deleteLater(); +} + diff --git a/httpcommander/devicepluginhttpcommander.h b/httpcommander/devicepluginhttpcommander.h new file mode 100644 index 00000000..1cec6299 --- /dev/null +++ b/httpcommander/devicepluginhttpcommander.h @@ -0,0 +1,50 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2017 Bernhard Trinnes * + * * + * This file is part of guh. * + * * + * Guh is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, version 2 of the License. * + * * + * Guh is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with guh. If not, see . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef DEVICEPLUGINDHTTPCOMMANDER_H +#define DEVICEPLUGINDHTTPCOMMANDER_H + +#include "plugin/deviceplugin.h" +#include "devicemanager.h" + +class DevicePluginHttpCommander : public DevicePlugin +{ + Q_OBJECT + + Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginhttpcommander.json") + Q_INTERFACES(DevicePlugin) + +public: + explicit DevicePluginHttpCommander(); + + DeviceManager::HardwareResources requiredHardware() const override; + DeviceManager::DeviceSetupStatus setupDevice(Device *device) override; + void postSetupDevice(Device *device) override; + void deviceRemoved(Device *device) override; + void networkManagerReplyReady(QNetworkReply *reply) override; + void guhTimer() override; + + DeviceManager::DeviceError executeAction(Device *device, const Action &action) override; + +private: + QHash m_httpRequests; +}; + +#endif // DEVICEPLUGINHTTPCOMMANDER_H diff --git a/httpcommander/devicepluginhttpcommander.json b/httpcommander/devicepluginhttpcommander.json new file mode 100644 index 00000000..e929820e --- /dev/null +++ b/httpcommander/devicepluginhttpcommander.json @@ -0,0 +1,116 @@ +{ + "name": "http commander", + "idName": "HttpCommander", + "id": "4e62670c-6268-4487-8dff-cccca498731a", + "vendors": [ + { + "name": "http commander", + "idName": "httpCommander", + "id": "45d7c941-7690-43c9-92fc-fab36e1cebd0", + "deviceClasses": [ + { + "id": "b101abdf-86fd-4d2e-a657-ee76044235bd", + "idName": "httpPost", + "name": "http post", + "deviceIcon": "Network", + "createMethods": ["user"], + "basicTags": [ + "Service" + ], + "primaryStateTypeId": "137ec5fc-22f5-4201-8921-2896deda0fe6", + "paramTypes": [ + { + "id": "1a3fcb23-931b-4ba1-b134-c49b656c76f7", + "idName": "url", + "name": "url or ipv4 address", + "type": "QString", + "inputType": "None", + "defaultValue": "http://nymea.io" + }, + { + "id": "bee8b151-815a-4159-9d8a-42b76e99b42c", + "idName": "port", + "name": "port", + "type": "int", + "defaultValue": "80" + } + ], + "stateTypes": [ + { + "id": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", + "idName": "reachable", + "name": "reachable", + "type": "bool", + "defaultValue": false, + "eventTypeName": "reachable status changed" + } + ], + "actionTypes": [ + { + "id": "5a97ca56-b334-411b-adba-116496ffe83d", + "idName": "post", + "name": "post", + "paramTypes": [ + { + "id": "363119a3-c02c-4ed5-a915-11706198f3eb", + "idName": "postData", + "name": "post data", + "type": "QString", + "defaultValue": "", + "eventTypeName": "post data sent" + } + ] + } + ] + }, + { + "id": "8f3f6dde-9db3-4237-800b-bb7f804098c9", + "idName": "httpGet", + "name": "http get", + "deviceIcon": "Network", + "createMethods": ["user"], + "basicTags": [ + "Service" + ], + "primaryStateTypeId": "137ec5fc-22f5-4201-8921-2896deda0fe6", + "paramTypes": [ + { + "id": "1a3fcb23-931b-4ba1-b134-c49b656c76f7", + "idName": "url", + "name": "Url or IPv4 Address", + "type": "QString", + "inputType": "None", + "defaultValue": "http://nymea.io" + }, + { + "id": "bee8b151-815a-4159-9d8a-42b76e99b42c", + "idName": "port", + "name": "Port", + "type": "int", + "defaultValue": "80" + } + ], + "stateTypes":[ + { + "id": "137ec5fc-22f5-4201-8921-2896deda0fe6", + "idName": "status", + "name": "status", + "type": "QString", + "defaultValue": "Undefined", + "eventTypeName": "connection status changed" + }, + { + "id": "5a97ca56-b334-411b-adba-116496ffe83d", + "idName": "httpResponse", + "name": "response", + "type": "QString", + "defaultValue": "", + "eventTypeName": "response received" + } + ] + } + ] + } + ] +} + diff --git a/httpcommander/httpcommander.pro b/httpcommander/httpcommander.pro new file mode 100644 index 00000000..b1b2b360 --- /dev/null +++ b/httpcommander/httpcommander.pro @@ -0,0 +1,15 @@ +TRANSLATIONS = translations/en_US.ts \ + translations/de_DE.ts + +# Note: include after the TRANSLATIONS definition +include(../plugins.pri) + +TARGET = $$qtLibraryTarget(guh_devicepluginhttpcommander) + +SOURCES += \ + devicepluginhttpcommander.cpp \ + +HEADERS += \ + devicepluginhttpcommander.h \ + + diff --git a/nymea-plugins.pro b/nymea-plugins.pro index 3d3d7b16..28b76841 100644 --- a/nymea-plugins.pro +++ b/nymea-plugins.pro @@ -19,6 +19,7 @@ PLUGIN_DIRS = \ leynew \ udpcommander \ tcpcommander \ + httpcommander \ kodi \ elgato \ senic \ From 7d758a11b882eea619ad05a6e7dac68db373d6f2 Mon Sep 17 00:00:00 2001 From: Bernhard Trinnes Date: Tue, 17 Oct 2017 17:21:44 +0200 Subject: [PATCH 23/62] added http put device and fixed bugs in the post device --- httpcommander/devicepluginhttpcommander.cpp | 35 +++++-- httpcommander/devicepluginhttpcommander.json | 97 +++++++++++++++++--- 2 files changed, 111 insertions(+), 21 deletions(-) diff --git a/httpcommander/devicepluginhttpcommander.cpp b/httpcommander/devicepluginhttpcommander.cpp index b968ec29..9d52ff91 100644 --- a/httpcommander/devicepluginhttpcommander.cpp +++ b/httpcommander/devicepluginhttpcommander.cpp @@ -34,13 +34,15 @@ DeviceManager::HardwareResources DevicePluginHttpCommander::requiredHardware() c DeviceManager::DeviceSetupStatus DevicePluginHttpCommander::setupDevice(Device *device) { - if (device->deviceClassId() == httpGetDeviceClassId) { + if ((device->deviceClassId() == httpGetDeviceClassId) || (device->deviceClassId() == httpPostDeviceClassId) || (device->deviceClassId() == httpPutDeviceClassId)) { + QUrl url = device->paramValue(urlParamTypeId).toUrl(); + if (!url.isValid()) { + qDebug(dcHttpCommander()) << "Given URL is not valid"; + } + return DeviceManager::DeviceSetupStatusSuccess; } - if (device->deviceClassId() == httpPostDeviceClassId) { - return DeviceManager::DeviceSetupStatusSuccess; - } return DeviceManager::DeviceSetupStatusFailure; } @@ -56,6 +58,10 @@ void DevicePluginHttpCommander::postSetupDevice(Device *device) QNetworkReply *reply = networkManagerGet(request);; m_httpRequests.insert(reply, device); } + if ((device->deviceClassId() == httpPostDeviceClassId) || (device->deviceClassId() == httpPutDeviceClassId)) { + //TODO find a way to check it the URL is reachable + device->setStateValue(reachableStateTypeId, true); + } } @@ -77,6 +83,20 @@ DeviceManager::DeviceError DevicePluginHttpCommander::executeAction(Device *devi return DeviceManager::DeviceErrorActionTypeNotFound; } + if (device->deviceClassId() == httpPutDeviceClassId) { + + // check if this is the "press" action + if (action.actionTypeId() == putActionTypeId) { + + QUrl url = device->paramValue(urlParamTypeId).toUrl(); + url.setPort(device->paramValue(portParamTypeId).toInt()); + QByteArray payload = action.param(putDataParamTypeId).value().toByteArray(); + QNetworkReply *reply = networkManagerPut(QNetworkRequest(url), payload); + m_httpRequests.insert(reply, device); + + return DeviceManager::DeviceErrorNoError; + } + } return DeviceManager::DeviceErrorDeviceClassNotFound; } @@ -116,8 +136,7 @@ void DevicePluginHttpCommander::networkManagerReplyReady(QNetworkReply *reply) Device *device = m_httpRequests.take(reply); if (device->deviceClassId() == httpGetDeviceClassId) { - device->setStateValue(httpResponseStateTypeId, data); - //device->setStateValue(statusStateTypeId, reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString()); + device->setStateValue(getDataStateTypeId, data); // check HTTP status code if (status != 200 || reply->error() != QNetworkReply::NoError) { qCWarning(dcHttpCommander()) << "Request error:" << status << reply->errorString(); @@ -126,8 +145,8 @@ void DevicePluginHttpCommander::networkManagerReplyReady(QNetworkReply *reply) return; } device->setStateValue(reachableStateTypeId, true); - } else if (device->deviceClassId() == httpPostDeviceClassId) { - + } else if ((device->deviceClassId() == httpPostDeviceClassId) || (device->deviceClassId() == httpPutDeviceClassId) ) { + device->setStateValue(httpResponseStateTypeId, data); // check HTTP status code if (status != 200 || reply->error() != QNetworkReply::NoError) { qCWarning(dcHttpCommander()) << "Request error:" << status << reply->errorString(); diff --git a/httpcommander/devicepluginhttpcommander.json b/httpcommander/devicepluginhttpcommander.json index e929820e..0ad28dc6 100644 --- a/httpcommander/devicepluginhttpcommander.json +++ b/httpcommander/devicepluginhttpcommander.json @@ -17,7 +17,7 @@ "basicTags": [ "Service" ], - "primaryStateTypeId": "137ec5fc-22f5-4201-8921-2896deda0fe6", + "criticalStateTypeId": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", "paramTypes": [ { "id": "1a3fcb23-931b-4ba1-b134-c49b656c76f7", @@ -42,7 +42,15 @@ "name": "reachable", "type": "bool", "defaultValue": false, - "eventTypeName": "reachable status changed" + "eventTypeName": "reachability changed" + }, + { + "id": "69f32ec8-114d-43f4-9241-1f6a57261f32", + "idName": "httpResponse", + "name": "response", + "type": "QString", + "defaultValue": "", + "eventTypeName": "response received" } ], "actionTypes": [ @@ -63,6 +71,69 @@ } ] }, + { + "id": "05bf65f5-ff13-43e3-b6ae-77019e79d8a1", + "idName": "httpPut", + "name": "http put", + "deviceIcon": "Network", + "createMethods": ["user"], + "basicTags": [ + "Service" + ], + "criticalStateTypeId": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", + "paramTypes": [ + { + "id": "1a3fcb23-931b-4ba1-b134-c49b656c76f7", + "idName": "url", + "name": "url or ipv4 address", + "type": "QString", + "inputType": "None", + "defaultValue": "http://nymea.io" + }, + { + "id": "bee8b151-815a-4159-9d8a-42b76e99b42c", + "idName": "port", + "name": "port", + "type": "int", + "defaultValue": "80" + } + ], + "stateTypes": [ + { + "id": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", + "idName": "reachable", + "name": "reachable", + "type": "bool", + "defaultValue": false, + "eventTypeName": "reachability changed" + }, + { + "id": "69f32ec8-114d-43f4-9241-1f6a57261f32", + "idName": "httpResponse", + "name": "response", + "type": "QString", + "defaultValue": "", + "eventTypeName": "response received" + } + ], + "actionTypes": [ + { + "id": "a9f165dc-cdf1-48f0-b4b6-7c24373cb77c", + "idName": "put", + "name": "put", + "paramTypes": [ + { + "id": "7742d445-8fc1-4b20-87f2-1bb35929fce1", + "idName": "putData", + "name": "put data", + "type": "QString", + "defaultValue": "", + "eventTypeName": "post data sent" + } + ] + } + ] + }, { "id": "8f3f6dde-9db3-4237-800b-bb7f804098c9", "idName": "httpGet", @@ -72,7 +143,7 @@ "basicTags": [ "Service" ], - "primaryStateTypeId": "137ec5fc-22f5-4201-8921-2896deda0fe6", + "criticalStateTypeId": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", "paramTypes": [ { "id": "1a3fcb23-931b-4ba1-b134-c49b656c76f7", @@ -92,20 +163,20 @@ ], "stateTypes":[ { - "id": "137ec5fc-22f5-4201-8921-2896deda0fe6", - "idName": "status", - "name": "status", - "type": "QString", - "defaultValue": "Undefined", - "eventTypeName": "connection status changed" + "id": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", + "idName": "reachable", + "name": "reachable", + "type": "bool", + "defaultValue": false, + "eventTypeName": "reachability changed" }, { - "id": "5a97ca56-b334-411b-adba-116496ffe83d", - "idName": "httpResponse", - "name": "response", + "id": "d81f0644-b94e-48ed-ae48-1b8ff6cebc0c", + "idName": "getData", + "name": "data", "type": "QString", "defaultValue": "", - "eventTypeName": "response received" + "eventTypeName": "get data received" } ] } From b2b94480fc3476041f127f7a3a6447c8a962882f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Wed, 15 Nov 2017 21:38:05 +0100 Subject: [PATCH 24/62] Add debian package for http commander --- debian/control | 17 +++++++++++++++-- debian/guh-plugin-httpcommander.install.in | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 debian/guh-plugin-httpcommander.install.in diff --git a/debian/control b/debian/control index d181a514..9645c2d2 100644 --- a/debian/control +++ b/debian/control @@ -508,6 +508,20 @@ Description: nymea.io plugin for TCP commander . This package will install the nymea.io plugin for TCP commander +Package: guh-plugin-httpcommander +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + guh-plugins-translations, +Description: guh.io plugin for HTTP commander + The guh daemon is a plugin based IoT (Internet of Things) server. The + server works like a translator for devices, things and services and + allows them to interact. + With the powerful rule engine you are able to connect any device available + in the system and create individual scenes and behaviors for your environment. + . + This package will install the guh.io plugin for HTTP commander + Package: nymea-plugin-simulation Architecture: any @@ -589,7 +603,6 @@ Description: nymea.io plugin for keba This package will install the nymea.io plugin for keba - Package: nymea-plugins-translations Section: misc Architecture: all @@ -605,7 +618,6 @@ Description: Translation files for nymea plugins - translations This package provides the translation files for all nymea plugins. - Package: nymea-plugins Section: libs Architecture: all @@ -644,6 +656,7 @@ Architecture: all Depends: nymea-plugin-commandlauncher, nymea-plugin-udpcommander, nymea-plugin-tcpcommander, + nymea-plugin-httpcommander, nymea-plugin-genericelements, nymea-plugin-avahimonitor, nymea-plugin-gpio, diff --git a/debian/guh-plugin-httpcommander.install.in b/debian/guh-plugin-httpcommander.install.in new file mode 100644 index 00000000..710316ae --- /dev/null +++ b/debian/guh-plugin-httpcommander.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginhttpcommander.so From 7cddf914636fbd2346d2298dc05a6aad2573fde6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 9 Feb 2018 20:09:53 +0100 Subject: [PATCH 25/62] Migrate to interfaces and hardwaremanager --- httpcommander/devicepluginhttpcommander.cpp | 231 +++++++++++++------ httpcommander/devicepluginhttpcommander.h | 20 +- httpcommander/devicepluginhttpcommander.json | 130 +++++------ httpcommander/httpcommander.pro | 4 - 4 files changed, 241 insertions(+), 144 deletions(-) diff --git a/httpcommander/devicepluginhttpcommander.cpp b/httpcommander/devicepluginhttpcommander.cpp index 9d52ff91..13d4c211 100644 --- a/httpcommander/devicepluginhttpcommander.cpp +++ b/httpcommander/devicepluginhttpcommander.cpp @@ -1,6 +1,7 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2017 Bernhard Trinnes * + * Copyright (C) 2018 Simon Stürz * * * * This file is part of guh. * * * @@ -19,6 +20,7 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include "devicepluginhttpcommander.h" +#include "network/networkaccessmanager.h" #include "plugininfo.h" @@ -26,18 +28,49 @@ DevicePluginHttpCommander::DevicePluginHttpCommander() { } -DeviceManager::HardwareResources DevicePluginHttpCommander::requiredHardware() const +DevicePluginHttpCommander::~DevicePluginHttpCommander() { - return DeviceManager::HardwareResourceNetworkManager | DeviceManager::HardwareResourceTimer; + hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer); } +void DevicePluginHttpCommander::init() +{ + m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(10); + connect(m_pluginTimer, &PluginTimer::timeout, this, &DevicePluginHttpCommander::onPluginTimer); +} DeviceManager::DeviceSetupStatus DevicePluginHttpCommander::setupDevice(Device *device) { - if ((device->deviceClassId() == httpGetDeviceClassId) || (device->deviceClassId() == httpPostDeviceClassId) || (device->deviceClassId() == httpPutDeviceClassId)) { - QUrl url = device->paramValue(urlParamTypeId).toUrl(); + qDebug(dcHttpCommander()) << "Setup device" << device->name() << device->params(); + + // Get + if (device->deviceClassId() == httpGetCommanderDeviceClassId) { + QUrl url = device->paramValue(httpGetCommanderUrlParamTypeId).toUrl(); if (!url.isValid()) { qDebug(dcHttpCommander()) << "Given URL is not valid"; + return DeviceManager::DeviceSetupStatusFailure; + } + + return DeviceManager::DeviceSetupStatusSuccess; + } + + // Put + if (device->deviceClassId() == httpPutCommanderDeviceClassId) { + QUrl url = device->paramValue(httpPutCommanderUrlParamTypeId).toUrl(); + if (!url.isValid()) { + qDebug(dcHttpCommander()) << "Given URL is not valid"; + return DeviceManager::DeviceSetupStatusFailure; + } + + return DeviceManager::DeviceSetupStatusSuccess; + } + + // Post + if (device->deviceClassId() == httpPostCommanderDeviceClassId) { + QUrl url = device->paramValue(httpPostCommanderUrlParamTypeId).toUrl(); + if (!url.isValid()) { + qDebug(dcHttpCommander()) << "Given URL is not valid"; + return DeviceManager::DeviceSetupStatusFailure; } return DeviceManager::DeviceSetupStatusSuccess; @@ -49,33 +82,34 @@ DeviceManager::DeviceSetupStatus DevicePluginHttpCommander::setupDevice(Device * void DevicePluginHttpCommander::postSetupDevice(Device *device) { - if (device->deviceClassId() == httpGetDeviceClassId) { - QUrl url = device->paramValue(urlParamTypeId).toUrl(); - url.setPort(device->paramValue(portParamTypeId).toInt()); - QNetworkRequest request; - request.setUrl(url); - request.setRawHeader("User-Agent", "guhIO 1.0"); - QNetworkReply *reply = networkManagerGet(request);; - m_httpRequests.insert(reply, device); + if (device->deviceClassId() == httpGetCommanderDeviceClassId) { + makeGetCall(device); } - if ((device->deviceClassId() == httpPostDeviceClassId) || (device->deviceClassId() == httpPutDeviceClassId)) { + + if (device->deviceClassId() == httpPostCommanderDeviceClassId) { //TODO find a way to check it the URL is reachable - device->setStateValue(reachableStateTypeId, true); + device->setStateValue(httpPostCommanderConnectedStateTypeId, true); + } + + if (device->deviceClassId() == httpPutCommanderDeviceClassId) { + //TODO find a way to check it the URL is reachable + device->setStateValue(httpPutCommanderConnectedStateTypeId, true); } } DeviceManager::DeviceError DevicePluginHttpCommander::executeAction(Device *device, const Action &action) { - if (device->deviceClassId() == httpPostDeviceClassId) { + if (device->deviceClassId() == httpPostCommanderDeviceClassId) { - // check if this is the "press" action - if (action.actionTypeId() == postActionTypeId) { + if (action.actionTypeId() == httpPostCommanderPostActionTypeId) { + QUrl url = device->paramValue(httpPostCommanderUrlParamTypeId).toUrl(); + url.setPort(device->paramValue(httpPostCommanderPortParamTypeId).toInt()); + QByteArray payload = action.param(httpPostCommanderDataParamTypeId).value().toByteArray(); + + QNetworkReply *reply = hardwareManager()->networkManager()->post(QNetworkRequest(url), payload); + connect(reply, &QNetworkReply::finished, this, &DevicePluginHttpCommander::onPostRequestFinished); - QUrl url = device->paramValue(urlParamTypeId).toUrl(); - url.setPort(device->paramValue(portParamTypeId).toInt()); - QByteArray payload = action.param(postDataParamTypeId).value().toByteArray(); - QNetworkReply *reply = networkManagerPost(QNetworkRequest(url), payload); m_httpRequests.insert(reply, device); return DeviceManager::DeviceErrorNoError; @@ -83,15 +117,18 @@ DeviceManager::DeviceError DevicePluginHttpCommander::executeAction(Device *devi return DeviceManager::DeviceErrorActionTypeNotFound; } - if (device->deviceClassId() == httpPutDeviceClassId) { + + if (device->deviceClassId() == httpPutCommanderDeviceClassId) { // check if this is the "press" action - if (action.actionTypeId() == putActionTypeId) { + if (action.actionTypeId() == httpPutCommanderPutActionTypeId) { + + QUrl url = device->paramValue(httpPutCommanderUrlParamTypeId).toUrl(); + url.setPort(device->paramValue(httpPutCommanderPortParamTypeId).toInt()); + QByteArray payload = action.param(httpPutCommanderDataParamTypeId).value().toByteArray(); + QNetworkReply *reply = hardwareManager()->networkManager()->put(QNetworkRequest(url), payload); + connect(reply, &QNetworkReply::finished, this, &DevicePluginHttpCommander::onPutRequestFinished); - QUrl url = device->paramValue(urlParamTypeId).toUrl(); - url.setPort(device->paramValue(portParamTypeId).toInt()); - QByteArray payload = action.param(putDataParamTypeId).value().toByteArray(); - QNetworkReply *reply = networkManagerPut(QNetworkRequest(url), payload); m_httpRequests.insert(reply, device); return DeviceManager::DeviceErrorNoError; @@ -100,63 +137,117 @@ DeviceManager::DeviceError DevicePluginHttpCommander::executeAction(Device *devi return DeviceManager::DeviceErrorDeviceClassNotFound; } - -void DevicePluginHttpCommander::deviceRemoved(Device *device) +void DevicePluginHttpCommander::makeGetCall(Device *device) { - Q_UNUSED(device); + QUrl url = device->paramValue(httpGetCommanderUrlParamTypeId).toUrl(); + url.setPort(device->paramValue(httpGetCommanderPortParamTypeId).toInt()); + QNetworkRequest request; + request.setUrl(url); + request.setRawHeader("User-Agent", "guhIO 1.0"); + + QNetworkReply *reply = hardwareManager()->networkManager()->get(request); + connect(reply, &QNetworkReply::finished, this, &DevicePluginHttpCommander::onGetRequestFinished); + + m_httpRequests.insert(reply, device); } - -void DevicePluginHttpCommander::guhTimer() +void DevicePluginHttpCommander::onPluginTimer() { - foreach (Device *device, myDevices()) { - - if (device->deviceClassId() == httpGetDeviceClassId) { - QUrl url = device->paramValue(urlParamTypeId).toUrl(); - url.setPort(device->paramValue(portParamTypeId).toInt()); - QNetworkRequest request; - request.setUrl(url); - request.setRawHeader("User-Agent", "guhIO 1.0"); - QNetworkReply *reply = networkManagerGet(request);; - m_httpRequests.insert(reply, device); + if (device->deviceClassId() == httpGetCommanderDeviceClassId) { + makeGetCall(device); } } - } - -void DevicePluginHttpCommander::networkManagerReplyReady(QNetworkReply *reply) +void DevicePluginHttpCommander::onGetRequestFinished() { + QNetworkReply *reply = static_cast(sender()); + qDebug(dcHttpCommander()) << "GET reply finished"; QByteArray data = reply->readAll(); - qDebug(dcHttpCommander()) << "Reply received"; int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); - if (m_httpRequests.contains(reply)) { - Device *device = m_httpRequests.take(reply); - - if (device->deviceClassId() == httpGetDeviceClassId) { - device->setStateValue(getDataStateTypeId, data); - // check HTTP status code - if (status != 200 || reply->error() != QNetworkReply::NoError) { - qCWarning(dcHttpCommander()) << "Request error:" << status << reply->errorString(); - device->setStateValue(reachableStateTypeId, false); - reply->deleteLater(); - return; - } - device->setStateValue(reachableStateTypeId, true); - } else if ((device->deviceClassId() == httpPostDeviceClassId) || (device->deviceClassId() == httpPutDeviceClassId) ) { - device->setStateValue(httpResponseStateTypeId, data); - // check HTTP status code - if (status != 200 || reply->error() != QNetworkReply::NoError) { - qCWarning(dcHttpCommander()) << "Request error:" << status << reply->errorString(); - device->setStateValue(reachableStateTypeId, false); - reply->deleteLater(); - return; - } - device->setStateValue(reachableStateTypeId, true); - } + if (!m_httpRequests.contains(reply)) { + reply->deleteLater(); + return; } + + Device *device = m_httpRequests.take(reply); + device->setStateValue(httpGetCommanderResponseStateTypeId, data); + + // Check HTTP status code + if (status != 200 || reply->error() != QNetworkReply::NoError) { + qCWarning(dcHttpCommander()) << "Request error:" << status << reply->errorString(); + device->setStateValue(httpGetCommanderConnectedStateTypeId, false); + reply->deleteLater(); + return; + } + + device->setStateValue(httpGetCommanderConnectedStateTypeId, true); reply->deleteLater(); } +void DevicePluginHttpCommander::onPostRequestFinished() +{ + QNetworkReply *reply = static_cast(sender()); + qDebug(dcHttpCommander()) << "POST reply finished"; + QByteArray data = reply->readAll(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + + if (!m_httpRequests.contains(reply)) { + reply->deleteLater(); + return; + } + + Device *device = m_httpRequests.take(reply); + device->setStateValue(httpPostCommanderResponseStateTypeId, data); + + // Check HTTP status code + if (status != 200 || reply->error() != QNetworkReply::NoError) { + qCWarning(dcHttpCommander()) << "Request error:" << status << reply->errorString(); + device->setStateValue(httpPostCommanderConnectedStateTypeId, false); + reply->deleteLater(); + return; + } + + device->setStateValue(httpPostCommanderConnectedStateTypeId, true); + reply->deleteLater(); +} + +void DevicePluginHttpCommander::onPutRequestFinished() +{ + QNetworkReply *reply = static_cast(sender()); + qDebug(dcHttpCommander()) << "PUT reply finished"; + QByteArray data = reply->readAll(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + + if (!m_httpRequests.contains(reply)) { + reply->deleteLater(); + return; + } + + Device *device = m_httpRequests.take(reply); + device->setStateValue(httpPutCommanderResponseStateTypeId, data); + + // Check HTTP status code + if (status != 200 || reply->error() != QNetworkReply::NoError) { + qCWarning(dcHttpCommander()) << "Request error:" << status << reply->errorString(); + device->setStateValue(httpPutCommanderConnectedStateTypeId, false); + reply->deleteLater(); + return; + } + + device->setStateValue(httpPutCommanderConnectedStateTypeId, true); + reply->deleteLater(); +} + + +void DevicePluginHttpCommander::deviceRemoved(Device *device) +{ + if (m_httpRequests.values().contains(device)) { + QNetworkReply *reply = m_httpRequests.key(device); + m_httpRequests.remove(reply); + // Note: will be deleted once finished + } +} + diff --git a/httpcommander/devicepluginhttpcommander.h b/httpcommander/devicepluginhttpcommander.h index 1cec6299..4bacfa95 100644 --- a/httpcommander/devicepluginhttpcommander.h +++ b/httpcommander/devicepluginhttpcommander.h @@ -1,6 +1,7 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2017 Bernhard Trinnes * + * Copyright (C) 2018 Simon Stürz * * * * This file is part of guh. * * * @@ -23,6 +24,9 @@ #include "plugin/deviceplugin.h" #include "devicemanager.h" +#include "plugintimer.h" + +#include class DevicePluginHttpCommander : public DevicePlugin { @@ -33,18 +37,26 @@ class DevicePluginHttpCommander : public DevicePlugin public: explicit DevicePluginHttpCommander(); + ~DevicePluginHttpCommander(); - DeviceManager::HardwareResources requiredHardware() const override; + void init() override; DeviceManager::DeviceSetupStatus setupDevice(Device *device) override; void postSetupDevice(Device *device) override; void deviceRemoved(Device *device) override; - void networkManagerReplyReady(QNetworkReply *reply) override; - void guhTimer() override; - DeviceManager::DeviceError executeAction(Device *device, const Action &action) override; private: + PluginTimer *m_pluginTimer = nullptr; QHash m_httpRequests; + + void makeGetCall(Device *device); + +private slots: + void onPluginTimer(); + + void onGetRequestFinished(); + void onPostRequestFinished(); + void onPutRequestFinished(); }; #endif // DEVICEPLUGINHTTPCOMMANDER_H diff --git a/httpcommander/devicepluginhttpcommander.json b/httpcommander/devicepluginhttpcommander.json index 0ad28dc6..e400bc87 100644 --- a/httpcommander/devicepluginhttpcommander.json +++ b/httpcommander/devicepluginhttpcommander.json @@ -1,71 +1,70 @@ { - "name": "http commander", - "idName": "HttpCommander", + "name": "HttpCommander", + "displayName": "Http Commander", "id": "4e62670c-6268-4487-8dff-cccca498731a", "vendors": [ { - "name": "http commander", - "idName": "httpCommander", + "name": "httpCommander", + "displayName": "HTTP commander", "id": "45d7c941-7690-43c9-92fc-fab36e1cebd0", "deviceClasses": [ { "id": "b101abdf-86fd-4d2e-a657-ee76044235bd", - "idName": "httpPost", - "name": "http post", + "name": "httpPostCommander", + "displayName": "HTTP post commander", "deviceIcon": "Network", "createMethods": ["user"], "basicTags": [ "Service" ], - "criticalStateTypeId": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", + "interfaces": ["connectable"], "paramTypes": [ { - "id": "1a3fcb23-931b-4ba1-b134-c49b656c76f7", - "idName": "url", - "name": "url or ipv4 address", + "id": "020f672e-cc9a-4b74-92dd-a92a93ab1d23", + "name": "url", + "displayName": "URL or IPv4 address", "type": "QString", "inputType": "None", - "defaultValue": "http://nymea.io" + "defaultValue": "https://nymea.io" }, { - "id": "bee8b151-815a-4159-9d8a-42b76e99b42c", - "idName": "port", + "id": "37830ea8-2249-46e6-aaca-12164928a81a", "name": "port", + "displayName": "port", "type": "int", - "defaultValue": "80" + "defaultValue": "443" } ], "stateTypes": [ { "id": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", - "idName": "reachable", - "name": "reachable", + "name": "connected", + "displayName": "Reachable", + "displayNameEvent": "Reachability changed", "type": "bool", - "defaultValue": false, - "eventTypeName": "reachability changed" + "defaultValue": false }, { "id": "69f32ec8-114d-43f4-9241-1f6a57261f32", - "idName": "httpResponse", "name": "response", + "displayName": "response", + "displayNameEvent": "Response received", "type": "QString", - "defaultValue": "", - "eventTypeName": "response received" + "defaultValue": "" } ], "actionTypes": [ { "id": "5a97ca56-b334-411b-adba-116496ffe83d", - "idName": "post", "name": "post", + "displayName": "Post data", "paramTypes": [ { "id": "363119a3-c02c-4ed5-a915-11706198f3eb", - "idName": "postData", - "name": "post data", + "name": "data", + "displayName": "Data", "type": "QString", - "defaultValue": "", - "eventTypeName": "post data sent" + "defaultValue": "" } ] } @@ -73,62 +72,61 @@ }, { "id": "05bf65f5-ff13-43e3-b6ae-77019e79d8a1", - "idName": "httpPut", - "name": "http put", + "name": "httpPutCommander", + "displayName": "HTTP put commander", "deviceIcon": "Network", "createMethods": ["user"], + "interfaces": ["connectable"], "basicTags": [ "Service" ], - "criticalStateTypeId": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", "paramTypes": [ { "id": "1a3fcb23-931b-4ba1-b134-c49b656c76f7", - "idName": "url", - "name": "url or ipv4 address", + "name": "url", + "displayName": "URL or IPv4 address", "type": "QString", "inputType": "None", - "defaultValue": "http://nymea.io" + "defaultValue": "https://nymea.io" }, { - "id": "bee8b151-815a-4159-9d8a-42b76e99b42c", - "idName": "port", + "id": "db994349-1105-4ce5-b6fe-6fd38fbc436a", "name": "port", + "displayName": "Port", "type": "int", - "defaultValue": "80" + "defaultValue": "443" } ], "stateTypes": [ { - "id": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", - "idName": "reachable", - "name": "reachable", + "id": "d102ff86-b773-48e3-a7a5-e138cb541f49", + "name": "connected", + "displayName": "Reachable", + "displayNameEvent": "Reachability changed", "type": "bool", - "defaultValue": false, - "eventTypeName": "reachability changed" + "defaultValue": false }, { "id": "69f32ec8-114d-43f4-9241-1f6a57261f32", - "idName": "httpResponse", "name": "response", + "displayName": "Response", + "displayNameEvent": "Response received", "type": "QString", - "defaultValue": "", - "eventTypeName": "response received" + "defaultValue": "" } ], "actionTypes": [ { "id": "a9f165dc-cdf1-48f0-b4b6-7c24373cb77c", - "idName": "put", "name": "put", + "displayName": "put", "paramTypes": [ { "id": "7742d445-8fc1-4b20-87f2-1bb35929fce1", - "idName": "putData", - "name": "put data", + "name": "data", + "displayName": "Data", "type": "QString", - "defaultValue": "", - "eventTypeName": "post data sent" + "defaultValue": "" } ] } @@ -136,47 +134,47 @@ }, { "id": "8f3f6dde-9db3-4237-800b-bb7f804098c9", - "idName": "httpGet", - "name": "http get", + "name": "httpGetCommander", + "displayName": "HTTP get", "deviceIcon": "Network", "createMethods": ["user"], "basicTags": [ "Service" ], - "criticalStateTypeId": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", + "interfaces": ["connectable"], "paramTypes": [ { - "id": "1a3fcb23-931b-4ba1-b134-c49b656c76f7", - "idName": "url", - "name": "Url or IPv4 Address", + "id": "477b544b-b631-4526-a4ef-c712ff5f955d", + "name": "url", + "displayName": "URL or IPv4 Address", "type": "QString", "inputType": "None", - "defaultValue": "http://nymea.io" + "defaultValue": "https://nymea.io" }, { "id": "bee8b151-815a-4159-9d8a-42b76e99b42c", - "idName": "port", - "name": "Port", + "name": "port", + "displayName": "Port", "type": "int", - "defaultValue": "80" + "defaultValue": "443" } ], "stateTypes":[ { - "id": "8daac0e7-4c2f-4cdf-b528-02cfe04c6b39", - "idName": "reachable", - "name": "reachable", + "id": "0d63f815-efd1-488a-9bfa-e9f6bda540d2", + "name": "connected", + "displayName": "Reachable", + "displayNameEvent": "Reachability changed", "type": "bool", - "defaultValue": false, - "eventTypeName": "reachability changed" + "defaultValue": false }, { "id": "d81f0644-b94e-48ed-ae48-1b8ff6cebc0c", - "idName": "getData", - "name": "data", + "name": "response", + "displayName": "Response", "type": "QString", "defaultValue": "", - "eventTypeName": "get data received" + "displayNameEvent": "Response data received" } ] } diff --git a/httpcommander/httpcommander.pro b/httpcommander/httpcommander.pro index b1b2b360..34f0ba80 100644 --- a/httpcommander/httpcommander.pro +++ b/httpcommander/httpcommander.pro @@ -1,7 +1,3 @@ -TRANSLATIONS = translations/en_US.ts \ - translations/de_DE.ts - -# Note: include after the TRANSLATIONS definition include(../plugins.pri) TARGET = $$qtLibraryTarget(guh_devicepluginhttpcommander) From cc135935d7d128543453b519ac0a80fe0105a38a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 9 Feb 2018 20:15:05 +0100 Subject: [PATCH 26/62] Add translation files --- httpcommander/translations/de_DE.ts | 4 ++++ httpcommander/translations/en_US.ts | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 httpcommander/translations/de_DE.ts create mode 100644 httpcommander/translations/en_US.ts diff --git a/httpcommander/translations/de_DE.ts b/httpcommander/translations/de_DE.ts new file mode 100644 index 00000000..1552582e --- /dev/null +++ b/httpcommander/translations/de_DE.ts @@ -0,0 +1,4 @@ + + + + diff --git a/httpcommander/translations/en_US.ts b/httpcommander/translations/en_US.ts new file mode 100644 index 00000000..6401616d --- /dev/null +++ b/httpcommander/translations/en_US.ts @@ -0,0 +1,4 @@ + + + + From 56366694c3da7947186535eea98ac1ce4348060a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 13 Mar 2018 17:44:25 +0100 Subject: [PATCH 27/62] Rename to nymea --- httpcommander/devicepluginhttpcommander.h | 2 +- httpcommander/httpcommander.pro | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/httpcommander/devicepluginhttpcommander.h b/httpcommander/devicepluginhttpcommander.h index 4bacfa95..939d2363 100644 --- a/httpcommander/devicepluginhttpcommander.h +++ b/httpcommander/devicepluginhttpcommander.h @@ -32,7 +32,7 @@ class DevicePluginHttpCommander : public DevicePlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "guru.guh.DevicePlugin" FILE "devicepluginhttpcommander.json") + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginhttpcommander.json") Q_INTERFACES(DevicePlugin) public: diff --git a/httpcommander/httpcommander.pro b/httpcommander/httpcommander.pro index 34f0ba80..890aea91 100644 --- a/httpcommander/httpcommander.pro +++ b/httpcommander/httpcommander.pro @@ -1,6 +1,6 @@ include(../plugins.pri) -TARGET = $$qtLibraryTarget(guh_devicepluginhttpcommander) +TARGET = $$qtLibraryTarget(nymea_devicepluginhttpcommander) SOURCES += \ devicepluginhttpcommander.cpp \ From 61191c4a7481a770f6bff9c83ed399206cc60781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 13 Mar 2018 18:00:18 +0100 Subject: [PATCH 28/62] Update license header --- httpcommander/devicepluginhttpcommander.cpp | 20 +++++++++++--------- httpcommander/devicepluginhttpcommander.h | 20 +++++++++++--------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/httpcommander/devicepluginhttpcommander.cpp b/httpcommander/devicepluginhttpcommander.cpp index 13d4c211..cd5327a9 100644 --- a/httpcommander/devicepluginhttpcommander.cpp +++ b/httpcommander/devicepluginhttpcommander.cpp @@ -3,19 +3,21 @@ * Copyright (C) 2017 Bernhard Trinnes * * Copyright (C) 2018 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * - * Guh is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, version 2 of the License. * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * * * - * Guh is distributed in the hope that it will be useful, * + * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * * * - * You should have received a copy of the GNU General Public License * - * along with guh. If not, see . * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/httpcommander/devicepluginhttpcommander.h b/httpcommander/devicepluginhttpcommander.h index 939d2363..d9453ae1 100644 --- a/httpcommander/devicepluginhttpcommander.h +++ b/httpcommander/devicepluginhttpcommander.h @@ -3,19 +3,21 @@ * Copyright (C) 2017 Bernhard Trinnes * * Copyright (C) 2018 Simon Stürz * * * - * This file is part of guh. * + * This file is part of nymea. * * * - * Guh is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, version 2 of the License. * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * * * - * Guh is distributed in the hope that it will be useful, * + * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * * * - * You should have received a copy of the GNU General Public License * - * along with guh. If not, see . * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ From 24163c75b18b28a62a4c66f4a4db2f51903a9414 Mon Sep 17 00:00:00 2001 From: Bernhard Trinnes Date: Sun, 15 Oct 2017 12:50:36 +0200 Subject: [PATCH 29/62] added UDP output and changed Vendor to UDP commander --- udpcommander/devicepluginudpcommander.cpp | 79 ++++++++++++++++------ udpcommander/devicepluginudpcommander.h | 2 + udpcommander/devicepluginudpcommander.json | 58 ++++++++++++++++ 3 files changed, 118 insertions(+), 21 deletions(-) diff --git a/udpcommander/devicepluginudpcommander.cpp b/udpcommander/devicepluginudpcommander.cpp index 3ac4064e..9f8f9600 100644 --- a/udpcommander/devicepluginudpcommander.cpp +++ b/udpcommander/devicepluginudpcommander.cpp @@ -1,6 +1,7 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2015 Simon Stürz * + * Copyright (C) 2017 Bernhard Trinnes * * * * This file is part of nymea. * * * @@ -70,34 +71,68 @@ DevicePluginUdpCommander::DevicePluginUdpCommander() DeviceManager::DeviceSetupStatus DevicePluginUdpCommander::setupDevice(Device *device) { // check port - bool portOk = false; - int port = device->paramValue(commanderPortParamTypeId).toInt(&portOk); - if (!portOk || port <= 0 || port > 65535) { - qCWarning(dcUdpCommander) << device->name() << ": invalid port:" << device->paramValue(commanderPortParamTypeId).toString() << "."; - return DeviceManager::DeviceSetupStatusFailure; + if ((device->deviceClassId() == udpInputDeviceClassId) || (device->deviceClassId() == udpOutputDeviceClassId)) { + bool portOk = false; + int port = device->paramValue(portParamTypeId).toInt(&portOk); + if (!portOk || port <= 0 || port > 65535) { + qCWarning(dcUdpCommander) << device->name() << ": invalid port:" << device->paramValue(portParamTypeId).toString() << "."; + return DeviceManager::DeviceSetupStatusFailure; + } + + QUdpSocket *udpSocket = new QUdpSocket(this); + + if (!udpSocket->bind(QHostAddress::Any, port)) { + qCWarning(dcUdpCommander) << device->name() << "can't bind to port" << port << "."; + delete udpSocket; + return DeviceManager::DeviceSetupStatusFailure; + } + + connect(udpSocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); + m_commanderList.insert(udpSocket, device); + + return DeviceManager::DeviceSetupStatusSuccess; } + return DeviceManager::DeviceSetupStatusFailure; +} - QUdpSocket *udpSocket = new QUdpSocket(this); - if (!udpSocket->bind(QHostAddress::Any, port)) { - qCWarning(dcUdpCommander) << device->name() << "can't bind to port" << port << "."; - delete udpSocket; - return DeviceManager::DeviceSetupStatusFailure; +DeviceManager::DeviceError DevicePluginUdpCommander::executeAction(Device *device, const Action &action) { + + if (device->deviceClassId() == udpOutputDeviceClassId) { + + if (action.actionTypeId() == outputDataActionTypeId) { + QUdpSocket *udpSocket = m_commanderList.key(device); + int port = device->paramValue(portParamTypeId).toInt(); + QHostAddress address = QHostAddress(device->paramValue(ipv4AddressParamTypeId).toString()); + QByteArray data = action.param(outputDataAreaParamTypeId).value().toByteArray(); + qDebug(dcUdpCommander()) << "Send UDP datagram:" << data << "address:" << address.toIPv4Address() << "port:" << port; + udpSocket->writeDatagram(data, address, port); + + return DeviceManager::DeviceErrorNoError; + } + return DeviceManager::DeviceErrorActionTypeNotFound; } - - connect(udpSocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); - m_commanderList.insert(udpSocket, device); - - return DeviceManager::DeviceSetupStatusSuccess; + return DeviceManager::DeviceErrorDeviceClassNotFound; } void DevicePluginUdpCommander::deviceRemoved(Device *device) { - QUdpSocket *socket = m_commanderList.key(device); - m_commanderList.remove(socket); + if (device->deviceClassId() == udpInputDeviceClassId) { - socket->close(); - socket->deleteLater(); + QUdpSocket *socket = m_commanderList.key(device); + m_commanderList.remove(socket); + + socket->close(); + socket->deleteLater(); + } + if (device->deviceClassId() == udpOutputDeviceClassId) { + + QUdpSocket *socket = m_commanderList.key(device); + m_commanderList.remove(socket); + + socket->close(); + socket->deleteLater(); + } } void DevicePluginUdpCommander::readPendingDatagrams() @@ -114,8 +149,10 @@ void DevicePluginUdpCommander::readPendingDatagrams() socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort); } - if (datagram == device->paramValue(commanderCommandParamTypeId).toByteArray() || - datagram == device->paramValue(commanderCommandParamTypeId).toByteArray() + "\n") { + device->setStateValue(inputDataStateTypeId, datagram); + + if (datagram == device->paramValue(commandParamTypeId).toByteArray() || + datagram == device->paramValue(commandParamTypeId).toByteArray() + "\n") { qCDebug(dcUdpCommander) << device->name() << " got command from" << sender.toString() << senderPort; emit emitEvent(Event(commanderCommandReceivedEventTypeId, device->id())); socket->writeDatagram("OK\n", sender, senderPort); diff --git a/udpcommander/devicepluginudpcommander.h b/udpcommander/devicepluginudpcommander.h index 01c56c55..bb90e5af 100644 --- a/udpcommander/devicepluginudpcommander.h +++ b/udpcommander/devicepluginudpcommander.h @@ -1,6 +1,7 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2015 Simon Stürz * + * Copyright (C) 2017 Bernhard Trinnes * * * * This file is part of nymea. * * * @@ -41,6 +42,7 @@ public: DeviceManager::DeviceSetupStatus setupDevice(Device *device) override; void deviceRemoved(Device *device) override; + DeviceManager::DeviceError executeAction(Device *device, const Action &action) override; private: QHash m_commanderList; diff --git a/udpcommander/devicepluginudpcommander.json b/udpcommander/devicepluginudpcommander.json index e3824887..71eceeb9 100644 --- a/udpcommander/devicepluginudpcommander.json +++ b/udpcommander/devicepluginudpcommander.json @@ -33,6 +33,17 @@ "inputType": "TextLine" } ], + "stateTypes":[ + { + "id": "065a1a0a-d324-4ae6-a461-bef8143e8795", + "idName": "inputData", + "name": "Input Data", + "type": "QString", + "defaultValue": "", + "eventTypeName": "input data changed", + "index": 0 + } + ], "eventTypes": [ { "id": "5fecbba3-ffbb-456b-872c-a2f571c681cb", @@ -40,6 +51,53 @@ "displayName": "command received" } ] + }, + { + "id": "31b00639-8904-4522-84ed-54c46a54c63c", + "name": "UDP Output", + "idName": "udpOutput", + "deviceIcon": "Network", + "basicTags": [ + "Service", + "Sensor" + ], + "createMethods": ["user"], + "paramTypes": [ + { + "id": "1843adcb-e377-44d1-8d70-ab4f9eeb32ec", + "idName": "port", + "name": "port", + "index": 0, + "type": "int" + }, + { + "id": "ea1be9fc-9a9b-44ba-a28d-e021aef4f046", + "idName": "ipv4Address", + "name": "IPv4 Address", + "type": "QString", + "index": 1, + "inputType": "IPv4Address", + "defaultValue": "127.0.0.1" + } + ], + "actionTypes": [ + { + "id": "6bc52462-b192-46a4-a6df-92cc5a479c89", + "idName": "outputData", + "name": "Send Data", + "index": 0, + "paramTypes": [ + { + "id": "6604c852-6b24-4707-b8e5-1ddd8032efcc", + "idName": "outputDataArea", + "name": "Data", + "type": "QString", + "index": 0, + "inputType": "TextArea" + } + ] + } + ] } ] } From 85d75b0ee7d40606122423adcc8ebceed9dab46a Mon Sep 17 00:00:00 2001 From: Bernhard Trinnes Date: Sun, 15 Oct 2017 13:17:57 +0200 Subject: [PATCH 30/62] added some comments --- udpcommander/devicepluginudpcommander.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/udpcommander/devicepluginudpcommander.cpp b/udpcommander/devicepluginudpcommander.cpp index 9f8f9600..0d2c13ce 100644 --- a/udpcommander/devicepluginudpcommander.cpp +++ b/udpcommander/devicepluginudpcommander.cpp @@ -71,6 +71,7 @@ DevicePluginUdpCommander::DevicePluginUdpCommander() DeviceManager::DeviceSetupStatus DevicePluginUdpCommander::setupDevice(Device *device) { // check port + // TODO ports used by an input should be available for outputs and vice versa if ((device->deviceClassId() == udpInputDeviceClassId) || (device->deviceClassId() == udpOutputDeviceClassId)) { bool portOk = false; int port = device->paramValue(portParamTypeId).toInt(&portOk); @@ -117,15 +118,7 @@ DeviceManager::DeviceError DevicePluginUdpCommander::executeAction(Device *devic void DevicePluginUdpCommander::deviceRemoved(Device *device) { - if (device->deviceClassId() == udpInputDeviceClassId) { - - QUdpSocket *socket = m_commanderList.key(device); - m_commanderList.remove(socket); - - socket->close(); - socket->deleteLater(); - } - if (device->deviceClassId() == udpOutputDeviceClassId) { + if ((device->deviceClassId() == udpInputDeviceClassId) || (device->deviceClassId() == udpOutputDeviceClassId)){ QUdpSocket *socket = m_commanderList.key(device); m_commanderList.remove(socket); @@ -151,6 +144,7 @@ void DevicePluginUdpCommander::readPendingDatagrams() device->setStateValue(inputDataStateTypeId, datagram); + //TO CHECK remove command param and event, comparison may be done in the rule engine if (datagram == device->paramValue(commandParamTypeId).toByteArray() || datagram == device->paramValue(commandParamTypeId).toByteArray() + "\n") { qCDebug(dcUdpCommander) << device->name() << " got command from" << sender.toString() << senderPort; From b4a51e3ccff03174eec8bfce0a29a14316736cc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 13 Mar 2018 18:59:20 +0100 Subject: [PATCH 31/62] Update udp plugin --- udpcommander/devicepluginudpcommander.cpp | 65 +++++++++++---------- udpcommander/devicepluginudpcommander.h | 4 +- udpcommander/devicepluginudpcommander.json | 68 ++++++++++------------ 3 files changed, 69 insertions(+), 68 deletions(-) diff --git a/udpcommander/devicepluginudpcommander.cpp b/udpcommander/devicepluginudpcommander.cpp index 0d2c13ce..51f97f65 100644 --- a/udpcommander/devicepluginudpcommander.cpp +++ b/udpcommander/devicepluginudpcommander.cpp @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright (C) 2015 Simon Stürz * + * Copyright (C) 2015-2018 Simon Stürz * * Copyright (C) 2017 Bernhard Trinnes * * * * This file is part of nymea. * @@ -70,42 +70,39 @@ DevicePluginUdpCommander::DevicePluginUdpCommander() DeviceManager::DeviceSetupStatus DevicePluginUdpCommander::setupDevice(Device *device) { - // check port - // TODO ports used by an input should be available for outputs and vice versa - if ((device->deviceClassId() == udpInputDeviceClassId) || (device->deviceClassId() == udpOutputDeviceClassId)) { - bool portOk = false; - int port = device->paramValue(portParamTypeId).toInt(&portOk); - if (!portOk || port <= 0 || port > 65535) { - qCWarning(dcUdpCommander) << device->name() << ": invalid port:" << device->paramValue(portParamTypeId).toString() << "."; - return DeviceManager::DeviceSetupStatusFailure; - } + qCDebug(dcUdpCommander()) << "Setup device" << device->name() << device->params(); + if (device->deviceClassId() == udpReceiverDeviceClassId) { QUdpSocket *udpSocket = new QUdpSocket(this); - - if (!udpSocket->bind(QHostAddress::Any, port)) { - qCWarning(dcUdpCommander) << device->name() << "can't bind to port" << port << "."; + int port = device->paramValue(udpReceiverPortParamTypeId).toInt(); + if (!udpSocket->bind(QHostAddress::Any, port, QUdpSocket::ShareAddress)) { + qCWarning(dcUdpCommander()) << device->name() << "cannot bind to port" << port; delete udpSocket; return DeviceManager::DeviceSetupStatusFailure; } connect(udpSocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); - m_commanderList.insert(udpSocket, device); + m_receiverList.insert(udpSocket, device); + return DeviceManager::DeviceSetupStatusSuccess; + } else if (device->deviceClassId() == udpCommanderDeviceClassId) { + QUdpSocket *udpSocket = new QUdpSocket(this); + m_commanderList.insert(udpSocket, device); return DeviceManager::DeviceSetupStatusSuccess; } + return DeviceManager::DeviceSetupStatusFailure; } DeviceManager::DeviceError DevicePluginUdpCommander::executeAction(Device *device, const Action &action) { - if (device->deviceClassId() == udpOutputDeviceClassId) { - - if (action.actionTypeId() == outputDataActionTypeId) { + if (device->deviceClassId() == udpCommanderDeviceClassId) { + if (action.actionTypeId() == udpCommanderOutputDataActionTypeId) { QUdpSocket *udpSocket = m_commanderList.key(device); - int port = device->paramValue(portParamTypeId).toInt(); - QHostAddress address = QHostAddress(device->paramValue(ipv4AddressParamTypeId).toString()); - QByteArray data = action.param(outputDataAreaParamTypeId).value().toByteArray(); + int port = device->paramValue(udpCommanderPortParamTypeId).toInt(); + QHostAddress address = QHostAddress(device->paramValue(udpCommanderAddressParamTypeId).toString()); + QByteArray data = action.param(udpCommanderDataParamTypeId).value().toByteArray(); qDebug(dcUdpCommander()) << "Send UDP datagram:" << data << "address:" << address.toIPv4Address() << "port:" << port; udpSocket->writeDatagram(data, address, port); @@ -118,11 +115,15 @@ DeviceManager::DeviceError DevicePluginUdpCommander::executeAction(Device *devic void DevicePluginUdpCommander::deviceRemoved(Device *device) { - if ((device->deviceClassId() == udpInputDeviceClassId) || (device->deviceClassId() == udpOutputDeviceClassId)){ + if (device->deviceClassId() == udpReceiverDeviceClassId) { + QUdpSocket *socket = m_receiverList.key(device); + m_receiverList.remove(socket); + socket->close(); + socket->deleteLater(); + } else if (device->deviceClassId() == udpCommanderDeviceClassId) { QUdpSocket *socket = m_commanderList.key(device); m_commanderList.remove(socket); - socket->close(); socket->deleteLater(); } @@ -130,8 +131,11 @@ void DevicePluginUdpCommander::deviceRemoved(Device *device) void DevicePluginUdpCommander::readPendingDatagrams() { - QUdpSocket *socket= qobject_cast(sender()); - Device *device = m_commanderList.value(socket); + QUdpSocket *socket= static_cast(sender()); + Device *device = m_receiverList.value(socket); + + if (!device) + return; QByteArray datagram; QHostAddress sender; @@ -142,13 +146,14 @@ void DevicePluginUdpCommander::readPendingDatagrams() socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort); } - device->setStateValue(inputDataStateTypeId, datagram); + device->setStateValue(udpReceiverInputDataStateTypeId, datagram); - //TO CHECK remove command param and event, comparison may be done in the rule engine - if (datagram == device->paramValue(commandParamTypeId).toByteArray() || - datagram == device->paramValue(commandParamTypeId).toByteArray() + "\n") { - qCDebug(dcUdpCommander) << device->name() << " got command from" << sender.toString() << senderPort; - emit emitEvent(Event(commanderCommandReceivedEventTypeId, device->id())); + if (datagram == device->paramValue(udpReceiverCommandParamTypeId).toByteArray() || + datagram == device->paramValue(udpReceiverCommandParamTypeId).toByteArray() + "\n") { + qCDebug(dcUdpCommander()) << device->name() << "got command from" << sender.toString() << senderPort; + emit emitEvent(Event(udpReceiverCommandReceivedEventTypeId, device->id())); + + // Send response for verification socket->writeDatagram("OK\n", sender, senderPort); } } diff --git a/udpcommander/devicepluginudpcommander.h b/udpcommander/devicepluginudpcommander.h index bb90e5af..f5c9f9e3 100644 --- a/udpcommander/devicepluginudpcommander.h +++ b/udpcommander/devicepluginudpcommander.h @@ -1,6 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright (C) 2015 Simon Stürz * + * Copyright (C) 2015-2018 Simon Stürz * * Copyright (C) 2017 Bernhard Trinnes * * * * This file is part of nymea. * @@ -43,7 +43,9 @@ public: void deviceRemoved(Device *device) override; DeviceManager::DeviceError executeAction(Device *device, const Action &action) override; + private: + QHash m_receiverList; QHash m_commanderList; private slots: diff --git a/udpcommander/devicepluginudpcommander.json b/udpcommander/devicepluginudpcommander.json index 71eceeb9..c9d2a0a5 100644 --- a/udpcommander/devicepluginudpcommander.json +++ b/udpcommander/devicepluginudpcommander.json @@ -10,72 +10,69 @@ "deviceClasses": [ { "id": "6ecd5a8d-595a-4520-85e3-dcc9679edf66", - "displayName": "UDP Commander", - "name": "commander", + "displayName": "UDP Receiver", + "name": "udpReceiver", "deviceIcon": "Network", - "basicTags": [ - "Service", - "Sensor" - ], + "basicTags": ["Service", "Sensor"], "createMethods": ["user"], "paramTypes": [ { "id": "1843adcb-e377-44d1-8d70-ab4f9eeb32ec", "name": "port", - "displayName": "port", - "type": "int" + "displayName": "Port", + "type": "int", + "minValue": 0, + "maxValue": 65535, + "defaultValue": 4242 }, { "id": "d0f29961-1624-4b91-a0e8-9b1cc86c44c7", "name": "command", - "displayName": "command", + "displayName": "Command", "type": "QString", - "inputType": "TextLine" + "defaultValue": "Hello" } ], "stateTypes":[ { "id": "065a1a0a-d324-4ae6-a461-bef8143e8795", - "idName": "inputData", - "name": "Input Data", + "name": "inputData", + "displayName": "Received data", + "displayNameEvent": "Received data changed", "type": "QString", - "defaultValue": "", - "eventTypeName": "input data changed", - "index": 0 + "defaultValue": "" } ], "eventTypes": [ { "id": "5fecbba3-ffbb-456b-872c-a2f571c681cb", "name": "commandReceived", - "displayName": "command received" + "displayName": "Command received" } ] }, { "id": "31b00639-8904-4522-84ed-54c46a54c63c", - "name": "UDP Output", - "idName": "udpOutput", + "name": "udpCommander", + "displayName": "UDP Commander", "deviceIcon": "Network", - "basicTags": [ - "Service", - "Sensor" - ], + "basicTags": ["Service", "Sensor"], "createMethods": ["user"], "paramTypes": [ { - "id": "1843adcb-e377-44d1-8d70-ab4f9eeb32ec", - "idName": "port", + "id": "eb204dfe-11f8-413f-8b68-8bffef3f9a7f", "name": "port", - "index": 0, - "type": "int" + "displayName": "Port", + "type": "int", + "minValue": 0, + "maxValue": 65535, + "defaultValue": 4242 }, { "id": "ea1be9fc-9a9b-44ba-a28d-e021aef4f046", - "idName": "ipv4Address", - "name": "IPv4 Address", + "name": "address", + "displayName": "Address", "type": "QString", - "index": 1, "inputType": "IPv4Address", "defaultValue": "127.0.0.1" } @@ -83,17 +80,14 @@ "actionTypes": [ { "id": "6bc52462-b192-46a4-a6df-92cc5a479c89", - "idName": "outputData", - "name": "Send Data", - "index": 0, + "name": "outputData", + "displayName": "Send data", "paramTypes": [ { "id": "6604c852-6b24-4707-b8e5-1ddd8032efcc", - "idName": "outputDataArea", - "name": "Data", - "type": "QString", - "index": 0, - "inputType": "TextArea" + "name": "data", + "displayName": "Data", + "type": "QString" } ] } From 0615130cc7ed33ea22cc38a28c86790d18094182 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Tue, 13 Mar 2018 18:07:19 +0100 Subject: [PATCH 32/62] implement connectable interface in networkdetector --- networkdetector/devicepluginnetworkdetector.cpp | 4 ++-- networkdetector/devicepluginnetworkdetector.json | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/networkdetector/devicepluginnetworkdetector.cpp b/networkdetector/devicepluginnetworkdetector.cpp index 6cc3c822..c27a8d4d 100644 --- a/networkdetector/devicepluginnetworkdetector.cpp +++ b/networkdetector/devicepluginnetworkdetector.cpp @@ -141,9 +141,9 @@ void DevicePluginNetworkDetector::deviceReachableChanged(bool reachable) { DeviceMonitor *monitor = static_cast(sender()); Device *device = m_monitors.value(monitor); - if (device->stateValue(networkDeviceInRangeStateTypeId).toBool() != reachable) { + if (device->stateValue(networkDeviceConnectedStateTypeId).toBool() != reachable) { qCDebug(dcNetworkDetector()) << "Device" << device->paramValue(networkDeviceMacAddressParamTypeId).toString() << "reachable changed" << reachable; - device->setStateValue(networkDeviceInRangeStateTypeId, reachable); + device->setStateValue(networkDeviceConnectedStateTypeId, reachable); } } diff --git a/networkdetector/devicepluginnetworkdetector.json b/networkdetector/devicepluginnetworkdetector.json index 799ce515..49175dfd 100644 --- a/networkdetector/devicepluginnetworkdetector.json +++ b/networkdetector/devicepluginnetworkdetector.json @@ -17,6 +17,7 @@ "Device", "Sensor" ], + "interfaces": ["connectable"], "primaryStateTypeId": "cb43e1b5-4f61-4538-bfa2-c33055c542cf", "createMethods": ["user", "discovery"], "paramTypes": [ @@ -38,11 +39,12 @@ "stateTypes": [ { "id": "cb43e1b5-4f61-4538-bfa2-c33055c542cf", - "name": "inRange", + "name": "connected", "displayName": "Device in network", "displayNameEvent": "Device in network changed", "type": "bool", - "defaultValue": false + "defaultValue": false, + "cached": false } ] } From 38d228f9f2b68bbf910e710bca0547da6a09dd38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Wed, 14 Mar 2018 11:19:18 +0100 Subject: [PATCH 33/62] Resort interfaces list of sensortag --- multisensor/devicepluginmultisensor.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/multisensor/devicepluginmultisensor.json b/multisensor/devicepluginmultisensor.json index 34fe1eab..e387337a 100644 --- a/multisensor/devicepluginmultisensor.json +++ b/multisensor/devicepluginmultisensor.json @@ -14,7 +14,7 @@ "displayName": "Sensor Tag (CC2650)", "createMethods": ["discovery"], "deviceIcon": "Thermometer", - "interfaces": ["connectable", "humiditysensor", "temperaturesensor"], + "interfaces": ["temperaturesensor", "humiditysensor", "connectable"], "basicTags": [ "Device", "Sensor" From 90884c59b9849bd8f5e39e46edbe3f8c0ea5771d Mon Sep 17 00:00:00 2001 From: Jenkins Date: Wed, 14 Mar 2018 15:21:37 +0100 Subject: [PATCH 34/62] Automatic translations update by Jenkins --- ...e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts | 274 +++++++++++------- ...e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts | 274 +++++++++++------- 2 files changed, 328 insertions(+), 220 deletions(-) diff --git a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts index 02565e24..ee815b4f 100644 --- a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts +++ b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts @@ -4,28 +4,29 @@ PhilipsHue - + Philips The name of the vendor (0ae1e001-2aa6-47ed-b8c0-334c3728a68f) Philips - + Please press the button on the Hue Bridge within 30 seconds before you continue The pairing info of deviceClass hueBridge Bitte drücken sie den Knopf auf der Hue Bridge innerhalb von 30 Sekunden bevor sie fortfahren - + Hue gateway The name of the DeviceClass (642aa4c7-19aa-45ed-ba06-aa1ae6c9edf7) Hue Gateway - - - - + + + + + name The name of the paramType (275b76f2-0174-4f26-b3ec-5f108baf8bdd) of hueBridge ---------- @@ -33,14 +34,17 @@ The name of the paramType (0d71522c-08c0-4a66-bb5e-e31eb2dd41e5) of hueLight ---------- The name of the paramType (0d71522c-08c0-4a66-bb5e-e31eb2dd41e5) of hueWhiteLight ---------- -The name of the paramType (0d71522c-08c0-4a66-bb5e-e31eb2dd41e5) of hueRemote +The name of the paramType (0d71522c-08c0-4a66-bb5e-e31eb2dd41e5) of hueRemote +---------- +The name of the paramType (3d450f00-b521-4a2c-985f-046fad5122cb) of hueTap Name - - - - + + + + + api key The name of the paramType (8bf5776a-d5a6-4600-8b27-481f0d803a8f) of hueBridge ---------- @@ -48,14 +52,17 @@ The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueLight ---------- The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueWhiteLight ---------- -The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueRemote +The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueRemote +---------- +The name of the paramType (fb507641-9c78-4a28-937d-711775454e90) of hueTap API Schlüssel - - - - + + + + + host address The name of the paramType (1845975b-1184-4440-bc0d-73d53a9f683c) of hueBridge ---------- @@ -63,49 +70,55 @@ The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueLight ---------- The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueWhiteLight ---------- -The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueRemote +The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueRemote +---------- +The name of the paramType (6be56a1b-f64a-4188-a052-1fab11e01718) of hueTap Adresse - + mac address The name of the paramType (2c67203d-a308-45ec-9a08-fc4183c06ff8) of hueBridge MAC Adresse - + id The name of the paramType (a496feb0-3b7b-46cb-a63a-e063447d6b1d) of hueBridge ID - + software version The name of the paramType (ea228c4d-975c-4b43-9445-7c9a907c29d6) of hueBridge Software Version - + zigbee channel The name of the paramType (53170394-956c-4511-b3a8-2c8a502ef1ed) of hueBridge Zigbee Kanal - - - - + + + + + reachable changed The name of the autocreated EventType (15794d26-fde8-4a61-8f83-d7830534975f) ---------- -The name of the autocreated EventType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) +The name of the autocreated EventType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) +---------- +The name of the autocreated EventType (5e21b032-1230-4e93-8543-0c4773da17d3) Erreichbarkeit geändert - - - - + + + + + connected The name of the ParamType of StateType (15794d26-fde8-4a61-8f83-d7830534975f) of DeviceClass hueBridge ---------- @@ -113,102 +126,116 @@ The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of ---------- The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueWhiteLight ---------- -The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueRemote +The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueRemote +---------- +The name of the ParamType of StateType (5e21b032-1230-4e93-8543-0c4773da17d3) of DeviceClass hueTap - + api version changed The name of the autocreated EventType (7a230e89-c4ce-4276-90e0-6a9ddb890603) API Version geändert - + software version changed The name of the autocreated EventType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) Software Version geändert - + update status changed The name of the autocreated EventType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) Update Status geändert - + search devices The name of the ActionType cca3f171-6318-44e7-a2ac-d841857c1c24 of deviceClass hueBridge Suche Geräte - + check updates The name of the ActionType 07a85e91-d064-4bce-b017-13fd0c320c0b of deviceClass hueBridge Suche Updates - + Upgrade bridge The name of the ActionType 6dfbc7c0-7372-42f6-82ba-e777cb32dc4c of deviceClass hueBridge Bridge updaten - + Hue Light The name of the DeviceClass (0edba26c-96ab-44fb-a6a2-c0574d19630e) Hue Licht - - - + + + + bridge The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueLight ---------- The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueWhiteLight ---------- -The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueRemote +The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueRemote +---------- +The name of the paramType (c9e7483b-2f4e-4280-a437-8471f4dc9b22) of hueTap Bridge - - - + + + + model id The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueLight ---------- The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueWhiteLight ---------- -The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueRemote +The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueRemote +---------- +The name of the paramType (62d92175-db3a-4da2-a72b-f58f34cb6911) of hueTap Model ID - - - + + + + type The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueLight ---------- The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueWhiteLight ---------- -The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueRemote +The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueRemote +---------- +The name of the paramType (eace85b9-5369-466f-89eb-46c4de718305) of hueTap Typ - - - + + + + uuid The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueLight ---------- The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueWhiteLight ---------- -The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueRemote +The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueRemote +---------- +The name of the paramType (25cf4167-6c28-4497-9fa9-3d02faf4f3ed) of hueTap UUID - - + + light id The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueLight ---------- @@ -216,15 +243,15 @@ The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueWhiteLigh Licht ID - - + + power changed The name of the autocreated EventType (90aaffe5-6a76-47d2-a14a-550f60390245) Eingeschaltet geändert - - + + power The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueLight ---------- @@ -232,58 +259,58 @@ The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of - - + + Set power The name of the autocreated ActionType (90aaffe5-6a76-47d2-a14a-550f60390245) Einschalten - + color temperature changed The name of the autocreated EventType (c0f4206f-f219-4f06-93c4-4ca515a56f79) Lichtfarben Temperatur geändert - + colorTemperature The name of the ParamType of StateType (c0f4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass hueLight - + Set color temperature The name of the autocreated ActionType (c0f4206f-f219-4f06-93c4-4ca515a56f79) Setze Lichtfarben Temperatur - + color changed The name of the autocreated EventType (d25423e7-b924-4b20-80b6-77eecc65d089) Farbe geändert - + color The name of the ParamType of StateType (d25423e7-b924-4b20-80b6-77eecc65d089) of DeviceClass hueLight - + Set color The name of the autocreated ActionType (d25423e7-b924-4b20-80b6-77eecc65d089) Setze Farbe - - + + brightness changed The name of the autocreated EventType (90e91f64-a208-468c-a5a2-7f47e08859e2) Helligkeit geändert - - + + brightness The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueLight ---------- @@ -291,74 +318,104 @@ The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of - + Set brigtness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) Setze Helligkeit - + effect changed The name of the autocreated EventType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) Licht Effekt geändert - + + batteryLevel + The name of the ParamType of StateType (683e493a-9796-4d5e-b0e3-61cb178d5819) of DeviceClass hueRemote + + + + + battery critical changed + The name of the autocreated EventType (f8516899-6312-4110-bb97-70ffa81dc530) + + + + + batteryCritical + The name of the ParamType of StateType (f8516899-6312-4110-bb97-70ffa81dc530) of DeviceClass hueRemote + + + + + Button pressed - The name of the EventType 8da28cf1-2457-451e-953e-2685f8daeda8 of deviceClass hueRemote + The name of the EventType 8da28cf1-2457-451e-953e-2685f8daeda8 of deviceClass hueRemote +---------- +The name of the EventType c45dd703-7cbd-48f7-88dc-31045cc3d39c of deviceClass hueTap - + + Button name - The name of the paramType (e4e3eb3a-a7c4-49e3-9344-0b3f213e0b42) of hueRemote + The name of the paramType (e4e3eb3a-a7c4-49e3-9344-0b3f213e0b42) of hueRemote +---------- +The name of the paramType (8ed643c0-1b8a-4709-8abf-717cf213f4a4) of hueTap - + Button longpressed The name of the EventType 2c64561b-2381-4769-8e21-0e206c84bbcc of deviceClass hueRemote - + + Hue Tap + The name of the DeviceClass (2b8c1fb8-67ee-42e9-947b-16e0a09f0d4e) + + + + PhilipsHue The name of the plugin PhilipsHue (5f2e634b-b7f3-48ee-976a-b5ae22aa5c55) - + apiVersion The name of the ParamType of StateType (7a230e89-c4ce-4276-90e0-6a9ddb890603) of DeviceClass hueBridge - + softwareVersion The name of the ParamType of StateType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) of DeviceClass hueBridge - + updateStatus The name of the ParamType of StateType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) of DeviceClass hueBridge - + hueEffect The name of the ParamType of StateType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) of DeviceClass hueLight - + Set effect The name of the autocreated ActionType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) Setze Licht Effekt - - + + flash The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass hueLight ---------- @@ -366,8 +423,8 @@ The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass h Aufleuchten - - + + alert The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueLight ---------- @@ -375,85 +432,82 @@ The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueWhiteLigh Alarm - + Hue White Light The name of the DeviceClass (4fa568ef-7a3a-422b-b0c0-206d37cb4eed) Hue Weißlicht - + Set brightness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) - + Hue Remote The name of the DeviceClass (bb482d39-67ef-46dc-88e9-7b181d642b28) Hue Fernbedienung - + + sensor id - The name of the paramType (2ddb571b-149f-4f08-a76a-78b7d3aa27e0) of hueRemote + The name of the paramType (2ddb571b-149f-4f08-a76a-78b7d3aa27e0) of hueRemote +---------- +The name of the paramType (5eca2b24-8986-4487-bc12-50e91d023d97) of hueTap Sensor ID - + battery changed The name of the autocreated EventType (683e493a-9796-4d5e-b0e3-61cb178d5819) Batterie geändert - - battery - The name of the ParamType of StateType (683e493a-9796-4d5e-b0e3-61cb178d5819) of DeviceClass hueRemote - Batterie - - - + on pressed The name of the EventType de769db0-4c31-46cf-9760-dbc6f9209c26 of deviceClass hueRemote Wenn gedrückt - + on long pressed The name of the EventType 6c5e596b-7c15-40bb-af9d-c778a6b0f30e of deviceClass hueRemote Wenn lange gedrückt - + dim up pressed The name of the EventType 8e3d6a62-6a19-4e9a-a25b-e1da2e56ede9 of deviceClass hueRemote Hochdimmen - + dim up long pressed The name of the EventType 53d3c9af-3e25-4116-b22b-38d897bc20aa of deviceClass hueRemote Runterdimmen - + dim down pressed The name of the EventType efd8b972-9a37-43f2-b9bc-f9dfe144a96d of deviceClass hueRemote Runter dimmen gedrückt - + dim down long pressed The name of the EventType 1986d4c6-4c9f-4e43-ba70-0ff06c6f177b of deviceClass hueRemote Runter dimmen lange gedrückt - + off pressed The name of the EventType 7c2a58f1-137c-4bf3-8f9e-453dff020487 of deviceClass hueRemote Aus gedrückt - + off long pressed The name of the EventType d69306eb-ea52-4841-9e26-89c69e9cf6fc of deviceClass hueRemote Aus lange gedrückt diff --git a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts index 21cb3bb4..3e582a3b 100644 --- a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts +++ b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts @@ -4,28 +4,29 @@ PhilipsHue - + Philips The name of the vendor (0ae1e001-2aa6-47ed-b8c0-334c3728a68f) - + Please press the button on the Hue Bridge within 30 seconds before you continue The pairing info of deviceClass hueBridge - + Hue gateway The name of the DeviceClass (642aa4c7-19aa-45ed-ba06-aa1ae6c9edf7) - - - - + + + + + name The name of the paramType (275b76f2-0174-4f26-b3ec-5f108baf8bdd) of hueBridge ---------- @@ -33,14 +34,17 @@ The name of the paramType (0d71522c-08c0-4a66-bb5e-e31eb2dd41e5) of hueLight ---------- The name of the paramType (0d71522c-08c0-4a66-bb5e-e31eb2dd41e5) of hueWhiteLight ---------- -The name of the paramType (0d71522c-08c0-4a66-bb5e-e31eb2dd41e5) of hueRemote +The name of the paramType (0d71522c-08c0-4a66-bb5e-e31eb2dd41e5) of hueRemote +---------- +The name of the paramType (3d450f00-b521-4a2c-985f-046fad5122cb) of hueTap - - - - + + + + + api key The name of the paramType (8bf5776a-d5a6-4600-8b27-481f0d803a8f) of hueBridge ---------- @@ -48,14 +52,17 @@ The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueLight ---------- The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueWhiteLight ---------- -The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueRemote +The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueRemote +---------- +The name of the paramType (fb507641-9c78-4a28-937d-711775454e90) of hueTap - - - - + + + + + host address The name of the paramType (1845975b-1184-4440-bc0d-73d53a9f683c) of hueBridge ---------- @@ -63,49 +70,55 @@ The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueLight ---------- The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueWhiteLight ---------- -The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueRemote +The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueRemote +---------- +The name of the paramType (6be56a1b-f64a-4188-a052-1fab11e01718) of hueTap - + mac address The name of the paramType (2c67203d-a308-45ec-9a08-fc4183c06ff8) of hueBridge - + id The name of the paramType (a496feb0-3b7b-46cb-a63a-e063447d6b1d) of hueBridge - + software version The name of the paramType (ea228c4d-975c-4b43-9445-7c9a907c29d6) of hueBridge - + zigbee channel The name of the paramType (53170394-956c-4511-b3a8-2c8a502ef1ed) of hueBridge - - - - + + + + + reachable changed The name of the autocreated EventType (15794d26-fde8-4a61-8f83-d7830534975f) ---------- -The name of the autocreated EventType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) +The name of the autocreated EventType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) +---------- +The name of the autocreated EventType (5e21b032-1230-4e93-8543-0c4773da17d3) - - - - + + + + + connected The name of the ParamType of StateType (15794d26-fde8-4a61-8f83-d7830534975f) of DeviceClass hueBridge ---------- @@ -113,102 +126,116 @@ The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of ---------- The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueWhiteLight ---------- -The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueRemote +The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueRemote +---------- +The name of the ParamType of StateType (5e21b032-1230-4e93-8543-0c4773da17d3) of DeviceClass hueTap - + api version changed The name of the autocreated EventType (7a230e89-c4ce-4276-90e0-6a9ddb890603) - + software version changed The name of the autocreated EventType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) - + update status changed The name of the autocreated EventType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) - + search devices The name of the ActionType cca3f171-6318-44e7-a2ac-d841857c1c24 of deviceClass hueBridge - + check updates The name of the ActionType 07a85e91-d064-4bce-b017-13fd0c320c0b of deviceClass hueBridge - + Upgrade bridge The name of the ActionType 6dfbc7c0-7372-42f6-82ba-e777cb32dc4c of deviceClass hueBridge - + Hue Light The name of the DeviceClass (0edba26c-96ab-44fb-a6a2-c0574d19630e) - - - + + + + bridge The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueLight ---------- The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueWhiteLight ---------- -The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueRemote +The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueRemote +---------- +The name of the paramType (c9e7483b-2f4e-4280-a437-8471f4dc9b22) of hueTap - - - + + + + model id The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueLight ---------- The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueWhiteLight ---------- -The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueRemote +The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueRemote +---------- +The name of the paramType (62d92175-db3a-4da2-a72b-f58f34cb6911) of hueTap - - - + + + + type The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueLight ---------- The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueWhiteLight ---------- -The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueRemote +The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueRemote +---------- +The name of the paramType (eace85b9-5369-466f-89eb-46c4de718305) of hueTap - - - + + + + uuid The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueLight ---------- The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueWhiteLight ---------- -The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueRemote +The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueRemote +---------- +The name of the paramType (25cf4167-6c28-4497-9fa9-3d02faf4f3ed) of hueTap - - + + light id The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueLight ---------- @@ -216,15 +243,15 @@ The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueWhiteLigh - - + + power changed The name of the autocreated EventType (90aaffe5-6a76-47d2-a14a-550f60390245) - - + + power The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueLight ---------- @@ -232,58 +259,58 @@ The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of - - + + Set power The name of the autocreated ActionType (90aaffe5-6a76-47d2-a14a-550f60390245) - + color temperature changed The name of the autocreated EventType (c0f4206f-f219-4f06-93c4-4ca515a56f79) - + colorTemperature The name of the ParamType of StateType (c0f4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass hueLight - + Set color temperature The name of the autocreated ActionType (c0f4206f-f219-4f06-93c4-4ca515a56f79) - + color changed The name of the autocreated EventType (d25423e7-b924-4b20-80b6-77eecc65d089) - + color The name of the ParamType of StateType (d25423e7-b924-4b20-80b6-77eecc65d089) of DeviceClass hueLight - + Set color The name of the autocreated ActionType (d25423e7-b924-4b20-80b6-77eecc65d089) - - + + brightness changed The name of the autocreated EventType (90e91f64-a208-468c-a5a2-7f47e08859e2) - - + + brightness The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueLight ---------- @@ -291,74 +318,104 @@ The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of - + Set brigtness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) - + effect changed The name of the autocreated EventType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) - + + batteryLevel + The name of the ParamType of StateType (683e493a-9796-4d5e-b0e3-61cb178d5819) of DeviceClass hueRemote + + + + + battery critical changed + The name of the autocreated EventType (f8516899-6312-4110-bb97-70ffa81dc530) + + + + + batteryCritical + The name of the ParamType of StateType (f8516899-6312-4110-bb97-70ffa81dc530) of DeviceClass hueRemote + + + + + Button pressed - The name of the EventType 8da28cf1-2457-451e-953e-2685f8daeda8 of deviceClass hueRemote + The name of the EventType 8da28cf1-2457-451e-953e-2685f8daeda8 of deviceClass hueRemote +---------- +The name of the EventType c45dd703-7cbd-48f7-88dc-31045cc3d39c of deviceClass hueTap - + + Button name - The name of the paramType (e4e3eb3a-a7c4-49e3-9344-0b3f213e0b42) of hueRemote + The name of the paramType (e4e3eb3a-a7c4-49e3-9344-0b3f213e0b42) of hueRemote +---------- +The name of the paramType (8ed643c0-1b8a-4709-8abf-717cf213f4a4) of hueTap - + Button longpressed The name of the EventType 2c64561b-2381-4769-8e21-0e206c84bbcc of deviceClass hueRemote - + + Hue Tap + The name of the DeviceClass (2b8c1fb8-67ee-42e9-947b-16e0a09f0d4e) + + + + PhilipsHue The name of the plugin PhilipsHue (5f2e634b-b7f3-48ee-976a-b5ae22aa5c55) - + apiVersion The name of the ParamType of StateType (7a230e89-c4ce-4276-90e0-6a9ddb890603) of DeviceClass hueBridge - + softwareVersion The name of the ParamType of StateType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) of DeviceClass hueBridge - + updateStatus The name of the ParamType of StateType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) of DeviceClass hueBridge - + hueEffect The name of the ParamType of StateType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) of DeviceClass hueLight - + Set effect The name of the autocreated ActionType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) - - + + flash The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass hueLight ---------- @@ -366,8 +423,8 @@ The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass h - - + + alert The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueLight ---------- @@ -375,85 +432,82 @@ The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueWhiteLigh - + Hue White Light The name of the DeviceClass (4fa568ef-7a3a-422b-b0c0-206d37cb4eed) - + Set brightness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) - + Hue Remote The name of the DeviceClass (bb482d39-67ef-46dc-88e9-7b181d642b28) - + + sensor id - The name of the paramType (2ddb571b-149f-4f08-a76a-78b7d3aa27e0) of hueRemote + The name of the paramType (2ddb571b-149f-4f08-a76a-78b7d3aa27e0) of hueRemote +---------- +The name of the paramType (5eca2b24-8986-4487-bc12-50e91d023d97) of hueTap - + battery changed The name of the autocreated EventType (683e493a-9796-4d5e-b0e3-61cb178d5819) - - battery - The name of the ParamType of StateType (683e493a-9796-4d5e-b0e3-61cb178d5819) of DeviceClass hueRemote - - - - + on pressed The name of the EventType de769db0-4c31-46cf-9760-dbc6f9209c26 of deviceClass hueRemote - + on long pressed The name of the EventType 6c5e596b-7c15-40bb-af9d-c778a6b0f30e of deviceClass hueRemote - + dim up pressed The name of the EventType 8e3d6a62-6a19-4e9a-a25b-e1da2e56ede9 of deviceClass hueRemote - + dim up long pressed The name of the EventType 53d3c9af-3e25-4116-b22b-38d897bc20aa of deviceClass hueRemote - + dim down pressed The name of the EventType efd8b972-9a37-43f2-b9bc-f9dfe144a96d of deviceClass hueRemote - + dim down long pressed The name of the EventType 1986d4c6-4c9f-4e43-ba70-0ff06c6f177b of deviceClass hueRemote - + off pressed The name of the EventType 7c2a58f1-137c-4bf3-8f9e-453dff020487 of deviceClass hueRemote - + off long pressed The name of the EventType d69306eb-ea52-4841-9e26-89c69e9cf6fc of deviceClass hueRemote From 19b7c34de3d5fa4f74d7649bc5fef28317576f68 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Wed, 14 Mar 2018 17:01:12 +0100 Subject: [PATCH 35/62] Automatic translations update by Jenkins --- .../translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts | 2 +- .../translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts index cfc46a97..8469d2c6 100644 --- a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts +++ b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts @@ -41,7 +41,7 @@ - inRange + connected The name of the ParamType of StateType (cb43e1b5-4f61-4538-bfa2-c33055c542cf) of DeviceClass networkDevice diff --git a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts index df29d9d9..7141d261 100644 --- a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts +++ b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts @@ -41,7 +41,7 @@ - inRange + connected The name of the ParamType of StateType (cb43e1b5-4f61-4538-bfa2-c33055c542cf) of DeviceClass networkDevice From 57ed622bd6effbfb0934971e1b76326cb2851381 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Wed, 14 Mar 2018 20:00:02 +0100 Subject: [PATCH 36/62] Automatic translations update by Jenkins --- ...f0d8d-df7d-4bee-80ee-f015c5a7f52e-de_DE.ts | 422 +++++++++++++++--- ...f0d8d-df7d-4bee-80ee-f015c5a7f52e-en_US.ts | 422 +++++++++++++++--- 2 files changed, 698 insertions(+), 146 deletions(-) diff --git a/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-de_DE.ts b/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-de_DE.ts index a4bb190d..01894287 100644 --- a/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-de_DE.ts +++ b/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-de_DE.ts @@ -4,117 +4,393 @@ MultiSensor - + MultiSensor The name of the plugin MultiSensor (23bf0d8d-df7d-4bee-80ee-f015c5a7f52e) - + Texas Instruments The name of the vendor (2edf543e-dc2c-4693-bb0c-e76c0d305fad) - - Sensor Tag - The name of the DeviceClass (158a06b6-b27f-4951-957e-6f1e3b44f604) - - - - - name - The name of the paramType (bdb9d684-2f98-45f5-889c-f184c1e73dc7) of sensortag - - - - - mac address - The name of the paramType (d51ed68e-c84a-4136-a5b5-be2f95fd5a0f) of sensortag - - - - - connected changed - The name of the autocreated EventType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) - - - - + connected - The name of the ParamType of StateType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) of DeviceClass sensortag + The name of the ParamType of StateType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) of DeviceClass sensorTag - - IR temperature changed - The name of the autocreated EventType (c664e9ec-a045-49ba-add1-1642ceba7c4f) - - - - - IRtemperature - The name of the ParamType of StateType (c664e9ec-a045-49ba-add1-1642ceba7c4f) of DeviceClass sensortag - - - - - humidity changed - The name of the autocreated EventType (e83a50ff-96c9-4b6d-889f-f4238353e794) - - - - + humidity - The name of the ParamType of StateType (e83a50ff-96c9-4b6d-889f-f4238353e794) of DeviceClass sensortag + The name of the ParamType of StateType (e83a50ff-96c9-4b6d-889f-f4238353e794) of DeviceClass sensorTag - + temperature changed The name of the autocreated EventType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) - - temperature - The name of the ParamType of StateType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) of DeviceClass sensortag + + Sensor Tag (CC2650) + The name of the DeviceClass (158a06b6-b27f-4951-957e-6f1e3b44f604) - - pressure changed + + Name + The name of the paramType (bdb9d684-2f98-45f5-889c-f184c1e73dc7) of sensorTag + + + + + MAC address + The name of the paramType (d51ed68e-c84a-4136-a5b5-be2f95fd5a0f) of sensorTag + + + + + Connected changed + The name of the autocreated EventType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) + + + + + temperature + The name of the ParamType of StateType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) of DeviceClass sensorTag + + + + + Object temperature changed + The name of the autocreated EventType (c664e9ec-a045-49ba-add1-1642ceba7c4f) + + + + + objectTemperature + The name of the ParamType of StateType (c664e9ec-a045-49ba-add1-1642ceba7c4f) of DeviceClass sensorTag + + + + + Humidity changed + The name of the autocreated EventType (e83a50ff-96c9-4b6d-889f-f4238353e794) + + + + + Barometric pressure changed The name of the autocreated EventType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) - - pressure - The name of the ParamType of StateType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) of DeviceClass sensortag + + Light intensity changed + The name of the autocreated EventType (6635dce4-2d8d-4608-a836-768c3014f356) - - moving changed + + lightIntensity + The name of the ParamType of StateType (6635dce4-2d8d-4608-a836-768c3014f356) of DeviceClass sensorTag + + + + + Moving changed The name of the autocreated EventType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) - + + Magnet detected changed + The name of the autocreated EventType (758d9b39-7390-40f5-8e19-d8b0f4a0a0c6) + + + + + magnetDetected + The name of the ParamType of StateType (758d9b39-7390-40f5-8e19-d8b0f4a0a0c6) of DeviceClass sensorTag + + + + + Left button pressed changed + The name of the autocreated EventType (8995e49e-ca2d-4dd9-a22f-de6c566c2115) + + + + + leftButtonPressed + The name of the ParamType of StateType (8995e49e-ca2d-4dd9-a22f-de6c566c2115) of DeviceClass sensorTag + + + + + Right button pressed changed + The name of the autocreated EventType (ef8eedc5-6a45-4dfb-bb55-ada1a931b20b) + + + + + rightButtonPressed + The name of the ParamType of StateType (ef8eedc5-6a45-4dfb-bb55-ada1a931b20b) of DeviceClass sensorTag + + + + + Green LED power changed + The name of the autocreated EventType (8d692132-f950-486f-b3dd-fe1ebc574e1d) + + + + + greenLed + The name of the ParamType of StateType (8d692132-f950-486f-b3dd-fe1ebc574e1d) of DeviceClass sensorTag + + + + + Set green LED power + The name of the autocreated ActionType (8d692132-f950-486f-b3dd-fe1ebc574e1d) + + + + + Red LED power changed + The name of the autocreated EventType (bb585725-6393-42de-aea2-ea4f525ad348) + + + + + redLed + The name of the ParamType of StateType (bb585725-6393-42de-aea2-ea4f525ad348) of DeviceClass sensorTag + + + + + Set red LED power + The name of the autocreated ActionType (bb585725-6393-42de-aea2-ea4f525ad348) + + + + + Buzzer power changed + The name of the autocreated EventType (d522c536-4427-4c53-9980-7820b2649aad) + + + + + buzzer + The name of the ParamType of StateType (d522c536-4427-4c53-9980-7820b2649aad) of DeviceClass sensorTag + + + + + Set buzzer power + The name of the autocreated ActionType (d522c536-4427-4c53-9980-7820b2649aad) + + + + + Temperature sensor enabled changed + The name of the autocreated EventType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) + + + + + temperatureSensorEnabled + The name of the ParamType of StateType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) of DeviceClass sensorTag + + + + + Set temperature sensor enabled + The name of the autocreated ActionType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) + + + + + Humidity sensor enabled changed + The name of the autocreated EventType (29881172-626a-42d5-83b8-3e2e5ca533be) + + + + + humiditySensorEnabled + The name of the ParamType of StateType (29881172-626a-42d5-83b8-3e2e5ca533be) of DeviceClass sensorTag + + + + + Set humidity sensor enabled + The name of the autocreated ActionType (29881172-626a-42d5-83b8-3e2e5ca533be) + + + + + Pressure sensor enabled changed + The name of the autocreated EventType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) + + + + + pressureSensorEnabled + The name of the ParamType of StateType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) of DeviceClass sensorTag + + + + + Set pressure sensor enabled + The name of the autocreated ActionType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) + + + + + Optical sensor enabled changed + The name of the autocreated EventType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) + + + + + opticalSensorEnabled + The name of the ParamType of StateType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) of DeviceClass sensorTag + + + + + Set optical sensor enabled + The name of the autocreated ActionType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) + + + + + Accelerometer enabled changed + The name of the autocreated EventType (5786c91a-d94d-461a-8d22-f978dd1438ab) + + + + + accelerometerEnabled + The name of the ParamType of StateType (5786c91a-d94d-461a-8d22-f978dd1438ab) of DeviceClass sensorTag + + + + + Set accelerometer enabled + The name of the autocreated ActionType (5786c91a-d94d-461a-8d22-f978dd1438ab) + + + + + Gyroscope enabled changed + The name of the autocreated EventType (94517544-cb97-4816-8993-cb4cf2651a1e) + + + + + gyroscopeEnabled + The name of the ParamType of StateType (94517544-cb97-4816-8993-cb4cf2651a1e) of DeviceClass sensorTag + + + + + Set gyroscope enabled + The name of the autocreated ActionType (94517544-cb97-4816-8993-cb4cf2651a1e) + + + + + Magnetometer enabled changed + The name of the autocreated EventType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) + + + + + magnetometerEnabled + The name of the ParamType of StateType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) of DeviceClass sensorTag + + + + + Set magnetometer enabled + The name of the autocreated ActionType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) + + + + + Measurement period for enviromental sensors changed + The name of the autocreated EventType (c5308565-5dc9-409e-ae99-577c212c7a92) + + + + + measurementPeriod + The name of the ParamType of StateType (c5308565-5dc9-409e-ae99-577c212c7a92) of DeviceClass sensorTag + + + + + Set measurement period for enviromental sensors + The name of the autocreated ActionType (c5308565-5dc9-409e-ae99-577c212c7a92) + + + + + Measurement period movement sensor changed + The name of the autocreated EventType (5237c89c-c21d-4d78-ac99-8be661b40da7) + + + + + measurementPeriodMovement + The name of the ParamType of StateType (5237c89c-c21d-4d78-ac99-8be661b40da7) of DeviceClass sensorTag + + + + + Set measurement period movement sensor + The name of the autocreated ActionType (5237c89c-c21d-4d78-ac99-8be661b40da7) + + + + + Movement sensitivity changed + The name of the autocreated EventType (a3298d16-eea6-4474-9061-90466e92d476) + + + + + movementSensitivity + The name of the ParamType of StateType (a3298d16-eea6-4474-9061-90466e92d476) of DeviceClass sensorTag + + + + + Set movement sensitivity + The name of the autocreated ActionType (a3298d16-eea6-4474-9061-90466e92d476) + + + + + Buzzer impulse + The name of the ActionType a048ab2e-4f17-4467-a166-a7572156c07e of deviceClass sensorTag + + + + + pressure + The name of the ParamType of StateType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) of DeviceClass sensorTag + + + + moving - The name of the ParamType of StateType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) of DeviceClass sensortag - - - - - left key pressed - The name of the EventType 61478490-bed0-4fed-9d58-f13c35b4f220 of deviceClass sensortag - - - - - right key pressed - The name of the EventType b7e927db-af28-4fdc-8eb7-edb02258ff5a of deviceClass sensortag + The name of the ParamType of StateType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) of DeviceClass sensorTag diff --git a/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-en_US.ts b/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-en_US.ts index d09662b7..af7f770a 100644 --- a/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-en_US.ts +++ b/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-en_US.ts @@ -4,117 +4,393 @@ MultiSensor - + MultiSensor The name of the plugin MultiSensor (23bf0d8d-df7d-4bee-80ee-f015c5a7f52e) - + Texas Instruments The name of the vendor (2edf543e-dc2c-4693-bb0c-e76c0d305fad) - - Sensor Tag - The name of the DeviceClass (158a06b6-b27f-4951-957e-6f1e3b44f604) - - - - - name - The name of the paramType (bdb9d684-2f98-45f5-889c-f184c1e73dc7) of sensortag - - - - - mac address - The name of the paramType (d51ed68e-c84a-4136-a5b5-be2f95fd5a0f) of sensortag - - - - - connected changed - The name of the autocreated EventType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) - - - - + connected - The name of the ParamType of StateType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) of DeviceClass sensortag + The name of the ParamType of StateType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) of DeviceClass sensorTag - - IR temperature changed - The name of the autocreated EventType (c664e9ec-a045-49ba-add1-1642ceba7c4f) - - - - - IRtemperature - The name of the ParamType of StateType (c664e9ec-a045-49ba-add1-1642ceba7c4f) of DeviceClass sensortag - - - - - humidity changed - The name of the autocreated EventType (e83a50ff-96c9-4b6d-889f-f4238353e794) - - - - + humidity - The name of the ParamType of StateType (e83a50ff-96c9-4b6d-889f-f4238353e794) of DeviceClass sensortag + The name of the ParamType of StateType (e83a50ff-96c9-4b6d-889f-f4238353e794) of DeviceClass sensorTag - + temperature changed The name of the autocreated EventType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) - - temperature - The name of the ParamType of StateType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) of DeviceClass sensortag + + Sensor Tag (CC2650) + The name of the DeviceClass (158a06b6-b27f-4951-957e-6f1e3b44f604) - - pressure changed + + Name + The name of the paramType (bdb9d684-2f98-45f5-889c-f184c1e73dc7) of sensorTag + + + + + MAC address + The name of the paramType (d51ed68e-c84a-4136-a5b5-be2f95fd5a0f) of sensorTag + + + + + Connected changed + The name of the autocreated EventType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) + + + + + temperature + The name of the ParamType of StateType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) of DeviceClass sensorTag + + + + + Object temperature changed + The name of the autocreated EventType (c664e9ec-a045-49ba-add1-1642ceba7c4f) + + + + + objectTemperature + The name of the ParamType of StateType (c664e9ec-a045-49ba-add1-1642ceba7c4f) of DeviceClass sensorTag + + + + + Humidity changed + The name of the autocreated EventType (e83a50ff-96c9-4b6d-889f-f4238353e794) + + + + + Barometric pressure changed The name of the autocreated EventType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) - - pressure - The name of the ParamType of StateType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) of DeviceClass sensortag + + Light intensity changed + The name of the autocreated EventType (6635dce4-2d8d-4608-a836-768c3014f356) - - moving changed + + lightIntensity + The name of the ParamType of StateType (6635dce4-2d8d-4608-a836-768c3014f356) of DeviceClass sensorTag + + + + + Moving changed The name of the autocreated EventType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) - + + Magnet detected changed + The name of the autocreated EventType (758d9b39-7390-40f5-8e19-d8b0f4a0a0c6) + + + + + magnetDetected + The name of the ParamType of StateType (758d9b39-7390-40f5-8e19-d8b0f4a0a0c6) of DeviceClass sensorTag + + + + + Left button pressed changed + The name of the autocreated EventType (8995e49e-ca2d-4dd9-a22f-de6c566c2115) + + + + + leftButtonPressed + The name of the ParamType of StateType (8995e49e-ca2d-4dd9-a22f-de6c566c2115) of DeviceClass sensorTag + + + + + Right button pressed changed + The name of the autocreated EventType (ef8eedc5-6a45-4dfb-bb55-ada1a931b20b) + + + + + rightButtonPressed + The name of the ParamType of StateType (ef8eedc5-6a45-4dfb-bb55-ada1a931b20b) of DeviceClass sensorTag + + + + + Green LED power changed + The name of the autocreated EventType (8d692132-f950-486f-b3dd-fe1ebc574e1d) + + + + + greenLed + The name of the ParamType of StateType (8d692132-f950-486f-b3dd-fe1ebc574e1d) of DeviceClass sensorTag + + + + + Set green LED power + The name of the autocreated ActionType (8d692132-f950-486f-b3dd-fe1ebc574e1d) + + + + + Red LED power changed + The name of the autocreated EventType (bb585725-6393-42de-aea2-ea4f525ad348) + + + + + redLed + The name of the ParamType of StateType (bb585725-6393-42de-aea2-ea4f525ad348) of DeviceClass sensorTag + + + + + Set red LED power + The name of the autocreated ActionType (bb585725-6393-42de-aea2-ea4f525ad348) + + + + + Buzzer power changed + The name of the autocreated EventType (d522c536-4427-4c53-9980-7820b2649aad) + + + + + buzzer + The name of the ParamType of StateType (d522c536-4427-4c53-9980-7820b2649aad) of DeviceClass sensorTag + + + + + Set buzzer power + The name of the autocreated ActionType (d522c536-4427-4c53-9980-7820b2649aad) + + + + + Temperature sensor enabled changed + The name of the autocreated EventType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) + + + + + temperatureSensorEnabled + The name of the ParamType of StateType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) of DeviceClass sensorTag + + + + + Set temperature sensor enabled + The name of the autocreated ActionType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) + + + + + Humidity sensor enabled changed + The name of the autocreated EventType (29881172-626a-42d5-83b8-3e2e5ca533be) + + + + + humiditySensorEnabled + The name of the ParamType of StateType (29881172-626a-42d5-83b8-3e2e5ca533be) of DeviceClass sensorTag + + + + + Set humidity sensor enabled + The name of the autocreated ActionType (29881172-626a-42d5-83b8-3e2e5ca533be) + + + + + Pressure sensor enabled changed + The name of the autocreated EventType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) + + + + + pressureSensorEnabled + The name of the ParamType of StateType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) of DeviceClass sensorTag + + + + + Set pressure sensor enabled + The name of the autocreated ActionType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) + + + + + Optical sensor enabled changed + The name of the autocreated EventType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) + + + + + opticalSensorEnabled + The name of the ParamType of StateType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) of DeviceClass sensorTag + + + + + Set optical sensor enabled + The name of the autocreated ActionType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) + + + + + Accelerometer enabled changed + The name of the autocreated EventType (5786c91a-d94d-461a-8d22-f978dd1438ab) + + + + + accelerometerEnabled + The name of the ParamType of StateType (5786c91a-d94d-461a-8d22-f978dd1438ab) of DeviceClass sensorTag + + + + + Set accelerometer enabled + The name of the autocreated ActionType (5786c91a-d94d-461a-8d22-f978dd1438ab) + + + + + Gyroscope enabled changed + The name of the autocreated EventType (94517544-cb97-4816-8993-cb4cf2651a1e) + + + + + gyroscopeEnabled + The name of the ParamType of StateType (94517544-cb97-4816-8993-cb4cf2651a1e) of DeviceClass sensorTag + + + + + Set gyroscope enabled + The name of the autocreated ActionType (94517544-cb97-4816-8993-cb4cf2651a1e) + + + + + Magnetometer enabled changed + The name of the autocreated EventType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) + + + + + magnetometerEnabled + The name of the ParamType of StateType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) of DeviceClass sensorTag + + + + + Set magnetometer enabled + The name of the autocreated ActionType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) + + + + + Measurement period for enviromental sensors changed + The name of the autocreated EventType (c5308565-5dc9-409e-ae99-577c212c7a92) + + + + + measurementPeriod + The name of the ParamType of StateType (c5308565-5dc9-409e-ae99-577c212c7a92) of DeviceClass sensorTag + + + + + Set measurement period for enviromental sensors + The name of the autocreated ActionType (c5308565-5dc9-409e-ae99-577c212c7a92) + + + + + Measurement period movement sensor changed + The name of the autocreated EventType (5237c89c-c21d-4d78-ac99-8be661b40da7) + + + + + measurementPeriodMovement + The name of the ParamType of StateType (5237c89c-c21d-4d78-ac99-8be661b40da7) of DeviceClass sensorTag + + + + + Set measurement period movement sensor + The name of the autocreated ActionType (5237c89c-c21d-4d78-ac99-8be661b40da7) + + + + + Movement sensitivity changed + The name of the autocreated EventType (a3298d16-eea6-4474-9061-90466e92d476) + + + + + movementSensitivity + The name of the ParamType of StateType (a3298d16-eea6-4474-9061-90466e92d476) of DeviceClass sensorTag + + + + + Set movement sensitivity + The name of the autocreated ActionType (a3298d16-eea6-4474-9061-90466e92d476) + + + + + Buzzer impulse + The name of the ActionType a048ab2e-4f17-4467-a166-a7572156c07e of deviceClass sensorTag + + + + + pressure + The name of the ParamType of StateType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) of DeviceClass sensorTag + + + + moving - The name of the ParamType of StateType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) of DeviceClass sensortag - - - - - left key pressed - The name of the EventType 61478490-bed0-4fed-9d58-f13c35b4f220 of deviceClass sensortag - - - - - right key pressed - The name of the EventType b7e927db-af28-4fdc-8eb7-edb02258ff5a of deviceClass sensortag + The name of the ParamType of StateType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) of DeviceClass sensorTag From 69c5bd75e4c819bb42c65e75d5d6d1929c4ea67c Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 12 Mar 2018 16:06:53 +0100 Subject: [PATCH 37/62] properly set dependencies for plugininfo.h --- nymea-plugins.pro | 2 +- plugins.pri | 28 ++++++++++++++++++++-------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/nymea-plugins.pro b/nymea-plugins.pro index febe0e95..9bdc51e5 100644 --- a/nymea-plugins.pro +++ b/nymea-plugins.pro @@ -45,7 +45,7 @@ message("Qt version:" $$[QT_VERSION]) plugininfo.depends = FORCE for (entry, PLUGIN_DIRS):plugininfo.commands += test -d $${entry} || mkdir -p $${entry}; cd $${entry} && qmake -o Makefile $$PWD/$${entry}/$${entry}.pro && cd ..; -for (entry, PLUGIN_DIRS):plugininfo.commands += make -C $${entry} plugininfo; +for (entry, PLUGIN_DIRS):plugininfo.commands += make -C $${entry} plugininfo.h; QMAKE_EXTRA_TARGETS += plugininfo # Translations: diff --git a/plugins.pri b/plugins.pri index 08c9dceb..8cfac0de 100644 --- a/plugins.pri +++ b/plugins.pri @@ -8,8 +8,8 @@ QMAKE_LFLAGS += -std=c++11 INCLUDEPATH += /usr/include/nymea LIBS += -lnymea -HEADERS += $${OUT_PWD}/plugininfo.h - +HEADERS += $${OUT_PWD}/plugininfo.h \ + $${OUT_PWD}/extern-plugininfo.h PLUGIN_PATH=/usr/lib/$$system('dpkg-architecture -q DEB_HOST_MULTIARCH')/nymea/plugins/ @@ -21,17 +21,30 @@ snappy{ # Make the device plugin json file visible in the Qt Creator OTHER_FILES+=$$PWD/$${TARGET}/deviceplugin"$$TARGET".json + +# NOTE: if the code includes "plugininfo.h", it would fail if we only give it a compiler for $$OUT_PWD/plugininfo.h +# Let's add a dummy target with the plugininfo.h file without any path to allow the developer to just include it like that. + # Create plugininfo file -plugininfo.commands = nymea-generateplugininfo --filetype i --jsonfile $$PWD/$${TARGET}/deviceplugin"$$TARGET".json --output plugininfo.h --builddir $$OUT_PWD; \ - nymea-generateplugininfo --filetype e --jsonfile $$PWD/$${TARGET}/deviceplugin"$$TARGET".json --output extern-plugininfo.h --builddir $$OUT_PWD; +plugininfo.target = $$OUT_PWD/plugininfo.h +plugininfo_dummy.target = plugininfo.h plugininfo.depends = FORCE -QMAKE_EXTRA_TARGETS += plugininfo -PRE_TARGETDEPS += plugininfo +plugininfo.commands = nymea-generateplugininfo --filetype i --jsonfile $$PWD/$${TARGET}/deviceplugin"$$TARGET".json --output plugininfo.h --builddir $$OUT_PWD +plugininfo_dummy.commands = $$plugininfo.commands +QMAKE_EXTRA_TARGETS += plugininfo plugininfo_dummy + +# Create extern-plugininfo file +extern_plugininfo.target = $$OUT_PWD/extern-plugininfo.h +extern_plugininfo_dummy.target = extern-plugininfo.h +extern_plugininfo.depends = FORCE +extern_plugininfo.commands = nymea-generateplugininfo --filetype e --jsonfile $$PWD/$${TARGET}/deviceplugin"$$TARGET".json --output extern-plugininfo.h --builddir $$OUT_PWD +extern_plugininfo_dummy.commands = $$extern_plugininfo.commands +QMAKE_EXTRA_TARGETS += extern_plugininfo extern_plugininfo_dummy # Install translation files TRANSLATIONS *= $$files($${PWD}/$${TARGET}/translations/*ts, true) lupdate.depends = FORCE -lupdate.depends += plugininfo +lupdate.depends += plugininfo.h lupdate.commands = lupdate -recursive -no-obsolete $$PWD/"$$TARGET"/"$$TARGET".pro; QMAKE_EXTRA_TARGETS += lupdate @@ -40,6 +53,5 @@ translations.files = $$[QT_SOURCE_TREE]/translations/*.qm # Install plugin target.path = $$PLUGIN_PATH -target.depends += plugininfo INSTALLS += target translations From 8b200e3385d3f590a347f256e25161b674093d2a Mon Sep 17 00:00:00 2001 From: Jenkins Date: Wed, 14 Mar 2018 22:04:29 +0100 Subject: [PATCH 38/62] Automatic translations update by Jenkins --- simulation/translations/de_DE.ts | 119 ++++++++++++++++++++++++++++--- simulation/translations/en_US.ts | 119 ++++++++++++++++++++++++++++--- 2 files changed, 222 insertions(+), 16 deletions(-) diff --git a/simulation/translations/de_DE.ts b/simulation/translations/de_DE.ts index 9c24321e..c438d200 100644 --- a/simulation/translations/de_DE.ts +++ b/simulation/translations/de_DE.ts @@ -55,7 +55,9 @@ The name of the ParamType of StateType (9faaffe5-6a76-47d2-a14a-550f60390245) of ---------- The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass socket ---------- -The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod +The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod +---------- +The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass waterValve @@ -78,22 +80,32 @@ The name of the autocreated ActionType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) Temperature changed - The name of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) + The name of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) +---------- +The name of the autocreated EventType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) temperature - The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor + The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) of DeviceClass netatmoIndoor +---------- +The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass gardenSensor Humidity changed - The name of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) + The name of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) +---------- +The name of the autocreated EventType (b2225720-dfdc-40f8-a24a-20247e69e575) humidity - The name of the ParamType of StateType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor + The name of the ParamType of StateType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (b2225720-dfdc-40f8-a24a-20247e69e575) of DeviceClass netatmoIndoor @@ -111,7 +123,9 @@ The name of the autocreated EventType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) +The name of the ParamType of StateType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) of DeviceClass battery +---------- +The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass gardenSensor @@ -129,7 +143,9 @@ The name of the autocreated EventType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) +The name of the ParamType of StateType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) of DeviceClass battery +---------- +The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass gardenSensor @@ -151,7 +167,9 @@ The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of ---------- The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass battery ---------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass gardenSensor @@ -458,5 +476,90 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated ActionType (49388b11-8076-4698-8091-5c5f5762fd08) + + Netatmo Indoor Station + The name of the DeviceClass (7f1696e3-3145-421e-9a42-5bd3b2fd0e2c) + + + + Last update changed + The name of the autocreated EventType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) + + + + updateTime + The name of the ParamType of StateType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) of DeviceClass netatmoIndoor + + + + Pressure changed + The name of the autocreated EventType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) + + + + pressure + The name of the ParamType of StateType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) of DeviceClass netatmoIndoor + + + + Noise changed + The name of the autocreated EventType (b16ea43e-75ef-4bee-ade6-839682ec3068) + + + + noise + The name of the ParamType of StateType (b16ea43e-75ef-4bee-ade6-839682ec3068) of DeviceClass netatmoIndoor + + + + CO2 changed + The name of the autocreated EventType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) + + + + co2 + The name of the ParamType of StateType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) of DeviceClass netatmoIndoor + + + + Wifi signal strength changed + The name of the autocreated EventType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) + + + + wifiStrength + The name of the ParamType of StateType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) of DeviceClass netatmoIndoor + + + + Garden sensor + The name of the DeviceClass (b759f558-b484-45b6-9132-218d135c27d6) + + + + Soil moisture changed + The name of the autocreated EventType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) + + + + soilMoisture + The name of the ParamType of StateType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) of DeviceClass gardenSensor + + + + Light intensity changed + The name of the autocreated EventType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) + + + + lightIntensity + The name of the ParamType of StateType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) of DeviceClass gardenSensor + + + + Water valve + The name of the DeviceClass (8fc2e79b-1770-4b18-bf01-78ed15893a81) + + diff --git a/simulation/translations/en_US.ts b/simulation/translations/en_US.ts index 91c09981..d576089c 100644 --- a/simulation/translations/en_US.ts +++ b/simulation/translations/en_US.ts @@ -55,7 +55,9 @@ The name of the ParamType of StateType (9faaffe5-6a76-47d2-a14a-550f60390245) of ---------- The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass socket ---------- -The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod +The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod +---------- +The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass waterValve @@ -78,22 +80,32 @@ The name of the autocreated ActionType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) Temperature changed - The name of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) + The name of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) +---------- +The name of the autocreated EventType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) temperature - The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor + The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) of DeviceClass netatmoIndoor +---------- +The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass gardenSensor Humidity changed - The name of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) + The name of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) +---------- +The name of the autocreated EventType (b2225720-dfdc-40f8-a24a-20247e69e575) humidity - The name of the ParamType of StateType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor + The name of the ParamType of StateType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (b2225720-dfdc-40f8-a24a-20247e69e575) of DeviceClass netatmoIndoor @@ -111,7 +123,9 @@ The name of the autocreated EventType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) +The name of the ParamType of StateType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) of DeviceClass battery +---------- +The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass gardenSensor @@ -129,7 +143,9 @@ The name of the autocreated EventType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) +The name of the ParamType of StateType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) of DeviceClass battery +---------- +The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass gardenSensor @@ -151,7 +167,9 @@ The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of ---------- The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass battery ---------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass gardenSensor @@ -458,5 +476,90 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated ActionType (49388b11-8076-4698-8091-5c5f5762fd08) + + Netatmo Indoor Station + The name of the DeviceClass (7f1696e3-3145-421e-9a42-5bd3b2fd0e2c) + + + + Last update changed + The name of the autocreated EventType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) + + + + updateTime + The name of the ParamType of StateType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) of DeviceClass netatmoIndoor + + + + Pressure changed + The name of the autocreated EventType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) + + + + pressure + The name of the ParamType of StateType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) of DeviceClass netatmoIndoor + + + + Noise changed + The name of the autocreated EventType (b16ea43e-75ef-4bee-ade6-839682ec3068) + + + + noise + The name of the ParamType of StateType (b16ea43e-75ef-4bee-ade6-839682ec3068) of DeviceClass netatmoIndoor + + + + CO2 changed + The name of the autocreated EventType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) + + + + co2 + The name of the ParamType of StateType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) of DeviceClass netatmoIndoor + + + + Wifi signal strength changed + The name of the autocreated EventType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) + + + + wifiStrength + The name of the ParamType of StateType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) of DeviceClass netatmoIndoor + + + + Garden sensor + The name of the DeviceClass (b759f558-b484-45b6-9132-218d135c27d6) + + + + Soil moisture changed + The name of the autocreated EventType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) + + + + soilMoisture + The name of the ParamType of StateType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) of DeviceClass gardenSensor + + + + Light intensity changed + The name of the autocreated EventType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) + + + + lightIntensity + The name of the ParamType of StateType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) of DeviceClass gardenSensor + + + + Water valve + The name of the DeviceClass (8fc2e79b-1770-4b18-bf01-78ed15893a81) + + From 788597f68193c041f461362bce36ae5d1479f2d4 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Wed, 14 Mar 2018 23:08:47 +0100 Subject: [PATCH 39/62] Automatic translations update by Jenkins --- ...8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts | 65 +++++++++++++++---- ...8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts | 65 +++++++++++++++---- 2 files changed, 104 insertions(+), 26 deletions(-) diff --git a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts index 6ba7f7f1..3e5ec45d 100644 --- a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts +++ b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts @@ -4,39 +4,78 @@ UdpCommander - + UDP Commander - The name of the DeviceClass (6ecd5a8d-595a-4520-85e3-dcc9679edf66) + The name of the DeviceClass (31b00639-8904-4522-84ed-54c46a54c63c) - + UdpCommander The name of the plugin UdpCommander (24a8474c-1d86-499e-a76e-9cbfbf48dd72) - + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - port - The name of the paramType (1843adcb-e377-44d1-8d70-ab4f9eeb32ec) of commander + + UDP Receiver + The name of the DeviceClass (6ecd5a8d-595a-4520-85e3-dcc9679edf66) - - command - The name of the paramType (d0f29961-1624-4b91-a0e8-9b1cc86c44c7) of commander + + + Port + The name of the paramType (1843adcb-e377-44d1-8d70-ab4f9eeb32ec) of udpReceiver +---------- +The name of the paramType (eb204dfe-11f8-413f-8b68-8bffef3f9a7f) of udpCommander - - command received - The name of the EventType 5fecbba3-ffbb-456b-872c-a2f571c681cb of deviceClass commander + + Command + The name of the paramType (d0f29961-1624-4b91-a0e8-9b1cc86c44c7) of udpReceiver + + + + + Received data changed + The name of the autocreated EventType (065a1a0a-d324-4ae6-a461-bef8143e8795) + + + + + inputData + The name of the ParamType of StateType (065a1a0a-d324-4ae6-a461-bef8143e8795) of DeviceClass udpReceiver + + + + + Command received + The name of the EventType 5fecbba3-ffbb-456b-872c-a2f571c681cb of deviceClass udpReceiver + + + + + Address + The name of the paramType (ea1be9fc-9a9b-44ba-a28d-e021aef4f046) of udpCommander + + + + + Send data + The name of the ActionType 6bc52462-b192-46a4-a6df-92cc5a479c89 of deviceClass udpCommander + + + + + Data + The name of the paramType (6604c852-6b24-4707-b8e5-1ddd8032efcc) of udpCommander diff --git a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts index ff171155..e771ec41 100644 --- a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts +++ b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts @@ -4,39 +4,78 @@ UdpCommander - + UDP Commander - The name of the DeviceClass (6ecd5a8d-595a-4520-85e3-dcc9679edf66) + The name of the DeviceClass (31b00639-8904-4522-84ed-54c46a54c63c) - + UdpCommander The name of the plugin UdpCommander (24a8474c-1d86-499e-a76e-9cbfbf48dd72) - + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - port - The name of the paramType (1843adcb-e377-44d1-8d70-ab4f9eeb32ec) of commander + + UDP Receiver + The name of the DeviceClass (6ecd5a8d-595a-4520-85e3-dcc9679edf66) - - command - The name of the paramType (d0f29961-1624-4b91-a0e8-9b1cc86c44c7) of commander + + + Port + The name of the paramType (1843adcb-e377-44d1-8d70-ab4f9eeb32ec) of udpReceiver +---------- +The name of the paramType (eb204dfe-11f8-413f-8b68-8bffef3f9a7f) of udpCommander - - command received - The name of the EventType 5fecbba3-ffbb-456b-872c-a2f571c681cb of deviceClass commander + + Command + The name of the paramType (d0f29961-1624-4b91-a0e8-9b1cc86c44c7) of udpReceiver + + + + + Received data changed + The name of the autocreated EventType (065a1a0a-d324-4ae6-a461-bef8143e8795) + + + + + inputData + The name of the ParamType of StateType (065a1a0a-d324-4ae6-a461-bef8143e8795) of DeviceClass udpReceiver + + + + + Command received + The name of the EventType 5fecbba3-ffbb-456b-872c-a2f571c681cb of deviceClass udpReceiver + + + + + Address + The name of the paramType (ea1be9fc-9a9b-44ba-a28d-e021aef4f046) of udpCommander + + + + + Send data + The name of the ActionType 6bc52462-b192-46a4-a6df-92cc5a479c89 of deviceClass udpCommander + + + + + Data + The name of the paramType (6604c852-6b24-4707-b8e5-1ddd8032efcc) of udpCommander From db34680d981d8ad1d71f256f83c5178e3d0cdc9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Thu, 15 Mar 2018 08:41:14 +0100 Subject: [PATCH 40/62] Fix debian packaging for nymea plugins --- debian/control | 12 ++++++------ debian/guh-plugin-httpcommander.install.in | 1 - debian/nymea-plugin-httpcommander.install.in | 1 + httpcommander/devicepluginhttpcommander.h | 4 ++-- httpcommander/devicepluginhttpcommander.json | 6 +++--- ...=> 4e62670c-6268-4487-8dff-cccca498731a-en_US.ts} | 2 +- httpcommander/translations/de_DE.ts | 4 ---- 7 files changed, 13 insertions(+), 17 deletions(-) delete mode 100644 debian/guh-plugin-httpcommander.install.in create mode 100644 debian/nymea-plugin-httpcommander.install.in rename httpcommander/translations/{en_US.ts => 4e62670c-6268-4487-8dff-cccca498731a-en_US.ts} (92%) delete mode 100644 httpcommander/translations/de_DE.ts diff --git a/debian/control b/debian/control index 9645c2d2..76c4b5a4 100644 --- a/debian/control +++ b/debian/control @@ -506,21 +506,21 @@ Description: nymea.io plugin for TCP commander With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the nymea.io plugin for TCP commander + This package will install the nymea.io plugin for the TCP commander -Package: guh-plugin-httpcommander +Package: nymea-plugin-httpcommander Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - guh-plugins-translations, -Description: guh.io plugin for HTTP commander - The guh daemon is a plugin based IoT (Internet of Things) server. The + nymea-plugins-translations, +Description: nymea.io plugin for HTTP commander + The nymea daemon is a plugin based IoT (Internet of Things) server. The server works like a translator for devices, things and services and allows them to interact. With the powerful rule engine you are able to connect any device available in the system and create individual scenes and behaviors for your environment. . - This package will install the guh.io plugin for HTTP commander + This package will install the nymea.io plugin for the HTPP commander Package: nymea-plugin-simulation diff --git a/debian/guh-plugin-httpcommander.install.in b/debian/guh-plugin-httpcommander.install.in deleted file mode 100644 index 710316ae..00000000 --- a/debian/guh-plugin-httpcommander.install.in +++ /dev/null @@ -1 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/guh/plugins/libguh_devicepluginhttpcommander.so diff --git a/debian/nymea-plugin-httpcommander.install.in b/debian/nymea-plugin-httpcommander.install.in new file mode 100644 index 00000000..74e4374a --- /dev/null +++ b/debian/nymea-plugin-httpcommander.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginhttpcommander.so diff --git a/httpcommander/devicepluginhttpcommander.h b/httpcommander/devicepluginhttpcommander.h index d9453ae1..26023ed9 100644 --- a/httpcommander/devicepluginhttpcommander.h +++ b/httpcommander/devicepluginhttpcommander.h @@ -21,8 +21,8 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -#ifndef DEVICEPLUGINDHTTPCOMMANDER_H -#define DEVICEPLUGINDHTTPCOMMANDER_H +#ifndef DEVICEPLUGINHTTPCOMMANDER_H +#define DEVICEPLUGINHTTPCOMMANDER_H #include "plugin/deviceplugin.h" #include "devicemanager.h" diff --git a/httpcommander/devicepluginhttpcommander.json b/httpcommander/devicepluginhttpcommander.json index e400bc87..121f70d3 100644 --- a/httpcommander/devicepluginhttpcommander.json +++ b/httpcommander/devicepluginhttpcommander.json @@ -22,7 +22,7 @@ { "id": "020f672e-cc9a-4b74-92dd-a92a93ab1d23", "name": "url", - "displayName": "URL or IPv4 address", + "displayName": "Address", "type": "QString", "inputType": "None", "defaultValue": "https://nymea.io" @@ -30,7 +30,7 @@ { "id": "37830ea8-2249-46e6-aaca-12164928a81a", "name": "port", - "displayName": "port", + "displayName": "Port", "type": "int", "defaultValue": "443" } @@ -84,7 +84,7 @@ { "id": "1a3fcb23-931b-4ba1-b134-c49b656c76f7", "name": "url", - "displayName": "URL or IPv4 address", + "displayName": "Address", "type": "QString", "inputType": "None", "defaultValue": "https://nymea.io" diff --git a/httpcommander/translations/en_US.ts b/httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts similarity index 92% rename from httpcommander/translations/en_US.ts rename to httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts index 6401616d..f7f66d85 100644 --- a/httpcommander/translations/en_US.ts +++ b/httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/httpcommander/translations/de_DE.ts b/httpcommander/translations/de_DE.ts deleted file mode 100644 index 1552582e..00000000 --- a/httpcommander/translations/de_DE.ts +++ /dev/null @@ -1,4 +0,0 @@ - - - - From 89d73669be4cda28049b0df385c3ef0b214b378a Mon Sep 17 00:00:00 2001 From: Jenkins Date: Thu, 15 Mar 2018 11:52:10 +0100 Subject: [PATCH 41/62] Automatic translations update by Jenkins --- ...2670c-6268-4487-8dff-cccca498731a-en_US.ts | 105 +++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) diff --git a/httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts b/httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts index f7f66d85..1befc63b 100644 --- a/httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts +++ b/httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts @@ -1,4 +1,107 @@ - \ No newline at end of file + + HttpCommander + + HttpCommander + The name of the plugin HttpCommander (4e62670c-6268-4487-8dff-cccca498731a) + + + + HTTP commander + The name of the vendor (45d7c941-7690-43c9-92fc-fab36e1cebd0) + + + + HTTP post commander + The name of the DeviceClass (b101abdf-86fd-4d2e-a657-ee76044235bd) + + + + Address + The name of the paramType (020f672e-cc9a-4b74-92dd-a92a93ab1d23) of httpPostCommander +---------- +The name of the paramType (1a3fcb23-931b-4ba1-b134-c49b656c76f7) of httpPutCommander + + + + Port + The name of the paramType (37830ea8-2249-46e6-aaca-12164928a81a) of httpPostCommander +---------- +The name of the paramType (db994349-1105-4ce5-b6fe-6fd38fbc436a) of httpPutCommander +---------- +The name of the paramType (bee8b151-815a-4159-9d8a-42b76e99b42c) of httpGetCommander + + + + Reachability changed + The name of the autocreated EventType (8daac0e7-4c2f-4cdf-b528-02cfe04c6b39) +---------- +The name of the autocreated EventType (d102ff86-b773-48e3-a7a5-e138cb541f49) +---------- +The name of the autocreated EventType (0d63f815-efd1-488a-9bfa-e9f6bda540d2) + + + + connected + The name of the ParamType of StateType (8daac0e7-4c2f-4cdf-b528-02cfe04c6b39) of DeviceClass httpPostCommander +---------- +The name of the ParamType of StateType (d102ff86-b773-48e3-a7a5-e138cb541f49) of DeviceClass httpPutCommander +---------- +The name of the ParamType of StateType (0d63f815-efd1-488a-9bfa-e9f6bda540d2) of DeviceClass httpGetCommander + + + + Response received + The name of the autocreated EventType (69f32ec8-114d-43f4-9241-1f6a57261f32) + + + + response + The name of the ParamType of StateType (69f32ec8-114d-43f4-9241-1f6a57261f32) of DeviceClass httpPostCommander +---------- +The name of the ParamType of StateType (69f32ec8-114d-43f4-9241-1f6a57261f32) of DeviceClass httpPutCommander +---------- +The name of the ParamType of StateType (d81f0644-b94e-48ed-ae48-1b8ff6cebc0c) of DeviceClass httpGetCommander + + + + Post data + The name of the ActionType 5a97ca56-b334-411b-adba-116496ffe83d of deviceClass httpPostCommander + + + + Data + The name of the paramType (363119a3-c02c-4ed5-a915-11706198f3eb) of httpPostCommander +---------- +The name of the paramType (7742d445-8fc1-4b20-87f2-1bb35929fce1) of httpPutCommander + + + + HTTP put commander + The name of the DeviceClass (05bf65f5-ff13-43e3-b6ae-77019e79d8a1) + + + + put + The name of the ActionType a9f165dc-cdf1-48f0-b4b6-7c24373cb77c of deviceClass httpPutCommander + + + + HTTP get + The name of the DeviceClass (8f3f6dde-9db3-4237-800b-bb7f804098c9) + + + + URL or IPv4 Address + The name of the paramType (477b544b-b631-4526-a4ef-c712ff5f955d) of httpGetCommander + + + + Response data received + The name of the autocreated EventType (d81f0644-b94e-48ed-ae48-1b8ff6cebc0c) + + + + From a1a1731ac85f7d299fd9573e7fb0636d2f226865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 16 Mar 2018 09:49:26 +0100 Subject: [PATCH 42/62] Rename gpio devices --- gpio/deviceplugingpio.cpp | 104 ++++++++++++++++++------------------- gpio/deviceplugingpio.json | 38 +++++--------- 2 files changed, 65 insertions(+), 77 deletions(-) diff --git a/gpio/deviceplugingpio.cpp b/gpio/deviceplugingpio.cpp index 0e7cdc1b..5345b723 100644 --- a/gpio/deviceplugingpio.cpp +++ b/gpio/deviceplugingpio.cpp @@ -68,14 +68,14 @@ DeviceManager::DeviceSetupStatus DevicePluginGpio::setupDevice(Device *device) } // GPIO Switch - if (device->deviceClassId() == gpioSwitchRpiDeviceClassId || device->deviceClassId() == gpioSwitchBbbDeviceClassId) { + if (device->deviceClassId() == gpioOutputRpiDeviceClassId || device->deviceClassId() == gpioOutputBbbDeviceClassId) { // Create and configure gpio int gpioId = -1; - if (device->deviceClassId() == gpioSwitchRpiDeviceClassId) - gpioId = device->paramValue(gpioSwitchRpiGpioParamTypeId).toInt(); + if (device->deviceClassId() == gpioOutputRpiDeviceClassId) + gpioId = device->paramValue(gpioOutputRpiGpioParamTypeId).toInt(); - if (device->deviceClassId() == gpioSwitchBbbDeviceClassId) - gpioId = device->paramValue(gpioSwitchBbbGpioParamTypeId).toInt(); + if (device->deviceClassId() == gpioOutputBbbDeviceClassId) + gpioId = device->paramValue(gpioOutputBbbGpioParamTypeId).toInt(); Gpio *gpio = new Gpio(gpioId, this); @@ -96,23 +96,23 @@ DeviceManager::DeviceSetupStatus DevicePluginGpio::setupDevice(Device *device) m_gpioDevices.insert(gpio, device); - if (device->deviceClassId() == gpioSwitchRpiDeviceClassId) + if (device->deviceClassId() == gpioOutputRpiDeviceClassId) m_raspberryPiGpios.insert(gpio->gpioNumber(), gpio); - if (device->deviceClassId() == gpioSwitchBbbDeviceClassId) + if (device->deviceClassId() == gpioOutputBbbDeviceClassId) m_beagleboneBlackGpios.insert(gpio->gpioNumber(), gpio); return DeviceManager::DeviceSetupStatusSuccess; } - if (device->deviceClassId() == gpioButtonRpiDeviceClassId || device->deviceClassId() == gpioButtonBbbDeviceClassId) { + if (device->deviceClassId() == gpioInputRpiDeviceClassId || device->deviceClassId() == gpioInputBbbDeviceClassId) { int gpioId = -1; - if (device->deviceClassId() == gpioButtonRpiDeviceClassId) - gpioId = device->paramValue(gpioButtonRpiGpioParamTypeId).toInt(); + if (device->deviceClassId() == gpioInputRpiDeviceClassId) + gpioId = device->paramValue(gpioInputRpiGpioParamTypeId).toInt(); - if (device->deviceClassId() == gpioButtonBbbDeviceClassId) - gpioId = device->paramValue(gpioButtonBbbGpioParamTypeId).toInt(); + if (device->deviceClassId() == gpioInputBbbDeviceClassId) + gpioId = device->paramValue(gpioInputBbbGpioParamTypeId).toInt(); GpioMonitor *monior = new GpioMonitor(gpioId, this); @@ -125,10 +125,10 @@ DeviceManager::DeviceSetupStatus DevicePluginGpio::setupDevice(Device *device) m_monitorDevices.insert(monior, device); - if (device->deviceClassId() == gpioSwitchRpiDeviceClassId) + if (device->deviceClassId() == gpioOutputRpiDeviceClassId) m_raspberryPiGpioMoniors.insert(monior->gpio()->gpioNumber(), monior); - if (device->deviceClassId() == gpioSwitchBbbDeviceClassId) + if (device->deviceClassId() == gpioOutputBbbDeviceClassId) m_beagleboneBlackGpioMoniors.insert(monior->gpio()->gpioNumber(), monior); return DeviceManager::DeviceSetupStatusSuccess; @@ -174,14 +174,14 @@ DeviceManager::DeviceError DevicePluginGpio::discoverDevices(const DeviceClassId DeviceDescriptor descriptor(deviceClassId, QString("GPIO %1").arg(gpioDescriptor.gpio()), description); ParamList parameters; - if (deviceClass.id() == gpioSwitchRpiDeviceClassId) { - parameters.append(Param(gpioSwitchRpiGpioParamTypeId, gpioDescriptor.gpio())); - parameters.append(Param(gpioSwitchRpiPinParamTypeId, gpioDescriptor.pin())); - parameters.append(Param(gpioSwitchRpiDescriptionParamTypeId, gpioDescriptor.description())); - } else if (deviceClass.id() == gpioButtonRpiDeviceClassId) { - parameters.append(Param(gpioButtonRpiGpioParamTypeId, gpioDescriptor.gpio())); - parameters.append(Param(gpioButtonRpiPinParamTypeId, gpioDescriptor.pin())); - parameters.append(Param(gpioButtonRpiDescriptionParamTypeId, gpioDescriptor.description())); + if (deviceClass.id() == gpioOutputRpiDeviceClassId) { + parameters.append(Param(gpioOutputRpiGpioParamTypeId, gpioDescriptor.gpio())); + parameters.append(Param(gpioOutputRpiPinParamTypeId, gpioDescriptor.pin())); + parameters.append(Param(gpioOutputRpiDescriptionParamTypeId, gpioDescriptor.description())); + } else if (deviceClass.id() == gpioInputRpiDeviceClassId) { + parameters.append(Param(gpioInputRpiGpioParamTypeId, gpioDescriptor.gpio())); + parameters.append(Param(gpioInputRpiPinParamTypeId, gpioDescriptor.pin())); + parameters.append(Param(gpioInputRpiDescriptionParamTypeId, gpioDescriptor.description())); } descriptor.setParams(parameters); @@ -217,14 +217,14 @@ DeviceManager::DeviceError DevicePluginGpio::discoverDevices(const DeviceClassId DeviceDescriptor descriptor(deviceClassId, QString("GPIO %1").arg(gpioDescriptor.gpio()), description); ParamList parameters; - if (deviceClass.id() == gpioSwitchBbbDeviceClassId) { - parameters.append(Param(gpioSwitchBbbGpioParamTypeId, gpioDescriptor.gpio())); - parameters.append(Param(gpioSwitchBbbPinParamTypeId, gpioDescriptor.pin())); - parameters.append(Param(gpioSwitchBbbDescriptionParamTypeId, gpioDescriptor.description())); - } else if (deviceClass.id() == gpioButtonBbbDeviceClassId) { - parameters.append(Param(gpioButtonBbbGpioParamTypeId, gpioDescriptor.gpio())); - parameters.append(Param(gpioButtonBbbPinParamTypeId, gpioDescriptor.pin())); - parameters.append(Param(gpioButtonBbbDescriptionParamTypeId, gpioDescriptor.description())); + if (deviceClass.id() == gpioOutputBbbDeviceClassId) { + parameters.append(Param(gpioOutputBbbGpioParamTypeId, gpioDescriptor.gpio())); + parameters.append(Param(gpioOutputBbbPinParamTypeId, gpioDescriptor.pin())); + parameters.append(Param(gpioOutputBbbDescriptionParamTypeId, gpioDescriptor.description())); + } else if (deviceClass.id() == gpioInputBbbDeviceClassId) { + parameters.append(Param(gpioInputBbbGpioParamTypeId, gpioDescriptor.gpio())); + parameters.append(Param(gpioInputBbbPinParamTypeId, gpioDescriptor.pin())); + parameters.append(Param(gpioInputBbbDescriptionParamTypeId, gpioDescriptor.description())); } descriptor.setParams(parameters); @@ -282,10 +282,10 @@ DeviceManager::DeviceError DevicePluginGpio::executeAction(Device *device, const // Find the gpio in the corresponding hash if (deviceClass.vendorId() == raspberryPiVendorId) - gpio = m_raspberryPiGpios.value(device->paramValue(gpioSwitchRpiGpioParamTypeId).toInt()); + gpio = m_raspberryPiGpios.value(device->paramValue(gpioOutputRpiGpioParamTypeId).toInt()); if (deviceClass.vendorId() == beagleboneBlackVendorId) - gpio = m_beagleboneBlackGpios.value(device->paramValue(gpioSwitchBbbGpioParamTypeId).toInt()); + gpio = m_beagleboneBlackGpios.value(device->paramValue(gpioOutputBbbGpioParamTypeId).toInt()); // Check if gpio was found if (!gpio) { @@ -295,9 +295,9 @@ DeviceManager::DeviceError DevicePluginGpio::executeAction(Device *device, const // GPIO Switch power action if (deviceClass.vendorId() == raspberryPiVendorId) { - if (action.actionTypeId() == gpioSwitchRpiPowerValueActionTypeId) { + if (action.actionTypeId() == gpioOutputRpiPowerValueActionTypeId) { bool success = false; - if (action.param(gpioSwitchRpiPowerValueStateParamTypeId).value().toBool()) { + if (action.param(gpioOutputRpiPowerValueStateParamTypeId).value().toBool()) { success = gpio->setValue(Gpio::ValueHigh); } else { success = gpio->setValue(Gpio::ValueLow); @@ -309,14 +309,14 @@ DeviceManager::DeviceError DevicePluginGpio::executeAction(Device *device, const } // Set the current state - device->setStateValue(gpioSwitchRpiPowerValueStateTypeId, action.param(gpioSwitchRpiPowerValueStateParamTypeId).value()); + device->setStateValue(gpioOutputRpiPowerValueStateTypeId, action.param(gpioOutputRpiPowerValueStateParamTypeId).value()); return DeviceManager::DeviceErrorNoError; } } else if (deviceClass.vendorId() == beagleboneBlackVendorId) { - if (action.actionTypeId() == gpioSwitchBbbPowerValueActionTypeId) { + if (action.actionTypeId() == gpioOutputBbbPowerValueActionTypeId) { bool success = false; - if (action.param(gpioSwitchBbbPowerValueStateParamTypeId).value().toBool()) { + if (action.param(gpioOutputBbbPowerValueStateParamTypeId).value().toBool()) { success = gpio->setValue(Gpio::ValueHigh); } else { success = gpio->setValue(Gpio::ValueLow); @@ -328,7 +328,7 @@ DeviceManager::DeviceError DevicePluginGpio::executeAction(Device *device, const } // Set the current state - device->setStateValue(gpioSwitchBbbPowerValueStateTypeId, action.param(gpioSwitchBbbPowerValueStateParamTypeId).value()); + device->setStateValue(gpioOutputBbbPowerValueStateTypeId, action.param(gpioOutputBbbPowerValueStateParamTypeId).value()); return DeviceManager::DeviceErrorNoError; } @@ -339,29 +339,29 @@ DeviceManager::DeviceError DevicePluginGpio::executeAction(Device *device, const void DevicePluginGpio::postSetupDevice(Device *device) { - if (device->deviceClassId() == gpioSwitchRpiDeviceClassId || device->deviceClassId() == gpioSwitchBbbDeviceClassId) { + if (device->deviceClassId() == gpioOutputRpiDeviceClassId || device->deviceClassId() == gpioOutputBbbDeviceClassId) { Gpio *gpio = m_gpioDevices.key(device); if (!gpio) return; gpio->setValue(Gpio::ValueLow); - if (device->deviceClassId() == gpioSwitchRpiDeviceClassId) { - device->setStateValue(gpioSwitchRpiPowerValueStateTypeId, false); + if (device->deviceClassId() == gpioOutputRpiDeviceClassId) { + device->setStateValue(gpioOutputRpiPowerValueStateTypeId, false); } - if (device->deviceClassId() == gpioSwitchBbbDeviceClassId) { - device->setStateValue(gpioSwitchBbbPowerValueStateTypeId, false); + if (device->deviceClassId() == gpioOutputBbbDeviceClassId) { + device->setStateValue(gpioOutputBbbPowerValueStateTypeId, false); } } - if (device->deviceClassId() == gpioButtonRpiDeviceClassId || device->deviceClassId() == gpioButtonBbbDeviceClassId) { + if (device->deviceClassId() == gpioInputRpiDeviceClassId || device->deviceClassId() == gpioInputBbbDeviceClassId) { GpioMonitor *monitor = m_monitorDevices.key(device); if (!monitor) return; - if (device->deviceClassId() == gpioButtonRpiDeviceClassId) { - device->setStateValue(gpioButtonRpiPressedStateTypeId, monitor->value()); - } else if (device->deviceClassId() == gpioButtonBbbDeviceClassId) { - device->setStateValue(gpioButtonBbbPressedStateTypeId, monitor->value()); + if (device->deviceClassId() == gpioInputRpiDeviceClassId) { + device->setStateValue(gpioInputRpiPressedStateTypeId, monitor->value()); + } else if (device->deviceClassId() == gpioInputBbbDeviceClassId) { + device->setStateValue(gpioInputBbbPressedStateTypeId, monitor->value()); } } } @@ -481,10 +481,10 @@ void DevicePluginGpio::onGpioValueChanged(const bool &value) if (!device) return; - if (device->deviceClassId() == gpioButtonRpiDeviceClassId) { - device->setStateValue(gpioButtonRpiPressedStateTypeId, value); - } else if (device->deviceClassId() == gpioButtonBbbDeviceClassId) { - device->setStateValue(gpioButtonBbbPressedStateTypeId, value); + if (device->deviceClassId() == gpioInputRpiDeviceClassId) { + device->setStateValue(gpioInputRpiPressedStateTypeId, value); + } else if (device->deviceClassId() == gpioInputBbbDeviceClassId) { + device->setStateValue(gpioInputBbbPressedStateTypeId, value); } } diff --git a/gpio/deviceplugingpio.json b/gpio/deviceplugingpio.json index 03b7b588..8969b76e 100644 --- a/gpio/deviceplugingpio.json +++ b/gpio/deviceplugingpio.json @@ -4,19 +4,16 @@ "id": "127ead55-996a-44ac-ba82-fc3c634e018a", "vendors": [ { - "displayName": "Raspberry Pi 2", + "displayName": "Raspberry Pi 2/3", "name": "raspberryPi", "id": "f0d00b66-bbd8-4a07-8591-ea48a61b229e", "deviceClasses": [ { "id": "3885c520-e202-4435-88f6-3c35c362b2e6", - "displayName": "GPIO Switch", - "name": "gpioSwitchRpi", + "displayName": "GPIO Output", + "name": "gpioOutputRpi", "deviceIcon": "Switch", - "basicTags": [ - "Device", - "Actuator" - ], + "basicTags": ["Device", "Actuator"], "createMethods": ["discovery"], "paramTypes": [ { @@ -56,13 +53,10 @@ }, { "id": "6aff228b-0410-4ef9-9593-51e8639aacea", - "displayName": "GPIO Button", - "name": "gpioButtonRpi", + "displayName": "GPIO Input", + "name": "gpioInputRpi", "deviceIcon": "Power", - "basicTags": [ - "Device", - "Sensor" - ], + "basicTags": ["Device", "Sensor"], "createMethods": ["discovery"], "paramTypes": [ { @@ -107,13 +101,10 @@ "deviceClasses": [ { "id": "75d54a59-f9b0-4bc4-a86c-6b1fc47e0663", - "displayName": "GPIO Switch", - "name": "gpioSwitchBbb", + "displayName": "GPIO Output", + "name": "gpioOutputBbb", "deviceIcon": "Switch", - "basicTags": [ - "Device", - "Actuator" - ], + "basicTags": ["Device", "Actuator"], "createMethods": ["discovery"], "paramTypes": [ { @@ -153,13 +144,10 @@ }, { "id": "ffd2aa29-55cc-4824-ba95-c311784f7824", - "displayName": "GPIO Button", - "name": "gpioButtonBbb", + "displayName": "GPIO Input", + "name": "gpioInputBbb", "deviceIcon": "Power", - "basicTags": [ - "Device", - "Sensor" - ], + "basicTags": ["Device", "Sensor"], "createMethods": ["discovery"], "paramTypes": [ { From 567d3af6cc34e7d3fb0c886bdba4da5068aeac6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 16 Mar 2018 19:21:07 +0100 Subject: [PATCH 43/62] Fix avea plugin --- elgato/aveabulb.cpp | 271 +++++++++++++++++++++++++++++---- elgato/aveabulb.h | 39 ++++- elgato/aveacolor.cpp | 59 ++++++- elgato/aveacolor.h | 31 +++- elgato/devicepluginelgato.cpp | 101 ++++++++++-- elgato/devicepluginelgato.h | 11 +- elgato/devicepluginelgato.json | 109 +++++++++++-- elgato/elgato.pro | 2 - 8 files changed, 554 insertions(+), 69 deletions(-) diff --git a/elgato/aveabulb.cpp b/elgato/aveabulb.cpp index bcb5e411..0dc10f64 100644 --- a/elgato/aveabulb.cpp +++ b/elgato/aveabulb.cpp @@ -1,4 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2016-2018 Simon Stürz * * * * This file is part of nymea. * * * @@ -19,8 +21,11 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include "aveabulb.h" +#include "aveacolor.h" #include "extern-plugininfo.h" +#include + AveaBulb::AveaBulb(Device *device, BluetoothLowEnergyDevice *bluetoothDevice, QObject *parent) : QObject(parent), m_device(device), @@ -40,6 +45,50 @@ BluetoothLowEnergyDevice *AveaBulb::bluetoothDevice() return m_bluetoothDevice; } +bool AveaBulb::setPower(bool power) +{ + if (!m_bluetoothDevice->connected()) + return false; + + if (!m_colorService) + return false; + + qCDebug(dcElgato()) << "Set power" << (power ? "on" : "off"); + + // Sync current color + if (power) + return syncColor(); + + // Power off + QByteArray command; + QDataStream stream(&command, QIODevice::WriteOnly); + stream.setByteOrder(QDataStream::LittleEndian); + + quint8 commandId = static_cast(ColorMessageColor); + quint16 fade = static_cast(m_fade); + quint16 constant = 0x000a; + quint16 white = 0 | 0x8000; + quint16 red = 0 | 0x3000; + quint16 green = 0 | 0x2000; + quint16 blue = 0 | 0x1000; + + stream << commandId << fade << constant << white << red << green << blue; + + qCDebug(dcElgato()) << "Set color data -->" << command.toHex(); + + m_colorService->writeCharacteristic(m_colorCharacteristic, command); + return true; + +} + +bool AveaBulb::setBulbName(const QString &name) +{ + m_bulbName = name; + + // TODO: + return true; +} + bool AveaBulb::setColor(const QColor &color) { if (!m_bluetoothDevice->connected()) @@ -48,12 +97,138 @@ bool AveaBulb::setColor(const QColor &color) if (!m_colorService) return false; + qCDebug(dcElgato()) << "-->" << color.toRgb(); + // Convert rgb to wrgb QByteArray command; - command.append(QByteArray::fromHex("35")); + QDataStream stream(&command, QIODevice::WriteOnly); + stream.setByteOrder(QDataStream::LittleEndian); - qCDebug(dcElgato()) << color << command; + m_red = scaleColorValueUp(color.red()); + m_green = scaleColorValueUp(color.green()); + m_blue = scaleColorValueUp(color.blue()); + m_color = color; + + return syncColor(); +} + +bool AveaBulb::setBrightness(int percentage) +{ + if (!m_bluetoothDevice->connected()) + return false; + + if (!m_colorService) + return false; + + quint16 brightnessValue = qRound(4095.0 * percentage / 100.0); + qCDebug(dcElgato()) << "Brightness value" << percentage << "% -->" << brightnessValue; + + QByteArray command; + QDataStream stream(&command, QIODevice::WriteOnly); + stream.setByteOrder(QDataStream::LittleEndian); + stream << static_cast(ColorMessageBrightness); + stream << brightnessValue; + + m_colorService->writeCharacteristic(m_colorCharacteristic, command); + return true; +} + +bool AveaBulb::setFade(int fade) +{ + m_fade = fade; + return syncColor(); +} + +bool AveaBulb::setWhite(int white) +{ + m_white = white; + return syncColor(); +} + +bool AveaBulb::setRed(int red) +{ + m_red = red; + return syncColor(); +} + +bool AveaBulb::setGreen(int green) +{ + m_green = green; + return syncColor(); +} + +bool AveaBulb::setBlue(int blue) +{ + m_blue = blue; + return syncColor(); +} + +bool AveaBulb::loadValues() +{ + if (!m_bluetoothDevice->connected()) + return false; + + if (!m_colorService) + return false; + + // Request color + m_colorService->writeCharacteristic(m_colorCharacteristic, QByteArray::fromHex("35")); + + // Request brightness + m_colorService->writeCharacteristic(m_colorCharacteristic, QByteArray::fromHex("57")); + + // Request name + m_colorService->writeCharacteristic(m_colorCharacteristic, QByteArray::fromHex("58")); + return true; +} + +quint16 AveaBulb::scaleColorValueUp(int colorValue) +{ + return static_cast(qRound(4095.0 * colorValue / 255.0)); +} + +int AveaBulb::scaleColorValueDown(quint16 colorValue) +{ + return qRound(255.0 * colorValue / 4095.0); +} + +bool AveaBulb::syncColor() +{ + if (!m_bluetoothDevice->connected()) + return false; + + if (!m_colorService) + return false; + + if (!m_device->stateValue(aveaPowerStateTypeId).toBool()) { + qCWarning(dcElgato()) << "Not syncing color because power off"; + return false; + } + + m_device->setStateValue(aveaBlueStateTypeId, m_white); + m_device->setStateValue(aveaRedStateTypeId, m_red); + m_device->setStateValue(aveaGreenStateTypeId, m_green); + m_device->setStateValue(aveaBlueStateTypeId, m_blue); + m_device->setStateValue(aveaColorStateTypeId, QColor(scaleColorValueDown(m_red), scaleColorValueDown(m_green), scaleColorValueDown(m_blue))); + + // Convert rgb to wrgb + QByteArray command; + QDataStream stream(&command, QIODevice::WriteOnly); + stream.setByteOrder(QDataStream::LittleEndian); + + quint8 commandId = static_cast(ColorMessageColor); + quint16 fade = static_cast(m_fade); + quint16 constant = 0x000a; + quint16 white = m_white | 0x8000; + quint16 red = m_red | 0x3000; + quint16 green = m_green | 0x2000; + quint16 blue = m_blue | 0x1000; + + stream << commandId << fade << constant << white << red << green << blue; + + qCDebug(dcElgato()) << "----> Sync" << command.toHex(); + m_colorService->writeCharacteristic(m_colorCharacteristic, command); return true; } @@ -70,7 +245,6 @@ void AveaBulb::onConnectedChanged(const bool &connected) m_colorService = nullptr; m_imageService = nullptr; } - } void AveaBulb::onServiceDiscoveryFinished() @@ -119,7 +293,7 @@ void AveaBulb::onColorServiceStateChanged(const QLowEnergyService::ServiceState } // Data characteristic - m_colorCharacteristic = m_colorService->characteristic(QBluetoothUuid(QUuid("f815e811-456c-6761-746f-4d756e696368"))); + m_colorCharacteristic = m_colorService->characteristic(colorCharacteristicUuid); if (!m_colorCharacteristic.isValid()) { qCWarning(dcElgato()) << "Invalid color data characteristic."; } @@ -128,37 +302,72 @@ void AveaBulb::onColorServiceStateChanged(const QLowEnergyService::ServiceState QLowEnergyDescriptor notificationDescriptor = m_colorCharacteristic.descriptor(QBluetoothUuid::ClientCharacteristicConfiguration); m_colorService->writeDescriptor(notificationDescriptor, QByteArray::fromHex("0100")); - // Get current configuration - - // Color - m_colorService->writeCharacteristic(m_colorCharacteristic, QByteArray::fromHex("35")); - - // Brightness - m_colorService->writeCharacteristic(m_colorCharacteristic, QByteArray::fromHex("57")); - - // Name - m_colorService->writeCharacteristic(m_colorCharacteristic, QByteArray::fromHex("58")); - + // Load current configuration + loadValues(); } void AveaBulb::onColorServiceCharacteristicChanged(const QLowEnergyCharacteristic &characteristic, const QByteArray &value) { - qCDebug(dcElgato()) << "Color characteristic changed" << characteristic.uuid().toString() << value; - - if (value.startsWith(QByteArray::fromHex("35"))) { - qCDebug(dcElgato()) << "Received color notification"; - qCDebug(dcElgato()) << " Fade" << value.mid(1, 2); - qCDebug(dcElgato()) << " Fixed value" << value.mid(3, 2); - qCDebug(dcElgato()) << " White" << value.mid(5, 2); - qCDebug(dcElgato()) << " Red" << value.mid(7, 2); - qCDebug(dcElgato()) << " Green" << value.mid(9, 2); - qCDebug(dcElgato()) << " Blue" << value.mid(11, 2); - } else if (value.startsWith(QByteArray::fromHex("57"))) { - qCDebug(dcElgato()) << "Received brightness notification"; - qCDebug(dcElgato()) << " Fade" << value.mid(1, 2); - } else if (value.startsWith(QByteArray::fromHex("58"))) { - qCDebug(dcElgato()) << "Received name notification"; - qCDebug(dcElgato()) << " Name" << value.mid(1, value.count() - 2); + if (characteristic.uuid() != colorCharacteristicUuid) { + qCWarning(dcElgato()) << "Unhandled color service characteristic notification received" << value.toHex(); + return; } + + //qCDebug(dcElgato()) << "Color characteristic changed" << characteristic.uuid().toString() << value.toHex(); + + QByteArray payload = value; + QDataStream stream(&payload, QIODevice::ReadOnly); + quint8 messageType; + stream.setByteOrder(QDataStream::LittleEndian); + stream >> messageType; + + //qCDebug(dcElgato()) << "Message type" << messageType << static_cast(messageType); + + switch (messageType) { + case ColorMessageColor: { + quint16 whiteCurrentValue = 0; quint16 blueCurrentValue = 0; quint16 greenCurrentValue = 0; quint16 redCurrentValue = 0; + quint16 whiteTargetValue = 0; quint16 blueTargetValue = 0; quint16 greenTargetValue = 0; quint16 redTargetValue = 0; + + // Read current color + stream >> whiteCurrentValue >> blueCurrentValue >> greenCurrentValue >> redCurrentValue; + + // Read target color + stream >> whiteTargetValue >> blueTargetValue >> greenTargetValue >> redTargetValue; + + // Convert color values + quint16 whiteCurrentAdjustedValue = whiteCurrentValue; + quint16 blueCurrentAdjustedValue = blueCurrentValue ^ 0x1000; + quint16 greenCurrentAdjustedValue = greenCurrentValue ^ 0x2000; + quint16 redCurrentAdjustedValue = redCurrentValue ^ 0x3000; + + qCDebug(dcElgato()) << "Received color notification:"; + qCDebug(dcElgato()) << " white (current):" << value.mid(1, 2).toHex() << whiteCurrentValue << whiteCurrentAdjustedValue; + qCDebug(dcElgato()) << " blue (current):" << value.mid(3, 2).toHex() << blueCurrentValue << blueCurrentAdjustedValue; + qCDebug(dcElgato()) << " green (current):" << value.mid(5, 2).toHex() << greenCurrentValue << greenCurrentAdjustedValue; + qCDebug(dcElgato()) << " red (current):" << value.mid(7, 2).toHex() << redCurrentValue << redCurrentAdjustedValue; + qCDebug(dcElgato()) << " white (target) :" << value.mid(9, 2).toHex() << whiteTargetValue; + qCDebug(dcElgato()) << " blue (target) :" << value.mid(11, 2).toHex() << blueTargetValue; + qCDebug(dcElgato()) << " green (target) :" << value.mid(13, 2).toHex() << greenTargetValue; + qCDebug(dcElgato()) << " red (target) :" << value.mid(15, 2).toHex() << redTargetValue; + + break; + } + case ColorMessageBrightness: { + quint16 brightnessValue = 0; + stream >> brightnessValue; + int brightnessPercentage = qRound(brightnessValue * 100 / 4095.0); + qCDebug(dcElgato()) << "Brightness notification" << value.mid(1, 2).toHex() << brightnessValue << "-->" << brightnessPercentage << "%"; + m_device->setStateValue(aveaBrightnessStateTypeId, brightnessPercentage); + break; + } + case ColorMessageName: { + qCDebug(dcElgato()) << "Name notification:" << value.mid(1, value.count() - 2); + break; + } + default: + qCWarning(dcElgato()) << "Unhandled color characteristic notification received" << value.toHex(); + break; + } + } diff --git a/elgato/aveabulb.h b/elgato/aveabulb.h index 08e362eb..5cc31072 100644 --- a/elgato/aveabulb.h +++ b/elgato/aveabulb.h @@ -1,4 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2016-2018 Simon Stürz * * * * This file is part of nymea. * * * @@ -30,22 +32,55 @@ #include "hardware/bluetoothlowenergy/bluetoothlowenergydevice.h" static QBluetoothUuid colorServiceUuid = QBluetoothUuid(QUuid("f815e810-456c-6761-746f-4d756e696368")); +static QBluetoothUuid colorCharacteristicUuid = QBluetoothUuid(QUuid("f815e811-456c-6761-746f-4d756e696368")); + static QBluetoothUuid imageServiceUuid = QBluetoothUuid(QUuid("f815e500-456c-6761-746f-4d756e696368")); class AveaBulb : public QObject { Q_OBJECT public: + enum ColorMessage { + ColorMessageColor = 0x35, + ColorMessageBrightness = 0x57, + ColorMessageName = 0x58 + }; + Q_ENUM(ColorMessage) + explicit AveaBulb(Device *device, BluetoothLowEnergyDevice *bluetoothDevice, QObject *parent = nullptr); Device *device(); BluetoothLowEnergyDevice *bluetoothDevice(); + bool setPower(bool power); + bool setBulbName(const QString &name); bool setColor(const QColor &color); + bool setBrightness(int percentage); + bool setFade(int fade); + + bool setWhite(int white); + bool setRed(int red); + bool setGreen(int green); + bool setBlue(int blue); + + bool loadValues(); + bool syncColor(); private: - Device *m_device; - BluetoothLowEnergyDevice *m_bluetoothDevice; + Device *m_device = nullptr; + BluetoothLowEnergyDevice *m_bluetoothDevice = nullptr; + + QString m_bulbName; + QColor m_color; + int m_brightness = 0; + int m_fade = 0; + int m_white = 0; + int m_red = 0; + int m_green = 0; + int m_blue = 0; + + quint16 scaleColorValueUp(int colorValue); + int scaleColorValueDown(quint16 colorValue); private: QLowEnergyService *m_colorService = nullptr; diff --git a/elgato/aveacolor.cpp b/elgato/aveacolor.cpp index df3da5b4..dd4b6f9e 100644 --- a/elgato/aveacolor.cpp +++ b/elgato/aveacolor.cpp @@ -1,12 +1,57 @@ -#include "aveacolor.h" +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2016-2018 Simon Stürz * + * * + * This file is part of nymea. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -AveaColor::AveaColor(const QColor &color) +#include "extern-plugininfo.h" + +AveaColor::AveaColor(const QColor &color): + m_color(color) { // Convert rgb to wrgb - ColorRgbw rgbw = rgbToRgbw(color.red(), color.green(), color.blue()); - Q_UNUSED(rgbw) + qCDebug(dcElgato()) << "Convert color" << m_color.red() << m_color.green() << m_color.blue(); + ColorRgbw rgbw = rgbToRgbw(m_color.red(), m_color.green(), m_color.blue()); + m_white = rgbw.white; + m_red = rgbw.red; + m_green = rgbw.green; + m_blue = rgbw.blue; +} + +AveaColor::AveaColor(uint white, uint red, uint green, uint blue): + m_white(white), + m_red(red), + m_green(green), + m_blue(blue) +{ + // Convert rgbw to rgb + + // TODO + + +} + +QColor AveaColor::color() const +{ + return m_color; } uint AveaColor::white() const @@ -68,3 +113,9 @@ ColorRgbw AveaColor::rgbToRgbw(uint red, uint green, uint blue) rgbw.white = getWhite(rgbw); return rgbw; } + +QDebug operator<<(QDebug dbg, const AveaColor &color) +{ + dbg.nospace() << "AveaColor(" << color.color() << " | R:" << color.red() << " G:" << color.green() << "B:" << color.blue() << "W:" << color.white() << ")"; + return dbg; +} diff --git a/elgato/aveacolor.h b/elgato/aveacolor.h index a38041b1..352e4b29 100644 --- a/elgato/aveacolor.h +++ b/elgato/aveacolor.h @@ -1,8 +1,31 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2016-2018 Simon Stürz * + * * + * This file is part of nymea. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + #ifndef AVEACOLOR_H #define AVEACOLOR_H #include #include +#include struct ColorRgbw { uint red; @@ -11,11 +34,13 @@ struct ColorRgbw { uint white; }; - class AveaColor { public: AveaColor(const QColor &color); + AveaColor(uint white, uint red, uint green, uint blue); + + QColor color() const; uint white() const; uint red() const; @@ -25,6 +50,7 @@ public: QByteArray toByteArray(); private: + QColor m_color; uint m_white = 0; uint m_red = 0; uint m_green = 0; @@ -36,4 +62,7 @@ private: ColorRgbw rgbToRgbw(unsigned int red, unsigned int green, unsigned int blue); }; +QDebug operator<<(QDebug dbg, const AveaColor &color); + + #endif // AVEACOLOR_H diff --git a/elgato/devicepluginelgato.cpp b/elgato/devicepluginelgato.cpp index 22cb4f93..66ff680f 100644 --- a/elgato/devicepluginelgato.cpp +++ b/elgato/devicepluginelgato.cpp @@ -1,4 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2016-2018 Simon Stürz * * * * This file is part of nymea. * * * @@ -408,6 +410,17 @@ DevicePluginElgato::DevicePluginElgato() } +DevicePluginElgato::~DevicePluginElgato() +{ + hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer); +} + +void DevicePluginElgato::init() +{ + m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(10); + connect(m_pluginTimer, &PluginTimer::timeout, this, &DevicePluginElgato::onPluginTimer); +} + DeviceManager::DeviceError DevicePluginElgato::discoverDevices(const DeviceClassId &deviceClassId, const ParamList ¶ms) { Q_UNUSED(params) @@ -438,31 +451,86 @@ DeviceManager::DeviceSetupStatus DevicePluginElgato::setupDevice(Device *device) BluetoothLowEnergyDevice *bluetoothDevice = hardwareManager()->bluetoothLowEnergyManager()->registerDevice(deviceInfo, QLowEnergyController::PublicAddress); AveaBulb *bulb = new AveaBulb(device, bluetoothDevice, this); - m_bulbs.insert(device, bulb); - bulb->bluetoothDevice()->connectDevice(); return DeviceManager::DeviceSetupStatusSuccess; } return DeviceManager::DeviceSetupStatusFailure; } +void DevicePluginElgato::postSetupDevice(Device *device) +{ + AveaBulb *bulb = m_bulbs.value(device); + // Init values for restore + bulb->setBrightness(device->stateValue(aveaBrightnessStateTypeId).toInt()); + bulb->setFade(device->stateValue(aveaFadeStateTypeId).toInt()); + bulb->setWhite(device->stateValue(aveaWhiteStateTypeId).toInt()); + bulb->setRed(device->stateValue(aveaRedStateTypeId).toInt()); + bulb->setGreen(device->stateValue(aveaGreenStateTypeId).toInt()); + bulb->setBlue(device->stateValue(aveaBlueStateTypeId).toInt()); + + bulb->bluetoothDevice()->connectDevice(); +} + DeviceManager::DeviceError DevicePluginElgato::executeAction(Device *device, const Action &action) { - Q_UNUSED(action) - // check deviceClassId if (device->deviceClassId() == aveaDeviceClassId) { AveaBulb *bulb = m_bulbs.value(device); - Q_UNUSED(bulb) -// // check actionTypeId -// if (action.actionTypeId() == powerOffActionTypeId) { -// bulb->actionPowerOff(action.id()); -// return DeviceManager::DeviceErrorAsync; -// } else if (action.actionTypeId() == colorActionTypeId) { + if (action.actionTypeId() == aveaPowerActionTypeId) { + bool power = action.param(aveaPowerStateParamTypeId).value().toBool(); + device->setStateValue(aveaPowerStateTypeId, power); + if (!bulb->setPower(power)) + return DeviceManager::DeviceErrorHardwareNotAvailable; -// return DeviceManager::DeviceErrorNoError; -// } + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == aveaBrightnessActionTypeId) { + int percentage = action.param(aveaBrightnessStateParamTypeId).value().toInt(); + if (!bulb->setBrightness(percentage)) + return DeviceManager::DeviceErrorHardwareNotAvailable; + + device->setStateValue(aveaBrightnessStateTypeId, percentage); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == aveaColorActionTypeId) { + QColor color = action.param(aveaColorStateParamTypeId).value().value(); + if (!bulb->setColor(color)) + return DeviceManager::DeviceErrorHardwareNotAvailable; + + device->setStateValue(aveaColorStateTypeId, color); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == aveaWhiteActionTypeId) { + int whiteValue = action.param(aveaWhiteStateParamTypeId).value().toInt(); + if (!bulb->setWhite(whiteValue)) + return DeviceManager::DeviceErrorHardwareNotAvailable; + + device->setStateValue(aveaWhiteStateTypeId, whiteValue); + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == aveaGreenActionTypeId) { + int greenValue = action.param(aveaGreenStateParamTypeId).value().toInt(); + if (!bulb->setGreen(greenValue)) + return DeviceManager::DeviceErrorHardwareNotAvailable; + + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == aveaRedActionTypeId) { + int redValue = action.param(aveaRedStateParamTypeId).value().toInt(); + if (!bulb->setRed(redValue)) + return DeviceManager::DeviceErrorHardwareNotAvailable; + + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == aveaBlueActionTypeId) { + int blueValue = action.param(aveaBlueStateParamTypeId).value().toInt(); + if (!bulb->setBlue(blueValue)) + return DeviceManager::DeviceErrorHardwareNotAvailable; + + return DeviceManager::DeviceErrorNoError; + } else if (action.actionTypeId() == aveaFadeActionTypeId) { + int fadeValue = action.param(aveaFadeStateParamTypeId).value().toInt(); + device->setStateValue(aveaFadeStateTypeId, fadeValue); + if (!bulb->setFade(fadeValue)) + return DeviceManager::DeviceErrorHardwareNotAvailable; + + return DeviceManager::DeviceErrorNoError; + } return DeviceManager::DeviceErrorActionTypeNotFound; } @@ -490,6 +558,15 @@ bool DevicePluginElgato::verifyExistingDevices(const QBluetoothDeviceInfo &devic return false; } +void DevicePluginElgato::onPluginTimer() +{ + foreach (AveaBulb *bulb, m_bulbs.values()) { + if (!bulb->bluetoothDevice()->connected()) { + bulb->bluetoothDevice()->connectDevice(); + } + } +} + void DevicePluginElgato::onBluetoothDiscoveryFinished() { BluetoothDiscoveryReply *reply = static_cast(sender()); diff --git a/elgato/devicepluginelgato.h b/elgato/devicepluginelgato.h index 8144c7e3..65f79dbd 100644 --- a/elgato/devicepluginelgato.h +++ b/elgato/devicepluginelgato.h @@ -1,4 +1,6 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2016-2018 Simon Stürz * * * * This file is part of nymea. * * * @@ -21,9 +23,10 @@ #ifndef DEVICEPLUGINELGATO_H #define DEVICEPLUGINELGATO_H +#include "aveabulb.h" +#include "plugintimer.h" #include "plugin/deviceplugin.h" #include "hardware/bluetoothlowenergy/bluetoothlowenergydevice.h" -#include "aveabulb.h" class DevicePluginElgato : public DevicePlugin { @@ -34,17 +37,23 @@ class DevicePluginElgato : public DevicePlugin public: explicit DevicePluginElgato(); + ~DevicePluginElgato(); + void init() override; DeviceManager::DeviceError discoverDevices(const DeviceClassId &deviceClassId, const ParamList ¶ms) override; DeviceManager::DeviceSetupStatus setupDevice(Device *device) override; + void postSetupDevice(Device *device) override; DeviceManager::DeviceError executeAction(Device *device, const Action &action) override; void deviceRemoved(Device *device) override; private: + PluginTimer *m_pluginTimer = nullptr; QHash m_bulbs; + bool verifyExistingDevices(const QBluetoothDeviceInfo &deviceInfo); private slots: + void onPluginTimer(); void onBluetoothDiscoveryFinished(); }; diff --git a/elgato/devicepluginelgato.json b/elgato/devicepluginelgato.json index cfc40484..8626a936 100644 --- a/elgato/devicepluginelgato.json +++ b/elgato/devicepluginelgato.json @@ -1,37 +1,33 @@ { - "displayName": "Elgato", "id": "c5c03ad4-bfdb-444a-8eca-2c234c46cc27", "name": "Elgato", + "displayName": "Elgato", "vendors": [ { - "displayName": "Elgato", - "name": "elgato", "id": "90a3091d-1053-4f77-8dc3-92e27bbcebe7", + "name": "elgato", + "displayName": "Elgato", "deviceClasses": [ { "id": "164f9602-90ee-4693-bda3-9cafae37603e", "name": "avea", "displayName": "Avea", "deviceIcon": "LightBulb", - "criticalStateTypeId": "6d5e792a-c786-40d2-ae35-a48ac6fafcbc", - "basicTags": [ - "Device", - "Actuator", - "Lighting" - ], + "basicTags": ["Device", "Actuator", "Lighting"], + "interfaces": ["connectable"], "createMethods": ["discovery"], "paramTypes": [ { "id": "d7a5d96f-33dc-4dc3-a171-b1e89a5e1a4b", "name": "name", - "displayName": "name", + "displayName": "Name", "type": "QString", "inputType": "TextLine" }, { "id": "20932e39-00fd-40e3-8f39-850ba149844e", "name": "macAddress", - "displayName": "mac address", + "displayName": "MAC address", "type": "QString", "inputType": "MacAddress" } @@ -40,16 +36,27 @@ { "id": "6d5e792a-c786-40d2-ae35-a48ac6fafcbc", "name": "connected", - "displayName": "connected", - "displayNameEvent": "connected changed", + "displayName": "Connected", + "displayNameEvent": "Connected changed", "type": "bool", + "cached": false, + "defaultValue": false + }, + { + "id": "2b779968-ff4f-4a05-a466-074e14288a8c", + "name": "power", + "displayName": "Power", + "displayNameEvent": "Power changed", + "displayNameAction": "Set power", + "type": "bool", + "writable": true, "defaultValue": false }, { "id": "c38181a0-e19b-423f-8b66-dedda94e89b5", "name": "brightness", "displayName": "Brightness", - "displayNameEvent": "brightness changed", + "displayNameEvent": "Brightness changed", "displayNameAction": "Set brightness", "type": "int", "defaultValue": 100, @@ -62,14 +69,84 @@ { "id": "3f15637a-8272-4714-bd08-04806e05bbef", "name": "color", - "displayName": "color", - "displayNameEvent": "color changed", + "displayName": "Color", + "displayNameEvent": "Color changed", "displayNameAction": "Set color", "type": "QColor", "ruleRelevant": false, "eventRuleRelevant": false, "defaultValue": "#000000", "writable": true + }, + { + "id": "50f6a224-fb8d-487d-8774-1a0536e5b1aa", + "name": "white", + "displayName": "white", + "displayNameEvent": "white changed", + "displayNameAction": "Set white", + "type": "int", + "defaultValue": 0, + "ruleRelevant": false, + "minValue": 0, + "maxValue": 4095, + "eventRuleRelevant": false, + "writable": true + }, + { + "id": "50ab71d1-8970-4531-b1ad-f387d01bab90", + "name": "red", + "displayName": "Red", + "displayNameEvent": "Red changed", + "displayNameAction": "Set red", + "type": "int", + "defaultValue": 0, + "ruleRelevant": false, + "minValue": 0, + "maxValue": 4095, + "eventRuleRelevant": false, + "writable": true + }, + { + "id": "9e8ddebc-33fe-418a-895f-d8148fabcfee", + "name": "green", + "displayName": "Green", + "displayNameEvent": "Green changed", + "displayNameAction": "Set green", + "type": "int", + "defaultValue": 0, + "ruleRelevant": false, + "minValue": 0, + "maxValue": 4095, + "eventRuleRelevant": false, + "writable": true + }, + { + "id": "f4310747-d468-4d2e-abe4-b5e4d0245dad", + "name": "blue", + "displayName": "Blue", + "displayNameEvent": "Blue changed", + "displayNameAction": "Set blue", + "type": "int", + "defaultValue": 0, + "ruleRelevant": false, + "minValue": 0, + "maxValue": 4095, + "eventRuleRelevant": false, + "writable": true + }, + { + "id": "01ccda48-44c6-495b-b0a7-c2a0bf5a570d", + "name": "fade", + "displayName": "Fade", + "displayNameEvent": "Fade changed", + "displayNameAction": "Set fade", + "type": "int", + "defaultValue": 0, + "ruleRelevant": false, + "minValue": 0, + "maxValue": 1000, + "eventRuleRelevant": false, + "writable": true } ] } diff --git a/elgato/elgato.pro b/elgato/elgato.pro index e2a0a1e5..134e8cff 100644 --- a/elgato/elgato.pro +++ b/elgato/elgato.pro @@ -5,12 +5,10 @@ TARGET = $$qtLibraryTarget(nymea_devicepluginelgato) SOURCES += \ devicepluginelgato.cpp \ aveabulb.cpp \ - aveacolor.cpp HEADERS += \ devicepluginelgato.h \ aveabulb.h \ - aveacolor.h From 98edf2131a43eb80e19496e2be9846035ba2646b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Sat, 17 Mar 2018 09:58:08 +0100 Subject: [PATCH 44/62] Remove color class since not needed any more --- elgato/aveacolor.cpp | 121 ------------------------------------------- elgato/aveacolor.h | 68 ------------------------ 2 files changed, 189 deletions(-) delete mode 100644 elgato/aveacolor.cpp delete mode 100644 elgato/aveacolor.h diff --git a/elgato/aveacolor.cpp b/elgato/aveacolor.cpp deleted file mode 100644 index dd4b6f9e..00000000 --- a/elgato/aveacolor.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * * - * Copyright (C) 2016-2018 Simon Stürz * - * * - * This file is part of nymea. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Lesser General Public * - * License as published by the Free Software Foundation; either * - * version 2.1 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser General Public * - * License along with this library; If not, see * - * . * - * * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#include "extern-plugininfo.h" - -AveaColor::AveaColor(const QColor &color): - m_color(color) -{ - // Convert rgb to wrgb - - qCDebug(dcElgato()) << "Convert color" << m_color.red() << m_color.green() << m_color.blue(); - - ColorRgbw rgbw = rgbToRgbw(m_color.red(), m_color.green(), m_color.blue()); - m_white = rgbw.white; - m_red = rgbw.red; - m_green = rgbw.green; - m_blue = rgbw.blue; -} - -AveaColor::AveaColor(uint white, uint red, uint green, uint blue): - m_white(white), - m_red(red), - m_green(green), - m_blue(blue) -{ - // Convert rgbw to rgb - - // TODO - - -} - -QColor AveaColor::color() const -{ - return m_color; -} - -uint AveaColor::white() const -{ - return m_white; -} - -uint AveaColor::red() const -{ - return m_red; -} - -uint AveaColor::green() const -{ - return m_green; -} - -uint AveaColor::blue() const -{ - return m_blue; -} - -QByteArray AveaColor::toByteArray() -{ - return QByteArray(); -} - -// The saturation is the colorfulness of a color relative to its own brightness. -uint AveaColor::saturation(ColorRgbw rgbw) -{ - // Find the smallest of all three parameters. - float low = qMin(rgbw.red, qMin(rgbw.green, rgbw.blue)); - // Find the highest of all three parameters. - float high = qMax(rgbw.red, qMax(rgbw.green, rgbw.blue)); - // The difference between the last two variables - // divided by the highest is the saturation. - return qRound(100 * ((high - low) / high)); -} - -uint AveaColor::getWhite(ColorRgbw rgbw) -{ - return (255 - saturation(rgbw)) / 255 * (rgbw.red + rgbw.green + rgbw.blue) / 3; -} - -uint AveaColor::getWhite(ColorRgbw rgbw, int redMax, int greenMax, int blueMax) -{ - // Set the maximum value for all colors. - rgbw.red = (float)rgbw.red / 255.0 * (float)redMax; - rgbw.green = (float)rgbw.green / 255.0 * (float)greenMax; - rgbw.blue = (float)rgbw.blue / 255.0 * (float)blueMax; - return (255 - saturation(rgbw)) / 255 * (rgbw.red + rgbw.green + rgbw.blue) / 3; - return 0; -} - -ColorRgbw AveaColor::rgbToRgbw(uint red, uint green, uint blue) -{ - uint white = 0; - ColorRgbw rgbw = {red, green, blue, white}; - rgbw.white = getWhite(rgbw); - return rgbw; -} - -QDebug operator<<(QDebug dbg, const AveaColor &color) -{ - dbg.nospace() << "AveaColor(" << color.color() << " | R:" << color.red() << " G:" << color.green() << "B:" << color.blue() << "W:" << color.white() << ")"; - return dbg; -} diff --git a/elgato/aveacolor.h b/elgato/aveacolor.h deleted file mode 100644 index 352e4b29..00000000 --- a/elgato/aveacolor.h +++ /dev/null @@ -1,68 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * * - * Copyright (C) 2016-2018 Simon Stürz * - * * - * This file is part of nymea. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Lesser General Public * - * License as published by the Free Software Foundation; either * - * version 2.1 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser General Public * - * License along with this library; If not, see * - * . * - * * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#ifndef AVEACOLOR_H -#define AVEACOLOR_H - -#include -#include -#include - -struct ColorRgbw { - uint red; - uint green; - uint blue; - uint white; -}; - -class AveaColor -{ -public: - AveaColor(const QColor &color); - AveaColor(uint white, uint red, uint green, uint blue); - - QColor color() const; - - uint white() const; - uint red() const; - uint green() const; - uint blue() const; - - QByteArray toByteArray(); - -private: - QColor m_color; - uint m_white = 0; - uint m_red = 0; - uint m_green = 0; - uint m_blue = 0; - - uint saturation(ColorRgbw rgbw); - uint getWhite(ColorRgbw rgbw); - uint getWhite(ColorRgbw rgbw, int redMax, int greenMax, int blueMax); - ColorRgbw rgbToRgbw(unsigned int red, unsigned int green, unsigned int blue); -}; - -QDebug operator<<(QDebug dbg, const AveaColor &color); - - -#endif // AVEACOLOR_H From 9a5a90587b60ac820fc71b29786f5d8cf82f34e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Sat, 17 Mar 2018 10:21:47 +0100 Subject: [PATCH 45/62] Remove avea color class --- elgato/aveabulb.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/elgato/aveabulb.cpp b/elgato/aveabulb.cpp index 0dc10f64..8ba051a9 100644 --- a/elgato/aveabulb.cpp +++ b/elgato/aveabulb.cpp @@ -21,7 +21,6 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include "aveabulb.h" -#include "aveacolor.h" #include "extern-plugininfo.h" #include From e6bfc8c047a5c6ca48cec2b651ac80b81b7283f2 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 14 Mar 2018 21:59:23 +0100 Subject: [PATCH 46/62] link less unused stuff --- avahimonitor/avahimonitor.pro | 2 ++ awattar/awattar.pro | 2 ++ datetime/datetime.pro | 2 ++ debian/rules | 1 + denon/denon.pro | 2 ++ elgato/elgato.pro | 2 ++ eq-3/eq-3.pro | 2 ++ httpcommander/httpcommander.pro | 2 ++ keba/keba.pro | 4 ++-- kodi/kodi.pro | 2 ++ multisensor/multisensor.pro | 2 ++ netatmo/netatmo.pro | 2 ++ networkdetector/networkdetector.pro | 2 ++ orderbutton/orderbutton.pro | 2 ++ osdomotics/osdomotics.pro | 2 ++ plantcare/plantcare.pro | 2 ++ plugins.pri | 2 -- senic/senic.pro | 2 ++ tcpcommander/tcpcommander.pro | 2 ++ udpcommander/udpcommander.pro | 2 ++ ws2812/ws2812.pro | 2 ++ 21 files changed, 39 insertions(+), 4 deletions(-) diff --git a/avahimonitor/avahimonitor.pro b/avahimonitor/avahimonitor.pro index 55db9a5a..a0a22e2b 100644 --- a/avahimonitor/avahimonitor.pro +++ b/avahimonitor/avahimonitor.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginavahimonitor) SOURCES += \ diff --git a/awattar/awattar.pro b/awattar/awattar.pro index 2ddcec28..87eb6047 100644 --- a/awattar/awattar.pro +++ b/awattar/awattar.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginawattar) SOURCES += \ diff --git a/datetime/datetime.pro b/datetime/datetime.pro index 7ee87ac8..e7a2c690 100644 --- a/datetime/datetime.pro +++ b/datetime/datetime.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_deviceplugindatetime) SOURCES += \ diff --git a/debian/rules b/debian/rules index 657cd976..c2a6f38a 100755 --- a/debian/rules +++ b/debian/rules @@ -19,5 +19,6 @@ override_dh_install: $(PREPROCESS_FILES:.in=) override_dh_auto_clean: dh_auto_clean + find -name *plugininfo.h -exec {} \; rm -rf $(PREPROCESS_FILES:.in=) diff --git a/denon/denon.pro b/denon/denon.pro index 9475acb3..6a613690 100644 --- a/denon/denon.pro +++ b/denon/denon.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_deviceplugindenon) SOURCES += \ diff --git a/elgato/elgato.pro b/elgato/elgato.pro index 134e8cff..eef74c23 100644 --- a/elgato/elgato.pro +++ b/elgato/elgato.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += bluetooth + TARGET = $$qtLibraryTarget(nymea_devicepluginelgato) SOURCES += \ diff --git a/eq-3/eq-3.pro b/eq-3/eq-3.pro index 22da5243..117bded4 100644 --- a/eq-3/eq-3.pro +++ b/eq-3/eq-3.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_deviceplugineq3) SOURCES += \ diff --git a/httpcommander/httpcommander.pro b/httpcommander/httpcommander.pro index 890aea91..53cb8f3f 100644 --- a/httpcommander/httpcommander.pro +++ b/httpcommander/httpcommander.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginhttpcommander) SOURCES += \ diff --git a/keba/keba.pro b/keba/keba.pro index 31f1c777..8fefbf42 100644 --- a/keba/keba.pro +++ b/keba/keba.pro @@ -1,7 +1,7 @@ -TRANSLATIONS += translations/9142b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts - include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginkeba) SOURCES += \ diff --git a/kodi/kodi.pro b/kodi/kodi.pro index 051c2712..75dd2657 100644 --- a/kodi/kodi.pro +++ b/kodi/kodi.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginkodi) SOURCES += \ diff --git a/multisensor/multisensor.pro b/multisensor/multisensor.pro index 86cba0f8..d6f0795f 100644 --- a/multisensor/multisensor.pro +++ b/multisensor/multisensor.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += bluetooth + TARGET = $$qtLibraryTarget(nymea_devicepluginmultisensor) SOURCES += \ diff --git a/netatmo/netatmo.pro b/netatmo/netatmo.pro index cac78656..4ee7979b 100644 --- a/netatmo/netatmo.pro +++ b/netatmo/netatmo.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginnetatmo) SOURCES += \ diff --git a/networkdetector/networkdetector.pro b/networkdetector/networkdetector.pro index 4553866d..7e1b989d 100644 --- a/networkdetector/networkdetector.pro +++ b/networkdetector/networkdetector.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginnetworkdetector) SOURCES += \ diff --git a/orderbutton/orderbutton.pro b/orderbutton/orderbutton.pro index a3c2f80f..28cd0b4a 100644 --- a/orderbutton/orderbutton.pro +++ b/orderbutton/orderbutton.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginorderbutton) SOURCES += \ diff --git a/osdomotics/osdomotics.pro b/osdomotics/osdomotics.pro index 3eab2323..9f261723 100644 --- a/osdomotics/osdomotics.pro +++ b/osdomotics/osdomotics.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginosdomotics) SOURCES += \ diff --git a/plantcare/plantcare.pro b/plantcare/plantcare.pro index 133cb21f..7aaaa55e 100644 --- a/plantcare/plantcare.pro +++ b/plantcare/plantcare.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginplantcare) SOURCES += \ diff --git a/plugins.pri b/plugins.pri index 3448c398..bd7c6f6b 100644 --- a/plugins.pri +++ b/plugins.pri @@ -1,8 +1,6 @@ TEMPLATE = lib CONFIG += plugin -QT += network bluetooth dbus - QMAKE_CXXFLAGS += -Werror -std=c++11 -g QMAKE_LFLAGS += -std=c++11 diff --git a/senic/senic.pro b/senic/senic.pro index 3165abd3..0a67b16b 100644 --- a/senic/senic.pro +++ b/senic/senic.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += bluetooth + TARGET = $$qtLibraryTarget(nymea_devicepluginsenic) SOURCES += \ diff --git a/tcpcommander/tcpcommander.pro b/tcpcommander/tcpcommander.pro index 66a8e629..2a37d360 100644 --- a/tcpcommander/tcpcommander.pro +++ b/tcpcommander/tcpcommander.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_deviceplugintcpcommander) SOURCES += \ diff --git a/udpcommander/udpcommander.pro b/udpcommander/udpcommander.pro index 067b7da1..37eaa209 100644 --- a/udpcommander/udpcommander.pro +++ b/udpcommander/udpcommander.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginudpcommander) SOURCES += \ diff --git a/ws2812/ws2812.pro b/ws2812/ws2812.pro index 9b10f0f2..24056ad0 100644 --- a/ws2812/ws2812.pro +++ b/ws2812/ws2812.pro @@ -1,5 +1,7 @@ include(../plugins.pri) +QT += network + TARGET = $$qtLibraryTarget(nymea_devicepluginws2812) SOURCES += \ From 22ad95d747a5e13c963c37a513ade5da0d1e657b Mon Sep 17 00:00:00 2001 From: Jenkins Date: Mon, 19 Mar 2018 10:30:55 +0100 Subject: [PATCH 47/62] Automatic translations update by Jenkins --- ...03ad4-bfdb-444a-8eca-2c234c46cc27-de_DE.ts | 176 ++++++++++++++---- ...03ad4-bfdb-444a-8eca-2c234c46cc27-en_US.ts | 176 ++++++++++++++---- ...ead55-996a-44ac-ba82-fc3c634e018a-de_DE.ts | 54 +++--- ...ead55-996a-44ac-ba82-fc3c634e018a-en_US.ts | 54 +++--- 4 files changed, 338 insertions(+), 122 deletions(-) diff --git a/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-de_DE.ts b/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-de_DE.ts index 2c2f03df..25448bde 100644 --- a/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-de_DE.ts +++ b/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-de_DE.ts @@ -4,8 +4,8 @@ Elgato - - + + Elgato The name of the plugin Elgato (c5c03ad4-bfdb-444a-8eca-2c234c46cc27) ---------- @@ -13,70 +13,178 @@ The name of the vendor (90a3091d-1053-4f77-8dc3-92e27bbcebe7) - + Avea The name of the DeviceClass (164f9602-90ee-4693-bda3-9cafae37603e) - - name - The name of the paramType (d7a5d96f-33dc-4dc3-a171-b1e89a5e1a4b) of avea - - - - - mac address - The name of the paramType (20932e39-00fd-40e3-8f39-850ba149844e) of avea - - - - - connected changed - The name of the autocreated EventType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) - - - - + connected The name of the ParamType of StateType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) of DeviceClass avea - - color changed - The name of the autocreated EventType (3f15637a-8272-4714-bd08-04806e05bbef) - - - - + Set color The name of the autocreated ActionType (3f15637a-8272-4714-bd08-04806e05bbef) - - brightness changed + + Name + The name of the paramType (d7a5d96f-33dc-4dc3-a171-b1e89a5e1a4b) of avea + + + + + MAC address + The name of the paramType (20932e39-00fd-40e3-8f39-850ba149844e) of avea + + + + + Connected changed + The name of the autocreated EventType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) + + + + + Power changed + The name of the autocreated EventType (2b779968-ff4f-4a05-a466-074e14288a8c) + + + + + power + The name of the ParamType of StateType (2b779968-ff4f-4a05-a466-074e14288a8c) of DeviceClass avea + + + + + Set power + The name of the autocreated ActionType (2b779968-ff4f-4a05-a466-074e14288a8c) + + + + + Brightness changed The name of the autocreated EventType (c38181a0-e19b-423f-8b66-dedda94e89b5) - + brightness The name of the ParamType of StateType (c38181a0-e19b-423f-8b66-dedda94e89b5) of DeviceClass avea - + Set brightness The name of the autocreated ActionType (c38181a0-e19b-423f-8b66-dedda94e89b5) - + + Color changed + The name of the autocreated EventType (3f15637a-8272-4714-bd08-04806e05bbef) + + + + color The name of the ParamType of StateType (3f15637a-8272-4714-bd08-04806e05bbef) of DeviceClass avea + + + white changed + The name of the autocreated EventType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) + + + + + white + The name of the ParamType of StateType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) of DeviceClass avea + + + + + Set white + The name of the autocreated ActionType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) + + + + + Red changed + The name of the autocreated EventType (50ab71d1-8970-4531-b1ad-f387d01bab90) + + + + + red + The name of the ParamType of StateType (50ab71d1-8970-4531-b1ad-f387d01bab90) of DeviceClass avea + + + + + Set red + The name of the autocreated ActionType (50ab71d1-8970-4531-b1ad-f387d01bab90) + + + + + Green changed + The name of the autocreated EventType (9e8ddebc-33fe-418a-895f-d8148fabcfee) + + + + + green + The name of the ParamType of StateType (9e8ddebc-33fe-418a-895f-d8148fabcfee) of DeviceClass avea + + + + + Set green + The name of the autocreated ActionType (9e8ddebc-33fe-418a-895f-d8148fabcfee) + + + + + Blue changed + The name of the autocreated EventType (f4310747-d468-4d2e-abe4-b5e4d0245dad) + + + + + blue + The name of the ParamType of StateType (f4310747-d468-4d2e-abe4-b5e4d0245dad) of DeviceClass avea + + + + + Set blue + The name of the autocreated ActionType (f4310747-d468-4d2e-abe4-b5e4d0245dad) + + + + + Fade changed + The name of the autocreated EventType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) + + + + + fade + The name of the ParamType of StateType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) of DeviceClass avea + + + + + Set fade + The name of the autocreated ActionType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) + + diff --git a/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-en_US.ts b/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-en_US.ts index 75ceb242..cb20f7b5 100644 --- a/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-en_US.ts +++ b/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-en_US.ts @@ -4,8 +4,8 @@ Elgato - - + + Elgato The name of the plugin Elgato (c5c03ad4-bfdb-444a-8eca-2c234c46cc27) ---------- @@ -13,70 +13,178 @@ The name of the vendor (90a3091d-1053-4f77-8dc3-92e27bbcebe7) - + Avea The name of the DeviceClass (164f9602-90ee-4693-bda3-9cafae37603e) - - name - The name of the paramType (d7a5d96f-33dc-4dc3-a171-b1e89a5e1a4b) of avea - - - - - mac address - The name of the paramType (20932e39-00fd-40e3-8f39-850ba149844e) of avea - - - - - connected changed - The name of the autocreated EventType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) - - - - + connected The name of the ParamType of StateType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) of DeviceClass avea - - color changed - The name of the autocreated EventType (3f15637a-8272-4714-bd08-04806e05bbef) - - - - + Set color The name of the autocreated ActionType (3f15637a-8272-4714-bd08-04806e05bbef) - - brightness changed + + Name + The name of the paramType (d7a5d96f-33dc-4dc3-a171-b1e89a5e1a4b) of avea + + + + + MAC address + The name of the paramType (20932e39-00fd-40e3-8f39-850ba149844e) of avea + + + + + Connected changed + The name of the autocreated EventType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) + + + + + Power changed + The name of the autocreated EventType (2b779968-ff4f-4a05-a466-074e14288a8c) + + + + + power + The name of the ParamType of StateType (2b779968-ff4f-4a05-a466-074e14288a8c) of DeviceClass avea + + + + + Set power + The name of the autocreated ActionType (2b779968-ff4f-4a05-a466-074e14288a8c) + + + + + Brightness changed The name of the autocreated EventType (c38181a0-e19b-423f-8b66-dedda94e89b5) - + brightness The name of the ParamType of StateType (c38181a0-e19b-423f-8b66-dedda94e89b5) of DeviceClass avea - + Set brightness The name of the autocreated ActionType (c38181a0-e19b-423f-8b66-dedda94e89b5) - + + Color changed + The name of the autocreated EventType (3f15637a-8272-4714-bd08-04806e05bbef) + + + + color The name of the ParamType of StateType (3f15637a-8272-4714-bd08-04806e05bbef) of DeviceClass avea + + + white changed + The name of the autocreated EventType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) + + + + + white + The name of the ParamType of StateType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) of DeviceClass avea + + + + + Set white + The name of the autocreated ActionType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) + + + + + Red changed + The name of the autocreated EventType (50ab71d1-8970-4531-b1ad-f387d01bab90) + + + + + red + The name of the ParamType of StateType (50ab71d1-8970-4531-b1ad-f387d01bab90) of DeviceClass avea + + + + + Set red + The name of the autocreated ActionType (50ab71d1-8970-4531-b1ad-f387d01bab90) + + + + + Green changed + The name of the autocreated EventType (9e8ddebc-33fe-418a-895f-d8148fabcfee) + + + + + green + The name of the ParamType of StateType (9e8ddebc-33fe-418a-895f-d8148fabcfee) of DeviceClass avea + + + + + Set green + The name of the autocreated ActionType (9e8ddebc-33fe-418a-895f-d8148fabcfee) + + + + + Blue changed + The name of the autocreated EventType (f4310747-d468-4d2e-abe4-b5e4d0245dad) + + + + + blue + The name of the ParamType of StateType (f4310747-d468-4d2e-abe4-b5e4d0245dad) of DeviceClass avea + + + + + Set blue + The name of the autocreated ActionType (f4310747-d468-4d2e-abe4-b5e4d0245dad) + + + + + Fade changed + The name of the autocreated EventType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) + + + + + fade + The name of the ParamType of StateType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) of DeviceClass avea + + + + + Set fade + The name of the autocreated ActionType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) + + diff --git a/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-de_DE.ts b/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-de_DE.ts index 2f2fe861..daa2f79e 100644 --- a/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-de_DE.ts +++ b/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-de_DE.ts @@ -11,14 +11,14 @@ - Raspberry Pi 2 + Raspberry Pi 2/3 The name of the vendor (f0d00b66-bbd8-4a07-8591-ea48a61b229e) - GPIO Switch + GPIO Output The name of the DeviceClass (3885c520-e202-4435-88f6-3c35c362b2e6) ---------- The name of the DeviceClass (75d54a59-f9b0-4bc4-a86c-6b1fc47e0663) @@ -30,13 +30,13 @@ The name of the DeviceClass (75d54a59-f9b0-4bc4-a86c-6b1fc47e0663) GPIO - The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioSwitchRpi + The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioOutputRpi ---------- -The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioButtonRpi +The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioInputRpi ---------- -The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioSwitchBbb +The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioOutputBbb ---------- -The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioButtonBbb +The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioInputBbb @@ -45,13 +45,13 @@ The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioButtonBb Pin number - The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioSwitchRpi + The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioOutputRpi ---------- -The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioButtonRpi +The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioInputRpi ---------- -The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioSwitchBbb +The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioOutputBbb ---------- -The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioButtonBbb +The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioInputBbb @@ -60,13 +60,13 @@ The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioButtonBb Description - The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioSwitchRpi + The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioOutputRpi ---------- -The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioButtonRpi +The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioInputRpi ---------- -The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioSwitchBbb +The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioOutputBbb ---------- -The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioButtonBbb +The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioInputBbb @@ -80,18 +80,27 @@ The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioButtonBb powerValue - The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioSwitchRpi + The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputRpi ---------- -The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioSwitchBbb +The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputBbb + + + + + + GPIO Input + The name of the DeviceClass (6aff228b-0410-4ef9-9593-51e8639aacea) +---------- +The name of the DeviceClass (ffd2aa29-55cc-4824-ba95-c311784f7824) pressed - The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioButtonRpi + The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputRpi ---------- -The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioButtonBbb +The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputBbb @@ -101,15 +110,6 @@ The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of The name of the autocreated ActionType (06843766-358e-44b0-8d52-2b46ef98459a) - - - - GPIO Button - The name of the DeviceClass (6aff228b-0410-4ef9-9593-51e8639aacea) ----------- -The name of the DeviceClass (ffd2aa29-55cc-4824-ba95-c311784f7824) - - diff --git a/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-en_US.ts b/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-en_US.ts index 84a8ad15..2b8cb41c 100644 --- a/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-en_US.ts +++ b/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-en_US.ts @@ -11,14 +11,14 @@ - Raspberry Pi 2 + Raspberry Pi 2/3 The name of the vendor (f0d00b66-bbd8-4a07-8591-ea48a61b229e) - GPIO Switch + GPIO Output The name of the DeviceClass (3885c520-e202-4435-88f6-3c35c362b2e6) ---------- The name of the DeviceClass (75d54a59-f9b0-4bc4-a86c-6b1fc47e0663) @@ -30,13 +30,13 @@ The name of the DeviceClass (75d54a59-f9b0-4bc4-a86c-6b1fc47e0663) GPIO - The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioSwitchRpi + The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioOutputRpi ---------- -The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioButtonRpi +The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioInputRpi ---------- -The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioSwitchBbb +The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioOutputBbb ---------- -The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioButtonBbb +The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioInputBbb @@ -45,13 +45,13 @@ The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioButtonBb Pin number - The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioSwitchRpi + The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioOutputRpi ---------- -The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioButtonRpi +The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioInputRpi ---------- -The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioSwitchBbb +The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioOutputBbb ---------- -The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioButtonBbb +The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioInputBbb @@ -60,13 +60,13 @@ The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioButtonBb Description - The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioSwitchRpi + The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioOutputRpi ---------- -The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioButtonRpi +The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioInputRpi ---------- -The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioSwitchBbb +The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioOutputBbb ---------- -The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioButtonBbb +The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioInputBbb @@ -80,18 +80,27 @@ The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioButtonBb powerValue - The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioSwitchRpi + The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputRpi ---------- -The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioSwitchBbb +The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputBbb + + + + + + GPIO Input + The name of the DeviceClass (6aff228b-0410-4ef9-9593-51e8639aacea) +---------- +The name of the DeviceClass (ffd2aa29-55cc-4824-ba95-c311784f7824) pressed - The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioButtonRpi + The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputRpi ---------- -The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioButtonBbb +The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputBbb @@ -101,15 +110,6 @@ The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of The name of the autocreated ActionType (06843766-358e-44b0-8d52-2b46ef98459a) - - - - GPIO Button - The name of the DeviceClass (6aff228b-0410-4ef9-9593-51e8639aacea) ----------- -The name of the DeviceClass (ffd2aa29-55cc-4824-ba95-c311784f7824) - - From d5c52a94b9eac0e3099989656c666bde2f0bf7dc Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 19 Mar 2018 13:11:24 +0100 Subject: [PATCH 48/62] fix typos as reported by Krazy2 --- .../deviceplugincommandlauncher.cpp | 2 +- elgato/aveabulb.cpp | 4 +-- eq-3/deviceplugineq-3.cpp | 8 +++--- eq-3/maxcube.cpp | 10 +++---- eq-3/radiatorthermostat.cpp | 8 +++--- eq-3/radiatorthermostat.h | 6 ++-- eq-3/wallthermostat.cpp | 8 +++--- eq-3/wallthermostat.h | 6 ++-- intertechno/devicepluginintertechno.cpp | 2 +- kodi/devicepluginkodi.cpp | 2 +- .../devicepluginmailnotification.cpp | 2 +- multisensor/sensordataprocessor.cpp | 2 +- multisensor/sensorfilter.cpp | 4 +-- multisensor/sensortag.cpp | 28 +++++++++---------- osdomotics/devicepluginosdomotics.cpp | 2 +- philipshue/devicepluginphilipshue.cpp | 2 +- plantcare/devicepluginplantcare.cpp | 2 +- senic/nuimo.cpp | 4 +-- snapd/devicepluginsnapd.cpp | 4 +-- snapd/snapdcontrol.cpp | 16 +++++------ snapd/snapdcontrol.h | 4 +-- tcpcommander/deviceplugintcpcommander.cpp | 4 +-- unitec/devicepluginunitec.cpp | 2 +- wemo/devicepluginwemo.cpp | 4 +-- ws2812/devicepluginws2812.cpp | 2 +- 25 files changed, 69 insertions(+), 69 deletions(-) diff --git a/commandlauncher/deviceplugincommandlauncher.cpp b/commandlauncher/deviceplugincommandlauncher.cpp index e1e0d0d6..3ab244d2 100644 --- a/commandlauncher/deviceplugincommandlauncher.cpp +++ b/commandlauncher/deviceplugincommandlauncher.cpp @@ -51,7 +51,7 @@ is finished, the \tt running \l{State} will change to \tt false. \section3 Example - An example for a very usefull script could be a backup scrip like following \tt backup.sh script. + An example for a very useful script could be a backup scrip like following \tt backup.sh script. \code #!/bin/sh # Directories to backup... diff --git a/elgato/aveabulb.cpp b/elgato/aveabulb.cpp index 8ba051a9..cfd72330 100644 --- a/elgato/aveabulb.cpp +++ b/elgato/aveabulb.cpp @@ -286,8 +286,8 @@ void AveaBulb::onColorServiceStateChanged(const QLowEnergyService::ServiceState foreach (const QLowEnergyCharacteristic &characteristic, m_colorService->characteristics()) { qCDebug(dcElgato()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); - foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { - qCDebug(dcElgato()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + foreach (const QLowEnergyDescriptor &descriptor, characteristic.descriptors()) { + qCDebug(dcElgato()) << " -->" << descriptor.name() << descriptor.uuid().toString() << descriptor.value(); } } diff --git a/eq-3/deviceplugineq-3.cpp b/eq-3/deviceplugineq-3.cpp index 2b4de16d..3f4da44f 100644 --- a/eq-3/deviceplugineq-3.cpp +++ b/eq-3/deviceplugineq-3.cpp @@ -28,12 +28,12 @@ \ingroup plugins \ingroup nymea-plugins - This plugin allows to find and controll devices from Max!(eQ-3). To use this devices, you need at least + This plugin allows to find and control devices from Max!(eQ-3). To use this devices, you need at least one \l{http://www.eq-3.de/max-heizungssteuerung-produktdetail/items/bc-lgw-o-tw.html}{Max! Cube LAN Gateway} in you local network. Once the cube is connected (DHCP), you can auto detect the cube in the network and add it to your \l{https://nymea.io}{nymea} devices. Also more than one cube in the network is supported. All devices, which are connected to a cube, will be autogenerated. For the setup of a cube, the original - software is recomanded (min/max setpoint temperature, weekly programm...). + software is recomanded (min/max setpoint temperature, weekly program...). \chapter Supported devices \section2 Max! Cube LAN Gateway @@ -349,7 +349,7 @@ void DevicePluginEQ3::wallThermostatDataUpdated() device->setStateValue(wallThermostateEcoTempStateTypeId, wallThermostat->ecoTemp()); device->setStateValue(wallThermostateMaxSetpointTempStateTypeId, wallThermostat->maxSetPointTemp()); device->setStateValue(wallThermostateMinSetpointTempStateTypeId, wallThermostat->minSetPointTemp()); - device->setStateValue(wallThermostateErrorOccurredStateTypeId, wallThermostat->errorOccured()); + device->setStateValue(wallThermostateErrorOccurredStateTypeId, wallThermostat->errorOccurred()); device->setStateValue(wallThermostateInitializedStateTypeId, wallThermostat->initialized()); device->setStateValue(wallThermostateBatteryLowStateTypeId, wallThermostat->batteryLow()); device->setStateValue(wallThermostateLinkStatusOKStateTypeId, wallThermostat->linkStatusOK()); @@ -375,7 +375,7 @@ void DevicePluginEQ3::radiatorThermostatDataUpdated() device->setStateValue(radiatorThermostateComfortTempStateTypeId, radiatorThermostat->comfortTemp()); device->setStateValue(radiatorThermostateMaxSetpointTempStateTypeId, radiatorThermostat->maxSetPointTemp()); device->setStateValue(radiatorThermostateMinSetpointTempStateTypeId, radiatorThermostat->minSetPointTemp()); - device->setStateValue(radiatorThermostateErrorOccurredStateTypeId, radiatorThermostat->errorOccured()); + device->setStateValue(radiatorThermostateErrorOccurredStateTypeId, radiatorThermostat->errorOccurred()); device->setStateValue(radiatorThermostateInitializedStateTypeId, radiatorThermostat->initialized()); device->setStateValue(radiatorThermostateBatteryLowStateTypeId, radiatorThermostat->batteryLow()); device->setStateValue(radiatorThermostatePanelLockedStateTypeId, radiatorThermostat->panelLocked()); diff --git a/eq-3/maxcube.cpp b/eq-3/maxcube.cpp index bc02b608..271da975 100644 --- a/eq-3/maxcube.cpp +++ b/eq-3/maxcube.cpp @@ -416,7 +416,7 @@ void MaxCube::decodeDevicelistMessage(QByteArray data) // init/valid code QByteArray initCode = fillBin(QByteArray::number(rawData.mid(8,2).toInt(0,16),2),8); device->setInformationValid((bool)initCode.mid(3,1).toInt()); - device->setErrorOccured((bool)initCode.mid(4,1).toInt()); + device->setErrorOccurred((bool)initCode.mid(4,1).toInt()); device->setIsAnswereToCommand((bool)initCode.mid(5,1).toInt()); device->setInitialized((bool)initCode.mid(6,1).toInt()); @@ -444,7 +444,7 @@ void MaxCube::decodeDevicelistMessage(QByteArray data) qCDebug(dcEQ3) << " RF address (hex) | " << device->rfAddress(); qCDebug(dcEQ3) << " initCode | " << initCode; qCDebug(dcEQ3) << " information valid | " << device->informationValid(); - qCDebug(dcEQ3) << " error occured | " << device->errorOccured(); + qCDebug(dcEQ3) << " error occurred | " << device->errorOccurred(); qCDebug(dcEQ3) << " is answere to a command | " << device->isAnswereToCommand(); qCDebug(dcEQ3) << " initialized | " << device->initialized(); qCDebug(dcEQ3) << " battery low | " << device->batteryLow(); @@ -468,7 +468,7 @@ void MaxCube::decodeDevicelistMessage(QByteArray data) QByteArray initCode = fillBin(QByteArray::number(rawData.mid(8,2).toInt(0,16),2),8); device->setInformationValid((bool)initCode.mid(3,1).toInt()); - device->setErrorOccured((bool)initCode.mid(4,1).toInt()); + device->setErrorOccurred((bool)initCode.mid(4,1).toInt()); device->setIsAnswereToCommand((bool)initCode.mid(5,1).toInt()); device->setInitialized((bool)initCode.mid(6,1).toInt()); @@ -487,7 +487,7 @@ void MaxCube::decodeDevicelistMessage(QByteArray data) qCDebug(dcEQ3) << " device name | " << device->deviceName(); qCDebug(dcEQ3) << " RF address (hex) | " << device->rfAddress(); qCDebug(dcEQ3) << " information valid | " << device->informationValid(); - qCDebug(dcEQ3) << " error occured | " << device->errorOccured(); + qCDebug(dcEQ3) << " error occurred | " << device->errorOccurred(); qCDebug(dcEQ3) << " is answere to a command | " << device->isAnswereToCommand(); qCDebug(dcEQ3) << " initialized | " << device->initialized(); qCDebug(dcEQ3) << " battery low | " << device->batteryLow(); @@ -808,7 +808,7 @@ void MaxCube::setDeviceSetpointTemp(QByteArray rfAddress, int roomId, double tem temperatureData = fillBin(QByteArray::number((int)temperature*2,2),6); // set auto/ permanent/ temp - // 00 = auto (weekly programm...the hole tempererature byte to 0x00 + // 00 = auto (weekly program...the hole tempererature byte to 0x00 // 01 = Permanent // 10 = Temporary (date/time has to be set) diff --git a/eq-3/radiatorthermostat.cpp b/eq-3/radiatorthermostat.cpp index a1b4b101..3c244f17 100644 --- a/eq-3/radiatorthermostat.cpp +++ b/eq-3/radiatorthermostat.cpp @@ -168,14 +168,14 @@ void RadiatorThermostat::setInformationValid(const bool &informationValid) m_informationValid = informationValid; } -bool RadiatorThermostat::errorOccured() const +bool RadiatorThermostat::errorOccurred() const { - return m_errorOccured; + return m_errorOccurred; } -void RadiatorThermostat::setErrorOccured(const bool &errorOccured) +void RadiatorThermostat::setErrorOccurred(const bool &errorOccurred) { - m_errorOccured = errorOccured; + m_errorOccurred = errorOccurred; } bool RadiatorThermostat::isAnswereToCommand() const diff --git a/eq-3/radiatorthermostat.h b/eq-3/radiatorthermostat.h index 5a599cf1..3a43fb99 100644 --- a/eq-3/radiatorthermostat.h +++ b/eq-3/radiatorthermostat.h @@ -76,8 +76,8 @@ public: bool informationValid() const; void setInformationValid(const bool &informationValid); - bool errorOccured() const; - void setErrorOccured(const bool &errorOccured); + bool errorOccurred() const; + void setErrorOccurred(const bool &errorOccurred); bool isAnswereToCommand() const; void setIsAnswereToCommand(const bool &isAnswereToCommand); @@ -126,7 +126,7 @@ private: double m_valveMaximumSettings; double m_valveOffset; bool m_informationValid; - bool m_errorOccured; + bool m_errorOccurred; bool m_isAnswerToCommand; bool m_initialized; bool m_batteryLow; diff --git a/eq-3/wallthermostat.cpp b/eq-3/wallthermostat.cpp index 98e5874b..218e92bb 100644 --- a/eq-3/wallthermostat.cpp +++ b/eq-3/wallthermostat.cpp @@ -78,14 +78,14 @@ void WallThermostat::setInformationValid(const bool &informationValid) m_informationValid = informationValid; } -bool WallThermostat::errorOccured() const +bool WallThermostat::errorOccurred() const { - return m_errorOccured; + return m_errorOccurred; } -void WallThermostat::setErrorOccured(const bool &errorOccured) +void WallThermostat::setErrorOccurred(const bool &errorOccurred) { - m_errorOccured = errorOccured; + m_errorOccurred = errorOccurred; } bool WallThermostat::isAnswereToCommand() const diff --git a/eq-3/wallthermostat.h b/eq-3/wallthermostat.h index 48489a89..f73bf2ef 100644 --- a/eq-3/wallthermostat.h +++ b/eq-3/wallthermostat.h @@ -47,8 +47,8 @@ public: bool informationValid() const; void setInformationValid(const bool &informationValid); - bool errorOccured() const; - void setErrorOccured(const bool &errorOccured); + bool errorOccurred() const; + void setErrorOccurred(const bool &errorOccurred); bool isAnswereToCommand() const; void setIsAnswereToCommand(const bool &isAnswereToCommand); @@ -92,7 +92,7 @@ private: double m_minSetPointTemp; bool m_informationValid; - bool m_errorOccured; + bool m_errorOccurred; bool m_isAnswerToCommand; bool m_initialized; bool m_batteryLow; diff --git a/intertechno/devicepluginintertechno.cpp b/intertechno/devicepluginintertechno.cpp index 28b7af1c..dd76536a 100644 --- a/intertechno/devicepluginintertechno.cpp +++ b/intertechno/devicepluginintertechno.cpp @@ -28,7 +28,7 @@ \ingroup plugins \ingroup nymea-plugins - This plugin allows to controll RF 433 MHz actors an receive remote signals from + This plugin allows to control RF 433 MHz actors an receive remote signals from \l{http://www.intertechno.at}{Intertechno} devices. \chapter Plugin properties diff --git a/kodi/devicepluginkodi.cpp b/kodi/devicepluginkodi.cpp index af10bac4..d33aff5c 100644 --- a/kodi/devicepluginkodi.cpp +++ b/kodi/devicepluginkodi.cpp @@ -217,7 +217,7 @@ void DevicePluginKodi::onUpnpDiscoveryFinished() foreach (const UpnpDeviceDescriptor &upnpDescriptor, reply->deviceDescriptors()) { if (upnpDescriptor.modelName().contains("Kodi")) { - // check if we allready found the kodi on this ip + // check if we already found the kodi on this ip bool alreadyAdded = false; foreach (const DeviceDescriptor dDescriptor, deviceDescriptors) { if (dDescriptor.params().paramValue(kodiIpParamTypeId).toString() == upnpDescriptor.hostAddress().toString()) { diff --git a/mailnotification/devicepluginmailnotification.cpp b/mailnotification/devicepluginmailnotification.cpp index db03c965..48bf5ccf 100644 --- a/mailnotification/devicepluginmailnotification.cpp +++ b/mailnotification/devicepluginmailnotification.cpp @@ -47,7 +47,7 @@ from your yahoo account. \section2 Custom Mail - With the Custom Mail Notification you can set up a custom SMTP connection. The supported authentification + With the Custom Mail Notification you can set up a custom SMTP connection. The supported authentication methods are ["PLAIN", "LOGIN"], the supported encryption methods are ["NONE", "SSL", "TLS"]. \chapter Plugin properties diff --git a/multisensor/sensordataprocessor.cpp b/multisensor/sensordataprocessor.cpp index 414f8dd0..24aa0a61 100644 --- a/multisensor/sensordataprocessor.cpp +++ b/multisensor/sensordataprocessor.cpp @@ -124,7 +124,7 @@ void SensorDataProcessor::processTemperatureData(const QByteArray &data) m_device->setStateValue(sensorTagObjectTemperatureStateTypeId, roundValue(objectTemperatureFiltered)); } - // Note: only change the state once the filter has collected enought data + // Note: only change the state once the filter has collected enough data if (m_temperatureFilter->isReady()) { m_device->setStateValue(sensorTagTemperatureStateTypeId, roundValue(ambientTemperatureFiltered)); } diff --git a/multisensor/sensorfilter.cpp b/multisensor/sensorfilter.cpp index 4d036912..972591c2 100644 --- a/multisensor/sensorfilter.cpp +++ b/multisensor/sensorfilter.cpp @@ -123,7 +123,7 @@ double SensorFilter::lowPassFilterValue(double value) { addInputValue(value); - // Check if we have enought data for filtering + // Check if we have enough data for filtering if (m_inputData.size() < 2) { return value; } @@ -144,7 +144,7 @@ double SensorFilter::highPassFilterValue(double value) { addInputValue(value); - // Check if we have enought data for filtering + // Check if we have enough data for filtering if (m_inputData.size() < 2) { return value; } diff --git a/multisensor/sensortag.cpp b/multisensor/sensortag.cpp index 05e77493..de00c9d7 100644 --- a/multisensor/sensortag.cpp +++ b/multisensor/sensortag.cpp @@ -566,8 +566,8 @@ void SensorTag::onTemperatureServiceStateChanged(const QLowEnergyService::Servic foreach (const QLowEnergyCharacteristic &characteristic, m_temperatureService->characteristics()) { qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); - foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { - qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + foreach (const QLowEnergyDescriptor &descriptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << descriptor.name() << descriptor.uuid().toString() << descriptor.value(); } } @@ -623,8 +623,8 @@ void SensorTag::onHumidityServiceStateChanged(const QLowEnergyService::ServiceSt foreach (const QLowEnergyCharacteristic &characteristic, m_humidityService->characteristics()) { qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); - foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { - qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + foreach (const QLowEnergyDescriptor &descriptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << descriptor.name() << descriptor.uuid().toString() << descriptor.value(); } } @@ -679,8 +679,8 @@ void SensorTag::onPressureServiceStateChanged(const QLowEnergyService::ServiceSt foreach (const QLowEnergyCharacteristic &characteristic, m_pressureService->characteristics()) { qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); - foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { - qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + foreach (const QLowEnergyDescriptor &descriptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << descriptor.name() << descriptor.uuid().toString() << descriptor.value(); } } @@ -735,8 +735,8 @@ void SensorTag::onOpticalServiceStateChanged(const QLowEnergyService::ServiceSta foreach (const QLowEnergyCharacteristic &characteristic, m_pressureService->characteristics()) { qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); - foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { - qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + foreach (const QLowEnergyDescriptor &descriptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << descriptor.name() << descriptor.uuid().toString() << descriptor.value(); } } @@ -789,8 +789,8 @@ void SensorTag::onKeyServiceStateChanged(const QLowEnergyService::ServiceState & qCDebug(dcMultiSensor()) << "Key service discovered."; foreach (const QLowEnergyCharacteristic &characteristic, m_keyService->characteristics()) { qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); - foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { - qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + foreach (const QLowEnergyDescriptor &descriptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << descriptor.name() << descriptor.uuid().toString() << descriptor.value(); } } @@ -823,8 +823,8 @@ void SensorTag::onMovementServiceStateChanged(const QLowEnergyService::ServiceSt foreach (const QLowEnergyCharacteristic &characteristic, m_pressureService->characteristics()) { qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); - foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { - qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + foreach (const QLowEnergyDescriptor &descriptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << descriptor.name() << descriptor.uuid().toString() << descriptor.value(); } } @@ -878,8 +878,8 @@ void SensorTag::onIoServiceStateChanged(const QLowEnergyService::ServiceState &s foreach (const QLowEnergyCharacteristic &characteristic, m_pressureService->characteristics()) { qCDebug(dcMultiSensor()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); - foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { - qCDebug(dcMultiSensor()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + foreach (const QLowEnergyDescriptor &descriptor, characteristic.descriptors()) { + qCDebug(dcMultiSensor()) << " -->" << descriptor.name() << descriptor.uuid().toString() << descriptor.value(); } } diff --git a/osdomotics/devicepluginosdomotics.cpp b/osdomotics/devicepluginosdomotics.cpp index fbc5f595..9bdb0460 100644 --- a/osdomotics/devicepluginosdomotics.cpp +++ b/osdomotics/devicepluginosdomotics.cpp @@ -161,7 +161,7 @@ void DevicePluginOsdomotics::parseNodes(Device *device, const QByteArray &data) QHostAddress nodeAddress(QString(data.mid(index, delta - index))); - // check if we allready have found this node + // check if we already have found this node foreach (Device *device, myDevices()) { if (device->paramValue(merkurNodeHostParamTypeId).toString() == nodeAddress.toString()) { return; diff --git a/philipshue/devicepluginphilipshue.cpp b/philipshue/devicepluginphilipshue.cpp index da71589a..d8d8e2ec 100644 --- a/philipshue/devicepluginphilipshue.cpp +++ b/philipshue/devicepluginphilipshue.cpp @@ -1033,7 +1033,7 @@ void DevicePluginPhilipsHue::processBridgeRefreshResponse(Device *device, const break; } - // do lights/sensor update right after successfull bridge update + // do lights/sensor update right after successful bridge update HueBridge *bridge = m_bridges.key(device); refreshLights(bridge); } diff --git a/plantcare/devicepluginplantcare.cpp b/plantcare/devicepluginplantcare.cpp index e3e91f4a..84e1d7a7 100644 --- a/plantcare/devicepluginplantcare.cpp +++ b/plantcare/devicepluginplantcare.cpp @@ -29,7 +29,7 @@ \ingroup plugins \ingroup nymea-plugins-merkur - This allows to controll the nymea plantcare demo for 6LoWPAN networks. + This allows to control the nymea plantcare demo for 6LoWPAN networks. \chapter Plugin properties Following JSON file contains the definition and the description of all available \l{DeviceClass}{DeviceClasses} diff --git a/senic/nuimo.cpp b/senic/nuimo.cpp index 82471f83..a5e87745 100644 --- a/senic/nuimo.cpp +++ b/senic/nuimo.cpp @@ -213,8 +213,8 @@ void Nuimo::printService(QLowEnergyService *service) { foreach (const QLowEnergyCharacteristic &characteristic, service->characteristics()) { qCDebug(dcSenic()) << " -->" << characteristic.name() << characteristic.uuid().toString() << characteristic.value(); - foreach (const QLowEnergyDescriptor &desciptor, characteristic.descriptors()) { - qCDebug(dcSenic()) << " -->" << desciptor.name() << desciptor.uuid().toString() << desciptor.value(); + foreach (const QLowEnergyDescriptor &descriptor, characteristic.descriptors()) { + qCDebug(dcSenic()) << " -->" << descriptor.name() << descriptor.uuid().toString() << descriptor.value(); } } } diff --git a/snapd/devicepluginsnapd.cpp b/snapd/devicepluginsnapd.cpp index 00c1306d..90816bb4 100644 --- a/snapd/devicepluginsnapd.cpp +++ b/snapd/devicepluginsnapd.cpp @@ -114,7 +114,7 @@ DeviceManager::DeviceSetupStatus DevicePluginSnapd::setupDevice(Device *device) } m_snapdControl = new SnapdControl(device, this); - m_snapdControl->setPreferedRefreshTime(configValue(SnapdRefreshScheduleParamTypeId).toInt()); + m_snapdControl->setPreferredRefreshTime(configValue(SnapdRefreshScheduleParamTypeId).toInt()); connect(m_snapdControl, &SnapdControl::snapListUpdated, this, &DevicePluginSnapd::onSnapListUpdated); } else if (device->deviceClassId() == snapDeviceClassId) { @@ -208,7 +208,7 @@ void DevicePluginSnapd::onPluginConfigurationChanged(const ParamTypeId ¶mTyp m_refreshTime = value.toInt(); qCDebug(dcSnapd()) << "Refresh schedule start time" << QTime(m_refreshTime, 0, 0).toString("hh:mm"); - m_snapdControl->setPreferedRefreshTime(m_refreshTime); + m_snapdControl->setPreferredRefreshTime(m_refreshTime); } } diff --git a/snapd/snapdcontrol.cpp b/snapd/snapdcontrol.cpp index 218b2a0e..8a1d3f76 100644 --- a/snapd/snapdcontrol.cpp +++ b/snapd/snapdcontrol.cpp @@ -129,11 +129,11 @@ void SnapdControl::configureRefreshSchedule() return; QVariantMap configuration; QVariantMap configMap; - configMap.insert("timer", m_preferedRefreshSchedule); - configMap.insert("schedule", m_preferedRefreshSchedule); + configMap.insert("timer", m_preferredRefreshSchedule); + configMap.insert("schedule", m_preferredRefreshSchedule); configuration.insert("refresh", configMap); - qCDebug(dcSnapd()) << "Configure refresh schedule from" << m_currentRefreshSchedule << "-->" << m_preferedRefreshSchedule; + qCDebug(dcSnapd()) << "Configure refresh schedule from" << m_currentRefreshSchedule << "-->" << m_preferredRefreshSchedule; SnapdReply *reply = m_snapConnection->put(QString("/v2/snaps/core/conf"), QJsonDocument::fromVariant(configuration).toJson(QJsonDocument::Compact), this); connect(reply, &SnapdReply::finished, this, &SnapdControl::onConfigureRefreshScheduleFinished); @@ -191,7 +191,7 @@ void SnapdControl::onLoadSystemInfoFinished() reply->deleteLater(); // Check if the refresh schedule should be updated - if (m_currentRefreshSchedule != m_preferedRefreshSchedule) { + if (m_currentRefreshSchedule != m_preferredRefreshSchedule) { configureRefreshSchedule(); } } @@ -391,7 +391,7 @@ void SnapdControl::update() return; } - // Note: this makes sure the state is realy connected (including connection initialisation stuff) + // Note: this makes sure the state is really connected (including connection initialisation stuff) if (!m_snapConnection->isConnected()) return; @@ -453,13 +453,13 @@ void SnapdControl::checkForUpdates() connect(reply, &SnapdReply::finished, this, &SnapdControl::onCheckForUpdatesFinished); } -void SnapdControl::setPreferedRefreshTime(int startTime) +void SnapdControl::setPreferredRefreshTime(int startTime) { // Schedule the refresh between startTime and startTime + 59 minutes QTime start(startTime, 0, 0); QTime end = start.addSecs(3540); - m_preferedRefreshSchedule = QString("%1-%2").arg(start.toString("h:mm")).arg(end.toString("h:mm")); - qCDebug(dcSnapd()) << "Set prefered refresh schedule to " << m_preferedRefreshSchedule; + m_preferredRefreshSchedule = QString("%1-%2").arg(start.toString("h:mm")).arg(end.toString("h:mm")); + qCDebug(dcSnapd()) << "Set preferred refresh schedule to " << m_preferredRefreshSchedule; } void SnapdControl::snapRevert(const QString &snapName) diff --git a/snapd/snapdcontrol.h b/snapd/snapdcontrol.h index bd541435..a9439a73 100644 --- a/snapd/snapdcontrol.h +++ b/snapd/snapdcontrol.h @@ -53,7 +53,7 @@ private: bool m_timerBasedSchedule = false; QString m_currentRefreshSchedule; - QString m_preferedRefreshSchedule; + QString m_preferredRefreshSchedule; // Update calls void loadSystemInfo(); @@ -90,7 +90,7 @@ public slots: void snapRefresh(); void checkForUpdates(); - void setPreferedRefreshTime(int startTime); + void setPreferredRefreshTime(int startTime); void snapRevert(const QString &snapName); void changeSnapChannel(const QString &snapName, const QString &channel); diff --git a/tcpcommander/deviceplugintcpcommander.cpp b/tcpcommander/deviceplugintcpcommander.cpp index 9fb444ac..52bfef1c 100644 --- a/tcpcommander/deviceplugintcpcommander.cpp +++ b/tcpcommander/deviceplugintcpcommander.cpp @@ -143,7 +143,7 @@ void DevicePluginTcpCommander::onTcpServerConnected() } connect(tcpServer, &TcpServer::textMessageReceived, this, &DevicePluginTcpCommander::onTcpServerTextMessageReceived); - //send signal device Setup was successfull + //send signal device Setup was successful } @@ -167,7 +167,7 @@ void DevicePluginTcpCommander::onTcpServerTextMessageReceived(QByteArray data) device->setStateValue(tcpInputDataReceivedStateTypeId, data); if (device->paramValue(tcpInputComparisionParamTypeId).toString() == "Is exactly") { - qDebug(dcTCPCommander()) << "is exacly"; + qDebug(dcTCPCommander()) << "is exactly"; if (data == device->paramValue(tcpInputInputDataParamTypeId)) { qDebug(dcTCPCommander()) << "comparison successful"; emitEvent(Event(tcpInputCommandReceivedEventTypeId, device->id())); diff --git a/unitec/devicepluginunitec.cpp b/unitec/devicepluginunitec.cpp index e8270f7e..109c4ffc 100644 --- a/unitec/devicepluginunitec.cpp +++ b/unitec/devicepluginunitec.cpp @@ -34,7 +34,7 @@ The unitec socket units have a learn function. If you plug in the switch, a red light will start to blink. This means the socket is in the learning mode. Now you can add a Unitec switch (48111) to nymea with your desired Channel (A,B,C or D). In order to pair the socket you just have to press the power ON, and the switch has to be in the pairing mode. - If the pairing was successfull, the switch will turn on. If the switches will be removed from the socket or there will + If the pairing was successful, the switch will turn on. If the switches will be removed from the socket or there will be a power breakdown, the switch has to be re-paired. The device can not remember the teached channel. \chapter Plugin properties diff --git a/wemo/devicepluginwemo.cpp b/wemo/devicepluginwemo.cpp index dbfc4303..0574b0f5 100644 --- a/wemo/devicepluginwemo.cpp +++ b/wemo/devicepluginwemo.cpp @@ -28,7 +28,7 @@ \ingroup plugins \ingroup nymea-plugins - This plugin allows to find and controll devices from WeMo, the + This plugin allows to find and control devices from WeMo, the \l{http://www.belkin.com/de/PRODUKTE/home-automation/c/wemo-home-automation/}{Belkin} home automation system. @@ -105,7 +105,7 @@ DeviceManager::DeviceError DevicePluginWemo::executeAction(Device *device, const if (action.actionTypeId() == wemoSwitchPowerActionTypeId) { // Check if wemo device is reachable if (device->stateValue(wemoSwitchReachableStateTypeId).toBool()) { - // setPower returns false, if the curent powerState is allready the new powerState + // setPower returns false, if the curent powerState is already the new powerState if (setPower(device, action.param(wemoSwitchPowerStateParamTypeId).value().toBool(), action.id())) { return DeviceManager::DeviceErrorAsync; } else { diff --git a/ws2812/devicepluginws2812.cpp b/ws2812/devicepluginws2812.cpp index 672dc85d..4c602f37 100644 --- a/ws2812/devicepluginws2812.cpp +++ b/ws2812/devicepluginws2812.cpp @@ -24,7 +24,7 @@ /*! \page ws2812.html \title ws2812 - \brief Plugin to controll ws2812 LEDs based on 6LoWPAN networking. + \brief Plugin to control ws2812 LEDs based on 6LoWPAN networking. \ingroup plugins \ingroup nymea-plugins-merkur From 7bff4ac17a08367e34457372ec9099ad1b8aa133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Wed, 14 Mar 2018 09:22:09 +0100 Subject: [PATCH 49/62] Add remote ssh plugin --- debian/control | 16 ++ debian/nymea-plugin-remotessh.install.in | 1 + nymea-plugins.pro | 3 +- remotessh/devicepluginremotessh.cpp | 205 +++++++++++++++++++++++ remotessh/devicepluginremotessh.h | 68 ++++++++ remotessh/devicepluginremotessh.json | 94 +++++++++++ remotessh/remotessh.pro | 10 ++ 7 files changed, 396 insertions(+), 1 deletion(-) create mode 100644 debian/nymea-plugin-remotessh.install.in create mode 100644 remotessh/devicepluginremotessh.cpp create mode 100644 remotessh/devicepluginremotessh.h create mode 100644 remotessh/devicepluginremotessh.json create mode 100644 remotessh/remotessh.pro diff --git a/debian/control b/debian/control index 76c4b5a4..3f2fe399 100644 --- a/debian/control +++ b/debian/control @@ -603,6 +603,21 @@ Description: nymea.io plugin for keba This package will install the nymea.io plugin for keba +Package: nymea-plugin-remotessh +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + nymea-plugins-translations, +Description: nymea.io plugin for remote ssh connection + The nymea daemon is a plugin based IoT (Internet of Things) server. The + server works like a translator for devices, things and services and + allows them to interact. + With the powerful rule engine you are able to connect any device available + in the system and create individual scenes and behaviors for your environment. + . + This package will install the nymea.io plugin for remote ssh connection + + Package: nymea-plugins-translations Section: misc Architecture: all @@ -660,6 +675,7 @@ Depends: nymea-plugin-commandlauncher, nymea-plugin-genericelements, nymea-plugin-avahimonitor, nymea-plugin-gpio, + nymea-plugin-remotessh, Replaces: guh-plugins-maker Description: Plugins for nymea IoT server - Meta package for makers, tinkers and hackers The nymea daemon is a plugin based IoT (Internet of Things) server. The diff --git a/debian/nymea-plugin-remotessh.install.in b/debian/nymea-plugin-remotessh.install.in new file mode 100644 index 00000000..aa3836c4 --- /dev/null +++ b/debian/nymea-plugin-remotessh.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_devicepluginremotessh.so diff --git a/nymea-plugins.pro b/nymea-plugins.pro index 6fbd70a7..31347c4d 100644 --- a/nymea-plugins.pro +++ b/nymea-plugins.pro @@ -37,7 +37,8 @@ PLUGIN_DIRS = \ gpio \ snapd \ simulation \ - keba \ + keba \ + remotessh \ CONFIG+=all diff --git a/remotessh/devicepluginremotessh.cpp b/remotessh/devicepluginremotessh.cpp new file mode 100644 index 00000000..a6cd0cd3 --- /dev/null +++ b/remotessh/devicepluginremotessh.cpp @@ -0,0 +1,205 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2017 Bernhard Trinnes * + * Copyright (C) 2018 Simon Stürz * + * * + * This file is part of nymea. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include "devicepluginremotessh.h" +#include "plugininfo.h" + +#include +#include + +DevicePluginRemoteSsh::DevicePluginRemoteSsh() +{ + +} + +void DevicePluginRemoteSsh::init() +{ + m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(10); + connect(m_pluginTimer, &PluginTimer::timeout, this, &DevicePluginRemoteSsh::onPluginTimeout); +} + +DeviceManager::DeviceSetupStatus DevicePluginRemoteSsh::setupDevice(Device *device) +{ + qCDebug(dcRemoteSsh()) << "Setup" << device->name() << device->params(); + + if (device->deviceClassId() == reverseSshDeviceClassId) { + m_identityFilePath = QString("%1/.ssh/id_rsa_guh").arg(QDir::homePath()); + return DeviceManager::DeviceSetupStatusSuccess; + } + return DeviceManager::DeviceSetupStatusFailure; +} + +DeviceManager::DeviceError DevicePluginRemoteSsh::executeAction(Device *device, const Action &action) +{ + if (device->deviceClassId() == reverseSshDeviceClassId ) { + + if (action.actionTypeId() == reverseSshConnectedActionTypeId) { + + if (action.param(reverseSshConnectedStateParamTypeId).value().toBool() == true) { + QProcess *process = startReverseSSHProcess(device); + m_reverseSSHProcess.insert(process, device); + m_startingProcess.insert(process, action.id()); + return DeviceManager::DeviceErrorAsync; + } else { + QProcess *process = m_reverseSSHProcess.key(device); + + // Check if the application is running... + if (!process) + return DeviceManager::DeviceErrorNoError; + + if (process->state() == QProcess::NotRunning) + return DeviceManager::DeviceErrorNoError; + + process->kill(); + m_killingProcess.insert(process, action.id()); + return DeviceManager::DeviceErrorAsync; + } + return DeviceManager::DeviceErrorNoError; + } + return DeviceManager::DeviceErrorActionTypeNotFound; + } + return DeviceManager::DeviceErrorDeviceClassNotFound; +} + + +void DevicePluginRemoteSsh::deviceRemoved(Device *device) +{ + if (device->deviceClassId() == reverseSshDeviceClassId) { + QProcess *process = m_reverseSSHProcess.key(device); + if (!process) + return; + + m_reverseSSHProcess.remove(process); + if (process->state() != QProcess::NotRunning) { + process->kill(); + } + process->deleteLater(); + } +} + +void DevicePluginRemoteSsh::processReadyRead() +{ + QByteArray data = static_cast(sender())->readAll(); + qCWarning(dcRemoteSsh()) << "process read" << data; +} + + +QProcess * DevicePluginRemoteSsh::startReverseSSHProcess(Device *device) +{ + qCDebug(dcRemoteSsh()) << "Start reverse SSH"; + QProcess *process = new QProcess(this); + process->setProcessChannelMode(QProcess::MergedChannels); + + connect(process, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus))); + connect(process, &QProcess::stateChanged, this, &DevicePluginRemoteSsh::processStateChanged); + connect(process, &QProcess::readyRead, this, &DevicePluginRemoteSsh::processReadyRead); + + QStringList arguments; + int localPort = device->paramValue(reverseSshLocalPortParamTypeId).toInt(); + int remotePort = device->paramValue(reverseSshRemotePortParamTypeId).toInt(); + QString user = device->paramValue(reverseSshUserParamTypeId).toString(); + QString password = device->paramValue(reverseSshPasswordParamTypeId).toString(); + QString address = device->paramValue(reverseSshAddressParamTypeId).toString(); + + arguments << "-p" << password; + arguments << "ssh" << "-o StrictHostKeyChecking=no" << "-oUserKnownHostsFile=/dev/null"; + arguments << "-TN" << "-R" << QString("%1:localhost:%2").arg(remotePort).arg(localPort) << QString("%1@%2").arg(user, address); + process->start(QStringLiteral("sshpass"), arguments); + qCDebug(dcRemoteSsh()) << "Command:" << process->program() << process->arguments(); + return process; +} + +void DevicePluginRemoteSsh::onPluginTimeout() +{ + foreach(QProcess *process, m_reverseSSHProcess.keys()) { + if (process->state() == QProcess::NotRunning) + qCDebug(dcRemoteSsh()) << "SSH Process not running"; + } +} + + +void DevicePluginRemoteSsh::processFinished(int exitCode, QProcess::ExitStatus exitStatus) +{ + Q_UNUSED(exitCode); + QProcess *process = static_cast(sender()); + + if(exitStatus != QProcess::NormalExit || exitCode != 0) { + qCWarning(dcRemoteSsh()) << "Error:" << process->readAllStandardError(); + } + + if (m_reverseSSHProcess.contains(process)) { + qCDebug(dcRemoteSsh()) << "SSH process finished"; + Device *device = m_reverseSSHProcess.value(process); + device->setStateValue(reverseSshConnectedStateTypeId, false); + m_reverseSSHProcess.remove(process); + + } else if (m_sshKeyGenProcess.contains(process)) { + qCDebug(dcRemoteSsh()) << "SSH Key generation process finished" << process->readAll(); + Device *device = m_sshKeyGenProcess.value(process); + QFile file(QString(m_identityFilePath + ".pub")); + if(!file.open(QIODevice::ReadOnly)) + qCWarning(dcRemoteSsh()) << "error" << file.errorString(); + + QTextStream in(&file); + QString sshKey = in.readLine(); + device->setStateValue(reverseSshSshKeyStateTypeId, sshKey); + process->kill(); + m_sshKeyGenProcess.remove(process); + file.close(); + } +} + + +void DevicePluginRemoteSsh::processStateChanged(QProcess::ProcessState state) +{ + QProcess *process = static_cast(sender()); + Device *device = m_reverseSSHProcess.value(process); + + switch (state) { + case QProcess::Running: + device->setStateValue(reverseSshConnectedStateTypeId, true); + if (m_startingProcess.contains(process)) { + emit actionExecutionFinished(m_startingProcess.value(process), DeviceManager::DeviceErrorNoError); + m_startingProcess.remove(process); + } + break; + + case QProcess::NotRunning: + if (device) + device->setStateValue(reverseSshConnectedStateTypeId, false); + + if (m_startingProcess.contains(process)) { + emit actionExecutionFinished(m_startingProcess.value(process), DeviceManager::DeviceErrorInvalidParameter); + m_startingProcess.remove(process); + } + + if (m_killingProcess.contains(process)) { + emit actionExecutionFinished(m_killingProcess.value(process), DeviceManager::DeviceErrorNoError); + m_reverseSSHProcess.remove(process); + m_killingProcess.remove(process); + } + break; + default: + break; + } +} diff --git a/remotessh/devicepluginremotessh.h b/remotessh/devicepluginremotessh.h new file mode 100644 index 00000000..87f646a8 --- /dev/null +++ b/remotessh/devicepluginremotessh.h @@ -0,0 +1,68 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * Copyright (C) 2017 Bernhard Trinnes * + * Copyright (C) 2018 Simon Stürz * + * * + * This file is part of nymea. * + * * + * This library is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 2.1 of the License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this library; If not, see * + * . * + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef DEVICEPLUGINREMOTESSH_H +#define DEVICEPLUGINREMOTESSH_H + +#include "plugintimer.h" +#include "plugin/deviceplugin.h" + +#include + +class DevicePluginRemoteSsh : public DevicePlugin +{ + Q_OBJECT + + Q_PLUGIN_METADATA(IID "io.nymea.DevicePlugin" FILE "devicepluginremotessh.json") + Q_INTERFACES(DevicePlugin) + +public: + explicit DevicePluginRemoteSsh(); + + void init() override; + DeviceManager::DeviceSetupStatus setupDevice(Device *device) override; + void deviceRemoved(Device *device) override; + DeviceManager::DeviceError executeAction(Device *device, const Action &action) override; + +private: + QHash m_reverseSSHProcess; + QHash m_sshKeyGenProcess; + + QHash m_startingProcess; + QHash m_killingProcess; + + PluginTimer *m_pluginTimer = nullptr; + + bool m_aboutToQuit = false; + QString m_identityFilePath; + + QProcess *startReverseSSHProcess(Device *device); + +private slots: + void onPluginTimeout(); + void processReadyRead(); + void processStateChanged(QProcess::ProcessState state); + void processFinished(int exitCode, QProcess::ExitStatus exitStatus); +}; + +#endif // DEVICEPLUGINREMOTESSH_H diff --git a/remotessh/devicepluginremotessh.json b/remotessh/devicepluginremotessh.json new file mode 100644 index 00000000..a20bb652 --- /dev/null +++ b/remotessh/devicepluginremotessh.json @@ -0,0 +1,94 @@ +{ + "id": "cd75d899-3f53-43fa-9ee8-f6b36646a27d", + "name": "RemoteSsh", + "displayName": "Remote SSH", + "vendors": [ + { + "id": "e87ad7b1-1705-46b1-a962-282126646b4d", + "name": "remoteAccess", + "displayName": "Remote Access", + "deviceClasses": [ + { + "id": "a4f12741-4f30-40ca-a319-7f15e9c0c43a", + "name": "reverseSsh", + "displayName": "Reverse SSH", + "deviceIcon": "Network", + "createMethods": ["user"], + "basicTags": ["Service"], + "interfaces": ["connectable"], + "paramTypes": [ + { + "id": "92747d75-d18a-4915-bd48-0edd5cc5f19a", + "name": "address", + "displayName": "Address", + "type": "QString", + "inputType": "IPv4Address", + "defaultValue": "127.0.0.1" + }, + { + "id": "7f7aa198-c719-415e-b31c-7a676b9d8e01", + "name": "localPort", + "displayName": "Local Port", + "type": "int", + "defaultValue": 22 + }, + { + "id": "988aec42-1026-4aef-85d1-329ee1a34208", + "name": "remotePort", + "displayName": "Remote Port", + "type": "int", + "defaultValue": 2022 + }, + { + "id": "c675f7ea-f94a-46e9-bf0f-92682182d6dd", + "name": "user", + "displayName": "User Name", + "type": "QString", + "inputType": "TextLine", + "defaultValue": "Enter your user" + }, + { + "id": "d8cc7177-bf35-4394-ab7b-881184bd8c8b", + "name": "password", + "displayName": "Password", + "type": "QString", + "inputType": "TextLine", + "defaultValue": "Enter your password" + } + ], + "stateTypes":[ + { + "id": "19f079f0-1654-44c3-ab10-e7d7f9742e09", + "name": "reachable", + "displayName": "Server Reachable", + "displayNameEvent": "reachable status changed", + "type": "bool", + "defaultValue": true + }, + { + "id": "1ae425b2-d642-42ca-be41-4d06dff5c5cd", + "name": "connected", + "displayName": "Connected", + "type": "bool", + "defaultValue": false, + "displayNameEvent": "Connected changed", + "displayNameAction": "Connect to Server", + "writable": true + }, + { + "id": "d8bb619e-6602-4c89-8654-85e111520561", + "name": "sshKey", + "displayName": "SSH public key", + "displayNameEvent": "SSH key changed", + "type": "QString", + "defaultValue": "-" + } + ] + } + ] + } + ] +} + + + diff --git a/remotessh/remotessh.pro b/remotessh/remotessh.pro new file mode 100644 index 00000000..390f2eea --- /dev/null +++ b/remotessh/remotessh.pro @@ -0,0 +1,10 @@ +include(../plugins.pri) + +TARGET = $$qtLibraryTarget(nymea_devicepluginremotessh) + +SOURCES += \ + devicepluginremotessh.cpp \ + +HEADERS += \ + devicepluginremotessh.h \ + From f52795137dac62b7c6133f4c245ae8e88b7a4dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Mon, 19 Mar 2018 13:21:24 +0100 Subject: [PATCH 50/62] Add translation file for remotessh --- .../b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts diff --git a/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts b/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts new file mode 100644 index 00000000..f7f66d85 --- /dev/null +++ b/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts @@ -0,0 +1,4 @@ + + + + \ No newline at end of file From dbc770c16fc27d2f7b147ee74d4b72e1cf6d9f5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 20 Mar 2018 14:13:23 +0100 Subject: [PATCH 51/62] Add translation file --- ...5d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts | 4 + simulation/translations/de_DE.ts | 565 ------------------ simulation/translations/en_US.ts | 565 ------------------ 3 files changed, 4 insertions(+), 1130 deletions(-) create mode 100644 remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts delete mode 100644 simulation/translations/de_DE.ts delete mode 100644 simulation/translations/en_US.ts diff --git a/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts b/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts new file mode 100644 index 00000000..f7f66d85 --- /dev/null +++ b/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/simulation/translations/de_DE.ts b/simulation/translations/de_DE.ts deleted file mode 100644 index c438d200..00000000 --- a/simulation/translations/de_DE.ts +++ /dev/null @@ -1,565 +0,0 @@ - - - - - Simulation - - Simulation - The name of the plugin Simulation (b7368429-e312-4c82-9eab-e1cd996e43d6) ----------- -The name of the vendor (fd2ae067-2c3d-4332-9c4b-ee0af653bcaf) - - - - Simple Button - The name of the DeviceClass (73bb670b-e7a3-40da-bd6f-3260f017ec80) - - - - Press the button - The name of the ActionType 64c4ced5-9a1a-4858-81dd-1b5c94dba495 of deviceClass simpleButton - - - - Button pressed - The name of the EventType f9652210-9aed-4f38-8c19-2fd54f703fbe of deviceClass simpleButton - - - - Power Button - The name of the DeviceClass (910b2f58-70dc-4da3-89ae-9e7393290ccb) - - - - Power changed - The name of the autocreated EventType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) ----------- -The name of the autocreated EventType (e1910c53-a6bc-434b-9caa-0d08e214c122) ----------- -The name of the autocreated EventType (b786029d-f3a6-4b47-978a-ac1a581aac0f) ----------- -The name of the autocreated EventType (9faaffe5-6a76-47d2-a14a-550f60390245) ----------- -The name of the autocreated EventType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) - - - - power - The name of the ParamType of StateType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) of DeviceClass alternativeButton ----------- -The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heating ----------- -The name of the ParamType of StateType (b786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass evCharger ----------- -The name of the ParamType of StateType (9faaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass colorBulb ----------- -The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass socket ----------- -The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod ----------- -The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass waterValve - - - - Set power - The name of the autocreated ActionType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) ----------- -The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) ----------- -The name of the autocreated ActionType (b786029d-f3a6-4b47-978a-ac1a581aac0f) ----------- -The name of the autocreated ActionType (9faaffe5-6a76-47d2-a14a-550f60390245) ----------- -The name of the autocreated ActionType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) - - - - Temperature sensor - The name of the DeviceClass (77c6ccff-84e8-4983-b69e-5e1a3f4723f2) - - - - Temperature changed - The name of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) ----------- -The name of the autocreated EventType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) - - - - temperature - The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) of DeviceClass netatmoIndoor ----------- -The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass gardenSensor - - - - Humidity changed - The name of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) ----------- -The name of the autocreated EventType (b2225720-dfdc-40f8-a24a-20247e69e575) - - - - humidity - The name of the ParamType of StateType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (b2225720-dfdc-40f8-a24a-20247e69e575) of DeviceClass netatmoIndoor - - - - Battery level changed - The name of the autocreated EventType (45c0de32-b519-47d7-9f82-e5f09d1542d4) ----------- -The name of the autocreated EventType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) ----------- -The name of the autocreated EventType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) - - - - batteryLevel - The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) of DeviceClass motionDetector ----------- -The name of the ParamType of StateType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) of DeviceClass battery ----------- -The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass gardenSensor - - - - Battery critical changed - The name of the autocreated EventType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) ----------- -The name of the autocreated EventType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) ----------- -The name of the autocreated EventType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) - - - - batteryCritical - The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) of DeviceClass motionDetector ----------- -The name of the ParamType of StateType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) of DeviceClass battery ----------- -The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass gardenSensor - - - - Connected changed - The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) ----------- -The name of the autocreated EventType (b481b6e7-77c1-40b0-859a-286876b05959) - - - - connected - The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (b481b6e7-77c1-40b0-859a-286876b05959) of DeviceClass motionDetector ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass fingerPrintSensor ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass smartMeter ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass battery ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass gardenSensor - - - - Motion Detector - The name of the DeviceClass (990fc2ba-260a-4648-9a93-e803e219da4f) - - - - Motion detected - The name of the autocreated EventType (5ab00bfc-7345-44a2-90d4-852c810e59ec) - - - - active - The name of the ParamType of StateType (5ab00bfc-7345-44a2-90d4-852c810e59ec) of DeviceClass motionDetector - - - - Heating - The name of the DeviceClass (62e302f4-b92a-4b55-bd18-a1e0cc56362a) - - - - Active status changed - The name of the autocreated EventType (47a16375-1027-42cc-82d3-56cbfdb1193c) - - - - heatingActive - The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heating ----------- -The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heatingRod - - - - target temperature changed - The name of the autocreated EventType (8256a670-85c5-4043-9133-05518812848c) - - - - targetTemperature - The name of the ParamType of StateType (8256a670-85c5-4043-9133-05518812848c) of DeviceClass heating - - - - change target temperature - The name of the autocreated ActionType (8256a670-85c5-4043-9133-05518812848c) - - - - EV Charging Station - The name of the DeviceClass (1fa40afa-6a07-4a97-918b-76e3944ea0fb) - - - - Current changed - The name of the autocreated EventType (87600986-da37-4032-af37-015995910368) - - - - current - The name of the ParamType of StateType (87600986-da37-4032-af37-015995910368) of DeviceClass evCharger - - - - Set current - The name of the autocreated ActionType (87600986-da37-4032-af37-015995910368) - - - - charging status changed - The name of the autocreated EventType (9d3f56e1-bb73-4efd-814c-50477c609c17) - - - - evCharging - The name of the ParamType of StateType (9d3f56e1-bb73-4efd-814c-50477c609c17) of DeviceClass evCharger - - - - Garage Door - The name of the DeviceClass (cfb44bcf-b4b9-4bef-89f7-3a55baf35668) - - - - Garage door status changed - The name of the autocreated EventType (f786029d-f3a6-4b47-978a-ac1a581aac0f) - - - - door - The name of the ParamType of StateType (f786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass garageDoor - - - - Open - The name of the ActionType 1786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor ----------- -The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter - - - - Stop - The name of the ActionType 2786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor - - - - Close - The name of the ActionType 3786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor - - - - Roller Shutter - The name of the DeviceClass (1039b7ee-5351-400b-a477-5b8fc1447138) - - - - Shutter status changed - The name of the autocreated EventType (1386029d-f3a6-4b47-978a-ac1a581aac0f) - - - - shutterStatus - The name of the ParamType of StateType (1386029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass rollerShutter - - - - stop - The name of the ActionType 27860292-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter - - - - close - The name of the ActionType 37860293-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter - - - - Color Bulb - The name of the DeviceClass (1039b7ee-5121-400b-a477-5b8fc14471ff) - - - - Color temperature changed - The name of the autocreated EventType (cff4206f-f219-4f06-93c4-4ca515a56f79) - - - - colorTemperature - The name of the ParamType of StateType (cff4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass colorBulb - - - - Set color temperature - The name of the autocreated ActionType (cff4206f-f219-4f06-93c4-4ca515a56f79) - - - - Color changed - The name of the autocreated EventType (df5423f1-b924-4b20-80b6-77eecc65d089) - - - - color - The name of the ParamType of StateType (df5423f1-b924-4b20-80b6-77eecc65d089) of DeviceClass colorBulb - - - - Set color - The name of the autocreated ActionType (df5423f1-b924-4b20-80b6-77eecc65d089) - - - - Brightness changed - The name of the autocreated EventType (90e91f11-a208-468c-a5a2-7f47e08229e2) - - - - brightness - The name of the ParamType of StateType (90e91f11-a208-468c-a5a2-7f47e08229e2) of DeviceClass colorBulb - - - - Set brigtness - The name of the autocreated ActionType (90e91f11-a208-468c-a5a2-7f47e08229e2) - - - - Socket - The name of the DeviceClass (1039b7ee-5351-400b-a477-5b8fc14471ff) - - - - Finger Print Sensor - The name of the DeviceClass (45906fb3-9bf5-4331-9b69-0a0407b8511e) - - - - Access granted - The name of the EventType 1d2dde79-7121-4f8c-b7c1-904ced66a79e of deviceClass fingerPrintSensor - - - - Access denied - The name of the EventType 992b7742-af0c-447c-bd94-9ec70b872268 of deviceClass fingerPrintSensor - - - - Smart Meter - The name of the DeviceClass (c242f229-d3f4-4d3d-854c-817b52aa18ab) - - - - Reachable changed - The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) - - - - Power consumption changed - The name of the autocreated EventType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) - - - - powerConsumption - The name of the ParamType of StateType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) of DeviceClass smartMeter - - - - Today's energy production changed - The name of the autocreated EventType (5ac91819-c855-441c-a734-ee5cc0514822) - - - - energyToday - The name of the ParamType of StateType (5ac91819-c855-441c-a734-ee5cc0514822) of DeviceClass smartMeter - - - - Battery - The name of the DeviceClass (280c481e-757a-4af7-b1d3-dc9cfc1d46a5) - - - - Charging amount changed - The name of the autocreated EventType (c977e60a-e820-4647-addb-cf0b39732ffb) - - - - charging - The name of the ParamType of StateType (c977e60a-e820-4647-addb-cf0b39732ffb) of DeviceClass battery - - - - Max charging power changed - The name of the autocreated EventType (bdf328a6-eebc-4b67-8165-551bc21e9be6) - - - - maxCharging - The name of the ParamType of StateType (bdf328a6-eebc-4b67-8165-551bc21e9be6) of DeviceClass battery - - - - Set max charging power - The name of the autocreated ActionType (bdf328a6-eebc-4b67-8165-551bc21e9be6) - - - - Heating Rod - The name of the DeviceClass (b2565887-443a-45ae-a2e7-67fb1b1003d8) - - - - Power - The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) - - - - Max power changed - The name of the autocreated EventType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) - - - - maxPower - The name of the ParamType of StateType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) of DeviceClass heatingRod - - - - Set max power - The name of the autocreated ActionType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) - - - - Target water temperature changed - The name of the autocreated EventType (49388b11-8076-4698-8091-5c5f5762fd08) - - - - waterTemperature - The name of the ParamType of StateType (49388b11-8076-4698-8091-5c5f5762fd08) of DeviceClass heatingRod - - - - Set target water temperature - The name of the autocreated ActionType (49388b11-8076-4698-8091-5c5f5762fd08) - - - - Netatmo Indoor Station - The name of the DeviceClass (7f1696e3-3145-421e-9a42-5bd3b2fd0e2c) - - - - Last update changed - The name of the autocreated EventType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) - - - - updateTime - The name of the ParamType of StateType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) of DeviceClass netatmoIndoor - - - - Pressure changed - The name of the autocreated EventType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) - - - - pressure - The name of the ParamType of StateType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) of DeviceClass netatmoIndoor - - - - Noise changed - The name of the autocreated EventType (b16ea43e-75ef-4bee-ade6-839682ec3068) - - - - noise - The name of the ParamType of StateType (b16ea43e-75ef-4bee-ade6-839682ec3068) of DeviceClass netatmoIndoor - - - - CO2 changed - The name of the autocreated EventType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) - - - - co2 - The name of the ParamType of StateType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) of DeviceClass netatmoIndoor - - - - Wifi signal strength changed - The name of the autocreated EventType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) - - - - wifiStrength - The name of the ParamType of StateType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) of DeviceClass netatmoIndoor - - - - Garden sensor - The name of the DeviceClass (b759f558-b484-45b6-9132-218d135c27d6) - - - - Soil moisture changed - The name of the autocreated EventType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) - - - - soilMoisture - The name of the ParamType of StateType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) of DeviceClass gardenSensor - - - - Light intensity changed - The name of the autocreated EventType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) - - - - lightIntensity - The name of the ParamType of StateType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) of DeviceClass gardenSensor - - - - Water valve - The name of the DeviceClass (8fc2e79b-1770-4b18-bf01-78ed15893a81) - - - - diff --git a/simulation/translations/en_US.ts b/simulation/translations/en_US.ts deleted file mode 100644 index d576089c..00000000 --- a/simulation/translations/en_US.ts +++ /dev/null @@ -1,565 +0,0 @@ - - - - - Simulation - - Simulation - The name of the plugin Simulation (b7368429-e312-4c82-9eab-e1cd996e43d6) ----------- -The name of the vendor (fd2ae067-2c3d-4332-9c4b-ee0af653bcaf) - - - - Simple Button - The name of the DeviceClass (73bb670b-e7a3-40da-bd6f-3260f017ec80) - - - - Press the button - The name of the ActionType 64c4ced5-9a1a-4858-81dd-1b5c94dba495 of deviceClass simpleButton - - - - Button pressed - The name of the EventType f9652210-9aed-4f38-8c19-2fd54f703fbe of deviceClass simpleButton - - - - Power Button - The name of the DeviceClass (910b2f58-70dc-4da3-89ae-9e7393290ccb) - - - - Power changed - The name of the autocreated EventType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) ----------- -The name of the autocreated EventType (e1910c53-a6bc-434b-9caa-0d08e214c122) ----------- -The name of the autocreated EventType (b786029d-f3a6-4b47-978a-ac1a581aac0f) ----------- -The name of the autocreated EventType (9faaffe5-6a76-47d2-a14a-550f60390245) ----------- -The name of the autocreated EventType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) - - - - power - The name of the ParamType of StateType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) of DeviceClass alternativeButton ----------- -The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heating ----------- -The name of the ParamType of StateType (b786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass evCharger ----------- -The name of the ParamType of StateType (9faaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass colorBulb ----------- -The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass socket ----------- -The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod ----------- -The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass waterValve - - - - Set power - The name of the autocreated ActionType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) ----------- -The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) ----------- -The name of the autocreated ActionType (b786029d-f3a6-4b47-978a-ac1a581aac0f) ----------- -The name of the autocreated ActionType (9faaffe5-6a76-47d2-a14a-550f60390245) ----------- -The name of the autocreated ActionType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) - - - - Temperature sensor - The name of the DeviceClass (77c6ccff-84e8-4983-b69e-5e1a3f4723f2) - - - - Temperature changed - The name of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) ----------- -The name of the autocreated EventType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) - - - - temperature - The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) of DeviceClass netatmoIndoor ----------- -The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass gardenSensor - - - - Humidity changed - The name of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) ----------- -The name of the autocreated EventType (b2225720-dfdc-40f8-a24a-20247e69e575) - - - - humidity - The name of the ParamType of StateType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (b2225720-dfdc-40f8-a24a-20247e69e575) of DeviceClass netatmoIndoor - - - - Battery level changed - The name of the autocreated EventType (45c0de32-b519-47d7-9f82-e5f09d1542d4) ----------- -The name of the autocreated EventType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) ----------- -The name of the autocreated EventType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) - - - - batteryLevel - The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) of DeviceClass motionDetector ----------- -The name of the ParamType of StateType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) of DeviceClass battery ----------- -The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass gardenSensor - - - - Battery critical changed - The name of the autocreated EventType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) ----------- -The name of the autocreated EventType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) ----------- -The name of the autocreated EventType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) - - - - batteryCritical - The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) of DeviceClass motionDetector ----------- -The name of the ParamType of StateType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) of DeviceClass battery ----------- -The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass gardenSensor - - - - Connected changed - The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) ----------- -The name of the autocreated EventType (b481b6e7-77c1-40b0-859a-286876b05959) - - - - connected - The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (b481b6e7-77c1-40b0-859a-286876b05959) of DeviceClass motionDetector ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass fingerPrintSensor ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass smartMeter ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass battery ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass gardenSensor - - - - Motion Detector - The name of the DeviceClass (990fc2ba-260a-4648-9a93-e803e219da4f) - - - - Motion detected - The name of the autocreated EventType (5ab00bfc-7345-44a2-90d4-852c810e59ec) - - - - active - The name of the ParamType of StateType (5ab00bfc-7345-44a2-90d4-852c810e59ec) of DeviceClass motionDetector - - - - Heating - The name of the DeviceClass (62e302f4-b92a-4b55-bd18-a1e0cc56362a) - - - - Active status changed - The name of the autocreated EventType (47a16375-1027-42cc-82d3-56cbfdb1193c) - - - - heatingActive - The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heating ----------- -The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heatingRod - - - - target temperature changed - The name of the autocreated EventType (8256a670-85c5-4043-9133-05518812848c) - - - - targetTemperature - The name of the ParamType of StateType (8256a670-85c5-4043-9133-05518812848c) of DeviceClass heating - - - - change target temperature - The name of the autocreated ActionType (8256a670-85c5-4043-9133-05518812848c) - - - - EV Charging Station - The name of the DeviceClass (1fa40afa-6a07-4a97-918b-76e3944ea0fb) - - - - Current changed - The name of the autocreated EventType (87600986-da37-4032-af37-015995910368) - - - - current - The name of the ParamType of StateType (87600986-da37-4032-af37-015995910368) of DeviceClass evCharger - - - - Set current - The name of the autocreated ActionType (87600986-da37-4032-af37-015995910368) - - - - charging status changed - The name of the autocreated EventType (9d3f56e1-bb73-4efd-814c-50477c609c17) - - - - evCharging - The name of the ParamType of StateType (9d3f56e1-bb73-4efd-814c-50477c609c17) of DeviceClass evCharger - - - - Garage Door - The name of the DeviceClass (cfb44bcf-b4b9-4bef-89f7-3a55baf35668) - - - - Garage door status changed - The name of the autocreated EventType (f786029d-f3a6-4b47-978a-ac1a581aac0f) - - - - door - The name of the ParamType of StateType (f786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass garageDoor - - - - Open - The name of the ActionType 1786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor ----------- -The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter - - - - Stop - The name of the ActionType 2786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor - - - - Close - The name of the ActionType 3786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor - - - - Roller Shutter - The name of the DeviceClass (1039b7ee-5351-400b-a477-5b8fc1447138) - - - - Shutter status changed - The name of the autocreated EventType (1386029d-f3a6-4b47-978a-ac1a581aac0f) - - - - shutterStatus - The name of the ParamType of StateType (1386029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass rollerShutter - - - - stop - The name of the ActionType 27860292-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter - - - - close - The name of the ActionType 37860293-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter - - - - Color Bulb - The name of the DeviceClass (1039b7ee-5121-400b-a477-5b8fc14471ff) - - - - Color temperature changed - The name of the autocreated EventType (cff4206f-f219-4f06-93c4-4ca515a56f79) - - - - colorTemperature - The name of the ParamType of StateType (cff4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass colorBulb - - - - Set color temperature - The name of the autocreated ActionType (cff4206f-f219-4f06-93c4-4ca515a56f79) - - - - Color changed - The name of the autocreated EventType (df5423f1-b924-4b20-80b6-77eecc65d089) - - - - color - The name of the ParamType of StateType (df5423f1-b924-4b20-80b6-77eecc65d089) of DeviceClass colorBulb - - - - Set color - The name of the autocreated ActionType (df5423f1-b924-4b20-80b6-77eecc65d089) - - - - Brightness changed - The name of the autocreated EventType (90e91f11-a208-468c-a5a2-7f47e08229e2) - - - - brightness - The name of the ParamType of StateType (90e91f11-a208-468c-a5a2-7f47e08229e2) of DeviceClass colorBulb - - - - Set brigtness - The name of the autocreated ActionType (90e91f11-a208-468c-a5a2-7f47e08229e2) - - - - Socket - The name of the DeviceClass (1039b7ee-5351-400b-a477-5b8fc14471ff) - - - - Finger Print Sensor - The name of the DeviceClass (45906fb3-9bf5-4331-9b69-0a0407b8511e) - - - - Access granted - The name of the EventType 1d2dde79-7121-4f8c-b7c1-904ced66a79e of deviceClass fingerPrintSensor - - - - Access denied - The name of the EventType 992b7742-af0c-447c-bd94-9ec70b872268 of deviceClass fingerPrintSensor - - - - Smart Meter - The name of the DeviceClass (c242f229-d3f4-4d3d-854c-817b52aa18ab) - - - - Reachable changed - The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) - - - - Power consumption changed - The name of the autocreated EventType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) - - - - powerConsumption - The name of the ParamType of StateType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) of DeviceClass smartMeter - - - - Today's energy production changed - The name of the autocreated EventType (5ac91819-c855-441c-a734-ee5cc0514822) - - - - energyToday - The name of the ParamType of StateType (5ac91819-c855-441c-a734-ee5cc0514822) of DeviceClass smartMeter - - - - Battery - The name of the DeviceClass (280c481e-757a-4af7-b1d3-dc9cfc1d46a5) - - - - Charging amount changed - The name of the autocreated EventType (c977e60a-e820-4647-addb-cf0b39732ffb) - - - - charging - The name of the ParamType of StateType (c977e60a-e820-4647-addb-cf0b39732ffb) of DeviceClass battery - - - - Max charging power changed - The name of the autocreated EventType (bdf328a6-eebc-4b67-8165-551bc21e9be6) - - - - maxCharging - The name of the ParamType of StateType (bdf328a6-eebc-4b67-8165-551bc21e9be6) of DeviceClass battery - - - - Set max charging power - The name of the autocreated ActionType (bdf328a6-eebc-4b67-8165-551bc21e9be6) - - - - Heating Rod - The name of the DeviceClass (b2565887-443a-45ae-a2e7-67fb1b1003d8) - - - - Power - The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) - - - - Max power changed - The name of the autocreated EventType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) - - - - maxPower - The name of the ParamType of StateType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) of DeviceClass heatingRod - - - - Set max power - The name of the autocreated ActionType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) - - - - Target water temperature changed - The name of the autocreated EventType (49388b11-8076-4698-8091-5c5f5762fd08) - - - - waterTemperature - The name of the ParamType of StateType (49388b11-8076-4698-8091-5c5f5762fd08) of DeviceClass heatingRod - - - - Set target water temperature - The name of the autocreated ActionType (49388b11-8076-4698-8091-5c5f5762fd08) - - - - Netatmo Indoor Station - The name of the DeviceClass (7f1696e3-3145-421e-9a42-5bd3b2fd0e2c) - - - - Last update changed - The name of the autocreated EventType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) - - - - updateTime - The name of the ParamType of StateType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) of DeviceClass netatmoIndoor - - - - Pressure changed - The name of the autocreated EventType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) - - - - pressure - The name of the ParamType of StateType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) of DeviceClass netatmoIndoor - - - - Noise changed - The name of the autocreated EventType (b16ea43e-75ef-4bee-ade6-839682ec3068) - - - - noise - The name of the ParamType of StateType (b16ea43e-75ef-4bee-ade6-839682ec3068) of DeviceClass netatmoIndoor - - - - CO2 changed - The name of the autocreated EventType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) - - - - co2 - The name of the ParamType of StateType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) of DeviceClass netatmoIndoor - - - - Wifi signal strength changed - The name of the autocreated EventType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) - - - - wifiStrength - The name of the ParamType of StateType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) of DeviceClass netatmoIndoor - - - - Garden sensor - The name of the DeviceClass (b759f558-b484-45b6-9132-218d135c27d6) - - - - Soil moisture changed - The name of the autocreated EventType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) - - - - soilMoisture - The name of the ParamType of StateType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) of DeviceClass gardenSensor - - - - Light intensity changed - The name of the autocreated EventType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) - - - - lightIntensity - The name of the ParamType of StateType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) of DeviceClass gardenSensor - - - - Water valve - The name of the DeviceClass (8fc2e79b-1770-4b18-bf01-78ed15893a81) - - - - From 992e65ea878d30af938be070e8d7dab3ce6e0689 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Tue, 20 Mar 2018 17:44:02 +0100 Subject: [PATCH 52/62] Automatic translations update by Jenkins --- ...5d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts | 80 ++- ...68429-e312-4c82-9eab-e1cd996e43d6-en_US.ts | 563 +++++++++++++++++- 2 files changed, 641 insertions(+), 2 deletions(-) diff --git a/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts b/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts index f7f66d85..5bff69ca 100644 --- a/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts +++ b/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts @@ -1,4 +1,82 @@ - \ No newline at end of file + + RemoteSsh + + RemoteSsh + The name of the plugin RemoteSsh (cd75d899-3f53-43fa-9ee8-f6b36646a27d) + + + + Remote Access + The name of the vendor (e87ad7b1-1705-46b1-a962-282126646b4d) + + + + Reverse SSH + The name of the DeviceClass (a4f12741-4f30-40ca-a319-7f15e9c0c43a) + + + + Address + The name of the paramType (92747d75-d18a-4915-bd48-0edd5cc5f19a) of reverseSsh + + + + Local Port + The name of the paramType (7f7aa198-c719-415e-b31c-7a676b9d8e01) of reverseSsh + + + + Remote Port + The name of the paramType (988aec42-1026-4aef-85d1-329ee1a34208) of reverseSsh + + + + User Name + The name of the paramType (c675f7ea-f94a-46e9-bf0f-92682182d6dd) of reverseSsh + + + + Password + The name of the paramType (d8cc7177-bf35-4394-ab7b-881184bd8c8b) of reverseSsh + + + + reachable status changed + The name of the autocreated EventType (19f079f0-1654-44c3-ab10-e7d7f9742e09) + + + + reachable + The name of the ParamType of StateType (19f079f0-1654-44c3-ab10-e7d7f9742e09) of DeviceClass reverseSsh + + + + Connected changed + The name of the autocreated EventType (1ae425b2-d642-42ca-be41-4d06dff5c5cd) + + + + connected + The name of the ParamType of StateType (1ae425b2-d642-42ca-be41-4d06dff5c5cd) of DeviceClass reverseSsh + + + + Connect to Server + The name of the autocreated ActionType (1ae425b2-d642-42ca-be41-4d06dff5c5cd) + + + + SSH key changed + The name of the autocreated EventType (d8bb619e-6602-4c89-8654-85e111520561) + + + + sshKey + The name of the ParamType of StateType (d8bb619e-6602-4c89-8654-85e111520561) of DeviceClass reverseSsh + + + + diff --git a/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts b/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts index f7f66d85..d576089c 100644 --- a/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts +++ b/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts @@ -1,4 +1,565 @@ - \ No newline at end of file + + Simulation + + Simulation + The name of the plugin Simulation (b7368429-e312-4c82-9eab-e1cd996e43d6) +---------- +The name of the vendor (fd2ae067-2c3d-4332-9c4b-ee0af653bcaf) + + + + Simple Button + The name of the DeviceClass (73bb670b-e7a3-40da-bd6f-3260f017ec80) + + + + Press the button + The name of the ActionType 64c4ced5-9a1a-4858-81dd-1b5c94dba495 of deviceClass simpleButton + + + + Button pressed + The name of the EventType f9652210-9aed-4f38-8c19-2fd54f703fbe of deviceClass simpleButton + + + + Power Button + The name of the DeviceClass (910b2f58-70dc-4da3-89ae-9e7393290ccb) + + + + Power changed + The name of the autocreated EventType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) +---------- +The name of the autocreated EventType (e1910c53-a6bc-434b-9caa-0d08e214c122) +---------- +The name of the autocreated EventType (b786029d-f3a6-4b47-978a-ac1a581aac0f) +---------- +The name of the autocreated EventType (9faaffe5-6a76-47d2-a14a-550f60390245) +---------- +The name of the autocreated EventType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) + + + + power + The name of the ParamType of StateType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) of DeviceClass alternativeButton +---------- +The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heating +---------- +The name of the ParamType of StateType (b786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass evCharger +---------- +The name of the ParamType of StateType (9faaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass colorBulb +---------- +The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass socket +---------- +The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod +---------- +The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass waterValve + + + + Set power + The name of the autocreated ActionType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) +---------- +The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) +---------- +The name of the autocreated ActionType (b786029d-f3a6-4b47-978a-ac1a581aac0f) +---------- +The name of the autocreated ActionType (9faaffe5-6a76-47d2-a14a-550f60390245) +---------- +The name of the autocreated ActionType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) + + + + Temperature sensor + The name of the DeviceClass (77c6ccff-84e8-4983-b69e-5e1a3f4723f2) + + + + Temperature changed + The name of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) +---------- +The name of the autocreated EventType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) + + + + temperature + The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) of DeviceClass netatmoIndoor +---------- +The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass gardenSensor + + + + Humidity changed + The name of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) +---------- +The name of the autocreated EventType (b2225720-dfdc-40f8-a24a-20247e69e575) + + + + humidity + The name of the ParamType of StateType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (b2225720-dfdc-40f8-a24a-20247e69e575) of DeviceClass netatmoIndoor + + + + Battery level changed + The name of the autocreated EventType (45c0de32-b519-47d7-9f82-e5f09d1542d4) +---------- +The name of the autocreated EventType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) +---------- +The name of the autocreated EventType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) + + + + batteryLevel + The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) of DeviceClass motionDetector +---------- +The name of the ParamType of StateType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) of DeviceClass battery +---------- +The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass gardenSensor + + + + Battery critical changed + The name of the autocreated EventType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) +---------- +The name of the autocreated EventType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) +---------- +The name of the autocreated EventType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) + + + + batteryCritical + The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) of DeviceClass motionDetector +---------- +The name of the ParamType of StateType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) of DeviceClass battery +---------- +The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass gardenSensor + + + + Connected changed + The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) +---------- +The name of the autocreated EventType (b481b6e7-77c1-40b0-859a-286876b05959) + + + + connected + The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass temperatureSensor +---------- +The name of the ParamType of StateType (b481b6e7-77c1-40b0-859a-286876b05959) of DeviceClass motionDetector +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass fingerPrintSensor +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass smartMeter +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass battery +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod +---------- +The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass gardenSensor + + + + Motion Detector + The name of the DeviceClass (990fc2ba-260a-4648-9a93-e803e219da4f) + + + + Motion detected + The name of the autocreated EventType (5ab00bfc-7345-44a2-90d4-852c810e59ec) + + + + active + The name of the ParamType of StateType (5ab00bfc-7345-44a2-90d4-852c810e59ec) of DeviceClass motionDetector + + + + Heating + The name of the DeviceClass (62e302f4-b92a-4b55-bd18-a1e0cc56362a) + + + + Active status changed + The name of the autocreated EventType (47a16375-1027-42cc-82d3-56cbfdb1193c) + + + + heatingActive + The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heating +---------- +The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heatingRod + + + + target temperature changed + The name of the autocreated EventType (8256a670-85c5-4043-9133-05518812848c) + + + + targetTemperature + The name of the ParamType of StateType (8256a670-85c5-4043-9133-05518812848c) of DeviceClass heating + + + + change target temperature + The name of the autocreated ActionType (8256a670-85c5-4043-9133-05518812848c) + + + + EV Charging Station + The name of the DeviceClass (1fa40afa-6a07-4a97-918b-76e3944ea0fb) + + + + Current changed + The name of the autocreated EventType (87600986-da37-4032-af37-015995910368) + + + + current + The name of the ParamType of StateType (87600986-da37-4032-af37-015995910368) of DeviceClass evCharger + + + + Set current + The name of the autocreated ActionType (87600986-da37-4032-af37-015995910368) + + + + charging status changed + The name of the autocreated EventType (9d3f56e1-bb73-4efd-814c-50477c609c17) + + + + evCharging + The name of the ParamType of StateType (9d3f56e1-bb73-4efd-814c-50477c609c17) of DeviceClass evCharger + + + + Garage Door + The name of the DeviceClass (cfb44bcf-b4b9-4bef-89f7-3a55baf35668) + + + + Garage door status changed + The name of the autocreated EventType (f786029d-f3a6-4b47-978a-ac1a581aac0f) + + + + door + The name of the ParamType of StateType (f786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass garageDoor + + + + Open + The name of the ActionType 1786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor +---------- +The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter + + + + Stop + The name of the ActionType 2786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor + + + + Close + The name of the ActionType 3786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor + + + + Roller Shutter + The name of the DeviceClass (1039b7ee-5351-400b-a477-5b8fc1447138) + + + + Shutter status changed + The name of the autocreated EventType (1386029d-f3a6-4b47-978a-ac1a581aac0f) + + + + shutterStatus + The name of the ParamType of StateType (1386029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass rollerShutter + + + + stop + The name of the ActionType 27860292-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter + + + + close + The name of the ActionType 37860293-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter + + + + Color Bulb + The name of the DeviceClass (1039b7ee-5121-400b-a477-5b8fc14471ff) + + + + Color temperature changed + The name of the autocreated EventType (cff4206f-f219-4f06-93c4-4ca515a56f79) + + + + colorTemperature + The name of the ParamType of StateType (cff4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass colorBulb + + + + Set color temperature + The name of the autocreated ActionType (cff4206f-f219-4f06-93c4-4ca515a56f79) + + + + Color changed + The name of the autocreated EventType (df5423f1-b924-4b20-80b6-77eecc65d089) + + + + color + The name of the ParamType of StateType (df5423f1-b924-4b20-80b6-77eecc65d089) of DeviceClass colorBulb + + + + Set color + The name of the autocreated ActionType (df5423f1-b924-4b20-80b6-77eecc65d089) + + + + Brightness changed + The name of the autocreated EventType (90e91f11-a208-468c-a5a2-7f47e08229e2) + + + + brightness + The name of the ParamType of StateType (90e91f11-a208-468c-a5a2-7f47e08229e2) of DeviceClass colorBulb + + + + Set brigtness + The name of the autocreated ActionType (90e91f11-a208-468c-a5a2-7f47e08229e2) + + + + Socket + The name of the DeviceClass (1039b7ee-5351-400b-a477-5b8fc14471ff) + + + + Finger Print Sensor + The name of the DeviceClass (45906fb3-9bf5-4331-9b69-0a0407b8511e) + + + + Access granted + The name of the EventType 1d2dde79-7121-4f8c-b7c1-904ced66a79e of deviceClass fingerPrintSensor + + + + Access denied + The name of the EventType 992b7742-af0c-447c-bd94-9ec70b872268 of deviceClass fingerPrintSensor + + + + Smart Meter + The name of the DeviceClass (c242f229-d3f4-4d3d-854c-817b52aa18ab) + + + + Reachable changed + The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) + + + + Power consumption changed + The name of the autocreated EventType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) + + + + powerConsumption + The name of the ParamType of StateType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) of DeviceClass smartMeter + + + + Today's energy production changed + The name of the autocreated EventType (5ac91819-c855-441c-a734-ee5cc0514822) + + + + energyToday + The name of the ParamType of StateType (5ac91819-c855-441c-a734-ee5cc0514822) of DeviceClass smartMeter + + + + Battery + The name of the DeviceClass (280c481e-757a-4af7-b1d3-dc9cfc1d46a5) + + + + Charging amount changed + The name of the autocreated EventType (c977e60a-e820-4647-addb-cf0b39732ffb) + + + + charging + The name of the ParamType of StateType (c977e60a-e820-4647-addb-cf0b39732ffb) of DeviceClass battery + + + + Max charging power changed + The name of the autocreated EventType (bdf328a6-eebc-4b67-8165-551bc21e9be6) + + + + maxCharging + The name of the ParamType of StateType (bdf328a6-eebc-4b67-8165-551bc21e9be6) of DeviceClass battery + + + + Set max charging power + The name of the autocreated ActionType (bdf328a6-eebc-4b67-8165-551bc21e9be6) + + + + Heating Rod + The name of the DeviceClass (b2565887-443a-45ae-a2e7-67fb1b1003d8) + + + + Power + The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) + + + + Max power changed + The name of the autocreated EventType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) + + + + maxPower + The name of the ParamType of StateType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) of DeviceClass heatingRod + + + + Set max power + The name of the autocreated ActionType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) + + + + Target water temperature changed + The name of the autocreated EventType (49388b11-8076-4698-8091-5c5f5762fd08) + + + + waterTemperature + The name of the ParamType of StateType (49388b11-8076-4698-8091-5c5f5762fd08) of DeviceClass heatingRod + + + + Set target water temperature + The name of the autocreated ActionType (49388b11-8076-4698-8091-5c5f5762fd08) + + + + Netatmo Indoor Station + The name of the DeviceClass (7f1696e3-3145-421e-9a42-5bd3b2fd0e2c) + + + + Last update changed + The name of the autocreated EventType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) + + + + updateTime + The name of the ParamType of StateType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) of DeviceClass netatmoIndoor + + + + Pressure changed + The name of the autocreated EventType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) + + + + pressure + The name of the ParamType of StateType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) of DeviceClass netatmoIndoor + + + + Noise changed + The name of the autocreated EventType (b16ea43e-75ef-4bee-ade6-839682ec3068) + + + + noise + The name of the ParamType of StateType (b16ea43e-75ef-4bee-ade6-839682ec3068) of DeviceClass netatmoIndoor + + + + CO2 changed + The name of the autocreated EventType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) + + + + co2 + The name of the ParamType of StateType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) of DeviceClass netatmoIndoor + + + + Wifi signal strength changed + The name of the autocreated EventType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) + + + + wifiStrength + The name of the ParamType of StateType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) of DeviceClass netatmoIndoor + + + + Garden sensor + The name of the DeviceClass (b759f558-b484-45b6-9132-218d135c27d6) + + + + Soil moisture changed + The name of the autocreated EventType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) + + + + soilMoisture + The name of the ParamType of StateType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) of DeviceClass gardenSensor + + + + Light intensity changed + The name of the autocreated EventType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) + + + + lightIntensity + The name of the ParamType of StateType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) of DeviceClass gardenSensor + + + + Water valve + The name of the DeviceClass (8fc2e79b-1770-4b18-bf01-78ed15893a81) + + + + From f4cf196d621446a56dc9d9a9644fabceb0a59e84 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 14 Mar 2018 19:49:23 +0100 Subject: [PATCH 53/62] play around with hue refresh timers --- philipshue/devicepluginphilipshue.cpp | 45 +++++++++++++++++---------- philipshue/devicepluginphilipshue.h | 5 +-- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/philipshue/devicepluginphilipshue.cpp b/philipshue/devicepluginphilipshue.cpp index d8d8e2ec..7c782bb8 100644 --- a/philipshue/devicepluginphilipshue.cpp +++ b/philipshue/devicepluginphilipshue.cpp @@ -63,13 +63,38 @@ DevicePluginPhilipsHue::DevicePluginPhilipsHue() DevicePluginPhilipsHue::~DevicePluginPhilipsHue() { - hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer); + hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer1Sec); + hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer5Sec); + hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer15Sec); } void DevicePluginPhilipsHue::init() { - m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(5); - connect(m_pluginTimer, &PluginTimer::timeout, this, &DevicePluginPhilipsHue::onPluginTimer); + m_pluginTimer1Sec = hardwareManager()->pluginTimerManager()->registerTimer(1); + connect(m_pluginTimer1Sec, &PluginTimer::timeout, this, [this]() { + // refresh sensors every second + if (m_remotes.isEmpty()) { + return; + } + foreach (HueBridge *bridge, m_bridges.keys()) { + refreshSensors(bridge); + } + }); + m_pluginTimer5Sec = hardwareManager()->pluginTimerManager()->registerTimer(5); + connect(m_pluginTimer5Sec, &PluginTimer::timeout, this, [this]() { + // refresh lights every 5 seconds + foreach (HueBridge *bridge, m_bridges.keys()) { + refreshLights(bridge); + } + }); + m_pluginTimer15Sec = hardwareManager()->pluginTimerManager()->registerTimer(15); + connect(m_pluginTimer15Sec, &PluginTimer::timeout, this, [this]() { + // refresh bridges every 15 seconds + foreach (Device *device, m_bridges.values()) { + refreshBridge(device); + } + }); + } DeviceManager::DeviceError DevicePluginPhilipsHue::discoverDevices(const DeviceClassId &deviceClassId, const ParamList ¶ms) @@ -656,13 +681,6 @@ void DevicePluginPhilipsHue::onRemoteButtonEvent(const int &buttonCode) emitEvent(Event(id, m_remotes.value(remote)->id(), ParamList() << param)); } -void DevicePluginPhilipsHue::onPluginTimer() -{ - foreach (Device *device, m_bridges.values()) { - refreshBridge(device); - } -} - void DevicePluginPhilipsHue::onUpnpDiscoveryFinished() { qCDebug(dcPhilipsHue()) << "Upnp discovery finished"; @@ -1032,10 +1050,6 @@ void DevicePluginPhilipsHue::processBridgeRefreshResponse(Device *device, const default: break; } - - // do lights/sensor update right after successful bridge update - HueBridge *bridge = m_bridges.key(device); - refreshLights(bridge); } void DevicePluginPhilipsHue::processLightsRefreshResponse(Device *device, const QByteArray &data) @@ -1070,9 +1084,6 @@ void DevicePluginPhilipsHue::processLightsRefreshResponse(Device *device, const } } } - - if (!m_remotes.isEmpty()) - refreshSensors(m_bridges.key(device)); } void DevicePluginPhilipsHue::processSensorsRefreshResponse(Device *device, const QByteArray &data) diff --git a/philipshue/devicepluginphilipshue.h b/philipshue/devicepluginphilipshue.h index bdea4dfa..3641a691 100644 --- a/philipshue/devicepluginphilipshue.h +++ b/philipshue/devicepluginphilipshue.h @@ -59,14 +59,15 @@ private slots: void lightStateChanged(); void remoteStateChanged(); void onRemoteButtonEvent(const int &buttonCode); - void onPluginTimer(); private slots: void onUpnpDiscoveryFinished(); void networkManagerReplyReady(); private: - PluginTimer *m_pluginTimer = nullptr; + PluginTimer *m_pluginTimer1Sec = nullptr; + PluginTimer *m_pluginTimer5Sec = nullptr; + PluginTimer *m_pluginTimer15Sec = nullptr; QHash m_pairingRequests; QHash m_informationRequests; From 32fac10a88d9f21c6d7dab04b3f53f67b10ed80a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 23 Mar 2018 20:16:41 +0100 Subject: [PATCH 54/62] Clean up hue remote debug output --- philipshue/devicepluginphilipshue.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/philipshue/devicepluginphilipshue.cpp b/philipshue/devicepluginphilipshue.cpp index 7c782bb8..b1d4073d 100644 --- a/philipshue/devicepluginphilipshue.cpp +++ b/philipshue/devicepluginphilipshue.cpp @@ -1109,7 +1109,6 @@ void DevicePluginPhilipsHue::processSensorsRefreshResponse(Device *device, const QVariantMap sensorMap = sensorsMap.value(sensorId).toMap(); foreach (HueRemote *remote, m_remotes.keys()) { if (remote->id() == sensorId.toInt() && remote->bridgeId() == device->id()) { - qCDebug(dcPhilipsHue) << "update remote" << remote->id() << remote->name(); remote->updateStates(sensorMap.value("state").toMap(), sensorMap.value("config").toMap()); } } From 7c95ca87148f91d162c369b4b3cc9bd11dd95b3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 23 Mar 2018 20:34:28 +0100 Subject: [PATCH 55/62] Update packages --- debian/control | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 3f2fe399..35d7b079 100644 --- a/debian/control +++ b/debian/control @@ -653,7 +653,8 @@ Depends: nymea-plugin-awattar, nymea-plugin-wakeonlan, nymea-plugin-wemo, nymea-plugin-elgato, - nymea-plugin-senic + nymea-plugin-senic, + nymea-plugin-keba, Replaces: guh-plugins Description: Plugins for nymea IoT server - the default plugin collection The nymea daemon is a plugin based IoT (Internet of Things) server. The @@ -728,6 +729,8 @@ Package: nymea-plugins-all Section: libs Architecture: all Depends: nymea-plugins, + nymea-plugin-simulation, + nymea-plugin-snapd, nymea-plugins-433mhz, nymea-plugins-maker, nymea-plugins-merkurboard, From 4e7eede8fc79e8a00da8b17ce23c8612b1c9600a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 23 Mar 2018 20:53:24 +0100 Subject: [PATCH 56/62] Update light value to illuminance --- simulation/devicepluginsimulation.cpp | 4 +--- simulation/devicepluginsimulation.json | 10 +++++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/simulation/devicepluginsimulation.cpp b/simulation/devicepluginsimulation.cpp index 51710ab3..dd2d6334 100644 --- a/simulation/devicepluginsimulation.cpp +++ b/simulation/devicepluginsimulation.cpp @@ -234,8 +234,6 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, int DevicePluginSimulation::generateRandomIntValue(int min, int max) { - // Seed the random generator with current time - qsrand(QDateTime::currentMSecsSinceEpoch() / 1000); int value = ((qrand() % ((max + 1) - min)) + min); // qCDebug(dcSimulation()) << "Generateed random int value: [" << min << ", " << max << "] -->" << value; return value; @@ -276,7 +274,7 @@ void DevicePluginSimulation::onPluginTimer20Seconds() // Garden sensor device->setStateValue(gardenSensorTemperatureStateTypeId, generateRandomDoubleValue(20, 23)); device->setStateValue(gardenSensorSoilMoistureStateTypeId, generateRandomIntValue(40, 60)); - device->setStateValue(gardenSensorLightIntensityStateTypeId, generateRandomIntValue(40, 60)); + device->setStateValue(gardenSensorIlluminanceStateTypeId, generateRandomIntValue(20, 80)); device->setStateValue(gardenSensorBatteryLevelStateTypeId, generateRandomIntValue(25, 90)); device->setStateValue(gardenSensorBatteryCriticalStateTypeId, device->stateValue(gardenSensorBatteryLevelStateTypeId).toDouble() <= 30); device->setStateValue(gardenSensorConnectedStateTypeId, true); diff --git a/simulation/devicepluginsimulation.json b/simulation/devicepluginsimulation.json index 691c36b3..d0cf974c 100644 --- a/simulation/devicepluginsimulation.json +++ b/simulation/devicepluginsimulation.json @@ -763,12 +763,12 @@ }, { "id": "9781f0a5-3478-4291-ab51-9daa1ba0e44e", - "name": "lightIntensity", - "displayName": "Light intensity", - "displayNameEvent": "Light intensity changed", + "name": "illuminance", + "displayName": "Illuminance", + "displayNameEvent": "Illuminance changed", "type": "double", - "unit": "Candela", - "defaultValue": 0 + "unit": "Lux", + "defaultValue": 20 }, { "id": "45c0de32-b519-47d7-9f82-e5f09d1542d4", From 686e2556a001bde3b2ec033685ccebbe3cd2979c Mon Sep 17 00:00:00 2001 From: Jenkins Date: Mon, 26 Mar 2018 11:42:21 +0200 Subject: [PATCH 57/62] Automatic translations update by Jenkins --- ...68429-e312-4c82-9eab-e1cd996e43d6-en_US.ts | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts b/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts index d576089c..e49dc380 100644 --- a/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts +++ b/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts @@ -546,20 +546,20 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the ParamType of StateType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) of DeviceClass gardenSensor - - Light intensity changed - The name of the autocreated EventType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) - - - - lightIntensity - The name of the ParamType of StateType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) of DeviceClass gardenSensor - - Water valve The name of the DeviceClass (8fc2e79b-1770-4b18-bf01-78ed15893a81) + + Illuminance changed + The name of the autocreated EventType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) + + + + illuminance + The name of the ParamType of StateType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) of DeviceClass gardenSensor + + From 523850b7c2b188bd7ba772d30c1ddd86213d1e45 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Thu, 15 Mar 2018 11:46:07 +0100 Subject: [PATCH 58/62] switch philips hue plugin to use new parenting features --- philipshue/devicepluginphilipshue.cpp | 50 +++++--------- philipshue/devicepluginphilipshue.json | 92 -------------------------- philipshue/huedevice.cpp | 10 --- philipshue/huedevice.h | 6 -- 4 files changed, 18 insertions(+), 140 deletions(-) diff --git a/philipshue/devicepluginphilipshue.cpp b/philipshue/devicepluginphilipshue.cpp index b1d4073d..902a897f 100644 --- a/philipshue/devicepluginphilipshue.cpp +++ b/philipshue/devicepluginphilipshue.cpp @@ -150,16 +150,15 @@ DeviceManager::DeviceSetupStatus DevicePluginPhilipsHue::setupDevice(Device *dev if (device->deviceClassId() == hueLightDeviceClassId) { qCDebug(dcPhilipsHue) << "Setup Hue color light" << device->params(); + HueBridge *bridge = m_bridges.key(myDevices().findById(device->parentId())); HueLight *hueLight = new HueLight(this); + hueLight->setHostAddress(bridge->hostAddress()); + hueLight->setApiKey(bridge->apiKey()); hueLight->setId(device->paramValue(hueLightLightIdParamTypeId).toInt()); - hueLight->setHostAddress(QHostAddress(device->paramValue(hueLightHostParamTypeId).toString())); hueLight->setName(device->paramValue(hueLightNameParamTypeId).toString()); - hueLight->setApiKey(device->paramValue(hueLightApiKeyParamTypeId).toString()); hueLight->setModelId(device->paramValue(hueLightModelIdParamTypeId).toString()); hueLight->setUuid(device->paramValue(hueLightUuidParamTypeId).toString()); hueLight->setType(device->paramValue(hueLightTypeParamTypeId).toString()); - hueLight->setBridgeId(DeviceId(device->paramValue(hueLightBridgeParamTypeId).toString())); - device->setParentId(hueLight->bridgeId()); connect(hueLight, &HueLight::stateChanged, this, &DevicePluginPhilipsHue::lightStateChanged); m_lights.insert(hueLight, device); @@ -176,16 +175,15 @@ DeviceManager::DeviceSetupStatus DevicePluginPhilipsHue::setupDevice(Device *dev if (device->deviceClassId() == hueWhiteLightDeviceClassId) { qCDebug(dcPhilipsHue) << "Setup Hue white light" << device->params(); + HueBridge *bridge = m_bridges.key(myDevices().findById(device->parentId())); HueLight *hueLight = new HueLight(this); + hueLight->setHostAddress(bridge->hostAddress()); + hueLight->setApiKey(bridge->apiKey()); hueLight->setId(device->paramValue(hueWhiteLightLightIdParamTypeId).toInt()); - hueLight->setHostAddress(QHostAddress(device->paramValue(hueWhiteLightHostParamTypeId).toString())); hueLight->setName(device->paramValue(hueWhiteLightNameParamTypeId).toString()); - hueLight->setApiKey(device->paramValue(hueWhiteLightApiKeyParamTypeId).toString()); hueLight->setModelId(device->paramValue(hueWhiteLightModelIdParamTypeId).toString()); hueLight->setUuid(device->paramValue(hueWhiteLightUuidParamTypeId).toString()); hueLight->setType(device->paramValue(hueWhiteLightTypeParamTypeId).toString()); - hueLight->setBridgeId(DeviceId(device->paramValue(hueWhiteLightBridgeParamTypeId).toString())); - device->setParentId(hueLight->bridgeId()); connect(hueLight, &HueLight::stateChanged, this, &DevicePluginPhilipsHue::lightStateChanged); @@ -202,16 +200,15 @@ DeviceManager::DeviceSetupStatus DevicePluginPhilipsHue::setupDevice(Device *dev if (device->deviceClassId() == hueRemoteDeviceClassId) { qCDebug(dcPhilipsHue) << "Setup Hue remote" << device->params() << device->deviceClassId(); + HueBridge *bridge = m_bridges.key(myDevices().findById(device->parentId())); HueRemote *hueRemote = new HueRemote(this); + hueRemote->setHostAddress(bridge->hostAddress()); + hueRemote->setApiKey(bridge->apiKey()); hueRemote->setId(device->paramValue(hueRemoteSensorIdParamTypeId).toInt()); - hueRemote->setHostAddress(QHostAddress(device->paramValue(hueRemoteHostParamTypeId).toString())); hueRemote->setName(device->paramValue(hueRemoteNameParamTypeId).toString()); - hueRemote->setApiKey(device->paramValue(hueRemoteApiKeyParamTypeId).toString()); hueRemote->setModelId(device->paramValue(hueRemoteModelIdParamTypeId).toString()); hueRemote->setType(device->paramValue(hueRemoteTypeParamTypeId).toString()); hueRemote->setUuid(device->paramValue(hueRemoteUuidParamTypeId).toString()); - hueRemote->setBridgeId(DeviceId(device->paramValue(hueRemoteBridgeParamTypeId).toString())); - device->setParentId(hueRemote->bridgeId()); device->setName(hueRemote->name()); @@ -227,9 +224,7 @@ DeviceManager::DeviceSetupStatus DevicePluginPhilipsHue::setupDevice(Device *dev HueRemote *hueTap = new HueRemote(this); hueTap->setName(device->name()); hueTap->setId(device->paramValue(hueTapSensorIdParamTypeId).toInt()); - hueTap->setBridgeId(DeviceId(device->paramValue(hueTapBridgeParamTypeId).toString())); hueTap->setModelId(device->paramValue(hueTapModelIdParamTypeId).toString()); - device->setParentId(hueTap->bridgeId()); connect(hueTap, &HueRemote::stateChanged, this, &DevicePluginPhilipsHue::remoteStateChanged); connect(hueTap, &HueRemote::buttonPressed, this, &DevicePluginPhilipsHue::onRemoteButtonEvent); @@ -883,12 +878,9 @@ void DevicePluginPhilipsHue::processBridgeLightDiscoveryResponse(Device *device, // check if this is a white light if (model == "LWB004" || model == "LWB006" || model == "LWB007") { - DeviceDescriptor descriptor(hueWhiteLightDeviceClassId, "Philips Hue White Light", lightMap.value("name").toString()); + DeviceDescriptor descriptor(hueWhiteLightDeviceClassId, "Philips Hue White Light", lightMap.value("name").toString(), device->id()); ParamList params; params.append(Param(hueWhiteLightNameParamTypeId, lightMap.value("name").toString())); - params.append(Param(hueWhiteLightApiKeyParamTypeId, device->paramValue(hueBridgeBridgeApiKeyParamTypeId).toString())); - params.append(Param(hueWhiteLightBridgeParamTypeId, device->id().toString())); - params.append(Param(hueWhiteLightHostParamTypeId, device->paramValue(hueBridgeBridgeHostParamTypeId).toString())); params.append(Param(hueWhiteLightModelIdParamTypeId, model)); params.append(Param(hueWhiteLightTypeParamTypeId, lightMap.value("type").toString())); params.append(Param(hueWhiteLightUuidParamTypeId, uuid)); @@ -899,12 +891,9 @@ void DevicePluginPhilipsHue::processBridgeLightDiscoveryResponse(Device *device, qCDebug(dcPhilipsHue) << "Found new white light" << lightMap.value("name").toString() << model; } else { - DeviceDescriptor descriptor(hueLightDeviceClassId, "Philips Hue Light", lightMap.value("name").toString()); + DeviceDescriptor descriptor(hueLightDeviceClassId, "Philips Hue Light", lightMap.value("name").toString(), device->id()); ParamList params; params.append(Param(hueLightNameParamTypeId, lightMap.value("name").toString())); - params.append(Param(hueLightApiKeyParamTypeId, device->paramValue(hueBridgeBridgeApiKeyParamTypeId).toString())); - params.append(Param(hueLightBridgeParamTypeId, device->id().toString())); - params.append(Param(hueLightHostParamTypeId, device->paramValue(hueBridgeBridgeHostParamTypeId).toString())); params.append(Param(hueLightModelIdParamTypeId, model)); params.append(Param(hueLightTypeParamTypeId, lightMap.value("type").toString())); params.append(Param(hueLightUuidParamTypeId, uuid)); @@ -955,12 +944,9 @@ void DevicePluginPhilipsHue::processBridgeSensorDiscoveryResponse(Device *device continue; if (model == "RWL021" || model == "RWL020") { - DeviceDescriptor descriptor(hueRemoteDeviceClassId, "Philips Hue Remote", sensorMap.value("name").toString()); + DeviceDescriptor descriptor(hueRemoteDeviceClassId, "Philips Hue Remote", sensorMap.value("name").toString(), device->id()); ParamList params; params.append(Param(hueRemoteNameParamTypeId, sensorMap.value("name").toString())); - params.append(Param(hueRemoteApiKeyParamTypeId, device->paramValue(hueBridgeBridgeApiKeyParamTypeId).toString())); - params.append(Param(hueRemoteBridgeParamTypeId, device->id().toString())); - params.append(Param(hueRemoteHostParamTypeId, device->paramValue(hueBridgeBridgeHostParamTypeId).toString())); params.append(Param(hueRemoteModelIdParamTypeId, model)); params.append(Param(hueRemoteTypeParamTypeId, sensorMap.value("type").toString())); params.append(Param(hueRemoteUuidParamTypeId, uuid)); @@ -969,9 +955,8 @@ void DevicePluginPhilipsHue::processBridgeSensorDiscoveryResponse(Device *device emit autoDevicesAppeared(hueRemoteDeviceClassId, {descriptor}); qCDebug(dcPhilipsHue) << "Found new remote" << sensorMap.value("name").toString() << model; } else if (model == "ZGPSWITCH") { - DeviceDescriptor descriptor(hueTapDeviceClassId, "Hue Tap", sensorMap.value("name").toString()); + DeviceDescriptor descriptor(hueTapDeviceClassId, "Hue Tap", sensorMap.value("name").toString(), device->id()); ParamList params; - params.append(Param(hueTapBridgeParamTypeId, device->id().toString())); params.append(Param(hueTapUuidParamTypeId, uuid)); params.append(Param(hueTapModelIdParamTypeId, model)); params.append(Param(hueTapSensorIdParamTypeId, sensorId)); @@ -1079,7 +1064,7 @@ void DevicePluginPhilipsHue::processLightsRefreshResponse(Device *device, const QVariantMap lightMap = lightsMap.value(lightId).toMap(); // get the light of this bridge foreach (HueLight *light, m_lights.keys()) { - if (light->id() == lightId.toInt() && light->bridgeId() == device->id()) { + if (light->id() == lightId.toInt() && m_lights.value(light)->parentId() == device->id()) { light->updateStates(lightMap.value("state").toMap()); } } @@ -1108,7 +1093,8 @@ void DevicePluginPhilipsHue::processSensorsRefreshResponse(Device *device, const foreach (const QString &sensorId, sensorsMap.keys()) { QVariantMap sensorMap = sensorsMap.value(sensorId).toMap(); foreach (HueRemote *remote, m_remotes.keys()) { - if (remote->id() == sensorId.toInt() && remote->bridgeId() == device->id()) { + if (remote->id() == sensorId.toInt() && m_remotes.value(remote)->parentId() == device->id()) { + qCDebug(dcPhilipsHue) << "update remote" << remote->id() << remote->name(); remote->updateStates(sensorMap.value("state").toMap(), sensorMap.value("config").toMap()); } } @@ -1275,7 +1261,7 @@ void DevicePluginPhilipsHue::bridgeReachableChanged(Device *device, const bool & device->setStateValue(hueBridgeConnectedStateTypeId, false); foreach (HueLight *light, m_lights.keys()) { - if (light->bridgeId() == device->id()) { + if (m_lights.value(light)->parentId() == device->id()) { light->setReachable(false); if (m_lights.value(light)->deviceClassId() == hueLightDeviceClassId) { m_lights.value(light)->setStateValue(hueLightConnectedStateTypeId, false); @@ -1286,7 +1272,7 @@ void DevicePluginPhilipsHue::bridgeReachableChanged(Device *device, const bool & } foreach (HueRemote *remote, m_remotes.keys()) { - if (remote->bridgeId() == device->id()) { + if (m_remotes.value(remote)->parentId() == device->id()) { remote->setReachable(false); if (m_remotes.value(remote)->deviceClassId() == hueRemoteDeviceClassId) { m_remotes.value(remote)->setStateValue(hueRemoteConnectedStateTypeId, false); diff --git a/philipshue/devicepluginphilipshue.json b/philipshue/devicepluginphilipshue.json index 81b3bbfd..e553ab38 100644 --- a/philipshue/devicepluginphilipshue.json +++ b/philipshue/devicepluginphilipshue.json @@ -162,13 +162,6 @@ "type" : "QString", "inputType": "TextLine" }, - { - "id": "33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef", - "name": "bridge", - "displayName": "bridge", - "type" : "QString", - "readOnly": true - }, { "id": "095a463b-f59e-46b1-989a-a71f9cbe3e30", "name": "modelId", @@ -190,22 +183,6 @@ "type" : "QString", "readOnly": true }, - { - "id": "99458d90-d171-4600-ba08-4818a4aaed68", - "name": "apiKey", - "displayName": "api key", - "type" : "QString", - "inputType": "TextLine", - "readOnly": true - }, - { - "id": "56d14f2f-1b20-4004-a333-87ac09fa54d2", - "name": "host", - "displayName": "host address", - "type" : "QString", - "inputType": "IPv4Address", - "readOnly": true - }, { "id": "491dc012-ccf2-4d3a-9f18-add98f7374af", "name": "lightId", @@ -336,13 +313,6 @@ "type" : "QString", "inputType": "TextLine" }, - { - "id": "33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef", - "name": "bridge", - "displayName": "bridge", - "type" : "QString", - "readOnly": true - }, { "id": "095a463b-f59e-46b1-989a-a71f9cbe3e30", "name": "modelId", @@ -364,22 +334,6 @@ "type" : "QString", "readOnly": true }, - { - "id": "99458d90-d171-4600-ba08-4818a4aaed68", - "name": "apiKey", - "displayName": "api key", - "type" : "QString", - "inputType": "TextLine", - "readOnly": true - }, - { - "id": "56d14f2f-1b20-4004-a333-87ac09fa54d2", - "name": "host", - "displayName": "host address", - "type" : "QString", - "inputType": "IPv4Address", - "readOnly": true - }, { "id": "491dc012-ccf2-4d3a-9f18-add98f7374af", "name": "lightId", @@ -464,13 +418,6 @@ "type" : "QString", "inputType": "TextLine" }, - { - "id": "33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef", - "name": "bridge", - "displayName": "bridge", - "type" : "QString", - "readOnly": true - }, { "id": "095a463b-f59e-46b1-989a-a71f9cbe3e30", "name": "modelId", @@ -492,22 +439,6 @@ "type" : "QString", "readOnly": true }, - { - "id": "99458d90-d171-4600-ba08-4818a4aaed68", - "name": "apiKey", - "displayName": "api key", - "type" : "QString", - "inputType": "TextLine", - "readOnly": true - }, - { - "id": "56d14f2f-1b20-4004-a333-87ac09fa54d2", - "name": "host", - "displayName": "host address", - "type" : "QString", - "inputType": "IPv4Address", - "readOnly": true - }, { "id": "2ddb571b-149f-4f08-a76a-78b7d3aa27e0", "name": "sensorId", @@ -631,13 +562,6 @@ "type" : "QString", "inputType": "TextLine" }, - { - "id": "c9e7483b-2f4e-4280-a437-8471f4dc9b22", - "name": "bridge", - "displayName": "bridge", - "type" : "QString", - "readOnly": true - }, { "id": "62d92175-db3a-4da2-a72b-f58f34cb6911", "name": "modelId", @@ -659,22 +583,6 @@ "type" : "QString", "readOnly": true }, - { - "id": "fb507641-9c78-4a28-937d-711775454e90", - "name": "apiKey", - "displayName": "api key", - "type" : "QString", - "inputType": "TextLine", - "readOnly": true - }, - { - "id": "6be56a1b-f64a-4188-a052-1fab11e01718", - "name": "host", - "displayName": "host address", - "type" : "QString", - "inputType": "IPv4Address", - "readOnly": true - }, { "id": "5eca2b24-8986-4487-bc12-50e91d023d97", "name": "sensorId", diff --git a/philipshue/huedevice.cpp b/philipshue/huedevice.cpp index 3f4ae5c5..a0503579 100644 --- a/philipshue/huedevice.cpp +++ b/philipshue/huedevice.cpp @@ -48,16 +48,6 @@ void HueDevice::setName(const QString &name) m_name = name; } -DeviceId HueDevice::bridgeId() const -{ - return m_bridgeId; -} - -void HueDevice::setBridgeId(const DeviceId &bridgeId) -{ - m_bridgeId = bridgeId; -} - QHostAddress HueDevice::hostAddress() const { return m_hostAddress; diff --git a/philipshue/huedevice.h b/philipshue/huedevice.h index 6679e9f3..94811667 100644 --- a/philipshue/huedevice.h +++ b/philipshue/huedevice.h @@ -29,8 +29,6 @@ #include #include -#include "typeutils.h" - class HueDevice : public QObject { Q_OBJECT @@ -43,9 +41,6 @@ public: QString name() const; void setName(const QString &name); - DeviceId bridgeId() const; - void setBridgeId(const DeviceId &bridgeId); - QHostAddress hostAddress() const; void setHostAddress(const QHostAddress hostAddress); @@ -74,7 +69,6 @@ private: QString m_apiKey; QString m_modelId; QString m_uuid; - DeviceId m_bridgeId; QString m_type; QString m_softwareVersion; From 90e6372f0368b20466ac0fea850d8357c154fb82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Thu, 29 Mar 2018 10:15:57 +0200 Subject: [PATCH 59/62] Fix plugins json content according to new white list parsing --- awattar/devicepluginawattar.cpp | 6 ++-- denon/deviceplugindenon.cpp | 8 +++--- elgato/devicepluginelgato.cpp | 16 +++++------ eq-3/deviceplugineq-3.cpp | 4 +-- gpio/deviceplugingpio.cpp | 8 +++--- keba/devicepluginkeba.cpp | 8 +++--- kodi/devicepluginkodi.cpp | 4 +-- multisensor/devicepluginmultisensor.cpp | 26 +++++++++--------- netatmo/devicepluginnetatmo.json | 2 +- orderbutton/devicepluginorderbutton.cpp | 4 +-- philipshue/devicepluginphilipshue.cpp | 14 +++++----- plantcare/devicepluginplantcare.cpp | 10 +++---- remotessh/devicepluginremotessh.cpp | 2 +- simulation/devicepluginsimulation.cpp | 32 ++++++++++------------ simulation/devicepluginsimulation.json | 20 ++++---------- snapd/devicepluginsnapd.cpp | 12 ++++---- snapd/devicepluginsnapd.json | 12 ++++---- tcpcommander/deviceplugintcpcommander.json | 30 ++++++-------------- usbwde/devicepluginusbwde.json | 6 ++-- wemo/devicepluginwemo.cpp | 2 +- ws2812/devicepluginws2812.cpp | 28 +++++++++---------- 21 files changed, 115 insertions(+), 139 deletions(-) diff --git a/awattar/devicepluginawattar.cpp b/awattar/devicepluginawattar.cpp index 8922a418..96ed5627 100644 --- a/awattar/devicepluginawattar.cpp +++ b/awattar/devicepluginawattar.cpp @@ -133,9 +133,9 @@ DeviceManager::DeviceError DevicePluginAwattar::executeAction(Device *device, co return DeviceManager::DeviceErrorHardwareNotAvailable; if (action.actionTypeId() == awattarSgSyncModeActionTypeId) { - qCDebug(dcAwattar) << "Set sg sync mode to" << action.param(awattarSgSyncModeStateParamTypeId).value(); - device->setStateValue(awattarSgSyncModeStateTypeId, action.param(awattarSgSyncModeStateParamTypeId).value()); - if (action.param(awattarSgSyncModeStateParamTypeId).value() == "auto") + qCDebug(dcAwattar) << "Set sg sync mode to" << action.param(awattarSgSyncModeActionParamTypeId).value(); + device->setStateValue(awattarSgSyncModeStateTypeId, action.param(awattarSgSyncModeActionParamTypeId).value()); + if (action.param(awattarSgSyncModeActionParamTypeId).value() == "auto") setSgMode(m_autoSgMode); return DeviceManager::DeviceErrorNoError; diff --git a/denon/deviceplugindenon.cpp b/denon/deviceplugindenon.cpp index 31502663..8c945c56 100644 --- a/denon/deviceplugindenon.cpp +++ b/denon/deviceplugindenon.cpp @@ -116,9 +116,9 @@ DeviceManager::DeviceError DevicePluginDenon::executeAction(Device *device, cons // Print information that we are executing now the update action qCDebug(dcDenon) << "set power action" << action.id(); - qCDebug(dcDenon) << "power: " << action.param(AVRX1000PowerStateParamTypeId).value().Bool; + qCDebug(dcDenon) << "power: " << action.param(AVRX1000PowerActionParamTypeId).value().Bool; - if (action.param(AVRX1000PowerStateParamTypeId).value().toBool() == true){ + if (action.param(AVRX1000PowerActionParamTypeId).value().toBool() == true){ QByteArray cmd = "PWON\r"; qCDebug(dcDenon) << "Execute power: " << action.id() << cmd; m_denonConnection->sendData(cmd); @@ -132,7 +132,7 @@ DeviceManager::DeviceError DevicePluginDenon::executeAction(Device *device, cons } else if (action.actionTypeId() == AVRX1000VolumeActionTypeId) { - QByteArray vol = action.param(AVRX1000VolumeStateParamTypeId).value().toByteArray(); + QByteArray vol = action.param(AVRX1000VolumeActionParamTypeId).value().toByteArray(); QByteArray cmd = "MV" + vol + "\r"; qCDebug(dcDenon) << "Execute volume" << action.id() << cmd; @@ -143,7 +143,7 @@ DeviceManager::DeviceError DevicePluginDenon::executeAction(Device *device, cons } else if (action.actionTypeId() == AVRX1000ChannelActionTypeId) { qCDebug(dcDenon) << "Execute update action" << action.id(); - QByteArray channel = action.param(AVRX1000ChannelStateParamTypeId).value().toByteArray(); + QByteArray channel = action.param(AVRX1000ChannelActionParamTypeId).value().toByteArray(); QByteArray cmd = "SI" + channel + "\r"; qCDebug(dcDenon) << "Change to channel:" << cmd; diff --git a/elgato/devicepluginelgato.cpp b/elgato/devicepluginelgato.cpp index 66ff680f..c9ba8226 100644 --- a/elgato/devicepluginelgato.cpp +++ b/elgato/devicepluginelgato.cpp @@ -478,53 +478,53 @@ DeviceManager::DeviceError DevicePluginElgato::executeAction(Device *device, con AveaBulb *bulb = m_bulbs.value(device); if (action.actionTypeId() == aveaPowerActionTypeId) { - bool power = action.param(aveaPowerStateParamTypeId).value().toBool(); + bool power = action.param(aveaPowerActionParamTypeId).value().toBool(); device->setStateValue(aveaPowerStateTypeId, power); if (!bulb->setPower(power)) return DeviceManager::DeviceErrorHardwareNotAvailable; return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == aveaBrightnessActionTypeId) { - int percentage = action.param(aveaBrightnessStateParamTypeId).value().toInt(); + int percentage = action.param(aveaBrightnessActionParamTypeId).value().toInt(); if (!bulb->setBrightness(percentage)) return DeviceManager::DeviceErrorHardwareNotAvailable; device->setStateValue(aveaBrightnessStateTypeId, percentage); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == aveaColorActionTypeId) { - QColor color = action.param(aveaColorStateParamTypeId).value().value(); + QColor color = action.param(aveaColorActionParamTypeId).value().value(); if (!bulb->setColor(color)) return DeviceManager::DeviceErrorHardwareNotAvailable; device->setStateValue(aveaColorStateTypeId, color); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == aveaWhiteActionTypeId) { - int whiteValue = action.param(aveaWhiteStateParamTypeId).value().toInt(); + int whiteValue = action.param(aveaWhiteActionParamTypeId).value().toInt(); if (!bulb->setWhite(whiteValue)) return DeviceManager::DeviceErrorHardwareNotAvailable; device->setStateValue(aveaWhiteStateTypeId, whiteValue); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == aveaGreenActionTypeId) { - int greenValue = action.param(aveaGreenStateParamTypeId).value().toInt(); + int greenValue = action.param(aveaGreenActionParamTypeId).value().toInt(); if (!bulb->setGreen(greenValue)) return DeviceManager::DeviceErrorHardwareNotAvailable; return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == aveaRedActionTypeId) { - int redValue = action.param(aveaRedStateParamTypeId).value().toInt(); + int redValue = action.param(aveaRedActionParamTypeId).value().toInt(); if (!bulb->setRed(redValue)) return DeviceManager::DeviceErrorHardwareNotAvailable; return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == aveaBlueActionTypeId) { - int blueValue = action.param(aveaBlueStateParamTypeId).value().toInt(); + int blueValue = action.param(aveaBlueActionParamTypeId).value().toInt(); if (!bulb->setBlue(blueValue)) return DeviceManager::DeviceErrorHardwareNotAvailable; return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == aveaFadeActionTypeId) { - int fadeValue = action.param(aveaFadeStateParamTypeId).value().toInt(); + int fadeValue = action.param(aveaFadeActionParamTypeId).value().toInt(); device->setStateValue(aveaFadeStateTypeId, fadeValue); if (!bulb->setFade(fadeValue)) return DeviceManager::DeviceErrorHardwareNotAvailable; diff --git a/eq-3/deviceplugineq-3.cpp b/eq-3/deviceplugineq-3.cpp index 3f4da44f..d3526f04 100644 --- a/eq-3/deviceplugineq-3.cpp +++ b/eq-3/deviceplugineq-3.cpp @@ -162,7 +162,7 @@ DeviceManager::DeviceError DevicePluginEQ3::executeAction(Device *device, const int roomId = device->paramValue(wallThermostateRoomParamTypeId).toInt(); if (action.actionTypeId() == wallThermostateDesiredTemperatureActionTypeId){ - cube->setDeviceSetpointTemp(rfAddress, roomId, action.param(wallThermostateDesiredTemperatureStateParamTypeId).value().toDouble(), action.id()); + cube->setDeviceSetpointTemp(rfAddress, roomId, action.param(wallThermostateDesiredTemperatureActionParamTypeId).value().toDouble(), action.id()); } else if (action.actionTypeId() == wallThermostateSetAutoModeActionTypeId){ cube->setDeviceAutoMode(rfAddress, roomId, action.id()); } else if (action.actionTypeId() == wallThermostateSetManualModeActionTypeId){ @@ -183,7 +183,7 @@ DeviceManager::DeviceError DevicePluginEQ3::executeAction(Device *device, const int roomId = device->paramValue(radiatorThermostateRoomParamTypeId).toInt(); if (action.actionTypeId() == radiatorThermostateDesiredTemperatureActionTypeId){ - cube->setDeviceSetpointTemp(rfAddress, roomId, action.param(radiatorThermostateDesiredTemperatureStateParamTypeId).value().toDouble(), action.id()); + cube->setDeviceSetpointTemp(rfAddress, roomId, action.param(radiatorThermostateDesiredTemperatureActionParamTypeId).value().toDouble(), action.id()); } else if (action.actionTypeId() == radiatorThermostateSetAutoModeActionTypeId){ cube->setDeviceAutoMode(rfAddress, roomId, action.id()); } else if (action.actionTypeId() == radiatorThermostateSetManualModeActionTypeId){ diff --git a/gpio/deviceplugingpio.cpp b/gpio/deviceplugingpio.cpp index 5345b723..441ebc77 100644 --- a/gpio/deviceplugingpio.cpp +++ b/gpio/deviceplugingpio.cpp @@ -297,7 +297,7 @@ DeviceManager::DeviceError DevicePluginGpio::executeAction(Device *device, const if (deviceClass.vendorId() == raspberryPiVendorId) { if (action.actionTypeId() == gpioOutputRpiPowerValueActionTypeId) { bool success = false; - if (action.param(gpioOutputRpiPowerValueStateParamTypeId).value().toBool()) { + if (action.param(gpioOutputRpiPowerValueActionParamTypeId).value().toBool()) { success = gpio->setValue(Gpio::ValueHigh); } else { success = gpio->setValue(Gpio::ValueLow); @@ -309,14 +309,14 @@ DeviceManager::DeviceError DevicePluginGpio::executeAction(Device *device, const } // Set the current state - device->setStateValue(gpioOutputRpiPowerValueStateTypeId, action.param(gpioOutputRpiPowerValueStateParamTypeId).value()); + device->setStateValue(gpioOutputRpiPowerValueStateTypeId, action.param(gpioOutputRpiPowerValueActionParamTypeId).value()); return DeviceManager::DeviceErrorNoError; } } else if (deviceClass.vendorId() == beagleboneBlackVendorId) { if (action.actionTypeId() == gpioOutputBbbPowerValueActionTypeId) { bool success = false; - if (action.param(gpioOutputBbbPowerValueStateParamTypeId).value().toBool()) { + if (action.param(gpioOutputBbbPowerValueActionParamTypeId).value().toBool()) { success = gpio->setValue(Gpio::ValueHigh); } else { success = gpio->setValue(Gpio::ValueLow); @@ -328,7 +328,7 @@ DeviceManager::DeviceError DevicePluginGpio::executeAction(Device *device, const } // Set the current state - device->setStateValue(gpioOutputBbbPowerValueStateTypeId, action.param(gpioOutputBbbPowerValueStateParamTypeId).value()); + device->setStateValue(gpioOutputBbbPowerValueStateTypeId, action.param(gpioOutputBbbPowerValueActionParamTypeId).value()); return DeviceManager::DeviceErrorNoError; } diff --git a/keba/devicepluginkeba.cpp b/keba/devicepluginkeba.cpp index 30f54ba8..f1073c15 100644 --- a/keba/devicepluginkeba.cpp +++ b/keba/devicepluginkeba.cpp @@ -120,17 +120,17 @@ DeviceManager::DeviceError DevicePluginKeba::executeAction(Device *device, const if(action.actionTypeId() == wallboxMaxCurrentActionTypeId){ // Print information that we are executing now the update action - qCDebug(dcKebaKeContact()) << "Update max current to : " << action.param(wallboxMaxCurrentStateParamTypeId).value().toString(); + qCDebug(dcKebaKeContact()) << "Update max current to : " << action.param(wallboxMaxCurrentActionParamTypeId).value().toString(); QByteArray datagram; - datagram.append("curr " + QVariant(action.param(wallboxMaxCurrentStateParamTypeId).value().toInt()*1000).toString()); + datagram.append("curr " + QVariant(action.param(wallboxMaxCurrentActionParamTypeId).value().toInt()*1000).toString()); qCDebug(dcKebaKeContact()) << "Datagram : " << datagram; m_kebaSocket->writeDatagram(datagram.data(),datagram.size(), QHostAddress(device->paramValue(wallboxIpParamTypeId).toString()) , 7090); } else if(action.actionTypeId() == wallboxOutEnableActionTypeId){ // Print information that we are executing now the update action - qCDebug(dcKebaKeContact()) << "output enable : " << action.param(wallboxOutEnableStateParamTypeId).value().toString(); + qCDebug(dcKebaKeContact()) << "output enable : " << action.param(wallboxOutEnableActionParamTypeId).value().toString(); QByteArray datagram; - if(action.param(wallboxOutEnableStateParamTypeId).value().toBool()){ + if(action.param(wallboxOutEnableActionParamTypeId).value().toBool()){ datagram.append("ena 1"); } else{ diff --git a/kodi/devicepluginkodi.cpp b/kodi/devicepluginkodi.cpp index d33aff5c..5f525369 100644 --- a/kodi/devicepluginkodi.cpp +++ b/kodi/devicepluginkodi.cpp @@ -148,10 +148,10 @@ DeviceManager::DeviceError DevicePluginKodi::executeAction(Device *device, const kodi->showNotification(action.param(kodiMessageParamTypeId).value().toString(), 8000, action.param(kodiTypeParamTypeId).value().toString(), action.id()); return DeviceManager::DeviceErrorAsync; } else if (action.actionTypeId() == kodiVolumeActionTypeId) { - kodi->setVolume(action.param(kodiVolumeStateParamTypeId).value().toInt(), action.id()); + kodi->setVolume(action.param(kodiVolumeActionParamTypeId).value().toInt(), action.id()); return DeviceManager::DeviceErrorAsync; } else if (action.actionTypeId() == kodiMuteActionTypeId) { - kodi->setMuted(action.param(kodiMuteStateParamTypeId).value().toBool(), action.id()); + kodi->setMuted(action.param(kodiMuteActionParamTypeId).value().toBool(), action.id()); return DeviceManager::DeviceErrorAsync; } else if (action.actionTypeId() == kodiPressButtonActionTypeId) { kodi->pressButton(action.param(kodiButtonParamTypeId).value().toString(), action.id()); diff --git a/multisensor/devicepluginmultisensor.cpp b/multisensor/devicepluginmultisensor.cpp index 3a332cbf..78842353 100644 --- a/multisensor/devicepluginmultisensor.cpp +++ b/multisensor/devicepluginmultisensor.cpp @@ -136,64 +136,64 @@ DeviceManager::DeviceError DevicePluginMultiSensor::executeAction(Device *device { SensorTag *sensor = m_sensors.value(device); if (action.actionTypeId() == sensorTagBuzzerActionTypeId) { - sensor->setBuzzerPower(action.param(sensorTagBuzzerStateParamTypeId).value().toBool()); + sensor->setBuzzerPower(action.param(sensorTagBuzzerActionParamTypeId).value().toBool()); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagGreenLedActionTypeId) { - sensor->setGreenLedPower(action.param(sensorTagGreenLedStateParamTypeId).value().toBool()); + sensor->setGreenLedPower(action.param(sensorTagGreenLedActionParamTypeId).value().toBool()); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagRedLedActionTypeId) { - sensor->setRedLedPower(action.param(sensorTagRedLedStateParamTypeId).value().toBool()); + sensor->setRedLedPower(action.param(sensorTagRedLedActionParamTypeId).value().toBool()); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagBuzzerImpulseActionTypeId) { sensor->buzzerImpulse(); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagTemperatureSensorEnabledActionTypeId) { - bool enabled = action.param(sensorTagTemperatureSensorEnabledStateParamTypeId).value().toBool(); + bool enabled = action.param(sensorTagTemperatureSensorEnabledActionParamTypeId).value().toBool(); device->setStateValue(sensorTagTemperatureSensorEnabledStateTypeId, enabled); sensor->setTemperatureSensorEnabled(enabled); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagHumiditySensorEnabledActionTypeId) { - bool enabled = action.param(sensorTagHumiditySensorEnabledStateParamTypeId).value().toBool(); + bool enabled = action.param(sensorTagHumiditySensorEnabledActionParamTypeId).value().toBool(); device->setStateValue(sensorTagHumiditySensorEnabledStateTypeId, enabled); sensor->setHumiditySensorEnabled(enabled); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagPressureSensorEnabledActionTypeId) { - bool enabled = action.param(sensorTagPressureSensorEnabledStateParamTypeId).value().toBool(); + bool enabled = action.param(sensorTagPressureSensorEnabledActionParamTypeId).value().toBool(); device->setStateValue(sensorTagPressureSensorEnabledStateTypeId, enabled); sensor->setPressureSensorEnabled(enabled); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagOpticalSensorEnabledActionTypeId) { - bool enabled = action.param(sensorTagOpticalSensorEnabledStateParamTypeId).value().toBool(); + bool enabled = action.param(sensorTagOpticalSensorEnabledActionParamTypeId).value().toBool(); device->setStateValue(sensorTagOpticalSensorEnabledStateTypeId, enabled); sensor->setOpticalSensorEnabled(enabled); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagAccelerometerEnabledActionTypeId) { - bool enabled = action.param(sensorTagAccelerometerEnabledStateParamTypeId).value().toBool(); + bool enabled = action.param(sensorTagAccelerometerEnabledActionParamTypeId).value().toBool(); device->setStateValue(sensorTagAccelerometerEnabledStateTypeId, enabled); sensor->setAccelerometerEnabled(enabled); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagGyroscopeEnabledActionTypeId) { - bool enabled = action.param(sensorTagGyroscopeEnabledStateParamTypeId).value().toBool(); + bool enabled = action.param(sensorTagGyroscopeEnabledActionParamTypeId).value().toBool(); device->setStateValue(sensorTagGyroscopeEnabledStateTypeId, enabled); sensor->setGyroscopeEnabled(enabled); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagMagnetometerEnabledActionTypeId) { - bool enabled = action.param(sensorTagMagnetometerEnabledStateParamTypeId).value().toBool(); + bool enabled = action.param(sensorTagMagnetometerEnabledActionParamTypeId).value().toBool(); device->setStateValue(sensorTagMagnetometerEnabledStateTypeId, enabled); sensor->setMagnetometerEnabled(enabled); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagMeasurementPeriodActionTypeId) { - int period = action.param(sensorTagMeasurementPeriodStateParamTypeId).value().toInt(); + int period = action.param(sensorTagMeasurementPeriodActionParamTypeId).value().toInt(); device->setStateValue(sensorTagMeasurementPeriodStateTypeId, period); sensor->setMeasurementPeriod(period); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagMeasurementPeriodMovementActionTypeId) { - int period = action.param(sensorTagMeasurementPeriodMovementStateParamTypeId).value().toInt(); + int period = action.param(sensorTagMeasurementPeriodMovementActionParamTypeId).value().toInt(); device->setStateValue(sensorTagMeasurementPeriodMovementStateTypeId, period); sensor->setMeasurementPeriodMovement(period); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == sensorTagMovementSensitivityActionTypeId) { - int sensitivity = action.param(sensorTagMovementSensitivityStateParamTypeId).value().toInt(); + int sensitivity = action.param(sensorTagMovementSensitivityActionParamTypeId).value().toInt(); device->setStateValue(sensorTagMovementSensitivityStateTypeId, sensitivity); sensor->setMovementSensitivity(sensitivity); return DeviceManager::DeviceErrorNoError; diff --git a/netatmo/devicepluginnetatmo.json b/netatmo/devicepluginnetatmo.json index a2a37210..3b73f6f8 100644 --- a/netatmo/devicepluginnetatmo.json +++ b/netatmo/devicepluginnetatmo.json @@ -12,7 +12,7 @@ "id": "728d5a67-27a3-400e-b83c-2765f5196f69", "name": "connection", "displayName": "Netatmo Connection", - "critcalStateTypeId": "2f79bc1d-27ed-480a-b583-728363c83ea6", + "criticalStateTypeId": "2f79bc1d-27ed-480a-b583-728363c83ea6", "deviceIcon": "Network", "interfaces": ["gateway"], "basicTags": [ diff --git a/orderbutton/devicepluginorderbutton.cpp b/orderbutton/devicepluginorderbutton.cpp index 114cb180..622c3ef9 100644 --- a/orderbutton/devicepluginorderbutton.cpp +++ b/orderbutton/devicepluginorderbutton.cpp @@ -147,7 +147,7 @@ DeviceManager::DeviceError DevicePluginOrderButton::executeAction(Device *device return DeviceManager::DeviceErrorAsync; } else if(action.actionTypeId() == orderbuttonLedActionTypeId) { - bool led = action.param(orderbuttonLedStateParamTypeId).value().toBool(); + bool led = action.param(orderbuttonLedActionParamTypeId).value().toBool(); QUrl url; url.setScheme("coap"); @@ -466,7 +466,7 @@ void DevicePluginOrderButton::coapReplyFinished(CoapReply *reply) } // Update the state here, so we don't have to wait for the notification - device->setStateValue(orderbuttonLedStateTypeId, action.param(orderbuttonLedStateParamTypeId).value().toBool()); + device->setStateValue(orderbuttonLedStateTypeId, action.param(orderbuttonLedActionParamTypeId).value().toBool()); // Tell the user about the action execution result emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorNoError); diff --git a/philipshue/devicepluginphilipshue.cpp b/philipshue/devicepluginphilipshue.cpp index b1d4073d..6a9e03b6 100644 --- a/philipshue/devicepluginphilipshue.cpp +++ b/philipshue/devicepluginphilipshue.cpp @@ -464,25 +464,25 @@ DeviceManager::DeviceError DevicePluginPhilipsHue::executeAction(Device *device, } if (action.actionTypeId() == hueLightPowerActionTypeId) { - QPair request = light->createSetPowerRequest(action.param(hueLightPowerStateParamTypeId).value().toBool()); + QPair request = light->createSetPowerRequest(action.param(hueLightPowerActionParamTypeId).value().toBool()); QNetworkReply *reply = hardwareManager()->networkManager()->put(request.first, request.second); connect(reply, &QNetworkReply::finished, this, &DevicePluginPhilipsHue::networkManagerReplyReady); m_asyncActions.insert(reply, QPair(device, action.id())); return DeviceManager::DeviceErrorAsync; } else if (action.actionTypeId() == hueLightColorActionTypeId) { - QPair request = light->createSetColorRequest(action.param(hueLightColorStateParamTypeId).value().value()); + QPair request = light->createSetColorRequest(action.param(hueLightColorActionParamTypeId).value().value()); QNetworkReply *reply = hardwareManager()->networkManager()->put(request.first, request.second); connect(reply, &QNetworkReply::finished, this, &DevicePluginPhilipsHue::networkManagerReplyReady); m_asyncActions.insert(reply,QPair(device, action.id())); return DeviceManager::DeviceErrorAsync; } else if (action.actionTypeId() == hueLightBrightnessActionTypeId) { - QPair request = light->createSetBrightnessRequest(percentageToBrightness(action.param(hueLightBrightnessStateParamTypeId).value().toInt())); + QPair request = light->createSetBrightnessRequest(percentageToBrightness(action.param(hueLightBrightnessActionParamTypeId).value().toInt())); QNetworkReply *reply = hardwareManager()->networkManager()->put(request.first, request.second); connect(reply, &QNetworkReply::finished, this, &DevicePluginPhilipsHue::networkManagerReplyReady); m_asyncActions.insert(reply, QPair(device, action.id())); return DeviceManager::DeviceErrorAsync; } else if (action.actionTypeId() == hueLightHueEffectActionTypeId) { - QPair request = light->createSetEffectRequest(action.param(hueLightHueEffectStateParamTypeId).value().toString()); + QPair request = light->createSetEffectRequest(action.param(hueLightHueEffectActionParamTypeId).value().toString()); QNetworkReply *reply = hardwareManager()->networkManager()->put(request.first, request.second); connect(reply, &QNetworkReply::finished, this, &DevicePluginPhilipsHue::networkManagerReplyReady); m_asyncActions.insert(reply, QPair(device, action.id())); @@ -494,7 +494,7 @@ DeviceManager::DeviceError DevicePluginPhilipsHue::executeAction(Device *device, m_asyncActions.insert(reply, QPair(device, action.id())); return DeviceManager::DeviceErrorAsync; } else if (action.actionTypeId() == hueLightColorTemperatureActionTypeId) { - QPair request = light->createSetTemperatureRequest(action.param(hueLightColorTemperatureStateParamTypeId).value().toInt()); + QPair request = light->createSetTemperatureRequest(action.param(hueLightColorTemperatureActionParamTypeId).value().toInt()); QNetworkReply *reply = hardwareManager()->networkManager()->put(request.first, request.second); connect(reply, &QNetworkReply::finished, this, &DevicePluginPhilipsHue::networkManagerReplyReady); m_asyncActions.insert(reply, QPair(device, action.id())); @@ -513,13 +513,13 @@ DeviceManager::DeviceError DevicePluginPhilipsHue::executeAction(Device *device, } if (action.actionTypeId() == hueWhiteLightPowerActionTypeId) { - QPair request = light->createSetPowerRequest(action.param(hueWhiteLightPowerStateParamTypeId).value().toBool()); + QPair request = light->createSetPowerRequest(action.param(hueWhiteLightPowerActionParamTypeId).value().toBool()); QNetworkReply *reply = hardwareManager()->networkManager()->put(request.first, request.second); connect(reply, &QNetworkReply::finished, this, &DevicePluginPhilipsHue::networkManagerReplyReady); m_asyncActions.insert(reply, QPair(device, action.id())); return DeviceManager::DeviceErrorAsync; } else if (action.actionTypeId() == hueWhiteLightBrightnessActionTypeId) { - QPair request = light->createSetBrightnessRequest(percentageToBrightness(action.param(hueWhiteLightBrightnessStateParamTypeId).value().toInt())); + QPair request = light->createSetBrightnessRequest(percentageToBrightness(action.param(hueWhiteLightBrightnessActionParamTypeId).value().toInt())); QNetworkReply *reply = hardwareManager()->networkManager()->put(request.first, request.second); connect(reply, &QNetworkReply::finished, this, &DevicePluginPhilipsHue::networkManagerReplyReady); m_asyncActions.insert(reply, QPair(device, action.id())); diff --git a/plantcare/devicepluginplantcare.cpp b/plantcare/devicepluginplantcare.cpp index 84e1d7a7..20f09481 100644 --- a/plantcare/devicepluginplantcare.cpp +++ b/plantcare/devicepluginplantcare.cpp @@ -102,7 +102,7 @@ DeviceManager::DeviceError DevicePluginPlantCare::discoverDevices(const DeviceCl Q_UNUSED(params) // Perform a HTTP GET on the RPL router address - QHostAddress address(configuration().paramValue(PlantCareRplParamTypeId).toString()); + QHostAddress address(configuration().paramValue(plantCareRplParamTypeId).toString()); qCDebug(dcPlantCare) << "Scan for new nodes on RPL" << address.toString(); QUrl url; @@ -148,7 +148,7 @@ DeviceManager::DeviceError DevicePluginPlantCare::executeAction(Device *device, return DeviceManager::DeviceErrorAsync; } else if(action.actionTypeId() == plantCareLedPowerActionTypeId) { - int power = action.param(plantCareLedPowerStateParamTypeId).value().toInt(); + int power = action.param(plantCareLedPowerActionParamTypeId).value().toInt(); QUrl url; url.setScheme("coap"); @@ -170,7 +170,7 @@ DeviceManager::DeviceError DevicePluginPlantCare::executeAction(Device *device, return DeviceManager::DeviceErrorAsync; } else if(action.actionTypeId() == plantCareWaterPumpActionTypeId) { - bool pump = action.param(plantCareWaterPumpStateParamTypeId).value().toBool(); + bool pump = action.param(plantCareWaterPumpActionParamTypeId).value().toBool(); QUrl url; url.setScheme("coap"); @@ -517,7 +517,7 @@ void DevicePluginPlantCare::coapReplyFinished(CoapReply *reply) } // Update the state here, so we don't have to wait for the notification - device->setStateValue(plantCareLedPowerStateTypeId, action.param(plantCareLedPowerStateParamTypeId).value().toBool()); + device->setStateValue(plantCareLedPowerStateTypeId, action.param(plantCareLedPowerActionParamTypeId).value().toBool()); // Tell the user about the action execution result emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorNoError); @@ -543,7 +543,7 @@ void DevicePluginPlantCare::coapReplyFinished(CoapReply *reply) } // Update the state here, so we don't have to wait for the notification - device->setStateValue(plantCareWaterPumpStateTypeId, action.param(plantCareWaterPumpStateParamTypeId).value().toBool()); + device->setStateValue(plantCareWaterPumpStateTypeId, action.param(plantCareWaterPumpActionParamTypeId).value().toBool()); // Tell the user about the action execution result emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorNoError); diff --git a/remotessh/devicepluginremotessh.cpp b/remotessh/devicepluginremotessh.cpp index a6cd0cd3..f7bcd370 100644 --- a/remotessh/devicepluginremotessh.cpp +++ b/remotessh/devicepluginremotessh.cpp @@ -55,7 +55,7 @@ DeviceManager::DeviceError DevicePluginRemoteSsh::executeAction(Device *device, if (action.actionTypeId() == reverseSshConnectedActionTypeId) { - if (action.param(reverseSshConnectedStateParamTypeId).value().toBool() == true) { + if (action.param(reverseSshConnectedActionParamTypeId).value().toBool() == true) { QProcess *process = startReverseSSHProcess(device); m_reverseSSHProcess.insert(process, device); m_startingProcess.insert(process, action.id()); diff --git a/simulation/devicepluginsimulation.cpp b/simulation/devicepluginsimulation.cpp index dd2d6334..2b9a008e 100644 --- a/simulation/devicepluginsimulation.cpp +++ b/simulation/devicepluginsimulation.cpp @@ -81,7 +81,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if (action.actionTypeId() == alternativeButtonPowerActionTypeId) { // get the param value - Param powerParam = action.param(alternativeButtonPowerStateParamTypeId); + Param powerParam = action.param(alternativeButtonPowerActionParamTypeId); bool power = powerParam.value().toBool(); qCDebug(dcSimulation()) << "Set power" << power << "for button" << device->name(); @@ -100,7 +100,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if (action.actionTypeId() == heatingPowerActionTypeId) { // get the param value - Param powerParam = action.param(heatingPowerStateParamTypeId); + Param powerParam = action.param(heatingPowerActionParamTypeId); bool power = powerParam.value().toBool(); qCDebug(dcSimulation()) << "Set power" << power << "for heating device" << device->name(); device->setStateValue(heatingPowerStateTypeId, power); @@ -109,7 +109,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, } else if (action.actionTypeId() == heatingTargetTemperatureActionTypeId) { // get the param value - Param temperatureParam = action.param(heatingTargetTemperatureStateParamTypeId); + Param temperatureParam = action.param(heatingTargetTemperatureActionParamTypeId); int temperature = temperatureParam.value().toInt(); qCDebug(dcSimulation()) << "Set target temperature" << temperature << "for heating device" << device->name(); @@ -124,7 +124,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if (action.actionTypeId() == evChargerPowerActionTypeId){ // get the param value - Param powerParam = action.param(evChargerPowerStateParamTypeId); + Param powerParam = action.param(evChargerPowerActionParamTypeId); bool power = powerParam.value().toBool(); qCDebug(dcSimulation()) << "Set power" << power << "for heating device" << device->name(); @@ -134,7 +134,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, } else if(action.actionTypeId() == evChargerCurrentActionTypeId){ // get the param value - Param currentParam = action.param(evChargerCurrentStateParamTypeId); + Param currentParam = action.param(evChargerCurrentActionParamTypeId); int current = currentParam.value().toInt(); qCDebug(dcSimulation()) << "Set current" << current << "for EV Charger device" << device->name(); device->setStateValue(evChargerCurrentStateTypeId, current); @@ -147,7 +147,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if(action.actionTypeId() == socketPowerActionTypeId){ // get the param value - Param powerParam = action.param(socketPowerStateParamTypeId); + Param powerParam = action.param(socketPowerActionParamTypeId); bool power = powerParam.value().toBool(); // Set the "power" state qCDebug(dcSimulation()) << "Set power" << power << "for socket device" << device->name(); @@ -160,25 +160,25 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if(device->deviceClassId() == colorBulbDeviceClassId){ if(action.actionTypeId() == colorBulbBrightnessActionTypeId){ - int brightness = action.param(colorBulbBrightnessStateParamTypeId).value().toInt(); + int brightness = action.param(colorBulbBrightnessActionParamTypeId).value().toInt(); qCDebug(dcSimulation()) << "Set brightness" << brightness << "for color bulb device" << device->name(); device->setStateValue(colorBulbBrightnessStateTypeId, brightness); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == colorBulbColorTemperatureActionTypeId){ - int temperature = action.param(colorBulbColorTemperatureStateParamTypeId).value().toInt(); + int temperature = action.param(colorBulbColorTemperatureActionParamTypeId).value().toInt(); qCDebug(dcSimulation()) << "Set color temperature" << temperature << "for color bulb device" << device->name(); device->setStateValue(colorBulbColorTemperatureStateTypeId, temperature); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == colorBulbColorActionTypeId) { - QColor color = action.param(colorBulbColorStateParamTypeId).value().value(); + QColor color = action.param(colorBulbColorActionParamTypeId).value().value(); qCDebug(dcSimulation()) << "Set color" << color << "for color bulb device" << device->name(); device->setStateValue(colorBulbColorStateTypeId, color); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == colorBulbPowerActionTypeId) { - bool power = action.param(colorBulbPowerStateParamTypeId).value().toBool(); + bool power = action.param(colorBulbPowerActionParamTypeId).value().toBool(); qCDebug(dcSimulation()) << "Set power" << power << "for color bulb device" << device->name(); device->setStateValue(colorBulbPowerStateTypeId, power); return DeviceManager::DeviceErrorNoError; @@ -190,17 +190,17 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if (device->deviceClassId() == heatingRodDeviceClassId) { if (action.actionTypeId() == heatingRodPowerActionTypeId) { - bool power = action.param(heatingRodPowerStateParamTypeId).value().toBool(); + bool power = action.param(heatingRodPowerActionParamTypeId).value().toBool(); qCDebug(dcSimulation()) << "Set power" << power << "for heating rod device" << device->name(); device->setStateValue(heatingRodPowerStateTypeId, power); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == heatingRodWaterTemperatureActionTypeId) { - int temperature = action.param(heatingRodWaterTemperatureStateParamTypeId).value().toInt(); + int temperature = action.param(heatingRodWaterTemperatureActionParamTypeId).value().toInt(); qCDebug(dcSimulation()) << "Set water temperature" << temperature << "for heating rod device" << device->name(); device->setStateValue(heatingRodWaterTemperatureStateTypeId, temperature); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == heatingRodMaxPowerActionTypeId) { - double maxPower = action.param(heatingRodMaxPowerStateParamTypeId).value().toDouble(); + double maxPower = action.param(heatingRodMaxPowerActionParamTypeId).value().toDouble(); qCDebug(dcSimulation()) << "Set max power" << maxPower << "for heating rod device" << device->name(); device->setStateValue(heatingRodMaxPowerStateTypeId, maxPower); return DeviceManager::DeviceErrorNoError; @@ -211,7 +211,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if (device->deviceClassId() == batteryDeviceClassId) { if (action.actionTypeId() == batteryMaxChargingActionTypeId) { - int maxCharging = action.param(batteryMaxChargingStateParamTypeId).value().toInt(); + int maxCharging = action.param(batteryMaxChargingActionParamTypeId).value().toInt(); device->setStateValue(batteryMaxChargingStateTypeId, maxCharging); qCDebug(dcSimulation()) << "Set max charging power" << maxCharging << "for battery device" << device->name(); device->setStateValue(batteryChargingStateTypeId, maxCharging); @@ -222,7 +222,7 @@ DeviceManager::DeviceError DevicePluginSimulation::executeAction(Device *device, if (device->deviceClassId() == waterValveDeviceClassId) { if (action.actionTypeId() == waterValvePowerActionTypeId) { - bool power = action.param(waterValvePowerStateParamTypeId).value().toBool(); + bool power = action.param(waterValvePowerActionParamTypeId).value().toBool(); device->setStateValue(waterValvePowerStateTypeId, power); return DeviceManager::DeviceErrorNoError; } @@ -255,7 +255,6 @@ bool DevicePluginSimulation::generateRandomBoolValue() void DevicePluginSimulation::onPluginTimer20Seconds() { - qCDebug(dcSimulation()) << "Update values for 20s timer"; foreach (Device *device, myDevices()) { if (device->deviceClassId() == temperatureSensorDeviceClassId) { // Temperature sensor @@ -292,7 +291,6 @@ void DevicePluginSimulation::onPluginTimer20Seconds() void DevicePluginSimulation::onPluginTimer5Minutes() { - qCDebug(dcSimulation()) << "Update values for 5 minutes timer"; foreach (Device *device, myDevices()) { if(device->deviceClassId() == netatmoIndoorDeviceClassId) { // Note: should change between > 1000 co2 < 1000 for showcase, please do not change this behaviour diff --git a/simulation/devicepluginsimulation.json b/simulation/devicepluginsimulation.json index d0cf974c..b8895a1c 100644 --- a/simulation/devicepluginsimulation.json +++ b/simulation/devicepluginsimulation.json @@ -7,7 +7,6 @@ "name": "simulation", "displayName": "Simulation", "id": "fd2ae067-2c3d-4332-9c4b-ee0af653bcaf", - "interfaces": ["simplebutton"], "deviceClasses": [ { "id": "73bb670b-e7a3-40da-bd6f-3260f017ec80", @@ -54,7 +53,6 @@ "displayNameEvent": "Power changed", "displayNameAction": "Set power", "defaultValue": false, - "index" : 0, "writable": true } ] @@ -284,20 +282,17 @@ { "id": "1786029d-f3a6-4b47-978a-ac1a581aac0f", "name": "open", - "displayName": "Open", - "type": "bool" + "displayName": "Open" }, { "id": "2786029d-f3a6-4b47-978a-ac1a581aac0f", "name": "stop", - "displayName": "Stop", - "type": "bool" + "displayName": "Stop" }, { "id": "3786029d-f3a6-4b47-978a-ac1a581aac0f", "name": "close", - "displayName": "Close", - "type": "bool" + "displayName": "Close" } ] }, @@ -328,20 +323,17 @@ { "id": "17860291-f3a6-4b47-978a-ac1a581aac0f", "name": "open", - "displayName": "Open", - "type": "bool" + "displayName": "Open" }, { "id": "27860292-f3a6-4b47-978a-ac1a581aac0f", "name": "stop", - "displayName": "stop", - "type": "bool" + "displayName": "stop" }, { "id": "37860293-f3a6-4b47-978a-ac1a581aac0f", "name": "close", - "displayName": "close", - "type": "bool" + "displayName": "close" } ] }, diff --git a/snapd/devicepluginsnapd.cpp b/snapd/devicepluginsnapd.cpp index 90816bb4..02264432 100644 --- a/snapd/devicepluginsnapd.cpp +++ b/snapd/devicepluginsnapd.cpp @@ -39,8 +39,8 @@ DevicePluginSnapd::~DevicePluginSnapd() void DevicePluginSnapd::init() { // Initialize plugin configurations - m_advancedMode = configValue(SnapdAdvancedModeParamTypeId).toBool(); - m_refreshTime = configValue(SnapdRefreshScheduleParamTypeId).toInt(); + m_advancedMode = configValue(snapdAdvancedModeParamTypeId).toBool(); + m_refreshTime = configValue(snapdRefreshScheduleParamTypeId).toInt(); connect(this, &DevicePluginSnapd::configValueChanged, this, &DevicePluginSnapd::onPluginConfigurationChanged); // Refresh timer for snapd checks @@ -114,7 +114,7 @@ DeviceManager::DeviceSetupStatus DevicePluginSnapd::setupDevice(Device *device) } m_snapdControl = new SnapdControl(device, this); - m_snapdControl->setPreferredRefreshTime(configValue(SnapdRefreshScheduleParamTypeId).toInt()); + m_snapdControl->setPreferredRefreshTime(configValue(snapdRefreshScheduleParamTypeId).toInt()); connect(m_snapdControl, &SnapdControl::snapListUpdated, this, &DevicePluginSnapd::onSnapListUpdated); } else if (device->deviceClassId() == snapDeviceClassId) { @@ -163,7 +163,7 @@ DeviceManager::DeviceError DevicePluginSnapd::executeAction(Device *device, cons if (action.actionTypeId() == snapChannelActionTypeId) { QString snapName = device->paramValue(snapNameParamTypeId).toString(); - m_snapdControl->changeSnapChannel(snapName, action.param(snapChannelStateParamTypeId).value().toString()); + m_snapdControl->changeSnapChannel(snapName, action.param(snapChannelActionParamTypeId).value().toString()); return DeviceManager::DeviceErrorNoError; } else if (action.actionTypeId() == snapRevertActionTypeId) { QString snapName = device->paramValue(snapNameParamTypeId).toString(); @@ -182,7 +182,7 @@ void DevicePluginSnapd::onPluginConfigurationChanged(const ParamTypeId ¶mTyp qCDebug(dcSnapd()) << "Plugin configuration changed"; // Check advanced mode - if (paramTypeId == SnapdAdvancedModeParamTypeId) { + if (paramTypeId == snapdAdvancedModeParamTypeId) { qCDebug(dcSnapd()) << "Advanced mode" << (value.toBool() ? "enabled." : "disabled."); m_advancedMode = value.toBool(); @@ -202,7 +202,7 @@ void DevicePluginSnapd::onPluginConfigurationChanged(const ParamTypeId ¶mTyp } // Check refresh schedule - if (paramTypeId == SnapdRefreshScheduleParamTypeId) { + if (paramTypeId == snapdRefreshScheduleParamTypeId) { if (!m_snapdControl) return; diff --git a/snapd/devicepluginsnapd.json b/snapd/devicepluginsnapd.json index 7a030a5e..5b75490e 100644 --- a/snapd/devicepluginsnapd.json +++ b/snapd/devicepluginsnapd.json @@ -81,8 +81,8 @@ "displayNameEvent": "Last automatic system update time changed", "unit": "UnixTime", "type": "int", + "ruleRelevant": false, "eventRuleRelevant": false, - "stateRuleRelevant": false, "defaultValue": 0 }, { @@ -92,8 +92,8 @@ "displayNameEvent": "Next automatic system update time changed", "unit": "UnixTime", "type": "int", + "ruleRelevant": false, "eventRuleRelevant": false, - "stateRuleRelevant": false, "defaultValue": 0 }, { @@ -102,8 +102,8 @@ "displayName": "Status", "displayNameEvent": "Status changed", "type": "QString", + "ruleRelevant": false, "eventRuleRelevant": false, - "stateRuleRelevant": false, "defaultValue": "-" } ] @@ -167,8 +167,8 @@ "displayNameEvent": "Channel changed", "displayNameAction": "Set channel", "type": "QString", + "ruleRelevant": false, "eventRuleRelevant": false, - "stateRuleRelevant": false, "defaultValue": "stable", "writable": true, "possibleValues": [ @@ -184,8 +184,8 @@ "displayName": "Version", "displayNameEvent": "Version changed", "type": "QString", + "ruleRelevant": false, "eventRuleRelevant": false, - "stateRuleRelevant": false, "defaultValue": "-" }, { @@ -194,8 +194,8 @@ "displayName": "Revision", "displayNameEvent": "Revision changed", "type": "QString", + "ruleRelevant": false, "eventRuleRelevant": false, - "stateRuleRelevant": false, "defaultValue": "-" } ] diff --git a/tcpcommander/deviceplugintcpcommander.json b/tcpcommander/deviceplugintcpcommander.json index 1121351e..9269823a 100644 --- a/tcpcommander/deviceplugintcpcommander.json +++ b/tcpcommander/deviceplugintcpcommander.json @@ -26,16 +26,14 @@ "displayName": "IPv4 Address", "type": "QString", "inputType": "IPv4Address", - "defaultValue": "127.0.0.1", - "index" : 0 + "defaultValue": "127.0.0.1" }, { "id": "bee8b151-815a-4159-9d8a-42b76e99b42c", "name": "port", "displayName": "Port", "type": "int", - "defaultValue": "22", - "index" : 1 + "defaultValue": "22" } ], "stateTypes":[ @@ -45,8 +43,7 @@ "displayName": "connected", "type": "bool", "defaultValue": false, - "displayNameEvent": "connection status changed", - "index" : 0 + "displayNameEvent": "connection status changed" } ], "actionTypes": [ @@ -54,14 +51,12 @@ "id": "6bc52462-b192-46a4-a6df-92cc5a479c89", "name": "outputData", "displayName": "Send Data", - "index": 0, "paramTypes": [ { "id": "6604c852-6b24-4707-b8e5-1ddd8032efcc", "name": "outputDataArea", "displayName": "Data", "type": "QString", - "index": 0, "inputType": "TextArea" } ] @@ -84,8 +79,7 @@ "name": "port", "displayName": "Port", "type": "int", - "defaultValue": "22", - "index" : 0 + "defaultValue": "22" }, { "id": "d99f55c7-0e14-45ee-b0f0-33f2d1d2e674", @@ -99,8 +93,7 @@ "Starts with", "Ends with" ], - "defaultValue": "Exactly", - "index" : 1 + "defaultValue": "Exactly" }, { "id": "23051bdf-3f50-41fa-abde-bc4fe0bcc4fc", @@ -108,8 +101,7 @@ "displayName": "Command", "type": "QString", "inputType": "TextArea", - "defaultValue": "", - "index" : 2 + "defaultValue": "" } ], "stateTypes": [ @@ -119,26 +111,22 @@ "displayName": "connected", "type": "bool", "defaultValue": false, - "displayNameEvent": "connection status changed", - "index" : 0 + "displayNameEvent": "connection status changed" }, { "id": "b98fdacc-59d7-41c4-b790-1fdca50dfb22", "name": "dataReceived", "displayName": "Data Received", "type": "QString", - "inputType": "TextArea", "defaultValue": "", - "displayNameEvent": "Data received", - "index" : 1 + "displayNameEvent": "Data received" } ], "eventTypes": [ { "id": "6d7c6df6-cb61-4d9e-b0d7-37c43911ca4b", "name": "commandReceived", - "displayName": "Command Received", - "index": 0 + "displayName": "Command Received" } ] } diff --git a/usbwde/devicepluginusbwde.json b/usbwde/devicepluginusbwde.json index d0444d54..9df221c4 100644 --- a/usbwde/devicepluginusbwde.json +++ b/usbwde/devicepluginusbwde.json @@ -65,8 +65,7 @@ "name": "channel", "displayName": "channel", "type": "int", - "readonly": true, - "inputType": "None" + "readOnly": true } ], "stateTypes": [ @@ -121,8 +120,7 @@ "name": "channel", "displayName": "channel", "type": "int", - "readonly": true, - "inputType": "None" + "readOnly": true } ], "stateTypes": [ diff --git a/wemo/devicepluginwemo.cpp b/wemo/devicepluginwemo.cpp index 0574b0f5..a4fbaf5a 100644 --- a/wemo/devicepluginwemo.cpp +++ b/wemo/devicepluginwemo.cpp @@ -106,7 +106,7 @@ DeviceManager::DeviceError DevicePluginWemo::executeAction(Device *device, const // Check if wemo device is reachable if (device->stateValue(wemoSwitchReachableStateTypeId).toBool()) { // setPower returns false, if the curent powerState is already the new powerState - if (setPower(device, action.param(wemoSwitchPowerStateParamTypeId).value().toBool(), action.id())) { + if (setPower(device, action.param(wemoSwitchPowerActionParamTypeId).value().toBool(), action.id())) { return DeviceManager::DeviceErrorAsync; } else { return DeviceManager::DeviceErrorNoError; diff --git a/ws2812/devicepluginws2812.cpp b/ws2812/devicepluginws2812.cpp index 4c602f37..6974281a 100644 --- a/ws2812/devicepluginws2812.cpp +++ b/ws2812/devicepluginws2812.cpp @@ -101,7 +101,7 @@ DeviceManager::DeviceError DevicePluginWs2812::discoverDevices(const DeviceClass Q_UNUSED(params) // Perform a HTTP GET on the RPL router address - QHostAddress address(configuration().paramValue(Ws2812RplParamTypeId).toString()); + QHostAddress address(configuration().paramValue(ws2812RplParamTypeId).toString()); qCDebug(dcWs2812) << "Scan for new nodes on RPL" << address.toString(); QUrl url; @@ -140,7 +140,7 @@ DeviceManager::DeviceError DevicePluginWs2812::executeAction(Device *device, con url.setHost(device->paramValue(ws2812HostParamTypeId).toString()); url.setPath("/a/color"); - QColor newColor = action.param(ws2812EffectModeStateParamTypeId).value().value().toRgb(); + QColor newColor = action.param(ws2812EffectModeActionParamTypeId).value().value().toRgb(); QByteArray message = "color=" + newColor.name().remove("#").toUtf8(); qCDebug(dcWs2812) << "Sending" << url.toString() << message; @@ -164,7 +164,7 @@ DeviceManager::DeviceError DevicePluginWs2812::executeAction(Device *device, con url.setHost(device->paramValue(ws2812HostParamTypeId).toString()); url.setPath("/a/speed"); - int speed = action.param(ws2812SpeedStateParamTypeId).value().toInt(); + int speed = action.param(ws2812SpeedActionParamTypeId).value().toInt(); qCDebug(dcWs2812) << "Set Speed:" << speed; @@ -190,7 +190,7 @@ DeviceManager::DeviceError DevicePluginWs2812::executeAction(Device *device, con url.setPath("/a/brightness"); - int brightness = action.param(ws2812BrightnessStateParamTypeId).value().toInt(); + int brightness = action.param(ws2812BrightnessActionParamTypeId).value().toInt(); qCDebug(dcWs2812) << "Set brightness:" << brightness; @@ -220,7 +220,7 @@ DeviceManager::DeviceError DevicePluginWs2812::executeAction(Device *device, con //QColor newColor = QColor::fromHsv(color.hue(), color.saturation(), 100 * light->brightness() / 255.0); //QByteArray message = "color=" + newColor.toRgb().name().remove("#").toUtf8(); - int max = action.param(ws2812MaxPixStateParamTypeId).value().toInt(); + int max = action.param(ws2812MaxPixActionParamTypeId).value().toInt(); qCDebug(dcWs2812) << "Max Pix" << max; @@ -246,7 +246,7 @@ DeviceManager::DeviceError DevicePluginWs2812::executeAction(Device *device, con int effectmode = 0; - QString effectModeString = action.param(ws2812EffectModeStateParamTypeId).value().toString(); + QString effectModeString = action.param(ws2812EffectModeActionParamTypeId).value().toString(); QUrl url; @@ -311,11 +311,11 @@ DeviceManager::DeviceError DevicePluginWs2812::executeAction(Device *device, con */ if(action.actionTypeId() == ws2812Tcolor1ActionTypeId) { - tColor1 = action.param(ws2812Tcolor1StateParamTypeId).value().value().toRgb(); + tColor1 = action.param(ws2812Tcolor1ActionParamTypeId).value().value().toRgb(); } else if(action.actionTypeId() == ws2812Tcolor2ActionTypeId){ - tColor2 = action.param(ws2812Tcolor2StateParamTypeId).value().value().toRgb(); + tColor2 = action.param(ws2812Tcolor2ActionParamTypeId).value().value().toRgb(); } else if(action.actionTypeId() == ws2812Tcolor3ActionTypeId){ - tColor3 = action.param(ws2812Tcolor3StateParamTypeId).value().value().toRgb(); + tColor3 = action.param(ws2812Tcolor3ActionParamTypeId).value().value().toRgb(); } QByteArray message = "color=" + tColor1.name().remove("#").toUtf8() + tColor2.name().remove("#").toUtf8() + tColor3.name().remove("#").toUtf8(); @@ -704,7 +704,7 @@ void DevicePluginWs2812::coapReplyFinished(CoapReply *reply) emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorHardwareFailure); return; } - QString tcolor = action.param(ws2812EffectColorStateParamTypeId).value().toByteArray(); + QString tcolor = action.param(ws2812EffectColorActionParamTypeId).value().toByteArray(); // Update the state here, so we don't have to wait for the notification device->setStateValue(ws2812Tcolor1StateTypeId, tcolor.left(6)); @@ -736,7 +736,7 @@ void DevicePluginWs2812::coapReplyFinished(CoapReply *reply) } // Update the state here, so we don't have to wait for the notification - device->setStateValue(ws2812EffectColorStateTypeId, action.param(ws2812EffectColorStateParamTypeId).value().toInt()); + device->setStateValue(ws2812EffectColorStateTypeId, action.param(ws2812EffectColorActionParamTypeId).value().toInt()); // Tell the user about the action execution result emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorNoError); @@ -762,7 +762,7 @@ void DevicePluginWs2812::coapReplyFinished(CoapReply *reply) } // Update the state here, so we don't have to wait for the notification - device->setStateValue(ws2812BrightnessStateTypeId, action.param(ws2812BrightnessStateParamTypeId).value().toInt()); + device->setStateValue(ws2812BrightnessStateTypeId, action.param(ws2812BrightnessActionParamTypeId).value().toInt()); // Tell the user about the action execution result emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorNoError); @@ -788,7 +788,7 @@ void DevicePluginWs2812::coapReplyFinished(CoapReply *reply) } // Update the state here, so we don't have to wait for the notification - device->setStateValue(ws2812SpeedStateTypeId, action.param(ws2812SpeedStateParamTypeId).value().toInt()); + device->setStateValue(ws2812SpeedStateTypeId, action.param(ws2812SpeedActionParamTypeId).value().toInt()); // Tell the user about the action execution result emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorNoError); @@ -814,7 +814,7 @@ void DevicePluginWs2812::coapReplyFinished(CoapReply *reply) } // Update the state here, so we don't have to wait for the notification - device->setStateValue(ws2812MaxPixStateTypeId, action.param(ws2812MaxPixStateParamTypeId).value().toInt()); + device->setStateValue(ws2812MaxPixStateTypeId, action.param(ws2812MaxPixActionParamTypeId).value().toInt()); // Tell the user about the action execution result emit actionExecutionFinished(action.id(), DeviceManager::DeviceErrorNoError); From b7027b6fa3f5a4e6cfef2c0bfb1775af61806ff2 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 4 Apr 2018 14:05:33 +0200 Subject: [PATCH 60/62] switch netatmo plugin to use new parenting mechanism --- netatmo/devicepluginnetatmo.cpp | 14 +++++--------- netatmo/devicepluginnetatmo.json | 16 ---------------- netatmo/netatmobasestation.cpp | 10 ++-------- netatmo/netatmobasestation.h | 3 +-- netatmo/netatmooutdoormodule.cpp | 8 +------- netatmo/netatmooutdoormodule.h | 4 +--- 6 files changed, 10 insertions(+), 45 deletions(-) diff --git a/netatmo/devicepluginnetatmo.cpp b/netatmo/devicepluginnetatmo.cpp index 1dbf4e06..632c050b 100644 --- a/netatmo/devicepluginnetatmo.cpp +++ b/netatmo/devicepluginnetatmo.cpp @@ -86,9 +86,8 @@ DeviceManager::DeviceSetupStatus DevicePluginNetatmo::setupDevice(Device *device qCDebug(dcNetatmo) << "Setup netatmo indoor base station" << device->params(); NetatmoBaseStation *indoor = new NetatmoBaseStation(device->paramValue(indoorNameParamTypeId).toString(), device->paramValue(indoorMacParamTypeId).toString(), - device->paramValue(indoorConnectionParamTypeId).toString(), this); + this); - device->setParentId(DeviceId(indoor->connectionId())); m_indoorDevices.insert(indoor, device); connect(indoor, SIGNAL(statesChanged()), this, SLOT(onIndoorStatesChanged())); @@ -97,10 +96,9 @@ DeviceManager::DeviceSetupStatus DevicePluginNetatmo::setupDevice(Device *device qCDebug(dcNetatmo) << "Setup netatmo outdoor module" << device->params(); NetatmoOutdoorModule *outdoor = new NetatmoOutdoorModule(device->paramValue(outdoorNameParamTypeId).toString(), device->paramValue(outdoorMacParamTypeId).toString(), - device->paramValue(outdoorConnectionParamTypeId).toString(), - device->paramValue(outdoorBaseStationParamTypeId).toString(),this); + device->paramValue(outdoorBaseStationParamTypeId).toString(), + this); - device->setParentId(DeviceId(outdoor->connectionId())); m_outdoorDevices.insert(outdoor, device); connect(outdoor, SIGNAL(statesChanged()), this, SLOT(onOutdoorStatesChanged())); @@ -163,11 +161,10 @@ void DevicePluginNetatmo::processRefreshData(const QVariantMap &data, const QStr Device *indoorDevice = findIndoorDevice(deviceMap.value("_id").toString()); // check if we have to create the device (auto) if (!indoorDevice) { - DeviceDescriptor descriptor(indoorDeviceClassId, "Indoor Station", deviceMap.value("station_name").toString()); + DeviceDescriptor descriptor(indoorDeviceClassId, "Indoor Station", deviceMap.value("station_name").toString(), connectionId); ParamList params; params.append(Param(indoorNameParamTypeId, deviceMap.value("station_name").toString())); params.append(Param(indoorMacParamTypeId, deviceMap.value("_id").toString())); - params.append(Param(indoorConnectionParamTypeId, connectionId)); descriptor.setParams(params); emit autoDevicesAppeared(indoorDeviceClassId, QList() << descriptor); } else { @@ -190,11 +187,10 @@ void DevicePluginNetatmo::processRefreshData(const QVariantMap &data, const QStr Device *outdoorDevice = findOutdoorDevice(moduleMap.value("_id").toString()); // check if we have to create the device (auto) if (!outdoorDevice) { - DeviceDescriptor descriptor(outdoorDeviceClassId, "Outdoor Module", moduleMap.value("module_name").toString()); + DeviceDescriptor descriptor(outdoorDeviceClassId, "Outdoor Module", moduleMap.value("module_name").toString(), connectionId); ParamList params; params.append(Param(outdoorNameParamTypeId, moduleMap.value("module_name").toString())); params.append(Param(outdoorMacParamTypeId, moduleMap.value("_id").toString())); - params.append(Param(outdoorConnectionParamTypeId, connectionId)); params.append(Param(outdoorBaseStationParamTypeId, moduleMap.value("main_device").toString())); descriptor.setParams(params); emit autoDevicesAppeared(outdoorDeviceClassId, QList() << descriptor); diff --git a/netatmo/devicepluginnetatmo.json b/netatmo/devicepluginnetatmo.json index a2a37210..f6d8593d 100644 --- a/netatmo/devicepluginnetatmo.json +++ b/netatmo/devicepluginnetatmo.json @@ -75,14 +75,6 @@ "type": "QString", "inputType": "TextLine", "readOnly": true - }, - { - "id": "c15e5dea-10f2-4c96-afab-649872f43d5c", - "name": "connection", - "displayName": "connection", - "type": "QString", - "inputType": "TextLine", - "readOnly": true } ], "stateTypes": [ @@ -206,14 +198,6 @@ "inputType": "TextLine", "readOnly": true }, - { - "id": "c15e5dea-10f2-4c96-afab-649872f43d5c", - "name": "connection", - "displayName": "connection", - "type": "QString", - "inputType": "TextLine", - "readOnly": true - }, { "id": "d7a0ec46-760c-4fdc-9753-fe10c86fe1b9", "name": "baseStation", diff --git a/netatmo/netatmobasestation.cpp b/netatmo/netatmobasestation.cpp index f52df09d..802336b1 100644 --- a/netatmo/netatmobasestation.cpp +++ b/netatmo/netatmobasestation.cpp @@ -24,11 +24,10 @@ #include -NetatmoBaseStation::NetatmoBaseStation(const QString &name, const QString &macAddress, const QString &connectionId, QObject *parent) : +NetatmoBaseStation::NetatmoBaseStation(const QString &name, const QString &macAddress, QObject *parent) : QObject(parent), m_name(name), - m_macAddress(macAddress), - m_connectionId(connectionId) + m_macAddress(macAddress) { } @@ -42,11 +41,6 @@ QString NetatmoBaseStation::macAddress() const return m_macAddress; } -QString NetatmoBaseStation::connectionId() const -{ - return m_connectionId; -} - int NetatmoBaseStation::lastUpdate() const { return m_lastUpdate; diff --git a/netatmo/netatmobasestation.h b/netatmo/netatmobasestation.h index 6b1ce9b1..6c970bdc 100644 --- a/netatmo/netatmobasestation.h +++ b/netatmo/netatmobasestation.h @@ -30,7 +30,7 @@ class NetatmoBaseStation : public QObject { Q_OBJECT public: - explicit NetatmoBaseStation(const QString &name, const QString &macAddress, const QString &connectionId, QObject *parent = 0); + explicit NetatmoBaseStation(const QString &name, const QString &macAddress, QObject *parent = 0); // Params QString name() const; @@ -54,7 +54,6 @@ private: // Params QString m_name; QString m_macAddress; - QString m_connectionId; // States int m_lastUpdate; diff --git a/netatmo/netatmooutdoormodule.cpp b/netatmo/netatmooutdoormodule.cpp index f989b5f9..839ce08d 100644 --- a/netatmo/netatmooutdoormodule.cpp +++ b/netatmo/netatmooutdoormodule.cpp @@ -24,11 +24,10 @@ #include -NetatmoOutdoorModule::NetatmoOutdoorModule(const QString &name, const QString &macAddress, const QString &connectionId, const QString &baseStation, QObject *parent) : +NetatmoOutdoorModule::NetatmoOutdoorModule(const QString &name, const QString &macAddress, const QString &baseStation, QObject *parent) : QObject(parent), m_name(name), m_macAddress(macAddress), - m_connectionId(connectionId), m_baseStation(baseStation) { } @@ -43,11 +42,6 @@ QString NetatmoOutdoorModule::macAddress() const return m_macAddress; } -QString NetatmoOutdoorModule::connectionId() const -{ - return m_connectionId; -} - QString NetatmoOutdoorModule::baseStation() const { return m_baseStation; diff --git a/netatmo/netatmooutdoormodule.h b/netatmo/netatmooutdoormodule.h index 8ad9a251..7fa6c2df 100644 --- a/netatmo/netatmooutdoormodule.h +++ b/netatmo/netatmooutdoormodule.h @@ -29,12 +29,11 @@ class NetatmoOutdoorModule : public QObject { Q_OBJECT public: - explicit NetatmoOutdoorModule(const QString &name, const QString &macAddress, const QString &connectionId, const QString &baseStation, QObject *parent = 0); + explicit NetatmoOutdoorModule(const QString &name, const QString &macAddress, const QString &baseStation, QObject *parent = 0); // Params QString name() const; QString macAddress() const; - QString connectionId() const; QString baseStation() const; // States @@ -52,7 +51,6 @@ private: // Params QString m_name; QString m_macAddress; - QString m_connectionId; QString m_baseStation; // States From 365b3eea50ccf389d673aaf3af838c670ccfd559 Mon Sep 17 00:00:00 2001 From: Jenkins Date: Wed, 4 Apr 2018 16:31:39 +0200 Subject: [PATCH 61/62] Automatic translations update by Jenkins --- ...14951-0c02-4877-bcef-dffdf48b7ccb-de_DE.ts | 101 ++++---- ...14951-0c02-4877-bcef-dffdf48b7ccb-en_US.ts | 101 ++++---- ...e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts | 235 ++++++++---------- ...e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts | 235 ++++++++---------- 4 files changed, 288 insertions(+), 384 deletions(-) diff --git a/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-de_DE.ts b/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-de_DE.ts index 7b427229..b09d7edd 100644 --- a/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-de_DE.ts +++ b/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-de_DE.ts @@ -4,8 +4,8 @@ Netatmo - - + + Netatmo The name of the plugin Netatmo (69d14951-0c02-4877-bcef-dffdf48b7ccb) ---------- @@ -13,14 +13,14 @@ The name of the vendor (4b46b4ed-5ec9-4aa4-afc3-92d3f80e6351) Netatmo - + Netatmo Connection The name of the DeviceClass (728d5a67-27a3-400e-b83c-2765f5196f69) Netatmo Verbindung - - + + name The name of the paramType (a97d256c-e159-4aa0-bc71-6bd7cd0688b3) of indoor ---------- @@ -28,38 +28,38 @@ The name of the paramType (a97d256c-e159-4aa0-bc71-6bd7cd0688b3) of outdoorName - + username The name of the paramType (763c2c10-dee5-41c8-9f7e-ded741945e73) of connection Benutzername - + password The name of the paramType (c0d892d6-f359-4782-9d7d-8f74a3b53e3e) of connection Passwort - + available changed The name of the autocreated EventType (2f79bc1d-27ed-480a-b583-728363c83ea6) Verfügbarkeit geändert - + available The name of the ParamType of StateType (2f79bc1d-27ed-480a-b583-728363c83ea6) of DeviceClass connection Verfügbar - + Indoor Station The name of the DeviceClass (1c809049-04f2-4710-99f5-6ed379a2934f) Innenstation - - + + mac address The name of the paramType (157d470a-e579-4d0e-b879-6b5bfa8e34ae) of indoor ---------- @@ -67,31 +67,22 @@ The name of the paramType (157d470a-e579-4d0e-b879-6b5bfa8e34ae) of outdoorMAC Adresse - - - connection - The name of the paramType (c15e5dea-10f2-4c96-afab-649872f43d5c) of indoor ----------- -The name of the paramType (c15e5dea-10f2-4c96-afab-649872f43d5c) of outdoor - Verbindung - - - - + + last update changed The name of the autocreated EventType (50da9f6b-c350-401c-a72e-2e4036f3975d) Letztes Update geändert - - + + temperature changed The name of the autocreated EventType (3cb25538-e463-40ae-92f9-8f34f0c06b92) Temperatur geändert - - + + temperature The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of DeviceClass indoor ---------- @@ -99,22 +90,22 @@ The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of Temperatur - - + + temperature minimum changed The name of the autocreated EventType (ae8bb713-8805-4efd-89a1-bca44a1f1690) Temperatur Minimum geändert - - + + temperature maximum changed The name of the autocreated EventType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) Temperatur Maximum geändert - - + + updateTime The name of the ParamType of StateType (50da9f6b-c350-401c-a72e-2e4036f3975d) of DeviceClass indoor ---------- @@ -122,8 +113,8 @@ The name of the ParamType of StateType (50da9f6b-c350-401c-a72e-2e4036f3975d) of - - + + temperatureMin The name of the ParamType of StateType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of DeviceClass indoor ---------- @@ -131,8 +122,8 @@ The name of the ParamType of StateType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of - - + + temperatureMax The name of the ParamType of StateType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of DeviceClass indoor ---------- @@ -140,15 +131,15 @@ The name of the ParamType of StateType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of - - + + humidity changed The name of the autocreated EventType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) Luftfeuchtigkeit geändert - - + + humidity The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of DeviceClass indoor ---------- @@ -156,85 +147,85 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of Luftfeuchtigkeit - + pressure changed The name of the autocreated EventType (03b0a7b7-987d-4d3b-b3f0-21d9f92ad326) Luftdruck geändert - + pressure The name of the ParamType of StateType (03b0a7b7-987d-4d3b-b3f0-21d9f92ad326) of DeviceClass indoor Luftdruck - + noise changed The name of the autocreated EventType (906cea9d-1daf-4e9c-90b9-e40f43052a34) Geräuschpegel geändert - + noise The name of the ParamType of StateType (906cea9d-1daf-4e9c-90b9-e40f43052a34) of DeviceClass indoor Geräuschpegel - + co2 changed The name of the autocreated EventType (e5710bd1-79fa-4bd4-9052-8416aae909b9) CO2 Wert geändert - + co2 The name of the ParamType of StateType (e5710bd1-79fa-4bd4-9052-8416aae909b9) of DeviceClass indoor CO2 Wert - + wifi signal strength changed The name of the autocreated EventType (6ea906d4-5740-454d-a730-6fdb9fa0d624) Wifi Signalstärke geändert - + wifiStrength The name of the ParamType of StateType (6ea906d4-5740-454d-a730-6fdb9fa0d624) of DeviceClass indoor - + signalStrength The name of the ParamType of StateType (0faa3d08-9004-46fb-a5aa-a59b75e454cc) of DeviceClass outdoor - + Outdoor Station The name of the DeviceClass (6cc01d62-7317-4ec4-8ac4-a4cab762c179) Außenstation - + base station The name of the paramType (d7a0ec46-760c-4fdc-9753-fe10c86fe1b9) of outdoor Basisstation - + signal strength changed The name of the autocreated EventType (0faa3d08-9004-46fb-a5aa-a59b75e454cc) Signalstärke geändert - + battery changed The name of the autocreated EventType (15d8fae1-ba47-42e1-994d-530e8017c965) Batteriestatus geändert - + battery The name of the ParamType of StateType (15d8fae1-ba47-42e1-994d-530e8017c965) of DeviceClass outdoor Batterie diff --git a/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-en_US.ts b/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-en_US.ts index 94334896..e1060022 100644 --- a/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-en_US.ts +++ b/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-en_US.ts @@ -4,8 +4,8 @@ Netatmo - - + + Netatmo The name of the plugin Netatmo (69d14951-0c02-4877-bcef-dffdf48b7ccb) ---------- @@ -13,14 +13,14 @@ The name of the vendor (4b46b4ed-5ec9-4aa4-afc3-92d3f80e6351) - + Netatmo Connection The name of the DeviceClass (728d5a67-27a3-400e-b83c-2765f5196f69) - - + + name The name of the paramType (a97d256c-e159-4aa0-bc71-6bd7cd0688b3) of indoor ---------- @@ -28,38 +28,38 @@ The name of the paramType (a97d256c-e159-4aa0-bc71-6bd7cd0688b3) of outdoor - + username The name of the paramType (763c2c10-dee5-41c8-9f7e-ded741945e73) of connection - + password The name of the paramType (c0d892d6-f359-4782-9d7d-8f74a3b53e3e) of connection - + available changed The name of the autocreated EventType (2f79bc1d-27ed-480a-b583-728363c83ea6) - + available The name of the ParamType of StateType (2f79bc1d-27ed-480a-b583-728363c83ea6) of DeviceClass connection - + Indoor Station The name of the DeviceClass (1c809049-04f2-4710-99f5-6ed379a2934f) - - + + mac address The name of the paramType (157d470a-e579-4d0e-b879-6b5bfa8e34ae) of indoor ---------- @@ -67,31 +67,22 @@ The name of the paramType (157d470a-e579-4d0e-b879-6b5bfa8e34ae) of outdoor - - - connection - The name of the paramType (c15e5dea-10f2-4c96-afab-649872f43d5c) of indoor ----------- -The name of the paramType (c15e5dea-10f2-4c96-afab-649872f43d5c) of outdoor - - - - - + + last update changed The name of the autocreated EventType (50da9f6b-c350-401c-a72e-2e4036f3975d) - - + + temperature changed The name of the autocreated EventType (3cb25538-e463-40ae-92f9-8f34f0c06b92) - - + + temperature The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of DeviceClass indoor ---------- @@ -99,22 +90,22 @@ The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of - - + + temperature minimum changed The name of the autocreated EventType (ae8bb713-8805-4efd-89a1-bca44a1f1690) - - + + temperature maximum changed The name of the autocreated EventType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) - - + + updateTime The name of the ParamType of StateType (50da9f6b-c350-401c-a72e-2e4036f3975d) of DeviceClass indoor ---------- @@ -122,8 +113,8 @@ The name of the ParamType of StateType (50da9f6b-c350-401c-a72e-2e4036f3975d) of - - + + temperatureMin The name of the ParamType of StateType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of DeviceClass indoor ---------- @@ -131,8 +122,8 @@ The name of the ParamType of StateType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of - - + + temperatureMax The name of the ParamType of StateType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of DeviceClass indoor ---------- @@ -140,15 +131,15 @@ The name of the ParamType of StateType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of - - + + humidity changed The name of the autocreated EventType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) - - + + humidity The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of DeviceClass indoor ---------- @@ -156,85 +147,85 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of - + pressure changed The name of the autocreated EventType (03b0a7b7-987d-4d3b-b3f0-21d9f92ad326) - + pressure The name of the ParamType of StateType (03b0a7b7-987d-4d3b-b3f0-21d9f92ad326) of DeviceClass indoor - + noise changed The name of the autocreated EventType (906cea9d-1daf-4e9c-90b9-e40f43052a34) - + noise The name of the ParamType of StateType (906cea9d-1daf-4e9c-90b9-e40f43052a34) of DeviceClass indoor - + co2 changed The name of the autocreated EventType (e5710bd1-79fa-4bd4-9052-8416aae909b9) - + co2 The name of the ParamType of StateType (e5710bd1-79fa-4bd4-9052-8416aae909b9) of DeviceClass indoor - + wifi signal strength changed The name of the autocreated EventType (6ea906d4-5740-454d-a730-6fdb9fa0d624) - + wifiStrength The name of the ParamType of StateType (6ea906d4-5740-454d-a730-6fdb9fa0d624) of DeviceClass indoor - + signalStrength The name of the ParamType of StateType (0faa3d08-9004-46fb-a5aa-a59b75e454cc) of DeviceClass outdoor - + Outdoor Station The name of the DeviceClass (6cc01d62-7317-4ec4-8ac4-a4cab762c179) - + base station The name of the paramType (d7a0ec46-760c-4fdc-9753-fe10c86fe1b9) of outdoor - + signal strength changed The name of the autocreated EventType (0faa3d08-9004-46fb-a5aa-a59b75e454cc) - + battery changed The name of the autocreated EventType (15d8fae1-ba47-42e1-994d-530e8017c965) - + battery The name of the ParamType of StateType (15d8fae1-ba47-42e1-994d-530e8017c965) of DeviceClass outdoor diff --git a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts index ee815b4f..bbcfdae5 100644 --- a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts +++ b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts @@ -4,29 +4,29 @@ PhilipsHue - + Philips The name of the vendor (0ae1e001-2aa6-47ed-b8c0-334c3728a68f) Philips - + Please press the button on the Hue Bridge within 30 seconds before you continue The pairing info of deviceClass hueBridge Bitte drücken sie den Knopf auf der Hue Bridge innerhalb von 30 Sekunden bevor sie fortfahren - + Hue gateway The name of the DeviceClass (642aa4c7-19aa-45ed-ba06-aa1ae6c9edf7) Hue Gateway - - - - - + + + + + name The name of the paramType (275b76f2-0174-4f26-b3ec-5f108baf8bdd) of hueBridge ---------- @@ -40,71 +40,47 @@ The name of the paramType (3d450f00-b521-4a2c-985f-046fad5122cb) of hueTapName - - - - - + api key - The name of the paramType (8bf5776a-d5a6-4600-8b27-481f0d803a8f) of hueBridge ----------- -The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueLight ----------- -The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueWhiteLight ----------- -The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueRemote ----------- -The name of the paramType (fb507641-9c78-4a28-937d-711775454e90) of hueTap + The name of the paramType (8bf5776a-d5a6-4600-8b27-481f0d803a8f) of hueBridge API Schlüssel - - - - - + host address - The name of the paramType (1845975b-1184-4440-bc0d-73d53a9f683c) of hueBridge ----------- -The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueLight ----------- -The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueWhiteLight ----------- -The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueRemote ----------- -The name of the paramType (6be56a1b-f64a-4188-a052-1fab11e01718) of hueTap + The name of the paramType (1845975b-1184-4440-bc0d-73d53a9f683c) of hueBridge Adresse - + mac address The name of the paramType (2c67203d-a308-45ec-9a08-fc4183c06ff8) of hueBridge MAC Adresse - + id The name of the paramType (a496feb0-3b7b-46cb-a63a-e063447d6b1d) of hueBridge ID - + software version The name of the paramType (ea228c4d-975c-4b43-9445-7c9a907c29d6) of hueBridge Software Version - + zigbee channel The name of the paramType (53170394-956c-4511-b3a8-2c8a502ef1ed) of hueBridge Zigbee Kanal - - - - - + + + + + reachable changed The name of the autocreated EventType (15794d26-fde8-4a61-8f83-d7830534975f) ---------- @@ -114,11 +90,11 @@ The name of the autocreated EventType (5e21b032-1230-4e93-8543-0c4773da17d3)Erreichbarkeit geändert - - - - - + + + + + connected The name of the ParamType of StateType (15794d26-fde8-4a61-8f83-d7830534975f) of DeviceClass hueBridge ---------- @@ -132,67 +108,52 @@ The name of the ParamType of StateType (5e21b032-1230-4e93-8543-0c4773da17d3) of - + api version changed The name of the autocreated EventType (7a230e89-c4ce-4276-90e0-6a9ddb890603) API Version geändert - + software version changed The name of the autocreated EventType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) Software Version geändert - + update status changed The name of the autocreated EventType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) Update Status geändert - + search devices The name of the ActionType cca3f171-6318-44e7-a2ac-d841857c1c24 of deviceClass hueBridge Suche Geräte - + check updates The name of the ActionType 07a85e91-d064-4bce-b017-13fd0c320c0b of deviceClass hueBridge Suche Updates - + Upgrade bridge The name of the ActionType 6dfbc7c0-7372-42f6-82ba-e777cb32dc4c of deviceClass hueBridge Bridge updaten - + Hue Light The name of the DeviceClass (0edba26c-96ab-44fb-a6a2-c0574d19630e) Hue Licht - - - - - bridge - The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueLight ----------- -The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueWhiteLight ----------- -The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueRemote ----------- -The name of the paramType (c9e7483b-2f4e-4280-a437-8471f4dc9b22) of hueTap - Bridge - - - - - - + + + + model id The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueLight ---------- @@ -204,10 +165,10 @@ The name of the paramType (62d92175-db3a-4da2-a72b-f58f34cb6911) of hueTapModel ID - - - - + + + + type The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueLight ---------- @@ -219,10 +180,10 @@ The name of the paramType (eace85b9-5369-466f-89eb-46c4de718305) of hueTapTyp - - - - + + + + uuid The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueLight ---------- @@ -234,8 +195,8 @@ The name of the paramType (25cf4167-6c28-4497-9fa9-3d02faf4f3ed) of hueTapUUID - - + + light id The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueLight ---------- @@ -243,15 +204,15 @@ The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueWhiteLigh Licht ID - - + + power changed The name of the autocreated EventType (90aaffe5-6a76-47d2-a14a-550f60390245) Eingeschaltet geändert - - + + power The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueLight ---------- @@ -259,58 +220,58 @@ The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of - - + + Set power The name of the autocreated ActionType (90aaffe5-6a76-47d2-a14a-550f60390245) Einschalten - + color temperature changed The name of the autocreated EventType (c0f4206f-f219-4f06-93c4-4ca515a56f79) Lichtfarben Temperatur geändert - + colorTemperature The name of the ParamType of StateType (c0f4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass hueLight - + Set color temperature The name of the autocreated ActionType (c0f4206f-f219-4f06-93c4-4ca515a56f79) Setze Lichtfarben Temperatur - + color changed The name of the autocreated EventType (d25423e7-b924-4b20-80b6-77eecc65d089) Farbe geändert - + color The name of the ParamType of StateType (d25423e7-b924-4b20-80b6-77eecc65d089) of DeviceClass hueLight - + Set color The name of the autocreated ActionType (d25423e7-b924-4b20-80b6-77eecc65d089) Setze Farbe - - + + brightness changed The name of the autocreated EventType (90e91f64-a208-468c-a5a2-7f47e08859e2) Helligkeit geändert - - + + brightness The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueLight ---------- @@ -318,38 +279,38 @@ The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of - + Set brigtness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) Setze Helligkeit - + effect changed The name of the autocreated EventType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) Licht Effekt geändert - + batteryLevel The name of the ParamType of StateType (683e493a-9796-4d5e-b0e3-61cb178d5819) of DeviceClass hueRemote - + battery critical changed The name of the autocreated EventType (f8516899-6312-4110-bb97-70ffa81dc530) - + batteryCritical The name of the ParamType of StateType (f8516899-6312-4110-bb97-70ffa81dc530) of DeviceClass hueRemote - - + + Button pressed The name of the EventType 8da28cf1-2457-451e-953e-2685f8daeda8 of deviceClass hueRemote ---------- @@ -357,8 +318,8 @@ The name of the EventType c45dd703-7cbd-48f7-88dc-31045cc3d39c of deviceClass hu - - + + Button name The name of the paramType (e4e3eb3a-a7c4-49e3-9344-0b3f213e0b42) of hueRemote ---------- @@ -366,56 +327,56 @@ The name of the paramType (8ed643c0-1b8a-4709-8abf-717cf213f4a4) of hueTap - + Button longpressed The name of the EventType 2c64561b-2381-4769-8e21-0e206c84bbcc of deviceClass hueRemote - + Hue Tap The name of the DeviceClass (2b8c1fb8-67ee-42e9-947b-16e0a09f0d4e) - + PhilipsHue The name of the plugin PhilipsHue (5f2e634b-b7f3-48ee-976a-b5ae22aa5c55) - + apiVersion The name of the ParamType of StateType (7a230e89-c4ce-4276-90e0-6a9ddb890603) of DeviceClass hueBridge - + softwareVersion The name of the ParamType of StateType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) of DeviceClass hueBridge - + updateStatus The name of the ParamType of StateType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) of DeviceClass hueBridge - + hueEffect The name of the ParamType of StateType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) of DeviceClass hueLight - + Set effect The name of the autocreated ActionType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) Setze Licht Effekt - - + + flash The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass hueLight ---------- @@ -423,8 +384,8 @@ The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass h Aufleuchten - - + + alert The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueLight ---------- @@ -432,26 +393,26 @@ The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueWhiteLigh Alarm - + Hue White Light The name of the DeviceClass (4fa568ef-7a3a-422b-b0c0-206d37cb4eed) Hue Weißlicht - + Set brightness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) - + Hue Remote The name of the DeviceClass (bb482d39-67ef-46dc-88e9-7b181d642b28) Hue Fernbedienung - - + + sensor id The name of the paramType (2ddb571b-149f-4f08-a76a-78b7d3aa27e0) of hueRemote ---------- @@ -459,55 +420,55 @@ The name of the paramType (5eca2b24-8986-4487-bc12-50e91d023d97) of hueTapSensor ID - + battery changed The name of the autocreated EventType (683e493a-9796-4d5e-b0e3-61cb178d5819) Batterie geändert - + on pressed The name of the EventType de769db0-4c31-46cf-9760-dbc6f9209c26 of deviceClass hueRemote Wenn gedrückt - + on long pressed The name of the EventType 6c5e596b-7c15-40bb-af9d-c778a6b0f30e of deviceClass hueRemote Wenn lange gedrückt - + dim up pressed The name of the EventType 8e3d6a62-6a19-4e9a-a25b-e1da2e56ede9 of deviceClass hueRemote Hochdimmen - + dim up long pressed The name of the EventType 53d3c9af-3e25-4116-b22b-38d897bc20aa of deviceClass hueRemote Runterdimmen - + dim down pressed The name of the EventType efd8b972-9a37-43f2-b9bc-f9dfe144a96d of deviceClass hueRemote Runter dimmen gedrückt - + dim down long pressed The name of the EventType 1986d4c6-4c9f-4e43-ba70-0ff06c6f177b of deviceClass hueRemote Runter dimmen lange gedrückt - + off pressed The name of the EventType 7c2a58f1-137c-4bf3-8f9e-453dff020487 of deviceClass hueRemote Aus gedrückt - + off long pressed The name of the EventType d69306eb-ea52-4841-9e26-89c69e9cf6fc of deviceClass hueRemote Aus lange gedrückt diff --git a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts index 3e582a3b..61341cc6 100644 --- a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts +++ b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts @@ -4,29 +4,29 @@ PhilipsHue - + Philips The name of the vendor (0ae1e001-2aa6-47ed-b8c0-334c3728a68f) - + Please press the button on the Hue Bridge within 30 seconds before you continue The pairing info of deviceClass hueBridge - + Hue gateway The name of the DeviceClass (642aa4c7-19aa-45ed-ba06-aa1ae6c9edf7) - - - - - + + + + + name The name of the paramType (275b76f2-0174-4f26-b3ec-5f108baf8bdd) of hueBridge ---------- @@ -40,71 +40,47 @@ The name of the paramType (3d450f00-b521-4a2c-985f-046fad5122cb) of hueTap - - - - - + api key - The name of the paramType (8bf5776a-d5a6-4600-8b27-481f0d803a8f) of hueBridge ----------- -The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueLight ----------- -The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueWhiteLight ----------- -The name of the paramType (99458d90-d171-4600-ba08-4818a4aaed68) of hueRemote ----------- -The name of the paramType (fb507641-9c78-4a28-937d-711775454e90) of hueTap + The name of the paramType (8bf5776a-d5a6-4600-8b27-481f0d803a8f) of hueBridge - - - - - + host address - The name of the paramType (1845975b-1184-4440-bc0d-73d53a9f683c) of hueBridge ----------- -The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueLight ----------- -The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueWhiteLight ----------- -The name of the paramType (56d14f2f-1b20-4004-a333-87ac09fa54d2) of hueRemote ----------- -The name of the paramType (6be56a1b-f64a-4188-a052-1fab11e01718) of hueTap + The name of the paramType (1845975b-1184-4440-bc0d-73d53a9f683c) of hueBridge - + mac address The name of the paramType (2c67203d-a308-45ec-9a08-fc4183c06ff8) of hueBridge - + id The name of the paramType (a496feb0-3b7b-46cb-a63a-e063447d6b1d) of hueBridge - + software version The name of the paramType (ea228c4d-975c-4b43-9445-7c9a907c29d6) of hueBridge - + zigbee channel The name of the paramType (53170394-956c-4511-b3a8-2c8a502ef1ed) of hueBridge - - - - - + + + + + reachable changed The name of the autocreated EventType (15794d26-fde8-4a61-8f83-d7830534975f) ---------- @@ -114,11 +90,11 @@ The name of the autocreated EventType (5e21b032-1230-4e93-8543-0c4773da17d3) - - - - - + + + + + connected The name of the ParamType of StateType (15794d26-fde8-4a61-8f83-d7830534975f) of DeviceClass hueBridge ---------- @@ -132,67 +108,52 @@ The name of the ParamType of StateType (5e21b032-1230-4e93-8543-0c4773da17d3) of - + api version changed The name of the autocreated EventType (7a230e89-c4ce-4276-90e0-6a9ddb890603) - + software version changed The name of the autocreated EventType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) - + update status changed The name of the autocreated EventType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) - + search devices The name of the ActionType cca3f171-6318-44e7-a2ac-d841857c1c24 of deviceClass hueBridge - + check updates The name of the ActionType 07a85e91-d064-4bce-b017-13fd0c320c0b of deviceClass hueBridge - + Upgrade bridge The name of the ActionType 6dfbc7c0-7372-42f6-82ba-e777cb32dc4c of deviceClass hueBridge - + Hue Light The name of the DeviceClass (0edba26c-96ab-44fb-a6a2-c0574d19630e) - - - - - bridge - The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueLight ----------- -The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueWhiteLight ----------- -The name of the paramType (33b01ab8-3811-4a06-ab3c-0a0ef2faa3ef) of hueRemote ----------- -The name of the paramType (c9e7483b-2f4e-4280-a437-8471f4dc9b22) of hueTap - - - - - - - + + + + model id The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueLight ---------- @@ -204,10 +165,10 @@ The name of the paramType (62d92175-db3a-4da2-a72b-f58f34cb6911) of hueTap - - - - + + + + type The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueLight ---------- @@ -219,10 +180,10 @@ The name of the paramType (eace85b9-5369-466f-89eb-46c4de718305) of hueTap - - - - + + + + uuid The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueLight ---------- @@ -234,8 +195,8 @@ The name of the paramType (25cf4167-6c28-4497-9fa9-3d02faf4f3ed) of hueTap - - + + light id The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueLight ---------- @@ -243,15 +204,15 @@ The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueWhiteLigh - - + + power changed The name of the autocreated EventType (90aaffe5-6a76-47d2-a14a-550f60390245) - - + + power The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueLight ---------- @@ -259,58 +220,58 @@ The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of - - + + Set power The name of the autocreated ActionType (90aaffe5-6a76-47d2-a14a-550f60390245) - + color temperature changed The name of the autocreated EventType (c0f4206f-f219-4f06-93c4-4ca515a56f79) - + colorTemperature The name of the ParamType of StateType (c0f4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass hueLight - + Set color temperature The name of the autocreated ActionType (c0f4206f-f219-4f06-93c4-4ca515a56f79) - + color changed The name of the autocreated EventType (d25423e7-b924-4b20-80b6-77eecc65d089) - + color The name of the ParamType of StateType (d25423e7-b924-4b20-80b6-77eecc65d089) of DeviceClass hueLight - + Set color The name of the autocreated ActionType (d25423e7-b924-4b20-80b6-77eecc65d089) - - + + brightness changed The name of the autocreated EventType (90e91f64-a208-468c-a5a2-7f47e08859e2) - - + + brightness The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueLight ---------- @@ -318,38 +279,38 @@ The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of - + Set brigtness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) - + effect changed The name of the autocreated EventType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) - + batteryLevel The name of the ParamType of StateType (683e493a-9796-4d5e-b0e3-61cb178d5819) of DeviceClass hueRemote - + battery critical changed The name of the autocreated EventType (f8516899-6312-4110-bb97-70ffa81dc530) - + batteryCritical The name of the ParamType of StateType (f8516899-6312-4110-bb97-70ffa81dc530) of DeviceClass hueRemote - - + + Button pressed The name of the EventType 8da28cf1-2457-451e-953e-2685f8daeda8 of deviceClass hueRemote ---------- @@ -357,8 +318,8 @@ The name of the EventType c45dd703-7cbd-48f7-88dc-31045cc3d39c of deviceClass hu - - + + Button name The name of the paramType (e4e3eb3a-a7c4-49e3-9344-0b3f213e0b42) of hueRemote ---------- @@ -366,56 +327,56 @@ The name of the paramType (8ed643c0-1b8a-4709-8abf-717cf213f4a4) of hueTap - + Button longpressed The name of the EventType 2c64561b-2381-4769-8e21-0e206c84bbcc of deviceClass hueRemote - + Hue Tap The name of the DeviceClass (2b8c1fb8-67ee-42e9-947b-16e0a09f0d4e) - + PhilipsHue The name of the plugin PhilipsHue (5f2e634b-b7f3-48ee-976a-b5ae22aa5c55) - + apiVersion The name of the ParamType of StateType (7a230e89-c4ce-4276-90e0-6a9ddb890603) of DeviceClass hueBridge - + softwareVersion The name of the ParamType of StateType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) of DeviceClass hueBridge - + updateStatus The name of the ParamType of StateType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) of DeviceClass hueBridge - + hueEffect The name of the ParamType of StateType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) of DeviceClass hueLight - + Set effect The name of the autocreated ActionType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) - - + + flash The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass hueLight ---------- @@ -423,8 +384,8 @@ The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass h - - + + alert The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueLight ---------- @@ -432,26 +393,26 @@ The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueWhiteLigh - + Hue White Light The name of the DeviceClass (4fa568ef-7a3a-422b-b0c0-206d37cb4eed) - + Set brightness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) - + Hue Remote The name of the DeviceClass (bb482d39-67ef-46dc-88e9-7b181d642b28) - - + + sensor id The name of the paramType (2ddb571b-149f-4f08-a76a-78b7d3aa27e0) of hueRemote ---------- @@ -459,55 +420,55 @@ The name of the paramType (5eca2b24-8986-4487-bc12-50e91d023d97) of hueTap - + battery changed The name of the autocreated EventType (683e493a-9796-4d5e-b0e3-61cb178d5819) - + on pressed The name of the EventType de769db0-4c31-46cf-9760-dbc6f9209c26 of deviceClass hueRemote - + on long pressed The name of the EventType 6c5e596b-7c15-40bb-af9d-c778a6b0f30e of deviceClass hueRemote - + dim up pressed The name of the EventType 8e3d6a62-6a19-4e9a-a25b-e1da2e56ede9 of deviceClass hueRemote - + dim up long pressed The name of the EventType 53d3c9af-3e25-4116-b22b-38d897bc20aa of deviceClass hueRemote - + dim down pressed The name of the EventType efd8b972-9a37-43f2-b9bc-f9dfe144a96d of deviceClass hueRemote - + dim down long pressed The name of the EventType 1986d4c6-4c9f-4e43-ba70-0ff06c6f177b of deviceClass hueRemote - + off pressed The name of the EventType 7c2a58f1-137c-4bf3-8f9e-453dff020487 of deviceClass hueRemote - + off long pressed The name of the EventType d69306eb-ea52-4841-9e26-89c69e9cf6fc of deviceClass hueRemote From 4785ef54e11b5ba1536a00d4d263c174cf6953af Mon Sep 17 00:00:00 2001 From: Jenkins Date: Wed, 4 Apr 2018 20:47:58 +0200 Subject: [PATCH 62/62] Automatic translations update by Jenkins --- ...fb167-cef7-4347-8c58-fa39df7bea4f-de_DE.ts | 13 +- ...fb167-cef7-4347-8c58-fa39df7bea4f-en_US.ts | 13 +- ...61c33-d44e-461e-8ec1-68803cb73f12-de_DE.ts | 155 +++-- ...61c33-d44e-461e-8ec1-68803cb73f12-en_US.ts | 155 +++-- ...7b796-4872-4eab-a7af-94ca9ddd8199-de_DE.ts | 6 +- ...7b796-4872-4eab-a7af-94ca9ddd8199-en_US.ts | 6 +- ...014c6-87fb-4233-85ed-01d18625018d-de_DE.ts | 50 +- ...014c6-87fb-4233-85ed-01d18625018d-en_US.ts | 50 +- ...58269-dbbb-4ef0-80ab-48bd9a8a2765-de_DE.ts | 45 +- ...58269-dbbb-4ef0-80ab-48bd9a8a2765-en_US.ts | 45 +- ...03ad4-bfdb-444a-8eca-2c234c46cc27-de_DE.ts | 162 +++--- ...03ad4-bfdb-444a-8eca-2c234c46cc27-en_US.ts | 162 +++--- ...4c43c-9680-48d8-852a-93b2227139b9-de_DE.ts | 530 +++++++++--------- ...4c43c-9680-48d8-852a-93b2227139b9-en_US.ts | 530 +++++++++--------- ...2161e-39b7-4416-8623-39e730721efb-de_DE.ts | 35 +- ...2161e-39b7-4416-8623-39e730721efb-en_US.ts | 35 +- ...ead55-996a-44ac-ba82-fc3c634e018a-de_DE.ts | 86 +-- ...ead55-996a-44ac-ba82-fc3c634e018a-en_US.ts | 86 +-- ...2670c-6268-4487-8dff-cccca498731a-en_US.ts | 41 +- ...2b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts | 104 ++-- ...86890-99fa-4c5b-8247-09c6d450d490-de_DE.ts | 89 +-- ...86890-99fa-4c5b-8247-09c6d450d490-en_US.ts | 89 +-- ...7a68b-9da0-4c62-b9ac-f478dc6f9f52-de_DE.ts | 119 ++-- ...7a68b-9da0-4c62-b9ac-f478dc6f9f52-en_US.ts | 119 ++-- ...35df1-1b51-4c93-94fa-3febc77e0318-de_DE.ts | 12 +- ...35df1-1b51-4c93-94fa-3febc77e0318-en_US.ts | 12 +- ...f0d8d-df7d-4bee-80ee-f015c5a7f52e-de_DE.ts | 397 +++++++------ ...f0d8d-df7d-4bee-80ee-f015c5a7f52e-en_US.ts | 397 +++++++------ ...14951-0c02-4877-bcef-dffdf48b7ccb-de_DE.ts | 84 +-- ...14951-0c02-4877-bcef-dffdf48b7ccb-en_US.ts | 84 +-- ...f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts | 6 +- ...f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts | 6 +- ...af567-2338-41d5-aac1-462dec6e4783-de_DE.ts | 92 +-- ...af567-2338-41d5-aac1-462dec6e4783-en_US.ts | 92 +-- ...a6557-649d-43de-990b-3484f972ad86-de_DE.ts | 55 +- ...a6557-649d-43de-990b-3484f972ad86-en_US.ts | 55 +- ...27596-e266-4a23-8634-7311b2c5fe32-de_DE.ts | 13 +- ...27596-e266-4a23-8634-7311b2c5fe32-en_US.ts | 13 +- ...e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts | 296 +++++----- ...e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts | 296 +++++----- ...a115f-2a9f-49b3-9575-9e36d137c8d6-de_DE.ts | 103 ++-- ...a115f-2a9f-49b3-9575-9e36d137c8d6-en_US.ts | 103 ++-- ...5d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts | 36 +- ...e9d77-335f-4ecf-abbc-8f2a8a399c39-de_DE.ts | 52 +- ...e9d77-335f-4ecf-abbc-8f2a8a399c39-en_US.ts | 52 +- ...68429-e312-4c82-9eab-e1cd996e43d6-en_US.ts | 395 +++++++------ ...bce59-59bf-48b3-b781-54a6f45800f3-de_DE.ts | 163 +++--- ...bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts | 163 +++--- ...b7b0a-0c9c-4c93-be99-0d0bcf5a4643-de_DE.ts | 10 +- ...b7b0a-0c9c-4c93-be99-0d0bcf5a4643-en_US.ts | 10 +- ...8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts | 15 +- ...8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts | 15 +- ...bc368-d674-41ef-a368-6b6a76c96365-de_DE.ts | 61 +- ...bc368-d674-41ef-a368-6b6a76c96365-en_US.ts | 61 +- ...87848-de56-451e-84a6-edd26ad4958f-de_DE.ts | 2 +- ...87848-de56-451e-84a6-edd26ad4958f-en_US.ts | 2 +- ...b5ce0-ecf1-43de-98f0-07df4068a583-de_DE.ts | 31 +- ...b5ce0-ecf1-43de-98f0-07df4068a583-en_US.ts | 31 +- ...68c75-3261-4bf1-8912-798d2d3bbd3b-de_DE.ts | 179 +++--- ...68c75-3261-4bf1-8912-798d2d3bbd3b-en_US.ts | 179 +++--- 60 files changed, 3285 insertions(+), 3013 deletions(-) diff --git a/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-de_DE.ts b/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-de_DE.ts index 5ba17330..828ab513 100644 --- a/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-de_DE.ts +++ b/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-de_DE.ts @@ -4,15 +4,12 @@ AvahiMonitor + Avahi Monitor - The name of the DeviceClass (97f0154d-6945-49b8-bd65-0a8cea0c6652) - - - - - AvahiMonitor - The name of the plugin AvahiMonitor (d83fb167-cef7-4347-8c58-fa39df7bea4f) + The name of the plugin AvahiMonitor (d83fb167-cef7-4347-8c58-fa39df7bea4f) +---------- +The name of the DeviceClass (97f0154d-6945-49b8-bd65-0a8cea0c6652) @@ -42,7 +39,7 @@ online - The name of the ParamType of StateType (b5616fd3-da12-4613-9576-6516b2267180) of DeviceClass avahi + The name of the ParamType of the autocreated EventType (b5616fd3-da12-4613-9576-6516b2267180) of DeviceClass avahi diff --git a/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-en_US.ts b/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-en_US.ts index 0815b3e5..2bf214f1 100644 --- a/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-en_US.ts +++ b/avahimonitor/translations/d83fb167-cef7-4347-8c58-fa39df7bea4f-en_US.ts @@ -4,15 +4,12 @@ AvahiMonitor + Avahi Monitor - The name of the DeviceClass (97f0154d-6945-49b8-bd65-0a8cea0c6652) - - - - - AvahiMonitor - The name of the plugin AvahiMonitor (d83fb167-cef7-4347-8c58-fa39df7bea4f) + The name of the plugin AvahiMonitor (d83fb167-cef7-4347-8c58-fa39df7bea4f) +---------- +The name of the DeviceClass (97f0154d-6945-49b8-bd65-0a8cea0c6652) @@ -42,7 +39,7 @@ online - The name of the ParamType of StateType (b5616fd3-da12-4613-9576-6516b2267180) of DeviceClass avahi + The name of the ParamType of the autocreated EventType (b5616fd3-da12-4613-9576-6516b2267180) of DeviceClass avahi diff --git a/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-de_DE.ts b/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-de_DE.ts index ba2341b6..5773109b 100644 --- a/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-de_DE.ts +++ b/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-de_DE.ts @@ -4,174 +4,171 @@ awattar - - awattar - The name of the plugin awattar (9c261c33-d44e-461e-8ec1-68803cb73f12) - - - - + RPL address The name of the paramType (cf13eebf-f188-447a-afcb-bbd330983060) of awattar - - + + + aWATTar - The name of the vendor (acd47238-bbbc-4eaf-b484-38c52cfa4866) + The name of the plugin awattar (9c261c33-d44e-461e-8ec1-68803cb73f12) +---------- +The name of the vendor (acd47238-bbbc-4eaf-b484-38c52cfa4866) ---------- The name of the DeviceClass (29cd8265-d8bb-4cf9-9080-bfc2cf9787bc) - + user uuid The name of the paramType (cbbf6f0a-6a91-4844-83f5-60eadb46099b) of awattar - + token The name of the paramType (7ab323d0-f3b5-4baa-9ff9-4843b4dd9811) of awattar - + current market price changed The name of the autocreated EventType (eab37309-3dd8-46a0-94d4-bd05b5bb0430) - - currentMarketPrice - The name of the ParamType of StateType (eab37309-3dd8-46a0-94d4-bd05b5bb0430) of DeviceClass awattar + + current market price + The name of the ParamType of the autocreated EventType (eab37309-3dd8-46a0-94d4-bd05b5bb0430) of DeviceClass awattar - + + average deviation + The name of the ParamType of the autocreated EventType (38b86cee-9588-4269-a585-128907929dc2) of DeviceClass awattar + + + + + valid until + The name of the ParamType of the autocreated EventType (d5a8a176-aca0-45b1-b043-95c43750f383) of DeviceClass awattar + + + + + average market price [+/- 12 h] + The name of the ParamType of the autocreated EventType (55d6d7a8-446f-48ae-8014-1225810d03ee) of DeviceClass awattar + + + + + lowest market price [+/- 12 h] + The name of the ParamType of the autocreated EventType (e7af5bdc-48d7-4e96-b877-331da4dcfae5) of DeviceClass awattar + + + + + highest market price [+/- 12 h] + The name of the ParamType of the autocreated EventType (0c171c42-b070-453e-8a63-df9aebfa8533) of DeviceClass awattar + + + + + pump reachable + The name of the ParamType of the autocreated EventType (1c9d139a-6618-4a39-bc83-37f80942017d) of DeviceClass awattar + + + + + + sync mode + The name of the ParamType of the autocreated EventType (4c303bcd-152d-45ad-874d-d57fc87a26bb) of DeviceClass awattar +---------- +The name of the autocreated ParamType of the writable StateType (4c303bcd-152d-45ad-874d-d57fc87a26bb) of DeviceClass awattar + + + + average deviation changed The name of the autocreated EventType (38b86cee-9588-4269-a585-128907929dc2) - - averageDeviation - The name of the ParamType of StateType (38b86cee-9588-4269-a585-128907929dc2) of DeviceClass awattar - - - - + valid until changed The name of the autocreated EventType (d5a8a176-aca0-45b1-b043-95c43750f383) - - validUntil - The name of the ParamType of StateType (d5a8a176-aca0-45b1-b043-95c43750f383) of DeviceClass awattar - - - - + average market price [+/- 12 h] changed The name of the autocreated EventType (55d6d7a8-446f-48ae-8014-1225810d03ee) - - averagePrice - The name of the ParamType of StateType (55d6d7a8-446f-48ae-8014-1225810d03ee) of DeviceClass awattar - - - - + lowest market price [+/- 12 h] changed The name of the autocreated EventType (e7af5bdc-48d7-4e96-b877-331da4dcfae5) - - lowestPrice - The name of the ParamType of StateType (e7af5bdc-48d7-4e96-b877-331da4dcfae5) of DeviceClass awattar - - - - + highest market price [+/- 12 h] changed The name of the autocreated EventType (0c171c42-b070-453e-8a63-df9aebfa8533) - - highestPrice - The name of the ParamType of StateType (0c171c42-b070-453e-8a63-df9aebfa8533) of DeviceClass awattar - - - - + online changed The name of the autocreated EventType (470b9b88-17f3-42e3-9250-cc181984eafe) - + online - The name of the ParamType of StateType (470b9b88-17f3-42e3-9250-cc181984eafe) of DeviceClass awattar + The name of the ParamType of the autocreated EventType (470b9b88-17f3-42e3-9250-cc181984eafe) of DeviceClass awattar - + pump reachable changed The name of the autocreated EventType (1c9d139a-6618-4a39-bc83-37f80942017d) - - reachable - The name of the ParamType of StateType (1c9d139a-6618-4a39-bc83-37f80942017d) of DeviceClass awattar - - - - + sg-mode changed The name of the autocreated EventType (b83d3533-aeae-4a9b-95d8-28466bf6c0cf) - - sgMode - The name of the ParamType of StateType (b83d3533-aeae-4a9b-95d8-28466bf6c0cf) of DeviceClass awattar - - - - + sync mode changed The name of the autocreated EventType (4c303bcd-152d-45ad-874d-d57fc87a26bb) - - sgSyncMode - The name of the ParamType of StateType (4c303bcd-152d-45ad-874d-d57fc87a26bb) of DeviceClass awattar - - - - + Set sync mode The name of the autocreated ActionType (4c303bcd-152d-45ad-874d-d57fc87a26bb) - + set sg-mode The name of the ActionType dd82f6c7-5e92-48ca-b0bc-bdc55d3e1482 of deviceClass awattar - + + sg-mode - The name of the paramType (c7b13a33-1c05-457c-a087-20ecc1b8ca01) of awattar + The name of the ParamType of the autocreated EventType (b83d3533-aeae-4a9b-95d8-28466bf6c0cf) of DeviceClass awattar +---------- +The name of the paramType (c7b13a33-1c05-457c-a087-20ecc1b8ca01) of awattar diff --git a/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-en_US.ts b/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-en_US.ts index 87895f13..73a6270c 100644 --- a/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-en_US.ts +++ b/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-en_US.ts @@ -4,174 +4,171 @@ awattar - - awattar - The name of the plugin awattar (9c261c33-d44e-461e-8ec1-68803cb73f12) - - - - + RPL address The name of the paramType (cf13eebf-f188-447a-afcb-bbd330983060) of awattar - - + + + aWATTar - The name of the vendor (acd47238-bbbc-4eaf-b484-38c52cfa4866) + The name of the plugin awattar (9c261c33-d44e-461e-8ec1-68803cb73f12) +---------- +The name of the vendor (acd47238-bbbc-4eaf-b484-38c52cfa4866) ---------- The name of the DeviceClass (29cd8265-d8bb-4cf9-9080-bfc2cf9787bc) - + user uuid The name of the paramType (cbbf6f0a-6a91-4844-83f5-60eadb46099b) of awattar - + token The name of the paramType (7ab323d0-f3b5-4baa-9ff9-4843b4dd9811) of awattar - + current market price changed The name of the autocreated EventType (eab37309-3dd8-46a0-94d4-bd05b5bb0430) - - currentMarketPrice - The name of the ParamType of StateType (eab37309-3dd8-46a0-94d4-bd05b5bb0430) of DeviceClass awattar + + current market price + The name of the ParamType of the autocreated EventType (eab37309-3dd8-46a0-94d4-bd05b5bb0430) of DeviceClass awattar - + + average deviation + The name of the ParamType of the autocreated EventType (38b86cee-9588-4269-a585-128907929dc2) of DeviceClass awattar + + + + + valid until + The name of the ParamType of the autocreated EventType (d5a8a176-aca0-45b1-b043-95c43750f383) of DeviceClass awattar + + + + + average market price [+/- 12 h] + The name of the ParamType of the autocreated EventType (55d6d7a8-446f-48ae-8014-1225810d03ee) of DeviceClass awattar + + + + + lowest market price [+/- 12 h] + The name of the ParamType of the autocreated EventType (e7af5bdc-48d7-4e96-b877-331da4dcfae5) of DeviceClass awattar + + + + + highest market price [+/- 12 h] + The name of the ParamType of the autocreated EventType (0c171c42-b070-453e-8a63-df9aebfa8533) of DeviceClass awattar + + + + + pump reachable + The name of the ParamType of the autocreated EventType (1c9d139a-6618-4a39-bc83-37f80942017d) of DeviceClass awattar + + + + + + sync mode + The name of the ParamType of the autocreated EventType (4c303bcd-152d-45ad-874d-d57fc87a26bb) of DeviceClass awattar +---------- +The name of the autocreated ParamType of the writable StateType (4c303bcd-152d-45ad-874d-d57fc87a26bb) of DeviceClass awattar + + + + average deviation changed The name of the autocreated EventType (38b86cee-9588-4269-a585-128907929dc2) - - averageDeviation - The name of the ParamType of StateType (38b86cee-9588-4269-a585-128907929dc2) of DeviceClass awattar - - - - + valid until changed The name of the autocreated EventType (d5a8a176-aca0-45b1-b043-95c43750f383) - - validUntil - The name of the ParamType of StateType (d5a8a176-aca0-45b1-b043-95c43750f383) of DeviceClass awattar - - - - + average market price [+/- 12 h] changed The name of the autocreated EventType (55d6d7a8-446f-48ae-8014-1225810d03ee) - - averagePrice - The name of the ParamType of StateType (55d6d7a8-446f-48ae-8014-1225810d03ee) of DeviceClass awattar - - - - + lowest market price [+/- 12 h] changed The name of the autocreated EventType (e7af5bdc-48d7-4e96-b877-331da4dcfae5) - - lowestPrice - The name of the ParamType of StateType (e7af5bdc-48d7-4e96-b877-331da4dcfae5) of DeviceClass awattar - - - - + highest market price [+/- 12 h] changed The name of the autocreated EventType (0c171c42-b070-453e-8a63-df9aebfa8533) - - highestPrice - The name of the ParamType of StateType (0c171c42-b070-453e-8a63-df9aebfa8533) of DeviceClass awattar - - - - + online changed The name of the autocreated EventType (470b9b88-17f3-42e3-9250-cc181984eafe) - + online - The name of the ParamType of StateType (470b9b88-17f3-42e3-9250-cc181984eafe) of DeviceClass awattar + The name of the ParamType of the autocreated EventType (470b9b88-17f3-42e3-9250-cc181984eafe) of DeviceClass awattar - + pump reachable changed The name of the autocreated EventType (1c9d139a-6618-4a39-bc83-37f80942017d) - - reachable - The name of the ParamType of StateType (1c9d139a-6618-4a39-bc83-37f80942017d) of DeviceClass awattar - - - - + sg-mode changed The name of the autocreated EventType (b83d3533-aeae-4a9b-95d8-28466bf6c0cf) - - sgMode - The name of the ParamType of StateType (b83d3533-aeae-4a9b-95d8-28466bf6c0cf) of DeviceClass awattar - - - - + sync mode changed The name of the autocreated EventType (4c303bcd-152d-45ad-874d-d57fc87a26bb) - - sgSyncMode - The name of the ParamType of StateType (4c303bcd-152d-45ad-874d-d57fc87a26bb) of DeviceClass awattar - - - - + Set sync mode The name of the autocreated ActionType (4c303bcd-152d-45ad-874d-d57fc87a26bb) - + set sg-mode The name of the ActionType dd82f6c7-5e92-48ca-b0bc-bdc55d3e1482 of deviceClass awattar - + + sg-mode - The name of the paramType (c7b13a33-1c05-457c-a087-20ecc1b8ca01) of awattar + The name of the ParamType of the autocreated EventType (b83d3533-aeae-4a9b-95d8-28466bf6c0cf) of DeviceClass awattar +---------- +The name of the paramType (c7b13a33-1c05-457c-a087-20ecc1b8ca01) of awattar diff --git a/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-de_DE.ts b/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-de_DE.ts index 78838ca9..259e2383 100644 --- a/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-de_DE.ts +++ b/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-de_DE.ts @@ -5,7 +5,7 @@ CommandLauncher - CommandLauncher + Application and script launcher The name of the plugin CommandLauncher (5d37b796-4872-4eab-a7af-94ca9ddd8199) @@ -38,9 +38,9 @@ running - The name of the ParamType of StateType (28d7e933-ff05-4f4c-95a0-482689543de5) of DeviceClass application + The name of the ParamType of the autocreated EventType (28d7e933-ff05-4f4c-95a0-482689543de5) of DeviceClass application ---------- -The name of the ParamType of StateType (28d7e933-ff05-4f4c-95a0-482689543de5) of DeviceClass script +The name of the ParamType of the autocreated EventType (28d7e933-ff05-4f4c-95a0-482689543de5) of DeviceClass script diff --git a/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-en_US.ts b/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-en_US.ts index e0b770ac..c5c4b3ad 100644 --- a/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-en_US.ts +++ b/commandlauncher/translations/5d37b796-4872-4eab-a7af-94ca9ddd8199-en_US.ts @@ -5,7 +5,7 @@ CommandLauncher - CommandLauncher + Application and script launcher The name of the plugin CommandLauncher (5d37b796-4872-4eab-a7af-94ca9ddd8199) @@ -38,9 +38,9 @@ running - The name of the ParamType of StateType (28d7e933-ff05-4f4c-95a0-482689543de5) of DeviceClass application + The name of the ParamType of the autocreated EventType (28d7e933-ff05-4f4c-95a0-482689543de5) of DeviceClass application ---------- -The name of the ParamType of StateType (28d7e933-ff05-4f4c-95a0-482689543de5) of DeviceClass script +The name of the ParamType of the autocreated EventType (28d7e933-ff05-4f4c-95a0-482689543de5) of DeviceClass script diff --git a/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-de_DE.ts b/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-de_DE.ts index 6916ed47..226645fb 100644 --- a/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-de_DE.ts +++ b/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-de_DE.ts @@ -24,7 +24,7 @@ city - The name of the ParamType of StateType (65d2a5ff-bcab-43a8-b043-f88cf01586f4) of DeviceClass today + The name of the ParamType of the autocreated EventType (65d2a5ff-bcab-43a8-b043-f88cf01586f4) of DeviceClass today Stadt @@ -36,7 +36,7 @@ country - The name of the ParamType of StateType (a534bd8b-6826-4d71-b9f9-df1433964b94) of DeviceClass today + The name of the ParamType of the autocreated EventType (a534bd8b-6826-4d71-b9f9-df1433964b94) of DeviceClass today Land @@ -48,7 +48,7 @@ day - The name of the ParamType of StateType (eb5231ea-6a1b-4d7e-a95f-d49e7b25122e) of DeviceClass today + The name of the ParamType of the autocreated EventType (eb5231ea-6a1b-4d7e-a95f-d49e7b25122e) of DeviceClass today Tag @@ -60,7 +60,7 @@ month - The name of the ParamType of StateType (fcd8ec96-4488-438a-8b30-58bfe2a7fae2) of DeviceClass today + The name of the ParamType of the autocreated EventType (fcd8ec96-4488-438a-8b30-58bfe2a7fae2) of DeviceClass today Monat @@ -78,7 +78,7 @@ year - The name of the ParamType of StateType (79d4ae9b-ea27-4346-8229-1d90f1ddfc9d) of DeviceClass today + The name of the ParamType of the autocreated EventType (79d4ae9b-ea27-4346-8229-1d90f1ddfc9d) of DeviceClass today Jahr @@ -90,7 +90,7 @@ weekday - The name of the ParamType of StateType (452c0388-7fa1-414e-aeb2-8c7c385824b4) of DeviceClass today + The name of the ParamType of the autocreated EventType (452c0388-7fa1-414e-aeb2-8c7c385824b4) of DeviceClass today Wochentag @@ -99,34 +99,34 @@ The name of the autocreated EventType (f627d052-cee6-4727-b9c6-0e935d41e04a) Wochentag Name geändert - - - DateTime - The name of the plugin DateTime (c26014c6-87fb-4233-85ed-01d18625018d) - - guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + + Time + The name of the plugin DateTime (c26014c6-87fb-4233-85ed-01d18625018d) + + - timeZone - The name of the ParamType of StateType (ab16997c-be29-438e-b588-2507d723d264) of DeviceClass today + timezone + The name of the ParamType of the autocreated EventType (ab16997c-be29-438e-b588-2507d723d264) of DeviceClass today - monthName - The name of the ParamType of StateType (a37acc9c-5cfb-4687-adce-e56beb32586f) of DeviceClass today + month name + The name of the ParamType of the autocreated EventType (a37acc9c-5cfb-4687-adce-e56beb32586f) of DeviceClass today - weekdayName - The name of the ParamType of StateType (f627d052-cee6-4727-b9c6-0e935d41e04a) of DeviceClass today + weekday name + The name of the ParamType of the autocreated EventType (f627d052-cee6-4727-b9c6-0e935d41e04a) of DeviceClass today @@ -138,7 +138,7 @@ weekend - The name of the ParamType of StateType (4de5b57b-bb1a-4d66-9ce3-22bb280b075d) of DeviceClass today + The name of the ParamType of the autocreated EventType (4de5b57b-bb1a-4d66-9ce3-22bb280b075d) of DeviceClass today Wochenende @@ -150,7 +150,7 @@ dusk - The name of the ParamType of StateType (44a99419-fbcd-4d8e-9441-897848b8f77c) of DeviceClass today + The name of the ParamType of the autocreated EventType (44a99419-fbcd-4d8e-9441-897848b8f77c) of DeviceClass today Abenddämmerung @@ -162,7 +162,7 @@ sunrise - The name of the ParamType of StateType (3a08824d-285b-412e-a515-9664b491a85c) of DeviceClass today + The name of the ParamType of the autocreated EventType (3a08824d-285b-412e-a515-9664b491a85c) of DeviceClass today Sonnenaufgang @@ -174,7 +174,7 @@ noon - The name of the ParamType of StateType (d92be29a-929c-4240-91a0-30153850f838) of DeviceClass today + The name of the ParamType of the autocreated EventType (d92be29a-929c-4240-91a0-30153850f838) of DeviceClass today Sonnenhöchststand @@ -186,7 +186,7 @@ dawn - The name of the ParamType of StateType (a5779b11-0499-4a6d-a7bd-8143dcc546b4) of DeviceClass today + The name of the ParamType of the autocreated EventType (a5779b11-0499-4a6d-a7bd-8143dcc546b4) of DeviceClass today Morgendämmerung @@ -198,7 +198,7 @@ sunset - The name of the ParamType of StateType (377f04a7-df58-42ad-a234-e9e23bdc2f85) of DeviceClass today + The name of the ParamType of the autocreated EventType (377f04a7-df58-42ad-a234-e9e23bdc2f85) of DeviceClass today Sonnenuntergang @@ -312,7 +312,7 @@ The name of the paramType (0a54fe54-45a7-4fc5-a8d2-f9b6a92033de) of countdown running - The name of the ParamType of StateType (b21ccd53-1ebd-41a0-a2a3-662874e79837) of DeviceClass countdown + The name of the ParamType of the autocreated EventType (b21ccd53-1ebd-41a0-a2a3-662874e79837) of DeviceClass countdown Läuft diff --git a/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-en_US.ts b/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-en_US.ts index 109dbdd2..61cc0e83 100644 --- a/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-en_US.ts +++ b/datetime/translations/c26014c6-87fb-4233-85ed-01d18625018d-en_US.ts @@ -24,7 +24,7 @@ city - The name of the ParamType of StateType (65d2a5ff-bcab-43a8-b043-f88cf01586f4) of DeviceClass today + The name of the ParamType of the autocreated EventType (65d2a5ff-bcab-43a8-b043-f88cf01586f4) of DeviceClass today @@ -36,7 +36,7 @@ country - The name of the ParamType of StateType (a534bd8b-6826-4d71-b9f9-df1433964b94) of DeviceClass today + The name of the ParamType of the autocreated EventType (a534bd8b-6826-4d71-b9f9-df1433964b94) of DeviceClass today @@ -48,7 +48,7 @@ day - The name of the ParamType of StateType (eb5231ea-6a1b-4d7e-a95f-d49e7b25122e) of DeviceClass today + The name of the ParamType of the autocreated EventType (eb5231ea-6a1b-4d7e-a95f-d49e7b25122e) of DeviceClass today @@ -60,7 +60,7 @@ month - The name of the ParamType of StateType (fcd8ec96-4488-438a-8b30-58bfe2a7fae2) of DeviceClass today + The name of the ParamType of the autocreated EventType (fcd8ec96-4488-438a-8b30-58bfe2a7fae2) of DeviceClass today @@ -78,7 +78,7 @@ year - The name of the ParamType of StateType (79d4ae9b-ea27-4346-8229-1d90f1ddfc9d) of DeviceClass today + The name of the ParamType of the autocreated EventType (79d4ae9b-ea27-4346-8229-1d90f1ddfc9d) of DeviceClass today @@ -90,7 +90,7 @@ weekday - The name of the ParamType of StateType (452c0388-7fa1-414e-aeb2-8c7c385824b4) of DeviceClass today + The name of the ParamType of the autocreated EventType (452c0388-7fa1-414e-aeb2-8c7c385824b4) of DeviceClass today @@ -99,34 +99,34 @@ The name of the autocreated EventType (f627d052-cee6-4727-b9c6-0e935d41e04a) - - - DateTime - The name of the plugin DateTime (c26014c6-87fb-4233-85ed-01d18625018d) - - guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) + + + Time + The name of the plugin DateTime (c26014c6-87fb-4233-85ed-01d18625018d) + + - timeZone - The name of the ParamType of StateType (ab16997c-be29-438e-b588-2507d723d264) of DeviceClass today + timezone + The name of the ParamType of the autocreated EventType (ab16997c-be29-438e-b588-2507d723d264) of DeviceClass today - monthName - The name of the ParamType of StateType (a37acc9c-5cfb-4687-adce-e56beb32586f) of DeviceClass today + month name + The name of the ParamType of the autocreated EventType (a37acc9c-5cfb-4687-adce-e56beb32586f) of DeviceClass today - weekdayName - The name of the ParamType of StateType (f627d052-cee6-4727-b9c6-0e935d41e04a) of DeviceClass today + weekday name + The name of the ParamType of the autocreated EventType (f627d052-cee6-4727-b9c6-0e935d41e04a) of DeviceClass today @@ -138,7 +138,7 @@ weekend - The name of the ParamType of StateType (4de5b57b-bb1a-4d66-9ce3-22bb280b075d) of DeviceClass today + The name of the ParamType of the autocreated EventType (4de5b57b-bb1a-4d66-9ce3-22bb280b075d) of DeviceClass today @@ -150,7 +150,7 @@ dusk - The name of the ParamType of StateType (44a99419-fbcd-4d8e-9441-897848b8f77c) of DeviceClass today + The name of the ParamType of the autocreated EventType (44a99419-fbcd-4d8e-9441-897848b8f77c) of DeviceClass today @@ -162,7 +162,7 @@ sunrise - The name of the ParamType of StateType (3a08824d-285b-412e-a515-9664b491a85c) of DeviceClass today + The name of the ParamType of the autocreated EventType (3a08824d-285b-412e-a515-9664b491a85c) of DeviceClass today @@ -174,7 +174,7 @@ noon - The name of the ParamType of StateType (d92be29a-929c-4240-91a0-30153850f838) of DeviceClass today + The name of the ParamType of the autocreated EventType (d92be29a-929c-4240-91a0-30153850f838) of DeviceClass today @@ -186,7 +186,7 @@ dawn - The name of the ParamType of StateType (a5779b11-0499-4a6d-a7bd-8143dcc546b4) of DeviceClass today + The name of the ParamType of the autocreated EventType (a5779b11-0499-4a6d-a7bd-8143dcc546b4) of DeviceClass today @@ -198,7 +198,7 @@ sunset - The name of the ParamType of StateType (377f04a7-df58-42ad-a234-e9e23bdc2f85) of DeviceClass today + The name of the ParamType of the autocreated EventType (377f04a7-df58-42ad-a234-e9e23bdc2f85) of DeviceClass today @@ -312,7 +312,7 @@ The name of the paramType (0a54fe54-45a7-4fc5-a8d2-f9b6a92033de) of countdown running - The name of the ParamType of StateType (b21ccd53-1ebd-41a0-a2a3-662874e79837) of DeviceClass countdown + The name of the ParamType of the autocreated EventType (b21ccd53-1ebd-41a0-a2a3-662874e79837) of DeviceClass countdown diff --git a/denon/translations/cd758269-dbbb-4ef0-80ab-48bd9a8a2765-de_DE.ts b/denon/translations/cd758269-dbbb-4ef0-80ab-48bd9a8a2765-de_DE.ts index 595b1be9..6e0214e9 100644 --- a/denon/translations/cd758269-dbbb-4ef0-80ab-48bd9a8a2765-de_DE.ts +++ b/denon/translations/cd758269-dbbb-4ef0-80ab-48bd9a8a2765-de_DE.ts @@ -4,8 +4,8 @@ Denon - + Denon The name of the plugin Denon (cd758269-dbbb-4ef0-80ab-48bd9a8a2765) ---------- @@ -13,79 +13,88 @@ The name of the vendor (cf0a9644-2c13-4daf-85c1-ad88d6745b42) - + AVR X1000 The name of the DeviceClass (1cd3d67e-aba0-450e-9e2a-483a1527aba6) AVR X1000 - + ip The name of the paramType (a54b98b4-b78f-41dd-a257-14425c6cf9ab) of AVRX1000 IP Adresse - + connected changed The name of the autocreated EventType (4d1790bf-28c6-4c1f-8892-ba1a0ef140f5) Verbindungsstatus geändert - + connected - The name of the ParamType of StateType (4d1790bf-28c6-4c1f-8892-ba1a0ef140f5) of DeviceClass AVRX1000 + The name of the ParamType of the autocreated EventType (4d1790bf-28c6-4c1f-8892-ba1a0ef140f5) of DeviceClass AVRX1000 Verbunden - + power changed The name of the autocreated EventType (1cdb6b54-6831-4900-95b2-c78f64497701) Eingeschalten geändert - + + power - The name of the ParamType of StateType (1cdb6b54-6831-4900-95b2-c78f64497701) of DeviceClass AVRX1000 + The name of the ParamType of the autocreated EventType (1cdb6b54-6831-4900-95b2-c78f64497701) of DeviceClass AVRX1000 +---------- +The name of the autocreated ParamType of the writable StateType (1cdb6b54-6831-4900-95b2-c78f64497701) of DeviceClass AVRX1000 Eingeschalten - + Set power The name of the autocreated ActionType (1cdb6b54-6831-4900-95b2-c78f64497701) Schalte ein - + volume changed The name of the autocreated EventType (773636b9-304d-463a-8755-fc7488dc0ff3) Lautstärke geändert - + + volume - The name of the ParamType of StateType (773636b9-304d-463a-8755-fc7488dc0ff3) of DeviceClass AVRX1000 + The name of the ParamType of the autocreated EventType (773636b9-304d-463a-8755-fc7488dc0ff3) of DeviceClass AVRX1000 +---------- +The name of the autocreated ParamType of the writable StateType (773636b9-304d-463a-8755-fc7488dc0ff3) of DeviceClass AVRX1000 Lautstärke - + Set volume The name of the autocreated ActionType (773636b9-304d-463a-8755-fc7488dc0ff3) Setze Lautstärke - + channel changed The name of the autocreated EventType (f29ffa2c-31d6-4d88-b160-a38288c82ce1) Kanal geändert - + + channel - The name of the ParamType of StateType (f29ffa2c-31d6-4d88-b160-a38288c82ce1) of DeviceClass AVRX1000 + The name of the ParamType of the autocreated EventType (f29ffa2c-31d6-4d88-b160-a38288c82ce1) of DeviceClass AVRX1000 +---------- +The name of the autocreated ParamType of the writable StateType (f29ffa2c-31d6-4d88-b160-a38288c82ce1) of DeviceClass AVRX1000 Kanal - + Set channel The name of the autocreated ActionType (f29ffa2c-31d6-4d88-b160-a38288c82ce1) Wähle Kanal diff --git a/denon/translations/cd758269-dbbb-4ef0-80ab-48bd9a8a2765-en_US.ts b/denon/translations/cd758269-dbbb-4ef0-80ab-48bd9a8a2765-en_US.ts index 7638edbf..4b6a4817 100644 --- a/denon/translations/cd758269-dbbb-4ef0-80ab-48bd9a8a2765-en_US.ts +++ b/denon/translations/cd758269-dbbb-4ef0-80ab-48bd9a8a2765-en_US.ts @@ -4,8 +4,8 @@ Denon - + Denon The name of the plugin Denon (cd758269-dbbb-4ef0-80ab-48bd9a8a2765) ---------- @@ -13,79 +13,88 @@ The name of the vendor (cf0a9644-2c13-4daf-85c1-ad88d6745b42) - + AVR X1000 The name of the DeviceClass (1cd3d67e-aba0-450e-9e2a-483a1527aba6) - + ip The name of the paramType (a54b98b4-b78f-41dd-a257-14425c6cf9ab) of AVRX1000 - + connected changed The name of the autocreated EventType (4d1790bf-28c6-4c1f-8892-ba1a0ef140f5) - + connected - The name of the ParamType of StateType (4d1790bf-28c6-4c1f-8892-ba1a0ef140f5) of DeviceClass AVRX1000 + The name of the ParamType of the autocreated EventType (4d1790bf-28c6-4c1f-8892-ba1a0ef140f5) of DeviceClass AVRX1000 - + power changed The name of the autocreated EventType (1cdb6b54-6831-4900-95b2-c78f64497701) - + + power - The name of the ParamType of StateType (1cdb6b54-6831-4900-95b2-c78f64497701) of DeviceClass AVRX1000 + The name of the ParamType of the autocreated EventType (1cdb6b54-6831-4900-95b2-c78f64497701) of DeviceClass AVRX1000 +---------- +The name of the autocreated ParamType of the writable StateType (1cdb6b54-6831-4900-95b2-c78f64497701) of DeviceClass AVRX1000 - + Set power The name of the autocreated ActionType (1cdb6b54-6831-4900-95b2-c78f64497701) - + volume changed The name of the autocreated EventType (773636b9-304d-463a-8755-fc7488dc0ff3) - + + volume - The name of the ParamType of StateType (773636b9-304d-463a-8755-fc7488dc0ff3) of DeviceClass AVRX1000 + The name of the ParamType of the autocreated EventType (773636b9-304d-463a-8755-fc7488dc0ff3) of DeviceClass AVRX1000 +---------- +The name of the autocreated ParamType of the writable StateType (773636b9-304d-463a-8755-fc7488dc0ff3) of DeviceClass AVRX1000 - + Set volume The name of the autocreated ActionType (773636b9-304d-463a-8755-fc7488dc0ff3) - + channel changed The name of the autocreated EventType (f29ffa2c-31d6-4d88-b160-a38288c82ce1) - + + channel - The name of the ParamType of StateType (f29ffa2c-31d6-4d88-b160-a38288c82ce1) of DeviceClass AVRX1000 + The name of the ParamType of the autocreated EventType (f29ffa2c-31d6-4d88-b160-a38288c82ce1) of DeviceClass AVRX1000 +---------- +The name of the autocreated ParamType of the writable StateType (f29ffa2c-31d6-4d88-b160-a38288c82ce1) of DeviceClass AVRX1000 - + Set channel The name of the autocreated ActionType (f29ffa2c-31d6-4d88-b160-a38288c82ce1) diff --git a/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-de_DE.ts b/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-de_DE.ts index 25448bde..1a8c04ca 100644 --- a/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-de_DE.ts +++ b/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-de_DE.ts @@ -4,8 +4,8 @@ Elgato - - + + Elgato The name of the plugin Elgato (c5c03ad4-bfdb-444a-8eca-2c234c46cc27) ---------- @@ -13,175 +13,199 @@ The name of the vendor (90a3091d-1053-4f77-8dc3-92e27bbcebe7) - + Avea The name of the DeviceClass (164f9602-90ee-4693-bda3-9cafae37603e) - - connected - The name of the ParamType of StateType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) of DeviceClass avea - - - - + Set color The name of the autocreated ActionType (3f15637a-8272-4714-bd08-04806e05bbef) - + Name The name of the paramType (d7a5d96f-33dc-4dc3-a171-b1e89a5e1a4b) of avea - + MAC address The name of the paramType (20932e39-00fd-40e3-8f39-850ba149844e) of avea - + Connected changed The name of the autocreated EventType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) - + + Connected + The name of the ParamType of the autocreated EventType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) of DeviceClass avea + + + + Power changed The name of the autocreated EventType (2b779968-ff4f-4a05-a466-074e14288a8c) - - power - The name of the ParamType of StateType (2b779968-ff4f-4a05-a466-074e14288a8c) of DeviceClass avea + + + Power + The name of the ParamType of the autocreated EventType (2b779968-ff4f-4a05-a466-074e14288a8c) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (2b779968-ff4f-4a05-a466-074e14288a8c) of DeviceClass avea - + + + Brightness + The name of the ParamType of the autocreated EventType (c38181a0-e19b-423f-8b66-dedda94e89b5) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (c38181a0-e19b-423f-8b66-dedda94e89b5) of DeviceClass avea + + + + + + Color + The name of the ParamType of the autocreated EventType (3f15637a-8272-4714-bd08-04806e05bbef) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (3f15637a-8272-4714-bd08-04806e05bbef) of DeviceClass avea + + + + + + Red + The name of the ParamType of the autocreated EventType (50ab71d1-8970-4531-b1ad-f387d01bab90) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (50ab71d1-8970-4531-b1ad-f387d01bab90) of DeviceClass avea + + + + + + Green + The name of the ParamType of the autocreated EventType (9e8ddebc-33fe-418a-895f-d8148fabcfee) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (9e8ddebc-33fe-418a-895f-d8148fabcfee) of DeviceClass avea + + + + + + Blue + The name of the ParamType of the autocreated EventType (f4310747-d468-4d2e-abe4-b5e4d0245dad) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (f4310747-d468-4d2e-abe4-b5e4d0245dad) of DeviceClass avea + + + + + + Fade + The name of the ParamType of the autocreated EventType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) of DeviceClass avea + + + + Set power The name of the autocreated ActionType (2b779968-ff4f-4a05-a466-074e14288a8c) - + Brightness changed The name of the autocreated EventType (c38181a0-e19b-423f-8b66-dedda94e89b5) - - brightness - The name of the ParamType of StateType (c38181a0-e19b-423f-8b66-dedda94e89b5) of DeviceClass avea - - - - + Set brightness The name of the autocreated ActionType (c38181a0-e19b-423f-8b66-dedda94e89b5) - + Color changed The name of the autocreated EventType (3f15637a-8272-4714-bd08-04806e05bbef) - - color - The name of the ParamType of StateType (3f15637a-8272-4714-bd08-04806e05bbef) of DeviceClass avea - - - - + white changed The name of the autocreated EventType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) - + + white - The name of the ParamType of StateType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) of DeviceClass avea + The name of the ParamType of the autocreated EventType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) of DeviceClass avea - + Set white The name of the autocreated ActionType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) - + Red changed The name of the autocreated EventType (50ab71d1-8970-4531-b1ad-f387d01bab90) - - red - The name of the ParamType of StateType (50ab71d1-8970-4531-b1ad-f387d01bab90) of DeviceClass avea - - - - + Set red The name of the autocreated ActionType (50ab71d1-8970-4531-b1ad-f387d01bab90) - + Green changed The name of the autocreated EventType (9e8ddebc-33fe-418a-895f-d8148fabcfee) - - green - The name of the ParamType of StateType (9e8ddebc-33fe-418a-895f-d8148fabcfee) of DeviceClass avea - - - - + Set green The name of the autocreated ActionType (9e8ddebc-33fe-418a-895f-d8148fabcfee) - + Blue changed The name of the autocreated EventType (f4310747-d468-4d2e-abe4-b5e4d0245dad) - - blue - The name of the ParamType of StateType (f4310747-d468-4d2e-abe4-b5e4d0245dad) of DeviceClass avea - - - - + Set blue The name of the autocreated ActionType (f4310747-d468-4d2e-abe4-b5e4d0245dad) - + Fade changed The name of the autocreated EventType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) - - fade - The name of the ParamType of StateType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) of DeviceClass avea - - - - + Set fade The name of the autocreated ActionType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) diff --git a/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-en_US.ts b/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-en_US.ts index cb20f7b5..1a48e12e 100644 --- a/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-en_US.ts +++ b/elgato/translations/c5c03ad4-bfdb-444a-8eca-2c234c46cc27-en_US.ts @@ -4,8 +4,8 @@ Elgato - - + + Elgato The name of the plugin Elgato (c5c03ad4-bfdb-444a-8eca-2c234c46cc27) ---------- @@ -13,175 +13,199 @@ The name of the vendor (90a3091d-1053-4f77-8dc3-92e27bbcebe7) - + Avea The name of the DeviceClass (164f9602-90ee-4693-bda3-9cafae37603e) - - connected - The name of the ParamType of StateType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) of DeviceClass avea - - - - + Set color The name of the autocreated ActionType (3f15637a-8272-4714-bd08-04806e05bbef) - + Name The name of the paramType (d7a5d96f-33dc-4dc3-a171-b1e89a5e1a4b) of avea - + MAC address The name of the paramType (20932e39-00fd-40e3-8f39-850ba149844e) of avea - + Connected changed The name of the autocreated EventType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) - + + Connected + The name of the ParamType of the autocreated EventType (6d5e792a-c786-40d2-ae35-a48ac6fafcbc) of DeviceClass avea + + + + Power changed The name of the autocreated EventType (2b779968-ff4f-4a05-a466-074e14288a8c) - - power - The name of the ParamType of StateType (2b779968-ff4f-4a05-a466-074e14288a8c) of DeviceClass avea + + + Power + The name of the ParamType of the autocreated EventType (2b779968-ff4f-4a05-a466-074e14288a8c) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (2b779968-ff4f-4a05-a466-074e14288a8c) of DeviceClass avea - + + + Brightness + The name of the ParamType of the autocreated EventType (c38181a0-e19b-423f-8b66-dedda94e89b5) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (c38181a0-e19b-423f-8b66-dedda94e89b5) of DeviceClass avea + + + + + + Color + The name of the ParamType of the autocreated EventType (3f15637a-8272-4714-bd08-04806e05bbef) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (3f15637a-8272-4714-bd08-04806e05bbef) of DeviceClass avea + + + + + + Red + The name of the ParamType of the autocreated EventType (50ab71d1-8970-4531-b1ad-f387d01bab90) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (50ab71d1-8970-4531-b1ad-f387d01bab90) of DeviceClass avea + + + + + + Green + The name of the ParamType of the autocreated EventType (9e8ddebc-33fe-418a-895f-d8148fabcfee) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (9e8ddebc-33fe-418a-895f-d8148fabcfee) of DeviceClass avea + + + + + + Blue + The name of the ParamType of the autocreated EventType (f4310747-d468-4d2e-abe4-b5e4d0245dad) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (f4310747-d468-4d2e-abe4-b5e4d0245dad) of DeviceClass avea + + + + + + Fade + The name of the ParamType of the autocreated EventType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) of DeviceClass avea + + + + Set power The name of the autocreated ActionType (2b779968-ff4f-4a05-a466-074e14288a8c) - + Brightness changed The name of the autocreated EventType (c38181a0-e19b-423f-8b66-dedda94e89b5) - - brightness - The name of the ParamType of StateType (c38181a0-e19b-423f-8b66-dedda94e89b5) of DeviceClass avea - - - - + Set brightness The name of the autocreated ActionType (c38181a0-e19b-423f-8b66-dedda94e89b5) - + Color changed The name of the autocreated EventType (3f15637a-8272-4714-bd08-04806e05bbef) - - color - The name of the ParamType of StateType (3f15637a-8272-4714-bd08-04806e05bbef) of DeviceClass avea - - - - + white changed The name of the autocreated EventType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) - + + white - The name of the ParamType of StateType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) of DeviceClass avea + The name of the ParamType of the autocreated EventType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) of DeviceClass avea +---------- +The name of the autocreated ParamType of the writable StateType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) of DeviceClass avea - + Set white The name of the autocreated ActionType (50f6a224-fb8d-487d-8774-1a0536e5b1aa) - + Red changed The name of the autocreated EventType (50ab71d1-8970-4531-b1ad-f387d01bab90) - - red - The name of the ParamType of StateType (50ab71d1-8970-4531-b1ad-f387d01bab90) of DeviceClass avea - - - - + Set red The name of the autocreated ActionType (50ab71d1-8970-4531-b1ad-f387d01bab90) - + Green changed The name of the autocreated EventType (9e8ddebc-33fe-418a-895f-d8148fabcfee) - - green - The name of the ParamType of StateType (9e8ddebc-33fe-418a-895f-d8148fabcfee) of DeviceClass avea - - - - + Set green The name of the autocreated ActionType (9e8ddebc-33fe-418a-895f-d8148fabcfee) - + Blue changed The name of the autocreated EventType (f4310747-d468-4d2e-abe4-b5e4d0245dad) - - blue - The name of the ParamType of StateType (f4310747-d468-4d2e-abe4-b5e4d0245dad) of DeviceClass avea - - - - + Set blue The name of the autocreated ActionType (f4310747-d468-4d2e-abe4-b5e4d0245dad) - + Fade changed The name of the autocreated EventType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) - - fade - The name of the ParamType of StateType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) of DeviceClass avea - - - - + Set fade The name of the autocreated ActionType (01ccda48-44c6-495b-b0a7-c2a0bf5a570d) diff --git a/eq-3/translations/f324c43c-9680-48d8-852a-93b2227139b9-de_DE.ts b/eq-3/translations/f324c43c-9680-48d8-852a-93b2227139b9-de_DE.ts index 18d3d77d..6a0e15a0 100644 --- a/eq-3/translations/f324c43c-9680-48d8-852a-93b2227139b9-de_DE.ts +++ b/eq-3/translations/f324c43c-9680-48d8-852a-93b2227139b9-de_DE.ts @@ -4,39 +4,36 @@ EQ3 - - EQ3 - The name of the plugin EQ3 (f324c43c-9680-48d8-852a-93b2227139b9) - - - - + + eQ-3 - The name of the vendor (2cac0645-855e-44fa-837e-1cab0ae4304c) + The name of the plugin EQ3 (f324c43c-9680-48d8-852a-93b2227139b9) +---------- +The name of the vendor (2cac0645-855e-44fa-837e-1cab0ae4304c) - + Max! Cube LAN Gateway The name of the DeviceClass (1e892268-8bd7-442c-a001-bd4e2e6b2949) - + host address The name of the paramType (b30c14db-5b2a-4366-87e3-13d0d38b1905) of cube - + port The name of the paramType (a4c92442-dc47-463f-8e24-15b5b593adec) of cube - - - + + + serial number The name of the paramType (67dc1a45-7369-422a-b677-881271f29d6c) of cube ---------- @@ -46,215 +43,44 @@ The name of the paramType (67dc1a45-7369-422a-b677-881271f29d6c) of radiatorTher - + firmware version The name of the paramType (8d629061-8d4b-49f1-ab47-b82fdde3036c) of cube - + connected changed The name of the autocreated EventType (d0a9a369-cf8c-47c4-a12e-f2d076bf12fd) - - connection - The name of the ParamType of StateType (d0a9a369-cf8c-47c4-a12e-f2d076bf12fd) of DeviceClass cube + + connected + The name of the ParamType of the autocreated EventType (d0a9a369-cf8c-47c4-a12e-f2d076bf12fd) of DeviceClass cube - - portalEnabled - The name of the ParamType of StateType (2c2367da-c229-40ed-9d47-a6e73cd6dc3b) of DeviceClass cube - - - - - - comfortTemp - The name of the ParamType of StateType (850380ee-a787-43e7-adb8-768a21a6e64d) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (850380ee-a787-43e7-adb8-768a21a6e64d) of DeviceClass radiatorThermostate - - - - - ecoTemp - The name of the ParamType of StateType (24dfd20d-bc8d-48e4-8162-b20ae0465c41) of DeviceClass wallThermostate - - - - - - maxSetpointTemp - The name of the ParamType of StateType (a8536ddf-a6e4-41c2-89c1-e7102608f5f6) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (a8536ddf-a6e4-41c2-89c1-e7102608f5f6) of DeviceClass radiatorThermostate - - - - - - minSetpointTemp - The name of the ParamType of StateType (ceb0ad05-37ad-4b79-a4d9-540c34a7e3e4) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (ceb0ad05-37ad-4b79-a4d9-540c34a7e3e4) of DeviceClass radiatorThermostate - - - - - - errorOccurred - The name of the ParamType of StateType (9880247b-cf9a-453c-b0c3-d910eba8a253) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (9880247b-cf9a-453c-b0c3-d910eba8a253) of DeviceClass radiatorThermostate - - - - - - batteryLow - The name of the ParamType of StateType (53b89f32-8894-4290-92a0-6a470c6b69ab) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (53b89f32-8894-4290-92a0-6a470c6b69ab) of DeviceClass radiatorThermostate - - - - - linkStatusOK - The name of the ParamType of StateType (aff38be8-7ea6-4fd8-b0fa-e987ab05c719) of DeviceClass wallThermostate - - - - - - panelLocked - The name of the ParamType of StateType (979df197-09a1-46f9-9217-9d323b1062bd) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (979df197-09a1-46f9-9217-9d323b1062bd) of DeviceClass radiatorThermostate - - - - - - gatewayKnown - The name of the ParamType of StateType (1d6bd962-5c31-47ad-80a4-dda87bff98f5) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (1d6bd962-5c31-47ad-80a4-dda87bff98f5) of DeviceClass radiatorThermostate - - - - - - dtsActive - The name of the ParamType of StateType (1b402ba6-a8ae-45b1-8acf-2b0a89f71889) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (1b402ba6-a8ae-45b1-8acf-2b0a89f71889) of DeviceClass radiatorThermostate - - - - - - deviceMode - The name of the ParamType of StateType (639360f0-bb65-43e6-b227-50ae0ac39d6c) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (639360f0-bb65-43e6-b227-50ae0ac39d6c) of DeviceClass radiatorThermostate - - - - - - deviceModeString - The name of the ParamType of StateType (ff5194e3-5641-4ac2-92c7-48c431b4a2eb) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (ff5194e3-5641-4ac2-92c7-48c431b4a2eb) of DeviceClass radiatorThermostate - - - - - - desiredTemperature - The name of the ParamType of StateType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass radiatorThermostate - - - - - currentTemperature - The name of the ParamType of StateType (852e7708-db1d-42d1-96e4-19c13598262c) of DeviceClass wallThermostate - - - - - offsetTemp - The name of the ParamType of StateType (576da571-9a65-478f-96bf-19256c8b9ece) of DeviceClass radiatorThermostate - - - - - windowOpenDuration - The name of the ParamType of StateType (81c6c74a-b0cd-4daa-9eb9-f1cd68f328af) of DeviceClass radiatorThermostate - - - - - boostValveValue - The name of the ParamType of StateType (7c41fa64-b1a1-48d2-9d03-67aa16cd83ad) of DeviceClass radiatorThermostate - - - - - boostDuration - The name of the ParamType of StateType (e75c1398-9ad7-466c-b3b9-b03bbb686a30) of DeviceClass radiatorThermostate - - - - - discalcWeekDay - The name of the ParamType of StateType (bd6f5947-d4b4-444b-81c8-77eec46957e4) of DeviceClass radiatorThermostate - - - - - discalcTime - The name of the ParamType of StateType (e78235ee-affc-41e3-a463-9f0512b4a6c3) of DeviceClass radiatorThermostate - - - - - valveMaximumSettings - The name of the ParamType of StateType (e367fa3a-b30f-49bd-af3f-cff92360ad32) of DeviceClass radiatorThermostate - - - - - valveOffset - The name of the ParamType of StateType (ffaff87b-b741-4db8-9875-3380af4f1885) of DeviceClass radiatorThermostate - - - - - valvePosition - The name of the ParamType of StateType (72956000-0203-4c32-a6b6-3bb7e46c03ca) of DeviceClass radiatorThermostate - - - - + portal enabled changed The name of the autocreated EventType (2c2367da-c229-40ed-9d47-a6e73cd6dc3b) - + + portal enabled + The name of the ParamType of the autocreated EventType (2c2367da-c229-40ed-9d47-a6e73cd6dc3b) of DeviceClass cube + + + + Max! Wall Thermostat The name of the DeviceClass (ffbfec5d-06e8-4082-b62b-92cc5c3e8c4e) - - + + name The name of the paramType (8d32b228-8618-483f-bcc3-2d62868d6912) of wallThermostate ---------- @@ -262,8 +88,8 @@ The name of the paramType (8d32b228-8618-483f-bcc3-2d62868d6912) of radiatorTher - - + + parent cube The name of the paramType (801be701-ea53-4cb2-a933-823f330e7837) of wallThermostate ---------- @@ -271,8 +97,8 @@ The name of the paramType (801be701-ea53-4cb2-a933-823f330e7837) of radiatorTher - - + + rf address The name of the paramType (6ba358c1-0c31-4ea4-93fd-544f030582a7) of wallThermostate ---------- @@ -280,8 +106,8 @@ The name of the paramType (6ba358c1-0c31-4ea4-93fd-544f030582a7) of radiatorTher - - + + room id The name of the paramType (e3bb28dc-5311-4325-805a-e1e3a1495016) of wallThermostate ---------- @@ -289,8 +115,8 @@ The name of the paramType (e3bb28dc-5311-4325-805a-e1e3a1495016) of radiatorTher - - + + room name The name of the paramType (14ea2e10-4545-47ff-8955-8172913f1039) of wallThermostate ---------- @@ -298,124 +124,250 @@ The name of the paramType (14ea2e10-4545-47ff-8955-8172913f1039) of radiatorTher - + confort temperature changed The name of the autocreated EventType (850380ee-a787-43e7-adb8-768a21a6e64d) - + + + comfort temperature + The name of the ParamType of the autocreated EventType (850380ee-a787-43e7-adb8-768a21a6e64d) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (850380ee-a787-43e7-adb8-768a21a6e64d) of DeviceClass radiatorThermostate + + + + eco temperature changed The name of the autocreated EventType (24dfd20d-bc8d-48e4-8162-b20ae0465c41) - - + + eco temperature + The name of the ParamType of the autocreated EventType (24dfd20d-bc8d-48e4-8162-b20ae0465c41) of DeviceClass wallThermostate + + + + + max setpoint changed The name of the autocreated EventType (a8536ddf-a6e4-41c2-89c1-e7102608f5f6) - - + + + max setpoint + The name of the ParamType of the autocreated EventType (a8536ddf-a6e4-41c2-89c1-e7102608f5f6) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (a8536ddf-a6e4-41c2-89c1-e7102608f5f6) of DeviceClass radiatorThermostate + + + + + min setpoint changed The name of the autocreated EventType (ceb0ad05-37ad-4b79-a4d9-540c34a7e3e4) - - error occured - The name of the autocreated EventType (9880247b-cf9a-453c-b0c3-d910eba8a253) + + + min setpoint + The name of the ParamType of the autocreated EventType (ceb0ad05-37ad-4b79-a4d9-540c34a7e3e4) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (ceb0ad05-37ad-4b79-a4d9-540c34a7e3e4) of DeviceClass radiatorThermostate - - + + + error occured + The name of the autocreated EventType (9880247b-cf9a-453c-b0c3-d910eba8a253) +---------- +The name of the ParamType of the autocreated EventType (9880247b-cf9a-453c-b0c3-d910eba8a253) of DeviceClass radiatorThermostate + + + + + error occurred + The name of the ParamType of the autocreated EventType (9880247b-cf9a-453c-b0c3-d910eba8a253) of DeviceClass wallThermostate + + + + + initialized changed The name of the autocreated EventType (a9e29f03-063e-4686-8aac-2f6d8f8a4937) - - + + initialized - The name of the ParamType of StateType (a9e29f03-063e-4686-8aac-2f6d8f8a4937) of DeviceClass wallThermostate + The name of the ParamType of the autocreated EventType (a9e29f03-063e-4686-8aac-2f6d8f8a4937) of DeviceClass wallThermostate ---------- -The name of the ParamType of StateType (a9e29f03-063e-4686-8aac-2f6d8f8a4937) of DeviceClass radiatorThermostate +The name of the ParamType of the autocreated EventType (a9e29f03-063e-4686-8aac-2f6d8f8a4937) of DeviceClass radiatorThermostate - - + + battery low changed The name of the autocreated EventType (53b89f32-8894-4290-92a0-6a470c6b69ab) - - + + + battery low + The name of the ParamType of the autocreated EventType (53b89f32-8894-4290-92a0-6a470c6b69ab) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (53b89f32-8894-4290-92a0-6a470c6b69ab) of DeviceClass radiatorThermostate + + + + + link status changed The name of the autocreated EventType (aff38be8-7ea6-4fd8-b0fa-e987ab05c719) - + + + link status ok + The name of the ParamType of the autocreated EventType (aff38be8-7ea6-4fd8-b0fa-e987ab05c719) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (aff38be8-7ea6-4fd8-b0fa-e987ab05c719) of DeviceClass radiatorThermostate + + + + panel locked changed The name of the autocreated EventType (979df197-09a1-46f9-9217-9d323b1062bd) - - + + + panel locked + The name of the ParamType of the autocreated EventType (979df197-09a1-46f9-9217-9d323b1062bd) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (979df197-09a1-46f9-9217-9d323b1062bd) of DeviceClass radiatorThermostate + + + + + gateway known changed The name of the autocreated EventType (1d6bd962-5c31-47ad-80a4-dda87bff98f5) - - + + + gateway known + The name of the ParamType of the autocreated EventType (1d6bd962-5c31-47ad-80a4-dda87bff98f5) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (1d6bd962-5c31-47ad-80a4-dda87bff98f5) of DeviceClass radiatorThermostate + + + + + dts active changed The name of the autocreated EventType (1b402ba6-a8ae-45b1-8acf-2b0a89f71889) - - + + + dts active + The name of the ParamType of the autocreated EventType (1b402ba6-a8ae-45b1-8acf-2b0a89f71889) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (1b402ba6-a8ae-45b1-8acf-2b0a89f71889) of DeviceClass radiatorThermostate + + + + + device mode changed The name of the autocreated EventType (639360f0-bb65-43e6-b227-50ae0ac39d6c) - - + + + device mode + The name of the ParamType of the autocreated EventType (639360f0-bb65-43e6-b227-50ae0ac39d6c) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (639360f0-bb65-43e6-b227-50ae0ac39d6c) of DeviceClass radiatorThermostate + + + + + device mode string changed The name of the autocreated EventType (ff5194e3-5641-4ac2-92c7-48c431b4a2eb) - - + + + device mode string + The name of the ParamType of the autocreated EventType (ff5194e3-5641-4ac2-92c7-48c431b4a2eb) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (ff5194e3-5641-4ac2-92c7-48c431b4a2eb) of DeviceClass radiatorThermostate + + + + + desired temperature changed The name of the autocreated EventType (579aa8c6-8814-491b-9e7c-b98108c323d1) - - + + + + + desired temperature + The name of the ParamType of the autocreated EventType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass wallThermostate +---------- +The name of the autocreated ParamType of the writable StateType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass radiatorThermostate +---------- +The name of the autocreated ParamType of the writable StateType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass radiatorThermostate + + + + + Set desired temperature The name of the autocreated ActionType (579aa8c6-8814-491b-9e7c-b98108c323d1) - + current temperature changed The name of the autocreated EventType (852e7708-db1d-42d1-96e4-19c13598262c) - - + + current temperature + The name of the ParamType of the autocreated EventType (852e7708-db1d-42d1-96e4-19c13598262c) of DeviceClass wallThermostate + + + + + set auto mode The name of the ActionType 162b4b3d-9923-4f2c-a755-b50c8a06a6f0 of deviceClass wallThermostate ---------- @@ -423,8 +375,8 @@ The name of the ActionType 162b4b3d-9923-4f2c-a755-b50c8a06a6f0 of deviceClass r - - + + set manual mode The name of the ActionType 8e604437-9f5b-4c17-b5b0-e2db6007af5b of deviceClass wallThermostate ---------- @@ -432,8 +384,8 @@ The name of the ActionType 8e604437-9f5b-4c17-b5b0-e2db6007af5b of deviceClass r - - + + set eco mode The name of the ActionType 27a981e8-ec23-4ba8-921e-33b911a7dd89 of deviceClass wallThermostate ---------- @@ -441,97 +393,145 @@ The name of the ActionType 27a981e8-ec23-4ba8-921e-33b911a7dd89 of deviceClass r - + display current temperature The name of the ActionType 184fb112-7a03-4560-8634-0257c969c26e of deviceClass wallThermostate - + display The name of the paramType (894dbb8e-73b5-4e89-8b93-d7afda239dcb) of wallThermostate - + Max! Radiator Thermostat The name of the DeviceClass (f80d9481-4827-45ee-a013-b97b22412d92) - + comfort temperature changed The name of the autocreated EventType (850380ee-a787-43e7-adb8-768a21a6e64d) - + error occured changed The name of the autocreated EventType (9880247b-cf9a-453c-b0c3-d910eba8a253) - - linkStatusOk - The name of the ParamType of StateType (aff38be8-7ea6-4fd8-b0fa-e987ab05c719) of DeviceClass radiatorThermostate + + valve position + The name of the ParamType of the autocreated EventType (72956000-0203-4c32-a6b6-3bb7e46c03ca) of DeviceClass radiatorThermostate - + pannel locked changed The name of the autocreated EventType (979df197-09a1-46f9-9217-9d323b1062bd) - + offset temperature changed The name of the autocreated EventType (576da571-9a65-478f-96bf-19256c8b9ece) - + + offset temperature + The name of the ParamType of the autocreated EventType (576da571-9a65-478f-96bf-19256c8b9ece) of DeviceClass radiatorThermostate + + + + window open duration changed The name of the autocreated EventType (81c6c74a-b0cd-4daa-9eb9-f1cd68f328af) - + + window open duration + The name of the ParamType of the autocreated EventType (81c6c74a-b0cd-4daa-9eb9-f1cd68f328af) of DeviceClass radiatorThermostate + + + + boost value changed The name of the autocreated EventType (7c41fa64-b1a1-48d2-9d03-67aa16cd83ad) - + + boost valve + The name of the ParamType of the autocreated EventType (7c41fa64-b1a1-48d2-9d03-67aa16cd83ad) of DeviceClass radiatorThermostate + + + + boost duration changed The name of the autocreated EventType (e75c1398-9ad7-466c-b3b9-b03bbb686a30) - + + boost duration + The name of the ParamType of the autocreated EventType (e75c1398-9ad7-466c-b3b9-b03bbb686a30) of DeviceClass radiatorThermostate + + + + discalc weekday changed The name of the autocreated EventType (bd6f5947-d4b4-444b-81c8-77eec46957e4) - + + discalc weekday + The name of the ParamType of the autocreated EventType (bd6f5947-d4b4-444b-81c8-77eec46957e4) of DeviceClass radiatorThermostate + + + + discalc time changed The name of the autocreated EventType (e78235ee-affc-41e3-a463-9f0512b4a6c3) - + + discalc time + The name of the ParamType of the autocreated EventType (e78235ee-affc-41e3-a463-9f0512b4a6c3) of DeviceClass radiatorThermostate + + + + valve maximum setting changed The name of the autocreated EventType (e367fa3a-b30f-49bd-af3f-cff92360ad32) - + + valve maximum setting + The name of the ParamType of the autocreated EventType (e367fa3a-b30f-49bd-af3f-cff92360ad32) of DeviceClass radiatorThermostate + + + + valve offset changed The name of the autocreated EventType (ffaff87b-b741-4db8-9875-3380af4f1885) - + + valve offset + The name of the ParamType of the autocreated EventType (ffaff87b-b741-4db8-9875-3380af4f1885) of DeviceClass radiatorThermostate + + + + valve position changed The name of the autocreated EventType (72956000-0203-4c32-a6b6-3bb7e46c03ca) diff --git a/eq-3/translations/f324c43c-9680-48d8-852a-93b2227139b9-en_US.ts b/eq-3/translations/f324c43c-9680-48d8-852a-93b2227139b9-en_US.ts index f242ebb0..4ecc1611 100644 --- a/eq-3/translations/f324c43c-9680-48d8-852a-93b2227139b9-en_US.ts +++ b/eq-3/translations/f324c43c-9680-48d8-852a-93b2227139b9-en_US.ts @@ -4,39 +4,36 @@ EQ3 - - EQ3 - The name of the plugin EQ3 (f324c43c-9680-48d8-852a-93b2227139b9) - - - - + + eQ-3 - The name of the vendor (2cac0645-855e-44fa-837e-1cab0ae4304c) + The name of the plugin EQ3 (f324c43c-9680-48d8-852a-93b2227139b9) +---------- +The name of the vendor (2cac0645-855e-44fa-837e-1cab0ae4304c) - + Max! Cube LAN Gateway The name of the DeviceClass (1e892268-8bd7-442c-a001-bd4e2e6b2949) - + host address The name of the paramType (b30c14db-5b2a-4366-87e3-13d0d38b1905) of cube - + port The name of the paramType (a4c92442-dc47-463f-8e24-15b5b593adec) of cube - - - + + + serial number The name of the paramType (67dc1a45-7369-422a-b677-881271f29d6c) of cube ---------- @@ -46,215 +43,44 @@ The name of the paramType (67dc1a45-7369-422a-b677-881271f29d6c) of radiatorTher - + firmware version The name of the paramType (8d629061-8d4b-49f1-ab47-b82fdde3036c) of cube - + connected changed The name of the autocreated EventType (d0a9a369-cf8c-47c4-a12e-f2d076bf12fd) - - connection - The name of the ParamType of StateType (d0a9a369-cf8c-47c4-a12e-f2d076bf12fd) of DeviceClass cube + + connected + The name of the ParamType of the autocreated EventType (d0a9a369-cf8c-47c4-a12e-f2d076bf12fd) of DeviceClass cube - - portalEnabled - The name of the ParamType of StateType (2c2367da-c229-40ed-9d47-a6e73cd6dc3b) of DeviceClass cube - - - - - - comfortTemp - The name of the ParamType of StateType (850380ee-a787-43e7-adb8-768a21a6e64d) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (850380ee-a787-43e7-adb8-768a21a6e64d) of DeviceClass radiatorThermostate - - - - - ecoTemp - The name of the ParamType of StateType (24dfd20d-bc8d-48e4-8162-b20ae0465c41) of DeviceClass wallThermostate - - - - - - maxSetpointTemp - The name of the ParamType of StateType (a8536ddf-a6e4-41c2-89c1-e7102608f5f6) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (a8536ddf-a6e4-41c2-89c1-e7102608f5f6) of DeviceClass radiatorThermostate - - - - - - minSetpointTemp - The name of the ParamType of StateType (ceb0ad05-37ad-4b79-a4d9-540c34a7e3e4) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (ceb0ad05-37ad-4b79-a4d9-540c34a7e3e4) of DeviceClass radiatorThermostate - - - - - - errorOccurred - The name of the ParamType of StateType (9880247b-cf9a-453c-b0c3-d910eba8a253) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (9880247b-cf9a-453c-b0c3-d910eba8a253) of DeviceClass radiatorThermostate - - - - - - batteryLow - The name of the ParamType of StateType (53b89f32-8894-4290-92a0-6a470c6b69ab) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (53b89f32-8894-4290-92a0-6a470c6b69ab) of DeviceClass radiatorThermostate - - - - - linkStatusOK - The name of the ParamType of StateType (aff38be8-7ea6-4fd8-b0fa-e987ab05c719) of DeviceClass wallThermostate - - - - - - panelLocked - The name of the ParamType of StateType (979df197-09a1-46f9-9217-9d323b1062bd) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (979df197-09a1-46f9-9217-9d323b1062bd) of DeviceClass radiatorThermostate - - - - - - gatewayKnown - The name of the ParamType of StateType (1d6bd962-5c31-47ad-80a4-dda87bff98f5) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (1d6bd962-5c31-47ad-80a4-dda87bff98f5) of DeviceClass radiatorThermostate - - - - - - dtsActive - The name of the ParamType of StateType (1b402ba6-a8ae-45b1-8acf-2b0a89f71889) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (1b402ba6-a8ae-45b1-8acf-2b0a89f71889) of DeviceClass radiatorThermostate - - - - - - deviceMode - The name of the ParamType of StateType (639360f0-bb65-43e6-b227-50ae0ac39d6c) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (639360f0-bb65-43e6-b227-50ae0ac39d6c) of DeviceClass radiatorThermostate - - - - - - deviceModeString - The name of the ParamType of StateType (ff5194e3-5641-4ac2-92c7-48c431b4a2eb) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (ff5194e3-5641-4ac2-92c7-48c431b4a2eb) of DeviceClass radiatorThermostate - - - - - - desiredTemperature - The name of the ParamType of StateType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass wallThermostate ----------- -The name of the ParamType of StateType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass radiatorThermostate - - - - - currentTemperature - The name of the ParamType of StateType (852e7708-db1d-42d1-96e4-19c13598262c) of DeviceClass wallThermostate - - - - - offsetTemp - The name of the ParamType of StateType (576da571-9a65-478f-96bf-19256c8b9ece) of DeviceClass radiatorThermostate - - - - - windowOpenDuration - The name of the ParamType of StateType (81c6c74a-b0cd-4daa-9eb9-f1cd68f328af) of DeviceClass radiatorThermostate - - - - - boostValveValue - The name of the ParamType of StateType (7c41fa64-b1a1-48d2-9d03-67aa16cd83ad) of DeviceClass radiatorThermostate - - - - - boostDuration - The name of the ParamType of StateType (e75c1398-9ad7-466c-b3b9-b03bbb686a30) of DeviceClass radiatorThermostate - - - - - discalcWeekDay - The name of the ParamType of StateType (bd6f5947-d4b4-444b-81c8-77eec46957e4) of DeviceClass radiatorThermostate - - - - - discalcTime - The name of the ParamType of StateType (e78235ee-affc-41e3-a463-9f0512b4a6c3) of DeviceClass radiatorThermostate - - - - - valveMaximumSettings - The name of the ParamType of StateType (e367fa3a-b30f-49bd-af3f-cff92360ad32) of DeviceClass radiatorThermostate - - - - - valveOffset - The name of the ParamType of StateType (ffaff87b-b741-4db8-9875-3380af4f1885) of DeviceClass radiatorThermostate - - - - - valvePosition - The name of the ParamType of StateType (72956000-0203-4c32-a6b6-3bb7e46c03ca) of DeviceClass radiatorThermostate - - - - + portal enabled changed The name of the autocreated EventType (2c2367da-c229-40ed-9d47-a6e73cd6dc3b) - + + portal enabled + The name of the ParamType of the autocreated EventType (2c2367da-c229-40ed-9d47-a6e73cd6dc3b) of DeviceClass cube + + + + Max! Wall Thermostat The name of the DeviceClass (ffbfec5d-06e8-4082-b62b-92cc5c3e8c4e) - - + + name The name of the paramType (8d32b228-8618-483f-bcc3-2d62868d6912) of wallThermostate ---------- @@ -262,8 +88,8 @@ The name of the paramType (8d32b228-8618-483f-bcc3-2d62868d6912) of radiatorTher - - + + parent cube The name of the paramType (801be701-ea53-4cb2-a933-823f330e7837) of wallThermostate ---------- @@ -271,8 +97,8 @@ The name of the paramType (801be701-ea53-4cb2-a933-823f330e7837) of radiatorTher - - + + rf address The name of the paramType (6ba358c1-0c31-4ea4-93fd-544f030582a7) of wallThermostate ---------- @@ -280,8 +106,8 @@ The name of the paramType (6ba358c1-0c31-4ea4-93fd-544f030582a7) of radiatorTher - - + + room id The name of the paramType (e3bb28dc-5311-4325-805a-e1e3a1495016) of wallThermostate ---------- @@ -289,8 +115,8 @@ The name of the paramType (e3bb28dc-5311-4325-805a-e1e3a1495016) of radiatorTher - - + + room name The name of the paramType (14ea2e10-4545-47ff-8955-8172913f1039) of wallThermostate ---------- @@ -298,124 +124,250 @@ The name of the paramType (14ea2e10-4545-47ff-8955-8172913f1039) of radiatorTher - + confort temperature changed The name of the autocreated EventType (850380ee-a787-43e7-adb8-768a21a6e64d) - + + + comfort temperature + The name of the ParamType of the autocreated EventType (850380ee-a787-43e7-adb8-768a21a6e64d) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (850380ee-a787-43e7-adb8-768a21a6e64d) of DeviceClass radiatorThermostate + + + + eco temperature changed The name of the autocreated EventType (24dfd20d-bc8d-48e4-8162-b20ae0465c41) - - + + eco temperature + The name of the ParamType of the autocreated EventType (24dfd20d-bc8d-48e4-8162-b20ae0465c41) of DeviceClass wallThermostate + + + + + max setpoint changed The name of the autocreated EventType (a8536ddf-a6e4-41c2-89c1-e7102608f5f6) - - + + + max setpoint + The name of the ParamType of the autocreated EventType (a8536ddf-a6e4-41c2-89c1-e7102608f5f6) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (a8536ddf-a6e4-41c2-89c1-e7102608f5f6) of DeviceClass radiatorThermostate + + + + + min setpoint changed The name of the autocreated EventType (ceb0ad05-37ad-4b79-a4d9-540c34a7e3e4) - - error occured - The name of the autocreated EventType (9880247b-cf9a-453c-b0c3-d910eba8a253) + + + min setpoint + The name of the ParamType of the autocreated EventType (ceb0ad05-37ad-4b79-a4d9-540c34a7e3e4) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (ceb0ad05-37ad-4b79-a4d9-540c34a7e3e4) of DeviceClass radiatorThermostate - - + + + error occured + The name of the autocreated EventType (9880247b-cf9a-453c-b0c3-d910eba8a253) +---------- +The name of the ParamType of the autocreated EventType (9880247b-cf9a-453c-b0c3-d910eba8a253) of DeviceClass radiatorThermostate + + + + + error occurred + The name of the ParamType of the autocreated EventType (9880247b-cf9a-453c-b0c3-d910eba8a253) of DeviceClass wallThermostate + + + + + initialized changed The name of the autocreated EventType (a9e29f03-063e-4686-8aac-2f6d8f8a4937) - - + + initialized - The name of the ParamType of StateType (a9e29f03-063e-4686-8aac-2f6d8f8a4937) of DeviceClass wallThermostate + The name of the ParamType of the autocreated EventType (a9e29f03-063e-4686-8aac-2f6d8f8a4937) of DeviceClass wallThermostate ---------- -The name of the ParamType of StateType (a9e29f03-063e-4686-8aac-2f6d8f8a4937) of DeviceClass radiatorThermostate +The name of the ParamType of the autocreated EventType (a9e29f03-063e-4686-8aac-2f6d8f8a4937) of DeviceClass radiatorThermostate - - + + battery low changed The name of the autocreated EventType (53b89f32-8894-4290-92a0-6a470c6b69ab) - - + + + battery low + The name of the ParamType of the autocreated EventType (53b89f32-8894-4290-92a0-6a470c6b69ab) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (53b89f32-8894-4290-92a0-6a470c6b69ab) of DeviceClass radiatorThermostate + + + + + link status changed The name of the autocreated EventType (aff38be8-7ea6-4fd8-b0fa-e987ab05c719) - + + + link status ok + The name of the ParamType of the autocreated EventType (aff38be8-7ea6-4fd8-b0fa-e987ab05c719) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (aff38be8-7ea6-4fd8-b0fa-e987ab05c719) of DeviceClass radiatorThermostate + + + + panel locked changed The name of the autocreated EventType (979df197-09a1-46f9-9217-9d323b1062bd) - - + + + panel locked + The name of the ParamType of the autocreated EventType (979df197-09a1-46f9-9217-9d323b1062bd) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (979df197-09a1-46f9-9217-9d323b1062bd) of DeviceClass radiatorThermostate + + + + + gateway known changed The name of the autocreated EventType (1d6bd962-5c31-47ad-80a4-dda87bff98f5) - - + + + gateway known + The name of the ParamType of the autocreated EventType (1d6bd962-5c31-47ad-80a4-dda87bff98f5) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (1d6bd962-5c31-47ad-80a4-dda87bff98f5) of DeviceClass radiatorThermostate + + + + + dts active changed The name of the autocreated EventType (1b402ba6-a8ae-45b1-8acf-2b0a89f71889) - - + + + dts active + The name of the ParamType of the autocreated EventType (1b402ba6-a8ae-45b1-8acf-2b0a89f71889) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (1b402ba6-a8ae-45b1-8acf-2b0a89f71889) of DeviceClass radiatorThermostate + + + + + device mode changed The name of the autocreated EventType (639360f0-bb65-43e6-b227-50ae0ac39d6c) - - + + + device mode + The name of the ParamType of the autocreated EventType (639360f0-bb65-43e6-b227-50ae0ac39d6c) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (639360f0-bb65-43e6-b227-50ae0ac39d6c) of DeviceClass radiatorThermostate + + + + + device mode string changed The name of the autocreated EventType (ff5194e3-5641-4ac2-92c7-48c431b4a2eb) - - + + + device mode string + The name of the ParamType of the autocreated EventType (ff5194e3-5641-4ac2-92c7-48c431b4a2eb) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (ff5194e3-5641-4ac2-92c7-48c431b4a2eb) of DeviceClass radiatorThermostate + + + + + desired temperature changed The name of the autocreated EventType (579aa8c6-8814-491b-9e7c-b98108c323d1) - - + + + + + desired temperature + The name of the ParamType of the autocreated EventType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass wallThermostate +---------- +The name of the autocreated ParamType of the writable StateType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass wallThermostate +---------- +The name of the ParamType of the autocreated EventType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass radiatorThermostate +---------- +The name of the autocreated ParamType of the writable StateType (579aa8c6-8814-491b-9e7c-b98108c323d1) of DeviceClass radiatorThermostate + + + + + Set desired temperature The name of the autocreated ActionType (579aa8c6-8814-491b-9e7c-b98108c323d1) - + current temperature changed The name of the autocreated EventType (852e7708-db1d-42d1-96e4-19c13598262c) - - + + current temperature + The name of the ParamType of the autocreated EventType (852e7708-db1d-42d1-96e4-19c13598262c) of DeviceClass wallThermostate + + + + + set auto mode The name of the ActionType 162b4b3d-9923-4f2c-a755-b50c8a06a6f0 of deviceClass wallThermostate ---------- @@ -423,8 +375,8 @@ The name of the ActionType 162b4b3d-9923-4f2c-a755-b50c8a06a6f0 of deviceClass r - - + + set manual mode The name of the ActionType 8e604437-9f5b-4c17-b5b0-e2db6007af5b of deviceClass wallThermostate ---------- @@ -432,8 +384,8 @@ The name of the ActionType 8e604437-9f5b-4c17-b5b0-e2db6007af5b of deviceClass r - - + + set eco mode The name of the ActionType 27a981e8-ec23-4ba8-921e-33b911a7dd89 of deviceClass wallThermostate ---------- @@ -441,97 +393,145 @@ The name of the ActionType 27a981e8-ec23-4ba8-921e-33b911a7dd89 of deviceClass r - + display current temperature The name of the ActionType 184fb112-7a03-4560-8634-0257c969c26e of deviceClass wallThermostate - + display The name of the paramType (894dbb8e-73b5-4e89-8b93-d7afda239dcb) of wallThermostate - + Max! Radiator Thermostat The name of the DeviceClass (f80d9481-4827-45ee-a013-b97b22412d92) - + comfort temperature changed The name of the autocreated EventType (850380ee-a787-43e7-adb8-768a21a6e64d) - + error occured changed The name of the autocreated EventType (9880247b-cf9a-453c-b0c3-d910eba8a253) - - linkStatusOk - The name of the ParamType of StateType (aff38be8-7ea6-4fd8-b0fa-e987ab05c719) of DeviceClass radiatorThermostate + + valve position + The name of the ParamType of the autocreated EventType (72956000-0203-4c32-a6b6-3bb7e46c03ca) of DeviceClass radiatorThermostate - + pannel locked changed The name of the autocreated EventType (979df197-09a1-46f9-9217-9d323b1062bd) - + offset temperature changed The name of the autocreated EventType (576da571-9a65-478f-96bf-19256c8b9ece) - + + offset temperature + The name of the ParamType of the autocreated EventType (576da571-9a65-478f-96bf-19256c8b9ece) of DeviceClass radiatorThermostate + + + + window open duration changed The name of the autocreated EventType (81c6c74a-b0cd-4daa-9eb9-f1cd68f328af) - + + window open duration + The name of the ParamType of the autocreated EventType (81c6c74a-b0cd-4daa-9eb9-f1cd68f328af) of DeviceClass radiatorThermostate + + + + boost value changed The name of the autocreated EventType (7c41fa64-b1a1-48d2-9d03-67aa16cd83ad) - + + boost valve + The name of the ParamType of the autocreated EventType (7c41fa64-b1a1-48d2-9d03-67aa16cd83ad) of DeviceClass radiatorThermostate + + + + boost duration changed The name of the autocreated EventType (e75c1398-9ad7-466c-b3b9-b03bbb686a30) - + + boost duration + The name of the ParamType of the autocreated EventType (e75c1398-9ad7-466c-b3b9-b03bbb686a30) of DeviceClass radiatorThermostate + + + + discalc weekday changed The name of the autocreated EventType (bd6f5947-d4b4-444b-81c8-77eec46957e4) - + + discalc weekday + The name of the ParamType of the autocreated EventType (bd6f5947-d4b4-444b-81c8-77eec46957e4) of DeviceClass radiatorThermostate + + + + discalc time changed The name of the autocreated EventType (e78235ee-affc-41e3-a463-9f0512b4a6c3) - + + discalc time + The name of the ParamType of the autocreated EventType (e78235ee-affc-41e3-a463-9f0512b4a6c3) of DeviceClass radiatorThermostate + + + + valve maximum setting changed The name of the autocreated EventType (e367fa3a-b30f-49bd-af3f-cff92360ad32) - + + valve maximum setting + The name of the ParamType of the autocreated EventType (e367fa3a-b30f-49bd-af3f-cff92360ad32) of DeviceClass radiatorThermostate + + + + valve offset changed The name of the autocreated EventType (ffaff87b-b741-4db8-9875-3380af4f1885) - + + valve offset + The name of the ParamType of the autocreated EventType (ffaff87b-b741-4db8-9875-3380af4f1885) of DeviceClass radiatorThermostate + + + + valve position changed The name of the autocreated EventType (72956000-0203-4c32-a6b6-3bb7e46c03ca) diff --git a/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-de_DE.ts b/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-de_DE.ts index 7064f4df..eeddd105 100644 --- a/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-de_DE.ts +++ b/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-de_DE.ts @@ -4,85 +4,88 @@ GenericElements - - GenericElements + + Generic Elements The name of the plugin GenericElements (6e22161e-39b7-4416-8623-39e730721efb) - + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - + Toggle Button The name of the DeviceClass (c0f511f9-70f5-499b-bd70-2c0e9ddd68c4) - + state changed The name of the autocreated EventType (b5e90567-54aa-49bd-a78a-3c19fb38aaf5) - + + state - The name of the ParamType of StateType (b5e90567-54aa-49bd-a78a-3c19fb38aaf5) of DeviceClass toggleButton + The name of the ParamType of the autocreated EventType (b5e90567-54aa-49bd-a78a-3c19fb38aaf5) of DeviceClass toggleButton +---------- +The name of the autocreated ParamType of the writable StateType (b5e90567-54aa-49bd-a78a-3c19fb38aaf5) of DeviceClass toggleButton - + Set state The name of the autocreated ActionType (b5e90567-54aa-49bd-a78a-3c19fb38aaf5) - + Button The name of the DeviceClass (820b2f2d-0d92-48c8-8fd4-f94ce8fc4103) - + press The name of the ActionType 01f38af1-b2ab-4ec3-844e-ef52f0f229a9 of deviceClass button - + button pressed The name of the EventType effdbc2d-e467-4b0b-80a9-9dda251bfa5c of deviceClass button - + ON/OFF Button The name of the DeviceClass (430d188c-476d-4825-a9bd-86dfa3094b56) - + press ON The name of the ActionType 892596d2-0863-4807-97da-469b9f7003f2 of deviceClass onOffButton - + press OFF The name of the ActionType a8d64050-0b58-4ccf-b052-77ce2b7368ad of deviceClass onOffButton - + ON pressed The name of the EventType 4eeba6a2-e4c7-4a2e-8360-2797d98114e6 of deviceClass onOffButton - + OFF pressed The name of the EventType b636c5f3-2eb0-4682-96d4-88a4aa9d2c12 of deviceClass onOffButton diff --git a/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-en_US.ts b/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-en_US.ts index 5569f9d4..ee656a19 100644 --- a/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-en_US.ts +++ b/genericelements/translations/6e22161e-39b7-4416-8623-39e730721efb-en_US.ts @@ -4,85 +4,88 @@ GenericElements - - GenericElements + + Generic Elements The name of the plugin GenericElements (6e22161e-39b7-4416-8623-39e730721efb) - + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - + Toggle Button The name of the DeviceClass (c0f511f9-70f5-499b-bd70-2c0e9ddd68c4) - + state changed The name of the autocreated EventType (b5e90567-54aa-49bd-a78a-3c19fb38aaf5) - + + state - The name of the ParamType of StateType (b5e90567-54aa-49bd-a78a-3c19fb38aaf5) of DeviceClass toggleButton + The name of the ParamType of the autocreated EventType (b5e90567-54aa-49bd-a78a-3c19fb38aaf5) of DeviceClass toggleButton +---------- +The name of the autocreated ParamType of the writable StateType (b5e90567-54aa-49bd-a78a-3c19fb38aaf5) of DeviceClass toggleButton - + Set state The name of the autocreated ActionType (b5e90567-54aa-49bd-a78a-3c19fb38aaf5) - + Button The name of the DeviceClass (820b2f2d-0d92-48c8-8fd4-f94ce8fc4103) - + press The name of the ActionType 01f38af1-b2ab-4ec3-844e-ef52f0f229a9 of deviceClass button - + button pressed The name of the EventType effdbc2d-e467-4b0b-80a9-9dda251bfa5c of deviceClass button - + ON/OFF Button The name of the DeviceClass (430d188c-476d-4825-a9bd-86dfa3094b56) - + press ON The name of the ActionType 892596d2-0863-4807-97da-469b9f7003f2 of deviceClass onOffButton - + press OFF The name of the ActionType a8d64050-0b58-4ccf-b052-77ce2b7368ad of deviceClass onOffButton - + ON pressed The name of the EventType 4eeba6a2-e4c7-4a2e-8360-2797d98114e6 of deviceClass onOffButton - + OFF pressed The name of the EventType b636c5f3-2eb0-4682-96d4-88a4aa9d2c12 of deviceClass onOffButton diff --git a/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-de_DE.ts b/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-de_DE.ts index daa2f79e..a3f7e8fd 100644 --- a/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-de_DE.ts +++ b/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-de_DE.ts @@ -4,20 +4,20 @@ GpioController - - GpioController + + Gpio Controller The name of the plugin GpioController (127ead55-996a-44ac-ba82-fc3c634e018a) - + Raspberry Pi 2/3 The name of the vendor (f0d00b66-bbd8-4a07-8591-ea48a61b229e) - - + + GPIO Output The name of the DeviceClass (3885c520-e202-4435-88f6-3c35c362b2e6) ---------- @@ -25,10 +25,10 @@ The name of the DeviceClass (75d54a59-f9b0-4bc4-a86c-6b1fc47e0663) - - - - + + + + GPIO The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioOutputRpi ---------- @@ -40,10 +40,10 @@ The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioInputBbb - - - - + + + + Pin number The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioOutputRpi ---------- @@ -55,10 +55,10 @@ The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioInputBbb - - - - + + + + Description The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioOutputRpi ---------- @@ -70,24 +70,30 @@ The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioInputBbb - - + + Power changed The name of the autocreated EventType (06843766-358e-44b0-8d52-2b46ef98459a) - - - powerValue - The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputRpi + + + + + Power + The name of the ParamType of the autocreated EventType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputRpi ---------- -The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputBbb +The name of the autocreated ParamType of the writable StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputRpi +---------- +The name of the ParamType of the autocreated EventType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputBbb +---------- +The name of the autocreated ParamType of the writable StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputBbb - - + + GPIO Input The name of the DeviceClass (6aff228b-0410-4ef9-9593-51e8639aacea) ---------- @@ -95,30 +101,30 @@ The name of the DeviceClass (ffd2aa29-55cc-4824-ba95-c311784f7824) - - - pressed - The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputRpi ----------- -The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputBbb - - - - - + + Set power The name of the autocreated ActionType (06843766-358e-44b0-8d52-2b46ef98459a) - - + + Pressed changed The name of the autocreated EventType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) - + + + Pressed + The name of the ParamType of the autocreated EventType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputRpi +---------- +The name of the ParamType of the autocreated EventType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputBbb + + + + Beaglebone Black The name of the vendor (7835d14b-b455-49bd-9f31-72c6e8c3033d) diff --git a/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-en_US.ts b/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-en_US.ts index 2b8cb41c..a69516ed 100644 --- a/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-en_US.ts +++ b/gpio/translations/127ead55-996a-44ac-ba82-fc3c634e018a-en_US.ts @@ -4,20 +4,20 @@ GpioController - - GpioController + + Gpio Controller The name of the plugin GpioController (127ead55-996a-44ac-ba82-fc3c634e018a) - + Raspberry Pi 2/3 The name of the vendor (f0d00b66-bbd8-4a07-8591-ea48a61b229e) - - + + GPIO Output The name of the DeviceClass (3885c520-e202-4435-88f6-3c35c362b2e6) ---------- @@ -25,10 +25,10 @@ The name of the DeviceClass (75d54a59-f9b0-4bc4-a86c-6b1fc47e0663) - - - - + + + + GPIO The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioOutputRpi ---------- @@ -40,10 +40,10 @@ The name of the paramType (9eda783f-6d9f-4d39-986d-d2cbfff5a7dd) of gpioInputBbb - - - - + + + + Pin number The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioOutputRpi ---------- @@ -55,10 +55,10 @@ The name of the paramType (2204d278-7bc7-407f-ac82-ce3ae1d5779c) of gpioInputBbb - - - - + + + + Description The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioOutputRpi ---------- @@ -70,24 +70,30 @@ The name of the paramType (504798eb-1faa-4703-a57a-2778e4bf9a67) of gpioInputBbb - - + + Power changed The name of the autocreated EventType (06843766-358e-44b0-8d52-2b46ef98459a) - - - powerValue - The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputRpi + + + + + Power + The name of the ParamType of the autocreated EventType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputRpi ---------- -The name of the ParamType of StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputBbb +The name of the autocreated ParamType of the writable StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputRpi +---------- +The name of the ParamType of the autocreated EventType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputBbb +---------- +The name of the autocreated ParamType of the writable StateType (06843766-358e-44b0-8d52-2b46ef98459a) of DeviceClass gpioOutputBbb - - + + GPIO Input The name of the DeviceClass (6aff228b-0410-4ef9-9593-51e8639aacea) ---------- @@ -95,30 +101,30 @@ The name of the DeviceClass (ffd2aa29-55cc-4824-ba95-c311784f7824) - - - pressed - The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputRpi ----------- -The name of the ParamType of StateType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputBbb - - - - - + + Set power The name of the autocreated ActionType (06843766-358e-44b0-8d52-2b46ef98459a) - - + + Pressed changed The name of the autocreated EventType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) - + + + Pressed + The name of the ParamType of the autocreated EventType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputRpi +---------- +The name of the ParamType of the autocreated EventType (57f1b7cc-26c8-434b-ba04-d3077dc886c8) of DeviceClass gpioInputBbb + + + + Beaglebone Black The name of the vendor (7835d14b-b455-49bd-9f31-72c6e8c3033d) diff --git a/httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts b/httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts index 1befc63b..5356877c 100644 --- a/httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts +++ b/httpcommander/translations/4e62670c-6268-4487-8dff-cccca498731a-en_US.ts @@ -3,11 +3,6 @@ HttpCommander - - HttpCommander - The name of the plugin HttpCommander (4e62670c-6268-4487-8dff-cccca498731a) - - HTTP commander The name of the vendor (45d7c941-7690-43c9-92fc-fab36e1cebd0) @@ -43,15 +38,6 @@ The name of the autocreated EventType (d102ff86-b773-48e3-a7a5-e138cb541f49) The name of the autocreated EventType (0d63f815-efd1-488a-9bfa-e9f6bda540d2) - - connected - The name of the ParamType of StateType (8daac0e7-4c2f-4cdf-b528-02cfe04c6b39) of DeviceClass httpPostCommander ----------- -The name of the ParamType of StateType (d102ff86-b773-48e3-a7a5-e138cb541f49) of DeviceClass httpPutCommander ----------- -The name of the ParamType of StateType (0d63f815-efd1-488a-9bfa-e9f6bda540d2) of DeviceClass httpGetCommander - - Response received The name of the autocreated EventType (69f32ec8-114d-43f4-9241-1f6a57261f32) @@ -59,11 +45,7 @@ The name of the ParamType of StateType (0d63f815-efd1-488a-9bfa-e9f6bda540d2) of response - The name of the ParamType of StateType (69f32ec8-114d-43f4-9241-1f6a57261f32) of DeviceClass httpPostCommander ----------- -The name of the ParamType of StateType (69f32ec8-114d-43f4-9241-1f6a57261f32) of DeviceClass httpPutCommander ----------- -The name of the ParamType of StateType (d81f0644-b94e-48ed-ae48-1b8ff6cebc0c) of DeviceClass httpGetCommander + The name of the ParamType of the autocreated EventType (69f32ec8-114d-43f4-9241-1f6a57261f32) of DeviceClass httpPostCommander @@ -103,5 +85,26 @@ The name of the paramType (7742d445-8fc1-4b20-87f2-1bb35929fce1) of httpPutComma The name of the autocreated EventType (d81f0644-b94e-48ed-ae48-1b8ff6cebc0c) + + Http Commander + The name of the plugin HttpCommander (4e62670c-6268-4487-8dff-cccca498731a) + + + + Reachable + The name of the ParamType of the autocreated EventType (8daac0e7-4c2f-4cdf-b528-02cfe04c6b39) of DeviceClass httpPostCommander +---------- +The name of the ParamType of the autocreated EventType (d102ff86-b773-48e3-a7a5-e138cb541f49) of DeviceClass httpPutCommander +---------- +The name of the ParamType of the autocreated EventType (0d63f815-efd1-488a-9bfa-e9f6bda540d2) of DeviceClass httpGetCommander + + + + Response + The name of the ParamType of the autocreated EventType (69f32ec8-114d-43f4-9241-1f6a57261f32) of DeviceClass httpPutCommander +---------- +The name of the ParamType of the autocreated EventType (d81f0644-b94e-48ed-ae48-1b8ff6cebc0c) of DeviceClass httpGetCommander + + diff --git a/keba/translations/9142b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts b/keba/translations/9142b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts index 5907f0d5..f48f635f 100644 --- a/keba/translations/9142b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts +++ b/keba/translations/9142b09f-30a9-43d0-9ede-2f8debe075ac-en_US.ts @@ -4,123 +4,129 @@ KebaKeContact - - KebaKeContact + + Keba KeContact The name of the plugin KebaKeContact (9142b09f-30a9-43d0-9ede-2f8debe075ac) - + Keba The name of the vendor (f7cda40b-829a-4675-abaa-485697430f5f) - + Keba KeContact P30 The name of the DeviceClass (900dacec-cae7-4a37-95ba-501846368ea2) - + IP Address The name of the paramType (730cd3d3-5f0e-4028-a8c2-ced7574f13f3) of wallbox - + Activity changed The name of the autocreated EventType (539e5602-6dd9-465d-9705-3bb59bcf8982) - - activity - The name of the ParamType of StateType (539e5602-6dd9-465d-9705-3bb59bcf8982) of DeviceClass wallbox + + Activity + The name of the ParamType of the autocreated EventType (539e5602-6dd9-465d-9705-3bb59bcf8982) of DeviceClass wallbox - + + Plug State + The name of the ParamType of the autocreated EventType (3b4d29f3-3101-47ad-90fd-269b6348783b) of DeviceClass wallbox + + + + + Current + The name of the ParamType of the autocreated EventType (a29c1748-fe97-4830-a56e-e1cc4e618385) of DeviceClass wallbox + + + + + + maximal Current + The name of the ParamType of the autocreated EventType (593656f0-babf-4308-8767-68f34e10fb15) of DeviceClass wallbox +---------- +The name of the autocreated ParamType of the writable StateType (593656f0-babf-4308-8767-68f34e10fb15) of DeviceClass wallbox + + + + + Power + The name of the ParamType of the autocreated EventType (e8f069ca-7fa7-4568-8d4c-165f6d048720) of DeviceClass wallbox + + + + + + Output + The name of the ParamType of the autocreated EventType (0cd5396a-bc41-4c8f-b037-db10991a76c7) of DeviceClass wallbox +---------- +The name of the autocreated ParamType of the writable StateType (0cd5396a-bc41-4c8f-b037-db10991a76c7) of DeviceClass wallbox + + + + Plug State changed The name of the autocreated EventType (3b4d29f3-3101-47ad-90fd-269b6348783b) - - plugState - The name of the ParamType of StateType (3b4d29f3-3101-47ad-90fd-269b6348783b) of DeviceClass wallbox - - - - + Current changed The name of the autocreated EventType (a29c1748-fe97-4830-a56e-e1cc4e618385) - - current - The name of the ParamType of StateType (a29c1748-fe97-4830-a56e-e1cc4e618385) of DeviceClass wallbox - - - - + Maximal Current changed The name of the autocreated EventType (593656f0-babf-4308-8767-68f34e10fb15) - - maxCurrent - The name of the ParamType of StateType (593656f0-babf-4308-8767-68f34e10fb15) of DeviceClass wallbox - - - - + Set maximal current The name of the autocreated ActionType (593656f0-babf-4308-8767-68f34e10fb15) - + Power changed The name of the autocreated EventType (e8f069ca-7fa7-4568-8d4c-165f6d048720) - - power - The name of the ParamType of StateType (e8f069ca-7fa7-4568-8d4c-165f6d048720) of DeviceClass wallbox - - - - + Output Enable changed The name of the autocreated EventType (0cd5396a-bc41-4c8f-b037-db10991a76c7) - - outEnable - The name of the ParamType of StateType (0cd5396a-bc41-4c8f-b037-db10991a76c7) of DeviceClass wallbox - - - - + Set Output The name of the autocreated ActionType (0cd5396a-bc41-4c8f-b037-db10991a76c7) - + Device Reachable changed The name of the autocreated EventType (b1a574a6-46b6-44ea-a0bb-9b4de3198967) - + reachable - The name of the ParamType of StateType (b1a574a6-46b6-44ea-a0bb-9b4de3198967) of DeviceClass wallbox + The name of the ParamType of the autocreated EventType (b1a574a6-46b6-44ea-a0bb-9b4de3198967) of DeviceClass wallbox diff --git a/kodi/translations/e7186890-99fa-4c5b-8247-09c6d450d490-de_DE.ts b/kodi/translations/e7186890-99fa-4c5b-8247-09c6d450d490-de_DE.ts index 3e341911..f6d2717b 100644 --- a/kodi/translations/e7186890-99fa-4c5b-8247-09c6d450d490-de_DE.ts +++ b/kodi/translations/e7186890-99fa-4c5b-8247-09c6d450d490-de_DE.ts @@ -4,9 +4,9 @@ Kodi - + Kodi The name of the plugin Kodi (e7186890-99fa-4c5b-8247-09c6d450d490) ---------- @@ -16,171 +16,180 @@ The name of the DeviceClass (d09953e3-c5bd-415b-973b-0d0bf2be3f69) - + name The name of the paramType (a704beb1-b0b0-46fc-91fc-3aac01e1a364) of kodi - + ip The name of the paramType (1a897065-57c6-49b3-bac9-1e5db27859e5) of kodi - + port The name of the paramType (660fb4d7-9479-4c9d-a900-ce221d2b8ae4) of kodi - + connected changed The name of the autocreated EventType (09dfbd40-c97c-4a20-9ecd-f80e389a4864) - + connected - The name of the ParamType of StateType (09dfbd40-c97c-4a20-9ecd-f80e389a4864) of DeviceClass kodi + The name of the ParamType of the autocreated EventType (09dfbd40-c97c-4a20-9ecd-f80e389a4864) of DeviceClass kodi - + mute changed The name of the autocreated EventType (bc98cdb0-4d0e-48ca-afc7-922e49bb7813) - + + mute - The name of the ParamType of StateType (bc98cdb0-4d0e-48ca-afc7-922e49bb7813) of DeviceClass kodi + The name of the ParamType of the autocreated EventType (bc98cdb0-4d0e-48ca-afc7-922e49bb7813) of DeviceClass kodi +---------- +The name of the autocreated ParamType of the writable StateType (bc98cdb0-4d0e-48ca-afc7-922e49bb7813) of DeviceClass kodi - + Set mute The name of the autocreated ActionType (bc98cdb0-4d0e-48ca-afc7-922e49bb7813) - + volume changed The name of the autocreated EventType (9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9) - + + volume - The name of the ParamType of StateType (9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9) of DeviceClass kodi + The name of the ParamType of the autocreated EventType (9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9) of DeviceClass kodi +---------- +The name of the autocreated ParamType of the writable StateType (9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9) of DeviceClass kodi - + Set volume The name of the autocreated ActionType (9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9) - + playback status changed The name of the autocreated EventType (2dd512b7-40c2-488e-8d4f-6519edaa6f74) - - playbackStatus - The name of the ParamType of StateType (2dd512b7-40c2-488e-8d4f-6519edaa6f74) of DeviceClass kodi + + + playback status + The name of the ParamType of the autocreated EventType (2dd512b7-40c2-488e-8d4f-6519edaa6f74) of DeviceClass kodi +---------- +The name of the autocreated ParamType of the writable StateType (2dd512b7-40c2-488e-8d4f-6519edaa6f74) of DeviceClass kodi - + set playback status The name of the autocreated ActionType (2dd512b7-40c2-488e-8d4f-6519edaa6f74) - + skip back The name of the ActionType a180807d-1265-4831-9d86-a421767418dd of deviceClass kodi - + rewind The name of the ActionType 7e70b47b-7e79-4521-be34-04a3c427e5b1 of deviceClass kodi - + stop The name of the ActionType ae3cbe03-ee3e-410e-abbd-efabc2402198 of deviceClass kodi - + play The name of the ActionType 4d2ee668-a2e3-4795-8b96-0c800b703b46 of deviceClass kodi - + pause The name of the ActionType 3cf341cb-fe63-40bc-a450-9678d18e91e3 of deviceClass kodi - + fastForward The name of the ActionType 6985250e-1188-4e44-b9dd-93303b5738a1 of deviceClass kodi - + skipNext The name of the ActionType 85d7126a-b123-4a28-aeb4-d84bcfb4d14f of deviceClass kodi - + show notification The name of the ActionType dc0aa3b5-4eae-4e58-a4ac-d4c124da53f1 of deviceClass kodi - + message The name of the paramType (798f720a-cc4f-40e7-91d7-2ef5957ca7ad) of kodi - + type The name of the paramType (86df6a45-ee8a-4e1f-94e2-4081e14eb557) of kodi - + press button The name of the ActionType 28060803-aa85-44a4-9dec-ee669dfb629f of deviceClass kodi - + button The name of the paramType (93861dac-0c24-4a3b-903d-d1be44eae611) of kodi - + system The name of the ActionType 8d51cd64-ecef-44f8-85b0-697bef252ce5 of deviceClass kodi - - + + command The name of the paramType (8f3413fb-018e-40d6-903c-c8a915a6f498) of kodi ---------- @@ -190,31 +199,31 @@ The name of the paramType (ba89d098-56d7-40a2-b499-c02499c1ec0c) of kodi - + video library The name of the ActionType 59f7ad10-16eb-40b7-a88b-c8393ae8e413 of deviceClass kodi - + audio library The name of the ActionType 3d5120eb-1007-46c3-b76e-d9d4b105b9f2 of deviceClass kodi - + player play The name of the EventType 2535a1eb-7643-4874-98f6-b027fdff6311 of deviceClass kodi - + player pause The name of the EventType 99498b1c-e9c0-480a-9e91-662ee79ba976 of deviceClass kodi - + player stop The name of the EventType a02ce255-3abb-435d-a92e-7f99c952ecb2 of deviceClass kodi diff --git a/kodi/translations/e7186890-99fa-4c5b-8247-09c6d450d490-en_US.ts b/kodi/translations/e7186890-99fa-4c5b-8247-09c6d450d490-en_US.ts index 93122350..4fd2d960 100644 --- a/kodi/translations/e7186890-99fa-4c5b-8247-09c6d450d490-en_US.ts +++ b/kodi/translations/e7186890-99fa-4c5b-8247-09c6d450d490-en_US.ts @@ -4,9 +4,9 @@ Kodi - + Kodi The name of the plugin Kodi (e7186890-99fa-4c5b-8247-09c6d450d490) ---------- @@ -16,171 +16,180 @@ The name of the DeviceClass (d09953e3-c5bd-415b-973b-0d0bf2be3f69) - + name The name of the paramType (a704beb1-b0b0-46fc-91fc-3aac01e1a364) of kodi - + ip The name of the paramType (1a897065-57c6-49b3-bac9-1e5db27859e5) of kodi - + port The name of the paramType (660fb4d7-9479-4c9d-a900-ce221d2b8ae4) of kodi - + connected changed The name of the autocreated EventType (09dfbd40-c97c-4a20-9ecd-f80e389a4864) - + connected - The name of the ParamType of StateType (09dfbd40-c97c-4a20-9ecd-f80e389a4864) of DeviceClass kodi + The name of the ParamType of the autocreated EventType (09dfbd40-c97c-4a20-9ecd-f80e389a4864) of DeviceClass kodi - + mute changed The name of the autocreated EventType (bc98cdb0-4d0e-48ca-afc7-922e49bb7813) - + + mute - The name of the ParamType of StateType (bc98cdb0-4d0e-48ca-afc7-922e49bb7813) of DeviceClass kodi + The name of the ParamType of the autocreated EventType (bc98cdb0-4d0e-48ca-afc7-922e49bb7813) of DeviceClass kodi +---------- +The name of the autocreated ParamType of the writable StateType (bc98cdb0-4d0e-48ca-afc7-922e49bb7813) of DeviceClass kodi - + Set mute The name of the autocreated ActionType (bc98cdb0-4d0e-48ca-afc7-922e49bb7813) - + volume changed The name of the autocreated EventType (9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9) - + + volume - The name of the ParamType of StateType (9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9) of DeviceClass kodi + The name of the ParamType of the autocreated EventType (9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9) of DeviceClass kodi +---------- +The name of the autocreated ParamType of the writable StateType (9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9) of DeviceClass kodi - + Set volume The name of the autocreated ActionType (9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9) - + playback status changed The name of the autocreated EventType (2dd512b7-40c2-488e-8d4f-6519edaa6f74) - - playbackStatus - The name of the ParamType of StateType (2dd512b7-40c2-488e-8d4f-6519edaa6f74) of DeviceClass kodi + + + playback status + The name of the ParamType of the autocreated EventType (2dd512b7-40c2-488e-8d4f-6519edaa6f74) of DeviceClass kodi +---------- +The name of the autocreated ParamType of the writable StateType (2dd512b7-40c2-488e-8d4f-6519edaa6f74) of DeviceClass kodi - + set playback status The name of the autocreated ActionType (2dd512b7-40c2-488e-8d4f-6519edaa6f74) - + skip back The name of the ActionType a180807d-1265-4831-9d86-a421767418dd of deviceClass kodi - + rewind The name of the ActionType 7e70b47b-7e79-4521-be34-04a3c427e5b1 of deviceClass kodi - + stop The name of the ActionType ae3cbe03-ee3e-410e-abbd-efabc2402198 of deviceClass kodi - + play The name of the ActionType 4d2ee668-a2e3-4795-8b96-0c800b703b46 of deviceClass kodi - + pause The name of the ActionType 3cf341cb-fe63-40bc-a450-9678d18e91e3 of deviceClass kodi - + fastForward The name of the ActionType 6985250e-1188-4e44-b9dd-93303b5738a1 of deviceClass kodi - + skipNext The name of the ActionType 85d7126a-b123-4a28-aeb4-d84bcfb4d14f of deviceClass kodi - + show notification The name of the ActionType dc0aa3b5-4eae-4e58-a4ac-d4c124da53f1 of deviceClass kodi - + message The name of the paramType (798f720a-cc4f-40e7-91d7-2ef5957ca7ad) of kodi - + type The name of the paramType (86df6a45-ee8a-4e1f-94e2-4081e14eb557) of kodi - + press button The name of the ActionType 28060803-aa85-44a4-9dec-ee669dfb629f of deviceClass kodi - + button The name of the paramType (93861dac-0c24-4a3b-903d-d1be44eae611) of kodi - + system The name of the ActionType 8d51cd64-ecef-44f8-85b0-697bef252ce5 of deviceClass kodi - - + + command The name of the paramType (8f3413fb-018e-40d6-903c-c8a915a6f498) of kodi ---------- @@ -190,31 +199,31 @@ The name of the paramType (ba89d098-56d7-40a2-b499-c02499c1ec0c) of kodi - + video library The name of the ActionType 59f7ad10-16eb-40b7-a88b-c8393ae8e413 of deviceClass kodi - + audio library The name of the ActionType 3d5120eb-1007-46c3-b76e-d9d4b105b9f2 of deviceClass kodi - + player play The name of the EventType 2535a1eb-7643-4874-98f6-b027fdff6311 of deviceClass kodi - + player pause The name of the EventType 99498b1c-e9c0-480a-9e91-662ee79ba976 of deviceClass kodi - + player stop The name of the EventType a02ce255-3abb-435d-a92e-7f99c952ecb2 of deviceClass kodi diff --git a/lgsmarttv/translations/4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52-de_DE.ts b/lgsmarttv/translations/4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52-de_DE.ts index a24930a8..618e92ba 100644 --- a/lgsmarttv/translations/4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52-de_DE.ts +++ b/lgsmarttv/translations/4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52-de_DE.ts @@ -4,9 +4,12 @@ LgSmartTv + LG Smart Tv - The name of the DeviceClass (1d41b5a8-74ff-4a12-b365-c7bbe610848f) + The name of the plugin LgSmartTv (4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52) +---------- +The name of the DeviceClass (1d41b5a8-74ff-4a12-b365-c7bbe610848f) @@ -66,7 +69,7 @@ reachable - The name of the ParamType of StateType (b056c36b-df87-4177-8d5d-1e7c1e8cdc7a) of DeviceClass lgSmartTv + The name of the ParamType of the autocreated EventType (b056c36b-df87-4177-8d5d-1e7c1e8cdc7a) of DeviceClass lgSmartTv @@ -75,12 +78,24 @@ The name of the autocreated EventType (8ad3d77f-d340-495d-8c2a-5569a80e9d36) + + + 3D mode + The name of the ParamType of the autocreated EventType (8ad3d77f-d340-495d-8c2a-5569a80e9d36) of DeviceClass lgSmartTv + + volume changed The name of the autocreated EventType (07d39a6e-7eab-42d0-851d-9f3bcd3bbb57) + + + volume + The name of the ParamType of the autocreated EventType (07d39a6e-7eab-42d0-851d-9f3bcd3bbb57) of DeviceClass lgSmartTv + + mute changed @@ -88,9 +103,12 @@ + mute - The name of the ActionType 1aa9d7f0-0f66-4b90-bb72-f6b7b2118221 of deviceClass lgSmartTv + The name of the ParamType of the autocreated EventType (a6ac9061-3de7-403a-a646-790ca5d73764) of DeviceClass lgSmartTv +---------- +The name of the ActionType 1aa9d7f0-0f66-4b90-bb72-f6b7b2118221 of deviceClass lgSmartTv @@ -99,30 +117,60 @@ The name of the autocreated EventType (84c86670-77c7-4fc6-9e23-abca066e76aa) + + + tv channel type + The name of the ParamType of the autocreated EventType (84c86670-77c7-4fc6-9e23-abca066e76aa) of DeviceClass lgSmartTv + + channel name changed The name of the autocreated EventType (265dc5f7-3f4d-4002-a6fe-2a53986bcf1d) + + + channel name + The name of the ParamType of the autocreated EventType (265dc5f7-3f4d-4002-a6fe-2a53986bcf1d) of DeviceClass lgSmartTv + + channel number changed The name of the autocreated EventType (881629a3-4ce2-42ba-8ce6-10d90c383799) + + + channel number + The name of the ParamType of the autocreated EventType (881629a3-4ce2-42ba-8ce6-10d90c383799) of DeviceClass lgSmartTv + + program changed The name of the autocreated EventType (3f53e52e-1ad7-40e7-8080-76908e720cac) + + + program + The name of the ParamType of the autocreated EventType (3f53e52e-1ad7-40e7-8080-76908e720cac) of DeviceClass lgSmartTv + + input source index changed The name of the autocreated EventType (e895017a-139f-410c-bfb2-4d008104e164) + + + input source index + The name of the ParamType of the autocreated EventType (e895017a-139f-410c-bfb2-4d008104e164) of DeviceClass lgSmartTv + + input source changed @@ -130,9 +178,12 @@ + input source - The name of the ActionType 9a6e5111-95d3-49ac-8056-249e704b1509 of deviceClass lgSmartTv + The name of the ParamType of the autocreated EventType (58b734ec-2269-4c57-99e1-e1eeee401053) of DeviceClass lgSmartTv +---------- +The name of the ActionType 9a6e5111-95d3-49ac-8056-249e704b1509 of deviceClass lgSmartTv @@ -141,66 +192,6 @@ The name of the ActionType ac5d7dcd-dfe8-4a94-9ab9-21b3f804b39e of deviceClass lgSmartTv - - - LgSmartTv - The name of the plugin LgSmartTv (4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52) - - - - - tv3DMode - The name of the ParamType of StateType (8ad3d77f-d340-495d-8c2a-5569a80e9d36) of DeviceClass lgSmartTv - - - - - tvVolumeLevel - The name of the ParamType of StateType (07d39a6e-7eab-42d0-851d-9f3bcd3bbb57) of DeviceClass lgSmartTv - - - - - tvMute - The name of the ParamType of StateType (a6ac9061-3de7-403a-a646-790ca5d73764) of DeviceClass lgSmartTv - - - - - tvChannelType - The name of the ParamType of StateType (84c86670-77c7-4fc6-9e23-abca066e76aa) of DeviceClass lgSmartTv - - - - - tvChannelName - The name of the ParamType of StateType (265dc5f7-3f4d-4002-a6fe-2a53986bcf1d) of DeviceClass lgSmartTv - - - - - tvChannelNumber - The name of the ParamType of StateType (881629a3-4ce2-42ba-8ce6-10d90c383799) of DeviceClass lgSmartTv - - - - - tvProgramName - The name of the ParamType of StateType (3f53e52e-1ad7-40e7-8080-76908e720cac) of DeviceClass lgSmartTv - - - - - tvInputSourceIndex - The name of the ParamType of StateType (e895017a-139f-410c-bfb2-4d008104e164) of DeviceClass lgSmartTv - - - - - tvInputSourceLabelName - The name of the ParamType of StateType (58b734ec-2269-4c57-99e1-e1eeee401053) of DeviceClass lgSmartTv - - volume down diff --git a/lgsmarttv/translations/4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52-en_US.ts b/lgsmarttv/translations/4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52-en_US.ts index a1cab5e4..b6d31e76 100644 --- a/lgsmarttv/translations/4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52-en_US.ts +++ b/lgsmarttv/translations/4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52-en_US.ts @@ -4,9 +4,12 @@ LgSmartTv + LG Smart Tv - The name of the DeviceClass (1d41b5a8-74ff-4a12-b365-c7bbe610848f) + The name of the plugin LgSmartTv (4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52) +---------- +The name of the DeviceClass (1d41b5a8-74ff-4a12-b365-c7bbe610848f) @@ -66,7 +69,7 @@ reachable - The name of the ParamType of StateType (b056c36b-df87-4177-8d5d-1e7c1e8cdc7a) of DeviceClass lgSmartTv + The name of the ParamType of the autocreated EventType (b056c36b-df87-4177-8d5d-1e7c1e8cdc7a) of DeviceClass lgSmartTv @@ -75,12 +78,24 @@ The name of the autocreated EventType (8ad3d77f-d340-495d-8c2a-5569a80e9d36) + + + 3D mode + The name of the ParamType of the autocreated EventType (8ad3d77f-d340-495d-8c2a-5569a80e9d36) of DeviceClass lgSmartTv + + volume changed The name of the autocreated EventType (07d39a6e-7eab-42d0-851d-9f3bcd3bbb57) + + + volume + The name of the ParamType of the autocreated EventType (07d39a6e-7eab-42d0-851d-9f3bcd3bbb57) of DeviceClass lgSmartTv + + mute changed @@ -88,9 +103,12 @@ + mute - The name of the ActionType 1aa9d7f0-0f66-4b90-bb72-f6b7b2118221 of deviceClass lgSmartTv + The name of the ParamType of the autocreated EventType (a6ac9061-3de7-403a-a646-790ca5d73764) of DeviceClass lgSmartTv +---------- +The name of the ActionType 1aa9d7f0-0f66-4b90-bb72-f6b7b2118221 of deviceClass lgSmartTv @@ -99,30 +117,60 @@ The name of the autocreated EventType (84c86670-77c7-4fc6-9e23-abca066e76aa) + + + tv channel type + The name of the ParamType of the autocreated EventType (84c86670-77c7-4fc6-9e23-abca066e76aa) of DeviceClass lgSmartTv + + channel name changed The name of the autocreated EventType (265dc5f7-3f4d-4002-a6fe-2a53986bcf1d) + + + channel name + The name of the ParamType of the autocreated EventType (265dc5f7-3f4d-4002-a6fe-2a53986bcf1d) of DeviceClass lgSmartTv + + channel number changed The name of the autocreated EventType (881629a3-4ce2-42ba-8ce6-10d90c383799) + + + channel number + The name of the ParamType of the autocreated EventType (881629a3-4ce2-42ba-8ce6-10d90c383799) of DeviceClass lgSmartTv + + program changed The name of the autocreated EventType (3f53e52e-1ad7-40e7-8080-76908e720cac) + + + program + The name of the ParamType of the autocreated EventType (3f53e52e-1ad7-40e7-8080-76908e720cac) of DeviceClass lgSmartTv + + input source index changed The name of the autocreated EventType (e895017a-139f-410c-bfb2-4d008104e164) + + + input source index + The name of the ParamType of the autocreated EventType (e895017a-139f-410c-bfb2-4d008104e164) of DeviceClass lgSmartTv + + input source changed @@ -130,9 +178,12 @@ + input source - The name of the ActionType 9a6e5111-95d3-49ac-8056-249e704b1509 of deviceClass lgSmartTv + The name of the ParamType of the autocreated EventType (58b734ec-2269-4c57-99e1-e1eeee401053) of DeviceClass lgSmartTv +---------- +The name of the ActionType 9a6e5111-95d3-49ac-8056-249e704b1509 of deviceClass lgSmartTv @@ -141,66 +192,6 @@ The name of the ActionType ac5d7dcd-dfe8-4a94-9ab9-21b3f804b39e of deviceClass lgSmartTv - - - LgSmartTv - The name of the plugin LgSmartTv (4ef7a68b-9da0-4c62-b9ac-f478dc6f9f52) - - - - - tv3DMode - The name of the ParamType of StateType (8ad3d77f-d340-495d-8c2a-5569a80e9d36) of DeviceClass lgSmartTv - - - - - tvVolumeLevel - The name of the ParamType of StateType (07d39a6e-7eab-42d0-851d-9f3bcd3bbb57) of DeviceClass lgSmartTv - - - - - tvMute - The name of the ParamType of StateType (a6ac9061-3de7-403a-a646-790ca5d73764) of DeviceClass lgSmartTv - - - - - tvChannelType - The name of the ParamType of StateType (84c86670-77c7-4fc6-9e23-abca066e76aa) of DeviceClass lgSmartTv - - - - - tvChannelName - The name of the ParamType of StateType (265dc5f7-3f4d-4002-a6fe-2a53986bcf1d) of DeviceClass lgSmartTv - - - - - tvChannelNumber - The name of the ParamType of StateType (881629a3-4ce2-42ba-8ce6-10d90c383799) of DeviceClass lgSmartTv - - - - - tvProgramName - The name of the ParamType of StateType (3f53e52e-1ad7-40e7-8080-76908e720cac) of DeviceClass lgSmartTv - - - - - tvInputSourceIndex - The name of the ParamType of StateType (e895017a-139f-410c-bfb2-4d008104e164) of DeviceClass lgSmartTv - - - - - tvInputSourceLabelName - The name of the ParamType of StateType (58b734ec-2269-4c57-99e1-e1eeee401053) of DeviceClass lgSmartTv - - volume down diff --git a/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-de_DE.ts b/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-de_DE.ts index 540625b6..98efd650 100644 --- a/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-de_DE.ts +++ b/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-de_DE.ts @@ -3,6 +3,12 @@ MailNotification + + + Mail notification + The name of the plugin MailNotification (1ae35df1-1b51-4c93-94fa-3febc77e0318) + + Custom mail @@ -123,12 +129,6 @@ The name of the ActionType 054613b0-3666-4dad-9252-e0ebca187edc of deviceClass g The name of the ActionType 054613b0-3666-4dad-9252-e0ebca187edc of deviceClass yahooMail Sende Mail - - - MailNotification - The name of the plugin MailNotification (1ae35df1-1b51-4c93-94fa-3febc77e0318) - - guh GmbH diff --git a/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-en_US.ts b/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-en_US.ts index d47c0644..b345acfe 100644 --- a/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-en_US.ts +++ b/mailnotification/translations/1ae35df1-1b51-4c93-94fa-3febc77e0318-en_US.ts @@ -3,6 +3,12 @@ MailNotification + + + Mail notification + The name of the plugin MailNotification (1ae35df1-1b51-4c93-94fa-3febc77e0318) + + Custom mail @@ -123,12 +129,6 @@ The name of the ActionType 054613b0-3666-4dad-9252-e0ebca187edc of deviceClass g The name of the ActionType 054613b0-3666-4dad-9252-e0ebca187edc of deviceClass yahooMail - - - MailNotification - The name of the plugin MailNotification (1ae35df1-1b51-4c93-94fa-3febc77e0318) - - guh GmbH diff --git a/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-de_DE.ts b/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-de_DE.ts index 01894287..23df9526 100644 --- a/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-de_DE.ts +++ b/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-de_DE.ts @@ -4,394 +4,433 @@ MultiSensor - - MultiSensor - The name of the plugin MultiSensor (23bf0d8d-df7d-4bee-80ee-f015c5a7f52e) - - - - + Texas Instruments The name of the vendor (2edf543e-dc2c-4693-bb0c-e76c0d305fad) - - connected - The name of the ParamType of StateType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) of DeviceClass sensorTag - - - - - humidity - The name of the ParamType of StateType (e83a50ff-96c9-4b6d-889f-f4238353e794) of DeviceClass sensorTag - - - - + temperature changed The name of the autocreated EventType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) - + Sensor Tag (CC2650) The name of the DeviceClass (158a06b6-b27f-4951-957e-6f1e3b44f604) - + + Multi Sensor + The name of the plugin MultiSensor (23bf0d8d-df7d-4bee-80ee-f015c5a7f52e) + + + + Name The name of the paramType (bdb9d684-2f98-45f5-889c-f184c1e73dc7) of sensorTag - + MAC address The name of the paramType (d51ed68e-c84a-4136-a5b5-be2f95fd5a0f) of sensorTag - + Connected changed The name of the autocreated EventType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) - - temperature - The name of the ParamType of StateType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) of DeviceClass sensorTag + + Connected + The name of the ParamType of the autocreated EventType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) of DeviceClass sensorTag - + + temperature + The name of the ParamType of the autocreated EventType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) of DeviceClass sensorTag + + + + Object temperature changed The name of the autocreated EventType (c664e9ec-a045-49ba-add1-1642ceba7c4f) - - objectTemperature - The name of the ParamType of StateType (c664e9ec-a045-49ba-add1-1642ceba7c4f) of DeviceClass sensorTag + + Object temperature + The name of the ParamType of the autocreated EventType (c664e9ec-a045-49ba-add1-1642ceba7c4f) of DeviceClass sensorTag - + + Light intensity + The name of the ParamType of the autocreated EventType (6635dce4-2d8d-4608-a836-768c3014f356) of DeviceClass sensorTag + + + + + Magnet detected + The name of the ParamType of the autocreated EventType (758d9b39-7390-40f5-8e19-d8b0f4a0a0c6) of DeviceClass sensorTag + + + + + Left button pressed + The name of the ParamType of the autocreated EventType (8995e49e-ca2d-4dd9-a22f-de6c566c2115) of DeviceClass sensorTag + + + + + Right button pressed + The name of the ParamType of the autocreated EventType (ef8eedc5-6a45-4dfb-bb55-ada1a931b20b) of DeviceClass sensorTag + + + + + + Green LED + The name of the ParamType of the autocreated EventType (8d692132-f950-486f-b3dd-fe1ebc574e1d) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (8d692132-f950-486f-b3dd-fe1ebc574e1d) of DeviceClass sensorTag + + + + + + Red LED + The name of the ParamType of the autocreated EventType (bb585725-6393-42de-aea2-ea4f525ad348) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (bb585725-6393-42de-aea2-ea4f525ad348) of DeviceClass sensorTag + + + + + + Buzzer + The name of the ParamType of the autocreated EventType (d522c536-4427-4c53-9980-7820b2649aad) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (d522c536-4427-4c53-9980-7820b2649aad) of DeviceClass sensorTag + + + + + + Temperature sensor enabled + The name of the ParamType of the autocreated EventType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) of DeviceClass sensorTag + + + + + + Humidity sensor enabled + The name of the ParamType of the autocreated EventType (29881172-626a-42d5-83b8-3e2e5ca533be) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (29881172-626a-42d5-83b8-3e2e5ca533be) of DeviceClass sensorTag + + + + + + Pressure sensor enabled + The name of the ParamType of the autocreated EventType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) of DeviceClass sensorTag + + + + + + Optical sensor enabled + The name of the ParamType of the autocreated EventType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) of DeviceClass sensorTag + + + + + + Accelerometer enabled + The name of the ParamType of the autocreated EventType (5786c91a-d94d-461a-8d22-f978dd1438ab) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (5786c91a-d94d-461a-8d22-f978dd1438ab) of DeviceClass sensorTag + + + + + + Gyroscope enabled + The name of the ParamType of the autocreated EventType (94517544-cb97-4816-8993-cb4cf2651a1e) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (94517544-cb97-4816-8993-cb4cf2651a1e) of DeviceClass sensorTag + + + + + + Magnetometer enabled + The name of the ParamType of the autocreated EventType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) of DeviceClass sensorTag + + + + + + Measurement period for enviromental sensors + The name of the ParamType of the autocreated EventType (c5308565-5dc9-409e-ae99-577c212c7a92) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (c5308565-5dc9-409e-ae99-577c212c7a92) of DeviceClass sensorTag + + + + + + Measurement period movement sensor + The name of the ParamType of the autocreated EventType (5237c89c-c21d-4d78-ac99-8be661b40da7) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (5237c89c-c21d-4d78-ac99-8be661b40da7) of DeviceClass sensorTag + + + + + + Movement sensitivity + The name of the ParamType of the autocreated EventType (a3298d16-eea6-4474-9061-90466e92d476) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (a3298d16-eea6-4474-9061-90466e92d476) of DeviceClass sensorTag + + + + Humidity changed The name of the autocreated EventType (e83a50ff-96c9-4b6d-889f-f4238353e794) - + + Humidity + The name of the ParamType of the autocreated EventType (e83a50ff-96c9-4b6d-889f-f4238353e794) of DeviceClass sensorTag + + + + Barometric pressure changed The name of the autocreated EventType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) - + + Barometric pressure + The name of the ParamType of the autocreated EventType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) of DeviceClass sensorTag + + + + Light intensity changed The name of the autocreated EventType (6635dce4-2d8d-4608-a836-768c3014f356) - - lightIntensity - The name of the ParamType of StateType (6635dce4-2d8d-4608-a836-768c3014f356) of DeviceClass sensorTag - - - - + Moving changed The name of the autocreated EventType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) - + + Moving + The name of the ParamType of the autocreated EventType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) of DeviceClass sensorTag + + + + Magnet detected changed The name of the autocreated EventType (758d9b39-7390-40f5-8e19-d8b0f4a0a0c6) - - magnetDetected - The name of the ParamType of StateType (758d9b39-7390-40f5-8e19-d8b0f4a0a0c6) of DeviceClass sensorTag - - - - + Left button pressed changed The name of the autocreated EventType (8995e49e-ca2d-4dd9-a22f-de6c566c2115) - - leftButtonPressed - The name of the ParamType of StateType (8995e49e-ca2d-4dd9-a22f-de6c566c2115) of DeviceClass sensorTag - - - - + Right button pressed changed The name of the autocreated EventType (ef8eedc5-6a45-4dfb-bb55-ada1a931b20b) - - rightButtonPressed - The name of the ParamType of StateType (ef8eedc5-6a45-4dfb-bb55-ada1a931b20b) of DeviceClass sensorTag - - - - + Green LED power changed The name of the autocreated EventType (8d692132-f950-486f-b3dd-fe1ebc574e1d) - - greenLed - The name of the ParamType of StateType (8d692132-f950-486f-b3dd-fe1ebc574e1d) of DeviceClass sensorTag - - - - + Set green LED power The name of the autocreated ActionType (8d692132-f950-486f-b3dd-fe1ebc574e1d) - + Red LED power changed The name of the autocreated EventType (bb585725-6393-42de-aea2-ea4f525ad348) - - redLed - The name of the ParamType of StateType (bb585725-6393-42de-aea2-ea4f525ad348) of DeviceClass sensorTag - - - - + Set red LED power The name of the autocreated ActionType (bb585725-6393-42de-aea2-ea4f525ad348) - + Buzzer power changed The name of the autocreated EventType (d522c536-4427-4c53-9980-7820b2649aad) - - buzzer - The name of the ParamType of StateType (d522c536-4427-4c53-9980-7820b2649aad) of DeviceClass sensorTag - - - - + Set buzzer power The name of the autocreated ActionType (d522c536-4427-4c53-9980-7820b2649aad) - + Temperature sensor enabled changed The name of the autocreated EventType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) - - temperatureSensorEnabled - The name of the ParamType of StateType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) of DeviceClass sensorTag - - - - + Set temperature sensor enabled The name of the autocreated ActionType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) - + Humidity sensor enabled changed The name of the autocreated EventType (29881172-626a-42d5-83b8-3e2e5ca533be) - - humiditySensorEnabled - The name of the ParamType of StateType (29881172-626a-42d5-83b8-3e2e5ca533be) of DeviceClass sensorTag - - - - + Set humidity sensor enabled The name of the autocreated ActionType (29881172-626a-42d5-83b8-3e2e5ca533be) - + Pressure sensor enabled changed The name of the autocreated EventType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) - - pressureSensorEnabled - The name of the ParamType of StateType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) of DeviceClass sensorTag - - - - + Set pressure sensor enabled The name of the autocreated ActionType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) - + Optical sensor enabled changed The name of the autocreated EventType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) - - opticalSensorEnabled - The name of the ParamType of StateType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) of DeviceClass sensorTag - - - - + Set optical sensor enabled The name of the autocreated ActionType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) - + Accelerometer enabled changed The name of the autocreated EventType (5786c91a-d94d-461a-8d22-f978dd1438ab) - - accelerometerEnabled - The name of the ParamType of StateType (5786c91a-d94d-461a-8d22-f978dd1438ab) of DeviceClass sensorTag - - - - + Set accelerometer enabled The name of the autocreated ActionType (5786c91a-d94d-461a-8d22-f978dd1438ab) - + Gyroscope enabled changed The name of the autocreated EventType (94517544-cb97-4816-8993-cb4cf2651a1e) - - gyroscopeEnabled - The name of the ParamType of StateType (94517544-cb97-4816-8993-cb4cf2651a1e) of DeviceClass sensorTag - - - - + Set gyroscope enabled The name of the autocreated ActionType (94517544-cb97-4816-8993-cb4cf2651a1e) - + Magnetometer enabled changed The name of the autocreated EventType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) - - magnetometerEnabled - The name of the ParamType of StateType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) of DeviceClass sensorTag - - - - + Set magnetometer enabled The name of the autocreated ActionType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) - + Measurement period for enviromental sensors changed The name of the autocreated EventType (c5308565-5dc9-409e-ae99-577c212c7a92) - - measurementPeriod - The name of the ParamType of StateType (c5308565-5dc9-409e-ae99-577c212c7a92) of DeviceClass sensorTag - - - - + Set measurement period for enviromental sensors The name of the autocreated ActionType (c5308565-5dc9-409e-ae99-577c212c7a92) - + Measurement period movement sensor changed The name of the autocreated EventType (5237c89c-c21d-4d78-ac99-8be661b40da7) - - measurementPeriodMovement - The name of the ParamType of StateType (5237c89c-c21d-4d78-ac99-8be661b40da7) of DeviceClass sensorTag - - - - + Set measurement period movement sensor The name of the autocreated ActionType (5237c89c-c21d-4d78-ac99-8be661b40da7) - + Movement sensitivity changed The name of the autocreated EventType (a3298d16-eea6-4474-9061-90466e92d476) - - movementSensitivity - The name of the ParamType of StateType (a3298d16-eea6-4474-9061-90466e92d476) of DeviceClass sensorTag - - - - + Set movement sensitivity The name of the autocreated ActionType (a3298d16-eea6-4474-9061-90466e92d476) - + Buzzer impulse The name of the ActionType a048ab2e-4f17-4467-a166-a7572156c07e of deviceClass sensorTag - - - pressure - The name of the ParamType of StateType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) of DeviceClass sensorTag - - - - - moving - The name of the ParamType of StateType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) of DeviceClass sensorTag - - diff --git a/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-en_US.ts b/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-en_US.ts index af7f770a..9b155e2d 100644 --- a/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-en_US.ts +++ b/multisensor/translations/23bf0d8d-df7d-4bee-80ee-f015c5a7f52e-en_US.ts @@ -4,394 +4,433 @@ MultiSensor - - MultiSensor - The name of the plugin MultiSensor (23bf0d8d-df7d-4bee-80ee-f015c5a7f52e) - - - - + Texas Instruments The name of the vendor (2edf543e-dc2c-4693-bb0c-e76c0d305fad) - - connected - The name of the ParamType of StateType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) of DeviceClass sensorTag - - - - - humidity - The name of the ParamType of StateType (e83a50ff-96c9-4b6d-889f-f4238353e794) of DeviceClass sensorTag - - - - + temperature changed The name of the autocreated EventType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) - + Sensor Tag (CC2650) The name of the DeviceClass (158a06b6-b27f-4951-957e-6f1e3b44f604) - + + Multi Sensor + The name of the plugin MultiSensor (23bf0d8d-df7d-4bee-80ee-f015c5a7f52e) + + + + Name The name of the paramType (bdb9d684-2f98-45f5-889c-f184c1e73dc7) of sensorTag - + MAC address The name of the paramType (d51ed68e-c84a-4136-a5b5-be2f95fd5a0f) of sensorTag - + Connected changed The name of the autocreated EventType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) - - temperature - The name of the ParamType of StateType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) of DeviceClass sensorTag + + Connected + The name of the ParamType of the autocreated EventType (a9629b11-0f34-47f0-a0f0-f758a6aec2b4) of DeviceClass sensorTag - + + temperature + The name of the ParamType of the autocreated EventType (8359ada9-df1c-4e60-bb87-9e21d05ee2e2) of DeviceClass sensorTag + + + + Object temperature changed The name of the autocreated EventType (c664e9ec-a045-49ba-add1-1642ceba7c4f) - - objectTemperature - The name of the ParamType of StateType (c664e9ec-a045-49ba-add1-1642ceba7c4f) of DeviceClass sensorTag + + Object temperature + The name of the ParamType of the autocreated EventType (c664e9ec-a045-49ba-add1-1642ceba7c4f) of DeviceClass sensorTag - + + Light intensity + The name of the ParamType of the autocreated EventType (6635dce4-2d8d-4608-a836-768c3014f356) of DeviceClass sensorTag + + + + + Magnet detected + The name of the ParamType of the autocreated EventType (758d9b39-7390-40f5-8e19-d8b0f4a0a0c6) of DeviceClass sensorTag + + + + + Left button pressed + The name of the ParamType of the autocreated EventType (8995e49e-ca2d-4dd9-a22f-de6c566c2115) of DeviceClass sensorTag + + + + + Right button pressed + The name of the ParamType of the autocreated EventType (ef8eedc5-6a45-4dfb-bb55-ada1a931b20b) of DeviceClass sensorTag + + + + + + Green LED + The name of the ParamType of the autocreated EventType (8d692132-f950-486f-b3dd-fe1ebc574e1d) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (8d692132-f950-486f-b3dd-fe1ebc574e1d) of DeviceClass sensorTag + + + + + + Red LED + The name of the ParamType of the autocreated EventType (bb585725-6393-42de-aea2-ea4f525ad348) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (bb585725-6393-42de-aea2-ea4f525ad348) of DeviceClass sensorTag + + + + + + Buzzer + The name of the ParamType of the autocreated EventType (d522c536-4427-4c53-9980-7820b2649aad) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (d522c536-4427-4c53-9980-7820b2649aad) of DeviceClass sensorTag + + + + + + Temperature sensor enabled + The name of the ParamType of the autocreated EventType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) of DeviceClass sensorTag + + + + + + Humidity sensor enabled + The name of the ParamType of the autocreated EventType (29881172-626a-42d5-83b8-3e2e5ca533be) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (29881172-626a-42d5-83b8-3e2e5ca533be) of DeviceClass sensorTag + + + + + + Pressure sensor enabled + The name of the ParamType of the autocreated EventType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) of DeviceClass sensorTag + + + + + + Optical sensor enabled + The name of the ParamType of the autocreated EventType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) of DeviceClass sensorTag + + + + + + Accelerometer enabled + The name of the ParamType of the autocreated EventType (5786c91a-d94d-461a-8d22-f978dd1438ab) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (5786c91a-d94d-461a-8d22-f978dd1438ab) of DeviceClass sensorTag + + + + + + Gyroscope enabled + The name of the ParamType of the autocreated EventType (94517544-cb97-4816-8993-cb4cf2651a1e) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (94517544-cb97-4816-8993-cb4cf2651a1e) of DeviceClass sensorTag + + + + + + Magnetometer enabled + The name of the ParamType of the autocreated EventType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) of DeviceClass sensorTag + + + + + + Measurement period for enviromental sensors + The name of the ParamType of the autocreated EventType (c5308565-5dc9-409e-ae99-577c212c7a92) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (c5308565-5dc9-409e-ae99-577c212c7a92) of DeviceClass sensorTag + + + + + + Measurement period movement sensor + The name of the ParamType of the autocreated EventType (5237c89c-c21d-4d78-ac99-8be661b40da7) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (5237c89c-c21d-4d78-ac99-8be661b40da7) of DeviceClass sensorTag + + + + + + Movement sensitivity + The name of the ParamType of the autocreated EventType (a3298d16-eea6-4474-9061-90466e92d476) of DeviceClass sensorTag +---------- +The name of the autocreated ParamType of the writable StateType (a3298d16-eea6-4474-9061-90466e92d476) of DeviceClass sensorTag + + + + Humidity changed The name of the autocreated EventType (e83a50ff-96c9-4b6d-889f-f4238353e794) - + + Humidity + The name of the ParamType of the autocreated EventType (e83a50ff-96c9-4b6d-889f-f4238353e794) of DeviceClass sensorTag + + + + Barometric pressure changed The name of the autocreated EventType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) - + + Barometric pressure + The name of the ParamType of the autocreated EventType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) of DeviceClass sensorTag + + + + Light intensity changed The name of the autocreated EventType (6635dce4-2d8d-4608-a836-768c3014f356) - - lightIntensity - The name of the ParamType of StateType (6635dce4-2d8d-4608-a836-768c3014f356) of DeviceClass sensorTag - - - - + Moving changed The name of the autocreated EventType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) - + + Moving + The name of the ParamType of the autocreated EventType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) of DeviceClass sensorTag + + + + Magnet detected changed The name of the autocreated EventType (758d9b39-7390-40f5-8e19-d8b0f4a0a0c6) - - magnetDetected - The name of the ParamType of StateType (758d9b39-7390-40f5-8e19-d8b0f4a0a0c6) of DeviceClass sensorTag - - - - + Left button pressed changed The name of the autocreated EventType (8995e49e-ca2d-4dd9-a22f-de6c566c2115) - - leftButtonPressed - The name of the ParamType of StateType (8995e49e-ca2d-4dd9-a22f-de6c566c2115) of DeviceClass sensorTag - - - - + Right button pressed changed The name of the autocreated EventType (ef8eedc5-6a45-4dfb-bb55-ada1a931b20b) - - rightButtonPressed - The name of the ParamType of StateType (ef8eedc5-6a45-4dfb-bb55-ada1a931b20b) of DeviceClass sensorTag - - - - + Green LED power changed The name of the autocreated EventType (8d692132-f950-486f-b3dd-fe1ebc574e1d) - - greenLed - The name of the ParamType of StateType (8d692132-f950-486f-b3dd-fe1ebc574e1d) of DeviceClass sensorTag - - - - + Set green LED power The name of the autocreated ActionType (8d692132-f950-486f-b3dd-fe1ebc574e1d) - + Red LED power changed The name of the autocreated EventType (bb585725-6393-42de-aea2-ea4f525ad348) - - redLed - The name of the ParamType of StateType (bb585725-6393-42de-aea2-ea4f525ad348) of DeviceClass sensorTag - - - - + Set red LED power The name of the autocreated ActionType (bb585725-6393-42de-aea2-ea4f525ad348) - + Buzzer power changed The name of the autocreated EventType (d522c536-4427-4c53-9980-7820b2649aad) - - buzzer - The name of the ParamType of StateType (d522c536-4427-4c53-9980-7820b2649aad) of DeviceClass sensorTag - - - - + Set buzzer power The name of the autocreated ActionType (d522c536-4427-4c53-9980-7820b2649aad) - + Temperature sensor enabled changed The name of the autocreated EventType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) - - temperatureSensorEnabled - The name of the ParamType of StateType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) of DeviceClass sensorTag - - - - + Set temperature sensor enabled The name of the autocreated ActionType (6f0e40a2-0f97-4c1e-8229-757e3c18b345) - + Humidity sensor enabled changed The name of the autocreated EventType (29881172-626a-42d5-83b8-3e2e5ca533be) - - humiditySensorEnabled - The name of the ParamType of StateType (29881172-626a-42d5-83b8-3e2e5ca533be) of DeviceClass sensorTag - - - - + Set humidity sensor enabled The name of the autocreated ActionType (29881172-626a-42d5-83b8-3e2e5ca533be) - + Pressure sensor enabled changed The name of the autocreated EventType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) - - pressureSensorEnabled - The name of the ParamType of StateType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) of DeviceClass sensorTag - - - - + Set pressure sensor enabled The name of the autocreated ActionType (50e5e282-9707-4b31-bb3f-a6ca30a7e1ff) - + Optical sensor enabled changed The name of the autocreated EventType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) - - opticalSensorEnabled - The name of the ParamType of StateType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) of DeviceClass sensorTag - - - - + Set optical sensor enabled The name of the autocreated ActionType (1460a6d6-9fb4-4385-b27b-ee4b7594e454) - + Accelerometer enabled changed The name of the autocreated EventType (5786c91a-d94d-461a-8d22-f978dd1438ab) - - accelerometerEnabled - The name of the ParamType of StateType (5786c91a-d94d-461a-8d22-f978dd1438ab) of DeviceClass sensorTag - - - - + Set accelerometer enabled The name of the autocreated ActionType (5786c91a-d94d-461a-8d22-f978dd1438ab) - + Gyroscope enabled changed The name of the autocreated EventType (94517544-cb97-4816-8993-cb4cf2651a1e) - - gyroscopeEnabled - The name of the ParamType of StateType (94517544-cb97-4816-8993-cb4cf2651a1e) of DeviceClass sensorTag - - - - + Set gyroscope enabled The name of the autocreated ActionType (94517544-cb97-4816-8993-cb4cf2651a1e) - + Magnetometer enabled changed The name of the autocreated EventType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) - - magnetometerEnabled - The name of the ParamType of StateType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) of DeviceClass sensorTag - - - - + Set magnetometer enabled The name of the autocreated ActionType (96aae111-b1c1-48a1-9b1f-b56efa546d0d) - + Measurement period for enviromental sensors changed The name of the autocreated EventType (c5308565-5dc9-409e-ae99-577c212c7a92) - - measurementPeriod - The name of the ParamType of StateType (c5308565-5dc9-409e-ae99-577c212c7a92) of DeviceClass sensorTag - - - - + Set measurement period for enviromental sensors The name of the autocreated ActionType (c5308565-5dc9-409e-ae99-577c212c7a92) - + Measurement period movement sensor changed The name of the autocreated EventType (5237c89c-c21d-4d78-ac99-8be661b40da7) - - measurementPeriodMovement - The name of the ParamType of StateType (5237c89c-c21d-4d78-ac99-8be661b40da7) of DeviceClass sensorTag - - - - + Set measurement period movement sensor The name of the autocreated ActionType (5237c89c-c21d-4d78-ac99-8be661b40da7) - + Movement sensitivity changed The name of the autocreated EventType (a3298d16-eea6-4474-9061-90466e92d476) - - movementSensitivity - The name of the ParamType of StateType (a3298d16-eea6-4474-9061-90466e92d476) of DeviceClass sensorTag - - - - + Set movement sensitivity The name of the autocreated ActionType (a3298d16-eea6-4474-9061-90466e92d476) - + Buzzer impulse The name of the ActionType a048ab2e-4f17-4467-a166-a7572156c07e of deviceClass sensorTag - - - pressure - The name of the ParamType of StateType (645633ad-77d4-45b2-8be8-d6ca7a12eb7a) of DeviceClass sensorTag - - - - - moving - The name of the ParamType of StateType (4be5ca26-0565-419d-b18b-2a5a385d2a3d) of DeviceClass sensorTag - - diff --git a/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-de_DE.ts b/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-de_DE.ts index b09d7edd..26a5e110 100644 --- a/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-de_DE.ts +++ b/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-de_DE.ts @@ -48,7 +48,7 @@ The name of the paramType (a97d256c-e159-4aa0-bc71-6bd7cd0688b3) of outdoor available - The name of the ParamType of StateType (2f79bc1d-27ed-480a-b583-728363c83ea6) of DeviceClass connection + The name of the ParamType of the autocreated EventType (2f79bc1d-27ed-480a-b583-728363c83ea6) of DeviceClass connection Verfügbar @@ -73,6 +73,15 @@ The name of the paramType (157d470a-e579-4d0e-b879-6b5bfa8e34ae) of outdoorThe name of the autocreated EventType (50da9f6b-c350-401c-a72e-2e4036f3975d) Letztes Update geändert + + + + last update + The name of the ParamType of the autocreated EventType (50da9f6b-c350-401c-a72e-2e4036f3975d) of DeviceClass indoor +---------- +The name of the ParamType of the autocreated EventType (50da9f6b-c350-401c-a72e-2e4036f3975d) of DeviceClass outdoor + + @@ -84,9 +93,9 @@ The name of the paramType (157d470a-e579-4d0e-b879-6b5bfa8e34ae) of outdoor temperature - The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of DeviceClass indoor + The name of the ParamType of the autocreated EventType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of DeviceClass indoor ---------- -The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of DeviceClass outdoor +The name of the ParamType of the autocreated EventType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of DeviceClass outdoor Temperatur @@ -96,6 +105,15 @@ The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of The name of the autocreated EventType (ae8bb713-8805-4efd-89a1-bca44a1f1690) Temperatur Minimum geändert + + + + temperature minimum + The name of the ParamType of the autocreated EventType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of DeviceClass indoor +---------- +The name of the ParamType of the autocreated EventType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of DeviceClass outdoor + + @@ -103,31 +121,19 @@ The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of The name of the autocreated EventType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) Temperatur Maximum geändert - - - - updateTime - The name of the ParamType of StateType (50da9f6b-c350-401c-a72e-2e4036f3975d) of DeviceClass indoor ----------- -The name of the ParamType of StateType (50da9f6b-c350-401c-a72e-2e4036f3975d) of DeviceClass outdoor - - - - - - temperatureMin - The name of the ParamType of StateType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of DeviceClass indoor ----------- -The name of the ParamType of StateType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of DeviceClass outdoor - - - temperatureMax - The name of the ParamType of StateType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of DeviceClass indoor + temperature maximum + The name of the ParamType of the autocreated EventType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of DeviceClass indoor ---------- -The name of the ParamType of StateType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of DeviceClass outdoor +The name of the ParamType of the autocreated EventType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of DeviceClass outdoor + + + + + wifi signal strength + The name of the ParamType of the autocreated EventType (6ea906d4-5740-454d-a730-6fdb9fa0d624) of DeviceClass indoor @@ -141,9 +147,9 @@ The name of the ParamType of StateType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of humidity - The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of DeviceClass indoor + The name of the ParamType of the autocreated EventType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of DeviceClass indoor ---------- -The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of DeviceClass outdoor +The name of the ParamType of the autocreated EventType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of DeviceClass outdoor Luftfeuchtigkeit @@ -155,7 +161,7 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of pressure - The name of the ParamType of StateType (03b0a7b7-987d-4d3b-b3f0-21d9f92ad326) of DeviceClass indoor + The name of the ParamType of the autocreated EventType (03b0a7b7-987d-4d3b-b3f0-21d9f92ad326) of DeviceClass indoor Luftdruck @@ -167,7 +173,7 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of noise - The name of the ParamType of StateType (906cea9d-1daf-4e9c-90b9-e40f43052a34) of DeviceClass indoor + The name of the ParamType of the autocreated EventType (906cea9d-1daf-4e9c-90b9-e40f43052a34) of DeviceClass indoor Geräuschpegel @@ -179,7 +185,7 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of co2 - The name of the ParamType of StateType (e5710bd1-79fa-4bd4-9052-8416aae909b9) of DeviceClass indoor + The name of the ParamType of the autocreated EventType (e5710bd1-79fa-4bd4-9052-8416aae909b9) of DeviceClass indoor CO2 Wert @@ -188,18 +194,6 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of The name of the autocreated EventType (6ea906d4-5740-454d-a730-6fdb9fa0d624) Wifi Signalstärke geändert - - - wifiStrength - The name of the ParamType of StateType (6ea906d4-5740-454d-a730-6fdb9fa0d624) of DeviceClass indoor - - - - - signalStrength - The name of the ParamType of StateType (0faa3d08-9004-46fb-a5aa-a59b75e454cc) of DeviceClass outdoor - - Outdoor Station @@ -218,6 +212,12 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of The name of the autocreated EventType (0faa3d08-9004-46fb-a5aa-a59b75e454cc) Signalstärke geändert + + + signal strength + The name of the ParamType of the autocreated EventType (0faa3d08-9004-46fb-a5aa-a59b75e454cc) of DeviceClass outdoor + + battery changed @@ -227,7 +227,7 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of battery - The name of the ParamType of StateType (15d8fae1-ba47-42e1-994d-530e8017c965) of DeviceClass outdoor + The name of the ParamType of the autocreated EventType (15d8fae1-ba47-42e1-994d-530e8017c965) of DeviceClass outdoor Batterie diff --git a/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-en_US.ts b/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-en_US.ts index e1060022..09368acb 100644 --- a/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-en_US.ts +++ b/netatmo/translations/69d14951-0c02-4877-bcef-dffdf48b7ccb-en_US.ts @@ -48,7 +48,7 @@ The name of the paramType (a97d256c-e159-4aa0-bc71-6bd7cd0688b3) of outdoor available - The name of the ParamType of StateType (2f79bc1d-27ed-480a-b583-728363c83ea6) of DeviceClass connection + The name of the ParamType of the autocreated EventType (2f79bc1d-27ed-480a-b583-728363c83ea6) of DeviceClass connection @@ -73,6 +73,15 @@ The name of the paramType (157d470a-e579-4d0e-b879-6b5bfa8e34ae) of outdoorThe name of the autocreated EventType (50da9f6b-c350-401c-a72e-2e4036f3975d) + + + + last update + The name of the ParamType of the autocreated EventType (50da9f6b-c350-401c-a72e-2e4036f3975d) of DeviceClass indoor +---------- +The name of the ParamType of the autocreated EventType (50da9f6b-c350-401c-a72e-2e4036f3975d) of DeviceClass outdoor + + @@ -84,9 +93,9 @@ The name of the paramType (157d470a-e579-4d0e-b879-6b5bfa8e34ae) of outdoor temperature - The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of DeviceClass indoor + The name of the ParamType of the autocreated EventType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of DeviceClass indoor ---------- -The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of DeviceClass outdoor +The name of the ParamType of the autocreated EventType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of DeviceClass outdoor @@ -96,6 +105,15 @@ The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of The name of the autocreated EventType (ae8bb713-8805-4efd-89a1-bca44a1f1690) + + + + temperature minimum + The name of the ParamType of the autocreated EventType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of DeviceClass indoor +---------- +The name of the ParamType of the autocreated EventType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of DeviceClass outdoor + + @@ -103,31 +121,19 @@ The name of the ParamType of StateType (3cb25538-e463-40ae-92f9-8f34f0c06b92) of The name of the autocreated EventType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) - - - - updateTime - The name of the ParamType of StateType (50da9f6b-c350-401c-a72e-2e4036f3975d) of DeviceClass indoor ----------- -The name of the ParamType of StateType (50da9f6b-c350-401c-a72e-2e4036f3975d) of DeviceClass outdoor - - - - - - temperatureMin - The name of the ParamType of StateType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of DeviceClass indoor ----------- -The name of the ParamType of StateType (ae8bb713-8805-4efd-89a1-bca44a1f1690) of DeviceClass outdoor - - - temperatureMax - The name of the ParamType of StateType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of DeviceClass indoor + temperature maximum + The name of the ParamType of the autocreated EventType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of DeviceClass indoor ---------- -The name of the ParamType of StateType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of DeviceClass outdoor +The name of the ParamType of the autocreated EventType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of DeviceClass outdoor + + + + + wifi signal strength + The name of the ParamType of the autocreated EventType (6ea906d4-5740-454d-a730-6fdb9fa0d624) of DeviceClass indoor @@ -141,9 +147,9 @@ The name of the ParamType of StateType (dd30507e-037b-4c74-bcca-e04b94c7c5fe) of humidity - The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of DeviceClass indoor + The name of the ParamType of the autocreated EventType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of DeviceClass indoor ---------- -The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of DeviceClass outdoor +The name of the ParamType of the autocreated EventType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of DeviceClass outdoor @@ -155,7 +161,7 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of pressure - The name of the ParamType of StateType (03b0a7b7-987d-4d3b-b3f0-21d9f92ad326) of DeviceClass indoor + The name of the ParamType of the autocreated EventType (03b0a7b7-987d-4d3b-b3f0-21d9f92ad326) of DeviceClass indoor @@ -167,7 +173,7 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of noise - The name of the ParamType of StateType (906cea9d-1daf-4e9c-90b9-e40f43052a34) of DeviceClass indoor + The name of the ParamType of the autocreated EventType (906cea9d-1daf-4e9c-90b9-e40f43052a34) of DeviceClass indoor @@ -179,7 +185,7 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of co2 - The name of the ParamType of StateType (e5710bd1-79fa-4bd4-9052-8416aae909b9) of DeviceClass indoor + The name of the ParamType of the autocreated EventType (e5710bd1-79fa-4bd4-9052-8416aae909b9) of DeviceClass indoor @@ -188,18 +194,6 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of The name of the autocreated EventType (6ea906d4-5740-454d-a730-6fdb9fa0d624) - - - wifiStrength - The name of the ParamType of StateType (6ea906d4-5740-454d-a730-6fdb9fa0d624) of DeviceClass indoor - - - - - signalStrength - The name of the ParamType of StateType (0faa3d08-9004-46fb-a5aa-a59b75e454cc) of DeviceClass outdoor - - Outdoor Station @@ -218,6 +212,12 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of The name of the autocreated EventType (0faa3d08-9004-46fb-a5aa-a59b75e454cc) + + + signal strength + The name of the ParamType of the autocreated EventType (0faa3d08-9004-46fb-a5aa-a59b75e454cc) of DeviceClass outdoor + + battery changed @@ -227,7 +227,7 @@ The name of the ParamType of StateType (e2db5f01-196a-48d1-8874-6b8cbfe0d8c9) of battery - The name of the ParamType of StateType (15d8fae1-ba47-42e1-994d-530e8017c965) of DeviceClass outdoor + The name of the ParamType of the autocreated EventType (15d8fae1-ba47-42e1-994d-530e8017c965) of DeviceClass outdoor diff --git a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts index 8469d2c6..f1ed65c3 100644 --- a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts +++ b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-de_DE.ts @@ -5,7 +5,7 @@ NetworkDetector - NetworkDetector + Network Detector The name of the plugin NetworkDetector (8e0f791e-b273-4267-8605-b7c2f55a68ab) @@ -41,8 +41,8 @@ - connected - The name of the ParamType of StateType (cb43e1b5-4f61-4538-bfa2-c33055c542cf) of DeviceClass networkDevice + Device in network + The name of the ParamType of the autocreated EventType (cb43e1b5-4f61-4538-bfa2-c33055c542cf) of DeviceClass networkDevice diff --git a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts index 7141d261..ffae3f60 100644 --- a/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts +++ b/networkdetector/translations/8e0f791e-b273-4267-8605-b7c2f55a68ab-en_US.ts @@ -5,7 +5,7 @@ NetworkDetector - NetworkDetector + Network Detector The name of the plugin NetworkDetector (8e0f791e-b273-4267-8605-b7c2f55a68ab) @@ -41,8 +41,8 @@ - connected - The name of the ParamType of StateType (cb43e1b5-4f61-4538-bfa2-c33055c542cf) of DeviceClass networkDevice + Device in network + The name of the ParamType of the autocreated EventType (cb43e1b5-4f61-4538-bfa2-c33055c542cf) of DeviceClass networkDevice diff --git a/openweathermap/translations/bc6af567-2338-41d5-aac1-462dec6e4783-de_DE.ts b/openweathermap/translations/bc6af567-2338-41d5-aac1-462dec6e4783-de_DE.ts index 70869297..0273f04b 100644 --- a/openweathermap/translations/bc6af567-2338-41d5-aac1-462dec6e4783-de_DE.ts +++ b/openweathermap/translations/bc6af567-2338-41d5-aac1-462dec6e4783-de_DE.ts @@ -42,48 +42,18 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) The name of the paramType (f370b076-a783-4b46-85b2-6f4a9dba55d8) of openweathermap Ort + + + weather condition + The name of the ParamType of the autocreated EventType (f16891f3-1174-44f6-a940-cffc8b64bdc1) of DeviceClass openweathermap + + last update changed The name of the autocreated EventType (36b2f09b-7d77-4fbc-a68f-23d735dda0b1) Zuletzt aktualisiert geändert - - - updateTime - The name of the ParamType of StateType (36b2f09b-7d77-4fbc-a68f-23d735dda0b1) of DeviceClass openweathermap - - - - - temperatureMin - The name of the ParamType of StateType (14ec2781-cb04-4bbf-b097-7d01ef982630) of DeviceClass openweathermap - - - - - temperatureMax - The name of the ParamType of StateType (fefe5563-452f-4833-b5cf-49c3cc67c772) of DeviceClass openweathermap - - - - - windSpeed - The name of the ParamType of StateType (2bf63430-e9e2-4fbf-88e6-6f1b4770f287) of DeviceClass openweathermap - - - - - windDirection - The name of the ParamType of StateType (589e2ea5-65b2-4afd-9b72-e3708a589a12) of DeviceClass openweathermap - - - - - weatherDescription - The name of the ParamType of StateType (f9539108-0e0e-4736-a306-6408f8e20a26) of DeviceClass openweathermap - - temperature changed @@ -97,15 +67,15 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) - - weatherCondition - The name of the ParamType of StateType (f16891f3-1174-44f6-a940-cffc8b64bdc1) of DeviceClass openweathermap + + last update + The name of the ParamType of the autocreated EventType (36b2f09b-7d77-4fbc-a68f-23d735dda0b1) of DeviceClass openweathermap temperature - The name of the ParamType of StateType (6013402f-b5b1-46b3-8490-f0c20d62fe61) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (6013402f-b5b1-46b3-8490-f0c20d62fe61) of DeviceClass openweathermap Temperatur @@ -114,12 +84,24 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) The name of the autocreated EventType (14ec2781-cb04-4bbf-b097-7d01ef982630) Temperatur Minimum geändert + + + temperature minimum + The name of the ParamType of the autocreated EventType (14ec2781-cb04-4bbf-b097-7d01ef982630) of DeviceClass openweathermap + + temperature maximum changed The name of the autocreated EventType (fefe5563-452f-4833-b5cf-49c3cc67c772) Temperatur Maximum geändert + + + temperature maximum + The name of the ParamType of the autocreated EventType (fefe5563-452f-4833-b5cf-49c3cc67c772) of DeviceClass openweathermap + + humidity changed @@ -129,7 +111,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) humidity - The name of the ParamType of StateType (6f32ec73-3240-4630-ada9-1c10b8e98123) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (6f32ec73-3240-4630-ada9-1c10b8e98123) of DeviceClass openweathermap Luftfeuchtigkeit @@ -141,7 +123,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) pressure - The name of the ParamType of StateType (4a42eea9-00eb-440b-915e-dbe42180f83b) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (4a42eea9-00eb-440b-915e-dbe42180f83b) of DeviceClass openweathermap Luftdruck @@ -150,12 +132,24 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) The name of the autocreated EventType (2bf63430-e9e2-4fbf-88e6-6f1b4770f287) Windgeschwindigkeit geändert + + + wind speed + The name of the ParamType of the autocreated EventType (2bf63430-e9e2-4fbf-88e6-6f1b4770f287) of DeviceClass openweathermap + + wind direction changed The name of the autocreated EventType (589e2ea5-65b2-4afd-9b72-e3708a589a12) Windrichtung geändert + + + wind direction + The name of the ParamType of the autocreated EventType (589e2ea5-65b2-4afd-9b72-e3708a589a12) of DeviceClass openweathermap + + cloudiness changed @@ -165,7 +159,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) cloudiness - The name of the ParamType of StateType (798553bc-45c7-42eb-9105-430bddb5d9b7) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (798553bc-45c7-42eb-9105-430bddb5d9b7) of DeviceClass openweathermap Bewölungsgrad @@ -177,7 +171,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) visibility - The name of the ParamType of StateType (1e10d129-cb88-48b0-9244-e3e7e7b175d9) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (1e10d129-cb88-48b0-9244-e3e7e7b175d9) of DeviceClass openweathermap Fernsicht @@ -186,6 +180,12 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) The name of the autocreated EventType (f9539108-0e0e-4736-a306-6408f8e20a26) Wetter Beschreibung geändert + + + weather description + The name of the ParamType of the autocreated EventType (f9539108-0e0e-4736-a306-6408f8e20a26) of DeviceClass openweathermap + + sunset changed @@ -195,7 +195,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) sunset - The name of the ParamType of StateType (af155e94-9492-44e1-8608-7d0ee8b5d50d) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (af155e94-9492-44e1-8608-7d0ee8b5d50d) of DeviceClass openweathermap Sonnenuntergang @@ -207,7 +207,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) sunrise - The name of the ParamType of StateType (a1dddc3d-549f-4f20-b78b-be850548f286) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (a1dddc3d-549f-4f20-b78b-be850548f286) of DeviceClass openweathermap Sonnenaufgang diff --git a/openweathermap/translations/bc6af567-2338-41d5-aac1-462dec6e4783-en_US.ts b/openweathermap/translations/bc6af567-2338-41d5-aac1-462dec6e4783-en_US.ts index 7d5e51b9..5de88061 100644 --- a/openweathermap/translations/bc6af567-2338-41d5-aac1-462dec6e4783-en_US.ts +++ b/openweathermap/translations/bc6af567-2338-41d5-aac1-462dec6e4783-en_US.ts @@ -42,48 +42,18 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) The name of the paramType (f370b076-a783-4b46-85b2-6f4a9dba55d8) of openweathermap + + + weather condition + The name of the ParamType of the autocreated EventType (f16891f3-1174-44f6-a940-cffc8b64bdc1) of DeviceClass openweathermap + + last update changed The name of the autocreated EventType (36b2f09b-7d77-4fbc-a68f-23d735dda0b1) - - - updateTime - The name of the ParamType of StateType (36b2f09b-7d77-4fbc-a68f-23d735dda0b1) of DeviceClass openweathermap - - - - - temperatureMin - The name of the ParamType of StateType (14ec2781-cb04-4bbf-b097-7d01ef982630) of DeviceClass openweathermap - - - - - temperatureMax - The name of the ParamType of StateType (fefe5563-452f-4833-b5cf-49c3cc67c772) of DeviceClass openweathermap - - - - - windSpeed - The name of the ParamType of StateType (2bf63430-e9e2-4fbf-88e6-6f1b4770f287) of DeviceClass openweathermap - - - - - windDirection - The name of the ParamType of StateType (589e2ea5-65b2-4afd-9b72-e3708a589a12) of DeviceClass openweathermap - - - - - weatherDescription - The name of the ParamType of StateType (f9539108-0e0e-4736-a306-6408f8e20a26) of DeviceClass openweathermap - - temperature changed @@ -97,15 +67,15 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) - - weatherCondition - The name of the ParamType of StateType (f16891f3-1174-44f6-a940-cffc8b64bdc1) of DeviceClass openweathermap + + last update + The name of the ParamType of the autocreated EventType (36b2f09b-7d77-4fbc-a68f-23d735dda0b1) of DeviceClass openweathermap temperature - The name of the ParamType of StateType (6013402f-b5b1-46b3-8490-f0c20d62fe61) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (6013402f-b5b1-46b3-8490-f0c20d62fe61) of DeviceClass openweathermap @@ -114,12 +84,24 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) The name of the autocreated EventType (14ec2781-cb04-4bbf-b097-7d01ef982630) + + + temperature minimum + The name of the ParamType of the autocreated EventType (14ec2781-cb04-4bbf-b097-7d01ef982630) of DeviceClass openweathermap + + temperature maximum changed The name of the autocreated EventType (fefe5563-452f-4833-b5cf-49c3cc67c772) + + + temperature maximum + The name of the ParamType of the autocreated EventType (fefe5563-452f-4833-b5cf-49c3cc67c772) of DeviceClass openweathermap + + humidity changed @@ -129,7 +111,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) humidity - The name of the ParamType of StateType (6f32ec73-3240-4630-ada9-1c10b8e98123) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (6f32ec73-3240-4630-ada9-1c10b8e98123) of DeviceClass openweathermap @@ -141,7 +123,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) pressure - The name of the ParamType of StateType (4a42eea9-00eb-440b-915e-dbe42180f83b) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (4a42eea9-00eb-440b-915e-dbe42180f83b) of DeviceClass openweathermap @@ -150,12 +132,24 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) The name of the autocreated EventType (2bf63430-e9e2-4fbf-88e6-6f1b4770f287) + + + wind speed + The name of the ParamType of the autocreated EventType (2bf63430-e9e2-4fbf-88e6-6f1b4770f287) of DeviceClass openweathermap + + wind direction changed The name of the autocreated EventType (589e2ea5-65b2-4afd-9b72-e3708a589a12) + + + wind direction + The name of the ParamType of the autocreated EventType (589e2ea5-65b2-4afd-9b72-e3708a589a12) of DeviceClass openweathermap + + cloudiness changed @@ -165,7 +159,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) cloudiness - The name of the ParamType of StateType (798553bc-45c7-42eb-9105-430bddb5d9b7) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (798553bc-45c7-42eb-9105-430bddb5d9b7) of DeviceClass openweathermap @@ -177,7 +171,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) visibility - The name of the ParamType of StateType (1e10d129-cb88-48b0-9244-e3e7e7b175d9) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (1e10d129-cb88-48b0-9244-e3e7e7b175d9) of DeviceClass openweathermap @@ -186,6 +180,12 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) The name of the autocreated EventType (f9539108-0e0e-4736-a306-6408f8e20a26) + + + weather description + The name of the ParamType of the autocreated EventType (f9539108-0e0e-4736-a306-6408f8e20a26) of DeviceClass openweathermap + + sunset changed @@ -195,7 +195,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) sunset - The name of the ParamType of StateType (af155e94-9492-44e1-8608-7d0ee8b5d50d) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (af155e94-9492-44e1-8608-7d0ee8b5d50d) of DeviceClass openweathermap @@ -207,7 +207,7 @@ The name of the vendor (bf1e96f0-9650-4e7c-a56c-916d54d18e7a) sunrise - The name of the ParamType of StateType (a1dddc3d-549f-4f20-b78b-be850548f286) of DeviceClass openweathermap + The name of the ParamType of the autocreated EventType (a1dddc3d-549f-4f20-b78b-be850548f286) of DeviceClass openweathermap diff --git a/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-de_DE.ts b/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-de_DE.ts index c17173fd..abc62d15 100644 --- a/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-de_DE.ts +++ b/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-de_DE.ts @@ -4,97 +4,100 @@ orderButton - - orderButton - The name of the plugin orderButton (939a6557-649d-43de-990b-3484f972ad86) - - - - + RPL address The name of the paramType (e917e779-e01c-4095-9d62-ab46fc2deecc) of orderButton - + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - + OrderButton The name of the DeviceClass (af4df281-2b3b-490f-8352-2b99ff23fc15) - + host The name of the paramType (53a00a7b-e168-4917-86b5-d4329a0a720c) of orderbutton - + battery voltage changed The name of the autocreated EventType (a4d83813-10f3-4830-be2e-60d4815906c4) - - battery - The name of the ParamType of StateType (a4d83813-10f3-4830-be2e-60d4815906c4) of DeviceClass orderbutton + + Order Button + The name of the plugin orderButton (939a6557-649d-43de-990b-3484f972ad86) - + + battery voltage + The name of the ParamType of the autocreated EventType (a4d83813-10f3-4830-be2e-60d4815906c4) of DeviceClass orderbutton + + + + count changed The name of the autocreated EventType (2df871fc-1888-4b04-8f02-f17b26642534) - + count - The name of the ParamType of StateType (2df871fc-1888-4b04-8f02-f17b26642534) of DeviceClass orderbutton + The name of the ParamType of the autocreated EventType (2df871fc-1888-4b04-8f02-f17b26642534) of DeviceClass orderbutton - + reachable changed The name of the autocreated EventType (783e74ee-ffd6-4dd7-ade5-3a961452cf15) - + reachable - The name of the ParamType of StateType (783e74ee-ffd6-4dd7-ade5-3a961452cf15) of DeviceClass orderbutton + The name of the ParamType of the autocreated EventType (783e74ee-ffd6-4dd7-ade5-3a961452cf15) of DeviceClass orderbutton - + led changed The name of the autocreated EventType (b184ccc8-e7d9-4e94-8683-07f81484bbda) - + + led - The name of the ParamType of StateType (b184ccc8-e7d9-4e94-8683-07f81484bbda) of DeviceClass orderbutton + The name of the ParamType of the autocreated EventType (b184ccc8-e7d9-4e94-8683-07f81484bbda) of DeviceClass orderbutton +---------- +The name of the autocreated ParamType of the writable StateType (b184ccc8-e7d9-4e94-8683-07f81484bbda) of DeviceClass orderbutton - + Set led The name of the autocreated ActionType (b184ccc8-e7d9-4e94-8683-07f81484bbda) - + reset The name of the ActionType b8e5da6c-501c-493e-8b0f-8ef09efb9057 of deviceClass orderbutton - + button The name of the EventType 2077a9ad-7f4b-4dd4-ae1c-7ecbe0a92dc0 of deviceClass orderbutton diff --git a/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-en_US.ts b/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-en_US.ts index db18194f..022ae55b 100644 --- a/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-en_US.ts +++ b/orderbutton/translations/939a6557-649d-43de-990b-3484f972ad86-en_US.ts @@ -4,97 +4,100 @@ orderButton - - orderButton - The name of the plugin orderButton (939a6557-649d-43de-990b-3484f972ad86) - - - - + RPL address The name of the paramType (e917e779-e01c-4095-9d62-ab46fc2deecc) of orderButton - + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - + OrderButton The name of the DeviceClass (af4df281-2b3b-490f-8352-2b99ff23fc15) - + host The name of the paramType (53a00a7b-e168-4917-86b5-d4329a0a720c) of orderbutton - + battery voltage changed The name of the autocreated EventType (a4d83813-10f3-4830-be2e-60d4815906c4) - - battery - The name of the ParamType of StateType (a4d83813-10f3-4830-be2e-60d4815906c4) of DeviceClass orderbutton + + Order Button + The name of the plugin orderButton (939a6557-649d-43de-990b-3484f972ad86) - + + battery voltage + The name of the ParamType of the autocreated EventType (a4d83813-10f3-4830-be2e-60d4815906c4) of DeviceClass orderbutton + + + + count changed The name of the autocreated EventType (2df871fc-1888-4b04-8f02-f17b26642534) - + count - The name of the ParamType of StateType (2df871fc-1888-4b04-8f02-f17b26642534) of DeviceClass orderbutton + The name of the ParamType of the autocreated EventType (2df871fc-1888-4b04-8f02-f17b26642534) of DeviceClass orderbutton - + reachable changed The name of the autocreated EventType (783e74ee-ffd6-4dd7-ade5-3a961452cf15) - + reachable - The name of the ParamType of StateType (783e74ee-ffd6-4dd7-ade5-3a961452cf15) of DeviceClass orderbutton + The name of the ParamType of the autocreated EventType (783e74ee-ffd6-4dd7-ade5-3a961452cf15) of DeviceClass orderbutton - + led changed The name of the autocreated EventType (b184ccc8-e7d9-4e94-8683-07f81484bbda) - + + led - The name of the ParamType of StateType (b184ccc8-e7d9-4e94-8683-07f81484bbda) of DeviceClass orderbutton + The name of the ParamType of the autocreated EventType (b184ccc8-e7d9-4e94-8683-07f81484bbda) of DeviceClass orderbutton +---------- +The name of the autocreated ParamType of the writable StateType (b184ccc8-e7d9-4e94-8683-07f81484bbda) of DeviceClass orderbutton - + Set led The name of the autocreated ActionType (b184ccc8-e7d9-4e94-8683-07f81484bbda) - + reset The name of the ActionType b8e5da6c-501c-493e-8b0f-8ef09efb9057 of deviceClass orderbutton - + button The name of the EventType 2077a9ad-7f4b-4dd4-ae1c-7ecbe0a92dc0 of deviceClass orderbutton diff --git a/osdomotics/translations/78927596-e266-4a23-8634-7311b2c5fe32-de_DE.ts b/osdomotics/translations/78927596-e266-4a23-8634-7311b2c5fe32-de_DE.ts index 3a504d72..cac33217 100644 --- a/osdomotics/translations/78927596-e266-4a23-8634-7311b2c5fe32-de_DE.ts +++ b/osdomotics/translations/78927596-e266-4a23-8634-7311b2c5fe32-de_DE.ts @@ -5,14 +5,11 @@ Osdomotics - Osdomotics - The name of the plugin Osdomotics (78927596-e266-4a23-8634-7311b2c5fe32) - - - OSDomotics - The name of the vendor (e2912117-3b2f-4888-950e-6d259b699102) + The name of the plugin Osdomotics (78927596-e266-4a23-8634-7311b2c5fe32) +---------- +The name of the vendor (e2912117-3b2f-4888-950e-6d259b699102) @@ -59,8 +56,8 @@ The name of the paramType (f46b08c7-06e7-4c51-bb28-57e07d19275d) of merkurNode - battery - The name of the ParamType of StateType (06cf4e66-f102-4a8e-ae76-fac250a07753) of DeviceClass merkurNode + battery voltage + The name of the ParamType of the autocreated EventType (06cf4e66-f102-4a8e-ae76-fac250a07753) of DeviceClass merkurNode diff --git a/osdomotics/translations/78927596-e266-4a23-8634-7311b2c5fe32-en_US.ts b/osdomotics/translations/78927596-e266-4a23-8634-7311b2c5fe32-en_US.ts index 5854a6d9..00aca60c 100644 --- a/osdomotics/translations/78927596-e266-4a23-8634-7311b2c5fe32-en_US.ts +++ b/osdomotics/translations/78927596-e266-4a23-8634-7311b2c5fe32-en_US.ts @@ -5,14 +5,11 @@ Osdomotics - Osdomotics - The name of the plugin Osdomotics (78927596-e266-4a23-8634-7311b2c5fe32) - - - OSDomotics - The name of the vendor (e2912117-3b2f-4888-950e-6d259b699102) + The name of the plugin Osdomotics (78927596-e266-4a23-8634-7311b2c5fe32) +---------- +The name of the vendor (e2912117-3b2f-4888-950e-6d259b699102) @@ -59,8 +56,8 @@ The name of the paramType (f46b08c7-06e7-4c51-bb28-57e07d19275d) of merkurNode - battery - The name of the ParamType of StateType (06cf4e66-f102-4a8e-ae76-fac250a07753) of DeviceClass merkurNode + battery voltage + The name of the ParamType of the autocreated EventType (06cf4e66-f102-4a8e-ae76-fac250a07753) of DeviceClass merkurNode diff --git a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts index bbcfdae5..8eeeae9b 100644 --- a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts +++ b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-de_DE.ts @@ -4,29 +4,29 @@ PhilipsHue - + Philips The name of the vendor (0ae1e001-2aa6-47ed-b8c0-334c3728a68f) Philips - + Please press the button on the Hue Bridge within 30 seconds before you continue The pairing info of deviceClass hueBridge Bitte drücken sie den Knopf auf der Hue Bridge innerhalb von 30 Sekunden bevor sie fortfahren - + Hue gateway The name of the DeviceClass (642aa4c7-19aa-45ed-ba06-aa1ae6c9edf7) Hue Gateway - - - - - + + + + + name The name of the paramType (275b76f2-0174-4f26-b3ec-5f108baf8bdd) of hueBridge ---------- @@ -40,47 +40,50 @@ The name of the paramType (3d450f00-b521-4a2c-985f-046fad5122cb) of hueTapName - + api key The name of the paramType (8bf5776a-d5a6-4600-8b27-481f0d803a8f) of hueBridge API Schlüssel - + host address The name of the paramType (1845975b-1184-4440-bc0d-73d53a9f683c) of hueBridge Adresse - + mac address The name of the paramType (2c67203d-a308-45ec-9a08-fc4183c06ff8) of hueBridge MAC Adresse - + id The name of the paramType (a496feb0-3b7b-46cb-a63a-e063447d6b1d) of hueBridge ID - + + software version - The name of the paramType (ea228c4d-975c-4b43-9445-7c9a907c29d6) of hueBridge + The name of the paramType (ea228c4d-975c-4b43-9445-7c9a907c29d6) of hueBridge +---------- +The name of the ParamType of the autocreated EventType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) of DeviceClass hueBridge Software Version - + zigbee channel The name of the paramType (53170394-956c-4511-b3a8-2c8a502ef1ed) of hueBridge Zigbee Kanal - - - - - + + + + + reachable changed The name of the autocreated EventType (15794d26-fde8-4a61-8f83-d7830534975f) ---------- @@ -90,70 +93,52 @@ The name of the autocreated EventType (5e21b032-1230-4e93-8543-0c4773da17d3)Erreichbarkeit geändert - - - - - - connected - The name of the ParamType of StateType (15794d26-fde8-4a61-8f83-d7830534975f) of DeviceClass hueBridge ----------- -The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueLight ----------- -The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueWhiteLight ----------- -The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueRemote ----------- -The name of the ParamType of StateType (5e21b032-1230-4e93-8543-0c4773da17d3) of DeviceClass hueTap - - - - + api version changed The name of the autocreated EventType (7a230e89-c4ce-4276-90e0-6a9ddb890603) API Version geändert - + software version changed The name of the autocreated EventType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) Software Version geändert - + update status changed The name of the autocreated EventType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) Update Status geändert - + search devices The name of the ActionType cca3f171-6318-44e7-a2ac-d841857c1c24 of deviceClass hueBridge Suche Geräte - + check updates The name of the ActionType 07a85e91-d064-4bce-b017-13fd0c320c0b of deviceClass hueBridge Suche Updates - + Upgrade bridge The name of the ActionType 6dfbc7c0-7372-42f6-82ba-e777cb32dc4c of deviceClass hueBridge Bridge updaten - + Hue Light The name of the DeviceClass (0edba26c-96ab-44fb-a6a2-c0574d19630e) Hue Licht - - - - + + + + model id The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueLight ---------- @@ -165,10 +150,10 @@ The name of the paramType (62d92175-db3a-4da2-a72b-f58f34cb6911) of hueTapModel ID - - - - + + + + type The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueLight ---------- @@ -180,10 +165,10 @@ The name of the paramType (eace85b9-5369-466f-89eb-46c4de718305) of hueTapTyp - - - - + + + + uuid The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueLight ---------- @@ -195,8 +180,8 @@ The name of the paramType (25cf4167-6c28-4497-9fa9-3d02faf4f3ed) of hueTapUUID - - + + light id The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueLight ---------- @@ -204,113 +189,110 @@ The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueWhiteLigh Licht ID - - + + power changed The name of the autocreated EventType (90aaffe5-6a76-47d2-a14a-550f60390245) Eingeschaltet geändert - - + + + + power - The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueLight + The name of the ParamType of the autocreated EventType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueLight ---------- -The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueWhiteLight +The name of the autocreated ParamType of the writable StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueLight +---------- +The name of the ParamType of the autocreated EventType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueWhiteLight +---------- +The name of the autocreated ParamType of the writable StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueWhiteLight - - + + Set power The name of the autocreated ActionType (90aaffe5-6a76-47d2-a14a-550f60390245) Einschalten - + color temperature changed The name of the autocreated EventType (c0f4206f-f219-4f06-93c4-4ca515a56f79) Lichtfarben Temperatur geändert - - colorTemperature - The name of the ParamType of StateType (c0f4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass hueLight - - - - + Set color temperature The name of the autocreated ActionType (c0f4206f-f219-4f06-93c4-4ca515a56f79) Setze Lichtfarben Temperatur - + color changed The name of the autocreated EventType (d25423e7-b924-4b20-80b6-77eecc65d089) Farbe geändert - + + color - The name of the ParamType of StateType (d25423e7-b924-4b20-80b6-77eecc65d089) of DeviceClass hueLight + The name of the ParamType of the autocreated EventType (d25423e7-b924-4b20-80b6-77eecc65d089) of DeviceClass hueLight +---------- +The name of the autocreated ParamType of the writable StateType (d25423e7-b924-4b20-80b6-77eecc65d089) of DeviceClass hueLight - + Set color The name of the autocreated ActionType (d25423e7-b924-4b20-80b6-77eecc65d089) Setze Farbe - - + + brightness changed The name of the autocreated EventType (90e91f64-a208-468c-a5a2-7f47e08859e2) Helligkeit geändert - - + + + + brightness - The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueLight + The name of the ParamType of the autocreated EventType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueLight ---------- -The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueWhiteLight +The name of the autocreated ParamType of the writable StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueLight +---------- +The name of the ParamType of the autocreated EventType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueWhiteLight +---------- +The name of the autocreated ParamType of the writable StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueWhiteLight - + Set brigtness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) Setze Helligkeit - + effect changed The name of the autocreated EventType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) Licht Effekt geändert - - batteryLevel - The name of the ParamType of StateType (683e493a-9796-4d5e-b0e3-61cb178d5819) of DeviceClass hueRemote - - - - + battery critical changed The name of the autocreated EventType (f8516899-6312-4110-bb97-70ffa81dc530) - - batteryCritical - The name of the ParamType of StateType (f8516899-6312-4110-bb97-70ffa81dc530) of DeviceClass hueRemote - - - - - + + Button pressed The name of the EventType 8da28cf1-2457-451e-953e-2685f8daeda8 of deviceClass hueRemote ---------- @@ -318,8 +300,8 @@ The name of the EventType c45dd703-7cbd-48f7-88dc-31045cc3d39c of deviceClass hu - - + + Button name The name of the paramType (e4e3eb3a-a7c4-49e3-9344-0b3f213e0b42) of hueRemote ---------- @@ -327,56 +309,80 @@ The name of the paramType (8ed643c0-1b8a-4709-8abf-717cf213f4a4) of hueTap - + Button longpressed The name of the EventType 2c64561b-2381-4769-8e21-0e206c84bbcc of deviceClass hueRemote - + Hue Tap The name of the DeviceClass (2b8c1fb8-67ee-42e9-947b-16e0a09f0d4e) - - PhilipsHue + + Philips Hue The name of the plugin PhilipsHue (5f2e634b-b7f3-48ee-976a-b5ae22aa5c55) - - apiVersion - The name of the ParamType of StateType (7a230e89-c4ce-4276-90e0-6a9ddb890603) of DeviceClass hueBridge + + + + + + reachable + The name of the ParamType of the autocreated EventType (15794d26-fde8-4a61-8f83-d7830534975f) of DeviceClass hueBridge +---------- +The name of the ParamType of the autocreated EventType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueLight +---------- +The name of the ParamType of the autocreated EventType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueWhiteLight +---------- +The name of the ParamType of the autocreated EventType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueRemote +---------- +The name of the ParamType of the autocreated EventType (5e21b032-1230-4e93-8543-0c4773da17d3) of DeviceClass hueTap - - softwareVersion - The name of the ParamType of StateType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) of DeviceClass hueBridge + + api version + The name of the ParamType of the autocreated EventType (7a230e89-c4ce-4276-90e0-6a9ddb890603) of DeviceClass hueBridge - - updateStatus - The name of the ParamType of StateType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) of DeviceClass hueBridge + + update status + The name of the ParamType of the autocreated EventType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) of DeviceClass hueBridge - - hueEffect - The name of the ParamType of StateType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) of DeviceClass hueLight + + + color temperature + The name of the ParamType of the autocreated EventType (c0f4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass hueLight +---------- +The name of the autocreated ParamType of the writable StateType (c0f4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass hueLight - + + + effect + The name of the ParamType of the autocreated EventType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) of DeviceClass hueLight +---------- +The name of the autocreated ParamType of the writable StateType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) of DeviceClass hueLight + + + + Set effect The name of the autocreated ActionType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) Setze Licht Effekt - - + + flash The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass hueLight ---------- @@ -384,8 +390,8 @@ The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass h Aufleuchten - - + + alert The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueLight ---------- @@ -393,26 +399,26 @@ The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueWhiteLigh Alarm - + Hue White Light The name of the DeviceClass (4fa568ef-7a3a-422b-b0c0-206d37cb4eed) Hue Weißlicht - + Set brightness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) - + Hue Remote The name of the DeviceClass (bb482d39-67ef-46dc-88e9-7b181d642b28) Hue Fernbedienung - - + + sensor id The name of the paramType (2ddb571b-149f-4f08-a76a-78b7d3aa27e0) of hueRemote ---------- @@ -420,55 +426,67 @@ The name of the paramType (5eca2b24-8986-4487-bc12-50e91d023d97) of hueTapSensor ID - + battery changed The name of the autocreated EventType (683e493a-9796-4d5e-b0e3-61cb178d5819) Batterie geändert - + + battery + The name of the ParamType of the autocreated EventType (683e493a-9796-4d5e-b0e3-61cb178d5819) of DeviceClass hueRemote + + + + + battery critical + The name of the ParamType of the autocreated EventType (f8516899-6312-4110-bb97-70ffa81dc530) of DeviceClass hueRemote + + + + on pressed The name of the EventType de769db0-4c31-46cf-9760-dbc6f9209c26 of deviceClass hueRemote Wenn gedrückt - + on long pressed The name of the EventType 6c5e596b-7c15-40bb-af9d-c778a6b0f30e of deviceClass hueRemote Wenn lange gedrückt - + dim up pressed The name of the EventType 8e3d6a62-6a19-4e9a-a25b-e1da2e56ede9 of deviceClass hueRemote Hochdimmen - + dim up long pressed The name of the EventType 53d3c9af-3e25-4116-b22b-38d897bc20aa of deviceClass hueRemote Runterdimmen - + dim down pressed The name of the EventType efd8b972-9a37-43f2-b9bc-f9dfe144a96d of deviceClass hueRemote Runter dimmen gedrückt - + dim down long pressed The name of the EventType 1986d4c6-4c9f-4e43-ba70-0ff06c6f177b of deviceClass hueRemote Runter dimmen lange gedrückt - + off pressed The name of the EventType 7c2a58f1-137c-4bf3-8f9e-453dff020487 of deviceClass hueRemote Aus gedrückt - + off long pressed The name of the EventType d69306eb-ea52-4841-9e26-89c69e9cf6fc of deviceClass hueRemote Aus lange gedrückt diff --git a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts index 61341cc6..65291eee 100644 --- a/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts +++ b/philipshue/translations/5f2e634b-b7f3-48ee-976a-b5ae22aa5c55-en_US.ts @@ -4,29 +4,29 @@ PhilipsHue - + Philips The name of the vendor (0ae1e001-2aa6-47ed-b8c0-334c3728a68f) - + Please press the button on the Hue Bridge within 30 seconds before you continue The pairing info of deviceClass hueBridge - + Hue gateway The name of the DeviceClass (642aa4c7-19aa-45ed-ba06-aa1ae6c9edf7) - - - - - + + + + + name The name of the paramType (275b76f2-0174-4f26-b3ec-5f108baf8bdd) of hueBridge ---------- @@ -40,47 +40,50 @@ The name of the paramType (3d450f00-b521-4a2c-985f-046fad5122cb) of hueTap - + api key The name of the paramType (8bf5776a-d5a6-4600-8b27-481f0d803a8f) of hueBridge - + host address The name of the paramType (1845975b-1184-4440-bc0d-73d53a9f683c) of hueBridge - + mac address The name of the paramType (2c67203d-a308-45ec-9a08-fc4183c06ff8) of hueBridge - + id The name of the paramType (a496feb0-3b7b-46cb-a63a-e063447d6b1d) of hueBridge - + + software version - The name of the paramType (ea228c4d-975c-4b43-9445-7c9a907c29d6) of hueBridge + The name of the paramType (ea228c4d-975c-4b43-9445-7c9a907c29d6) of hueBridge +---------- +The name of the ParamType of the autocreated EventType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) of DeviceClass hueBridge - + zigbee channel The name of the paramType (53170394-956c-4511-b3a8-2c8a502ef1ed) of hueBridge - - - - - + + + + + reachable changed The name of the autocreated EventType (15794d26-fde8-4a61-8f83-d7830534975f) ---------- @@ -90,70 +93,52 @@ The name of the autocreated EventType (5e21b032-1230-4e93-8543-0c4773da17d3) - - - - - - connected - The name of the ParamType of StateType (15794d26-fde8-4a61-8f83-d7830534975f) of DeviceClass hueBridge ----------- -The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueLight ----------- -The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueWhiteLight ----------- -The name of the ParamType of StateType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueRemote ----------- -The name of the ParamType of StateType (5e21b032-1230-4e93-8543-0c4773da17d3) of DeviceClass hueTap - - - - + api version changed The name of the autocreated EventType (7a230e89-c4ce-4276-90e0-6a9ddb890603) - + software version changed The name of the autocreated EventType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) - + update status changed The name of the autocreated EventType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) - + search devices The name of the ActionType cca3f171-6318-44e7-a2ac-d841857c1c24 of deviceClass hueBridge - + check updates The name of the ActionType 07a85e91-d064-4bce-b017-13fd0c320c0b of deviceClass hueBridge - + Upgrade bridge The name of the ActionType 6dfbc7c0-7372-42f6-82ba-e777cb32dc4c of deviceClass hueBridge - + Hue Light The name of the DeviceClass (0edba26c-96ab-44fb-a6a2-c0574d19630e) - - - - + + + + model id The name of the paramType (095a463b-f59e-46b1-989a-a71f9cbe3e30) of hueLight ---------- @@ -165,10 +150,10 @@ The name of the paramType (62d92175-db3a-4da2-a72b-f58f34cb6911) of hueTap - - - - + + + + type The name of the paramType (3f3467ef-4483-4eb9-bcae-84e628322f84) of hueLight ---------- @@ -180,10 +165,10 @@ The name of the paramType (eace85b9-5369-466f-89eb-46c4de718305) of hueTap - - - - + + + + uuid The name of the paramType (1a5129ca-006c-446c-9f2e-79b065de715f) of hueLight ---------- @@ -195,8 +180,8 @@ The name of the paramType (25cf4167-6c28-4497-9fa9-3d02faf4f3ed) of hueTap - - + + light id The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueLight ---------- @@ -204,113 +189,110 @@ The name of the paramType (491dc012-ccf2-4d3a-9f18-add98f7374af) of hueWhiteLigh - - + + power changed The name of the autocreated EventType (90aaffe5-6a76-47d2-a14a-550f60390245) - - + + + + power - The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueLight + The name of the ParamType of the autocreated EventType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueLight ---------- -The name of the ParamType of StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueWhiteLight +The name of the autocreated ParamType of the writable StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueLight +---------- +The name of the ParamType of the autocreated EventType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueWhiteLight +---------- +The name of the autocreated ParamType of the writable StateType (90aaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass hueWhiteLight - - + + Set power The name of the autocreated ActionType (90aaffe5-6a76-47d2-a14a-550f60390245) - + color temperature changed The name of the autocreated EventType (c0f4206f-f219-4f06-93c4-4ca515a56f79) - - colorTemperature - The name of the ParamType of StateType (c0f4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass hueLight - - - - + Set color temperature The name of the autocreated ActionType (c0f4206f-f219-4f06-93c4-4ca515a56f79) - + color changed The name of the autocreated EventType (d25423e7-b924-4b20-80b6-77eecc65d089) - + + color - The name of the ParamType of StateType (d25423e7-b924-4b20-80b6-77eecc65d089) of DeviceClass hueLight + The name of the ParamType of the autocreated EventType (d25423e7-b924-4b20-80b6-77eecc65d089) of DeviceClass hueLight +---------- +The name of the autocreated ParamType of the writable StateType (d25423e7-b924-4b20-80b6-77eecc65d089) of DeviceClass hueLight - + Set color The name of the autocreated ActionType (d25423e7-b924-4b20-80b6-77eecc65d089) - - + + brightness changed The name of the autocreated EventType (90e91f64-a208-468c-a5a2-7f47e08859e2) - - + + + + brightness - The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueLight + The name of the ParamType of the autocreated EventType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueLight ---------- -The name of the ParamType of StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueWhiteLight +The name of the autocreated ParamType of the writable StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueLight +---------- +The name of the ParamType of the autocreated EventType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueWhiteLight +---------- +The name of the autocreated ParamType of the writable StateType (90e91f64-a208-468c-a5a2-7f47e08859e2) of DeviceClass hueWhiteLight - + Set brigtness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) - + effect changed The name of the autocreated EventType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) - - batteryLevel - The name of the ParamType of StateType (683e493a-9796-4d5e-b0e3-61cb178d5819) of DeviceClass hueRemote - - - - + battery critical changed The name of the autocreated EventType (f8516899-6312-4110-bb97-70ffa81dc530) - - batteryCritical - The name of the ParamType of StateType (f8516899-6312-4110-bb97-70ffa81dc530) of DeviceClass hueRemote - - - - - + + Button pressed The name of the EventType 8da28cf1-2457-451e-953e-2685f8daeda8 of deviceClass hueRemote ---------- @@ -318,8 +300,8 @@ The name of the EventType c45dd703-7cbd-48f7-88dc-31045cc3d39c of deviceClass hu - - + + Button name The name of the paramType (e4e3eb3a-a7c4-49e3-9344-0b3f213e0b42) of hueRemote ---------- @@ -327,56 +309,80 @@ The name of the paramType (8ed643c0-1b8a-4709-8abf-717cf213f4a4) of hueTap - + Button longpressed The name of the EventType 2c64561b-2381-4769-8e21-0e206c84bbcc of deviceClass hueRemote - + Hue Tap The name of the DeviceClass (2b8c1fb8-67ee-42e9-947b-16e0a09f0d4e) - - PhilipsHue + + Philips Hue The name of the plugin PhilipsHue (5f2e634b-b7f3-48ee-976a-b5ae22aa5c55) - - apiVersion - The name of the ParamType of StateType (7a230e89-c4ce-4276-90e0-6a9ddb890603) of DeviceClass hueBridge + + + + + + reachable + The name of the ParamType of the autocreated EventType (15794d26-fde8-4a61-8f83-d7830534975f) of DeviceClass hueBridge +---------- +The name of the ParamType of the autocreated EventType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueLight +---------- +The name of the ParamType of the autocreated EventType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueWhiteLight +---------- +The name of the ParamType of the autocreated EventType (19bb8d10-1b28-4ba3-99b7-a634138dcfde) of DeviceClass hueRemote +---------- +The name of the ParamType of the autocreated EventType (5e21b032-1230-4e93-8543-0c4773da17d3) of DeviceClass hueTap - - softwareVersion - The name of the ParamType of StateType (4c707b18-6604-4e6d-b6bc-4e27769c2adc) of DeviceClass hueBridge + + api version + The name of the ParamType of the autocreated EventType (7a230e89-c4ce-4276-90e0-6a9ddb890603) of DeviceClass hueBridge - - updateStatus - The name of the ParamType of StateType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) of DeviceClass hueBridge + + update status + The name of the ParamType of the autocreated EventType (16a126f3-0cef-4931-bb2b-9e1b49bec7fc) of DeviceClass hueBridge - - hueEffect - The name of the ParamType of StateType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) of DeviceClass hueLight + + + color temperature + The name of the ParamType of the autocreated EventType (c0f4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass hueLight +---------- +The name of the autocreated ParamType of the writable StateType (c0f4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass hueLight - + + + effect + The name of the ParamType of the autocreated EventType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) of DeviceClass hueLight +---------- +The name of the autocreated ParamType of the writable StateType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) of DeviceClass hueLight + + + + Set effect The name of the autocreated ActionType (0b7cdd8d-4db8-4183-abe2-f3c01d1c9afc) - - + + flash The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass hueLight ---------- @@ -384,8 +390,8 @@ The name of the ActionType d25dcfbc-d28c-4905-80e3-300ffb1248f5 of deviceClass h - - + + alert The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueLight ---------- @@ -393,26 +399,26 @@ The name of the paramType (8ace6f8c-b2c7-4d0d-a407-52a54ad0ab05) of hueWhiteLigh - + Hue White Light The name of the DeviceClass (4fa568ef-7a3a-422b-b0c0-206d37cb4eed) - + Set brightness The name of the autocreated ActionType (90e91f64-a208-468c-a5a2-7f47e08859e2) - + Hue Remote The name of the DeviceClass (bb482d39-67ef-46dc-88e9-7b181d642b28) - - + + sensor id The name of the paramType (2ddb571b-149f-4f08-a76a-78b7d3aa27e0) of hueRemote ---------- @@ -420,55 +426,67 @@ The name of the paramType (5eca2b24-8986-4487-bc12-50e91d023d97) of hueTap - + battery changed The name of the autocreated EventType (683e493a-9796-4d5e-b0e3-61cb178d5819) - + + battery + The name of the ParamType of the autocreated EventType (683e493a-9796-4d5e-b0e3-61cb178d5819) of DeviceClass hueRemote + + + + + battery critical + The name of the ParamType of the autocreated EventType (f8516899-6312-4110-bb97-70ffa81dc530) of DeviceClass hueRemote + + + + on pressed The name of the EventType de769db0-4c31-46cf-9760-dbc6f9209c26 of deviceClass hueRemote - + on long pressed The name of the EventType 6c5e596b-7c15-40bb-af9d-c778a6b0f30e of deviceClass hueRemote - + dim up pressed The name of the EventType 8e3d6a62-6a19-4e9a-a25b-e1da2e56ede9 of deviceClass hueRemote - + dim up long pressed The name of the EventType 53d3c9af-3e25-4116-b22b-38d897bc20aa of deviceClass hueRemote - + dim down pressed The name of the EventType efd8b972-9a37-43f2-b9bc-f9dfe144a96d of deviceClass hueRemote - + dim down long pressed The name of the EventType 1986d4c6-4c9f-4e43-ba70-0ff06c6f177b of deviceClass hueRemote - + off pressed The name of the EventType 7c2a58f1-137c-4bf3-8f9e-453dff020487 of deviceClass hueRemote - + off long pressed The name of the EventType d69306eb-ea52-4841-9e26-89c69e9cf6fc of deviceClass hueRemote diff --git a/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-de_DE.ts b/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-de_DE.ts index 73d23369..6f4d8596 100644 --- a/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-de_DE.ts +++ b/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-de_DE.ts @@ -4,121 +4,124 @@ PlantCare - + + Plant Care - The name of the DeviceClass (3245db46-5c6f-42d6-9001-753150763385) + The name of the plugin PlantCare (80ea115f-2a9f-49b3-9575-9e36d137c8d6) +---------- +The name of the DeviceClass (3245db46-5c6f-42d6-9001-753150763385) - + RPL address - The name of the paramType (138e19bd-a8db-472a-b3a4-f6497ef2e50c) of PlantCare + The name of the paramType (138e19bd-a8db-472a-b3a4-f6497ef2e50c) of plantCare - - PlantCare - The name of the plugin PlantCare (80ea115f-2a9f-49b3-9575-9e36d137c8d6) - - - - + host The name of the paramType (7ab5f794-459f-45f5-855e-40a76f494e20) of plantCare - + battery voltage changed The name of the autocreated EventType (2b4b5123-14b7-4aa1-9c83-27cef333395d) - - battery - The name of the ParamType of StateType (2b4b5123-14b7-4aa1-9c83-27cef333395d) of DeviceClass plantCare - - - - - water - The name of the ParamType of StateType (26deeba1-487a-4dee-940a-a3bd48344f33) of DeviceClass plantCare - - - - - ledPower - The name of the ParamType of StateType (819aca98-25e5-4733-81e0-5921478b3e89) of DeviceClass plantCare - - - - - waterPump - The name of the ParamType of StateType (6c65ae32-18ce-400f-afd6-47fb5b805ccd) of DeviceClass plantCare - - - - + moisture changed The name of the autocreated EventType (8a7efda1-b6b7-41c8-ad07-4d892a532d1c) - + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - moisture - The name of the ParamType of StateType (8a7efda1-b6b7-41c8-ad07-4d892a532d1c) of DeviceClass plantCare + + battery voltage + The name of the ParamType of the autocreated EventType (2b4b5123-14b7-4aa1-9c83-27cef333395d) of DeviceClass plantCare - + + moisture + The name of the ParamType of the autocreated EventType (8a7efda1-b6b7-41c8-ad07-4d892a532d1c) of DeviceClass plantCare + + + + water empty changed The name of the autocreated EventType (26deeba1-487a-4dee-940a-a3bd48344f33) - + + water empty + The name of the ParamType of the autocreated EventType (26deeba1-487a-4dee-940a-a3bd48344f33) of DeviceClass plantCare + + + + led power changed The name of the autocreated EventType (819aca98-25e5-4733-81e0-5921478b3e89) - + + + led power + The name of the ParamType of the autocreated EventType (819aca98-25e5-4733-81e0-5921478b3e89) of DeviceClass plantCare +---------- +The name of the autocreated ParamType of the writable StateType (819aca98-25e5-4733-81e0-5921478b3e89) of DeviceClass plantCare + + + + Set reachable The name of the autocreated ActionType (819aca98-25e5-4733-81e0-5921478b3e89) - + water pump power changed The name of the autocreated EventType (6c65ae32-18ce-400f-afd6-47fb5b805ccd) - + + + water pump power + The name of the ParamType of the autocreated EventType (6c65ae32-18ce-400f-afd6-47fb5b805ccd) of DeviceClass plantCare +---------- +The name of the autocreated ParamType of the writable StateType (6c65ae32-18ce-400f-afd6-47fb5b805ccd) of DeviceClass plantCare + + + + Set water pump power The name of the autocreated ActionType (6c65ae32-18ce-400f-afd6-47fb5b805ccd) - + reachable changed The name of the autocreated EventType (8384e07b-8b91-492a-b6c8-e72b325ba0b4) - + reachable - The name of the ParamType of StateType (8384e07b-8b91-492a-b6c8-e72b325ba0b4) of DeviceClass plantCare + The name of the ParamType of the autocreated EventType (8384e07b-8b91-492a-b6c8-e72b325ba0b4) of DeviceClass plantCare - + toggle led The name of the ActionType 9afbcc80-1c97-4c18-bc08-5209d6297f2e of deviceClass plantCare diff --git a/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-en_US.ts b/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-en_US.ts index 1dec88d1..04fa1e0a 100644 --- a/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-en_US.ts +++ b/plantcare/translations/80ea115f-2a9f-49b3-9575-9e36d137c8d6-en_US.ts @@ -4,121 +4,124 @@ PlantCare - + + Plant Care - The name of the DeviceClass (3245db46-5c6f-42d6-9001-753150763385) + The name of the plugin PlantCare (80ea115f-2a9f-49b3-9575-9e36d137c8d6) +---------- +The name of the DeviceClass (3245db46-5c6f-42d6-9001-753150763385) - + RPL address - The name of the paramType (138e19bd-a8db-472a-b3a4-f6497ef2e50c) of PlantCare + The name of the paramType (138e19bd-a8db-472a-b3a4-f6497ef2e50c) of plantCare - - PlantCare - The name of the plugin PlantCare (80ea115f-2a9f-49b3-9575-9e36d137c8d6) - - - - + host The name of the paramType (7ab5f794-459f-45f5-855e-40a76f494e20) of plantCare - + battery voltage changed The name of the autocreated EventType (2b4b5123-14b7-4aa1-9c83-27cef333395d) - - battery - The name of the ParamType of StateType (2b4b5123-14b7-4aa1-9c83-27cef333395d) of DeviceClass plantCare - - - - - water - The name of the ParamType of StateType (26deeba1-487a-4dee-940a-a3bd48344f33) of DeviceClass plantCare - - - - - ledPower - The name of the ParamType of StateType (819aca98-25e5-4733-81e0-5921478b3e89) of DeviceClass plantCare - - - - - waterPump - The name of the ParamType of StateType (6c65ae32-18ce-400f-afd6-47fb5b805ccd) of DeviceClass plantCare - - - - + moisture changed The name of the autocreated EventType (8a7efda1-b6b7-41c8-ad07-4d892a532d1c) - + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - moisture - The name of the ParamType of StateType (8a7efda1-b6b7-41c8-ad07-4d892a532d1c) of DeviceClass plantCare + + battery voltage + The name of the ParamType of the autocreated EventType (2b4b5123-14b7-4aa1-9c83-27cef333395d) of DeviceClass plantCare - + + moisture + The name of the ParamType of the autocreated EventType (8a7efda1-b6b7-41c8-ad07-4d892a532d1c) of DeviceClass plantCare + + + + water empty changed The name of the autocreated EventType (26deeba1-487a-4dee-940a-a3bd48344f33) - + + water empty + The name of the ParamType of the autocreated EventType (26deeba1-487a-4dee-940a-a3bd48344f33) of DeviceClass plantCare + + + + led power changed The name of the autocreated EventType (819aca98-25e5-4733-81e0-5921478b3e89) - + + + led power + The name of the ParamType of the autocreated EventType (819aca98-25e5-4733-81e0-5921478b3e89) of DeviceClass plantCare +---------- +The name of the autocreated ParamType of the writable StateType (819aca98-25e5-4733-81e0-5921478b3e89) of DeviceClass plantCare + + + + Set reachable The name of the autocreated ActionType (819aca98-25e5-4733-81e0-5921478b3e89) - + water pump power changed The name of the autocreated EventType (6c65ae32-18ce-400f-afd6-47fb5b805ccd) - + + + water pump power + The name of the ParamType of the autocreated EventType (6c65ae32-18ce-400f-afd6-47fb5b805ccd) of DeviceClass plantCare +---------- +The name of the autocreated ParamType of the writable StateType (6c65ae32-18ce-400f-afd6-47fb5b805ccd) of DeviceClass plantCare + + + + Set water pump power The name of the autocreated ActionType (6c65ae32-18ce-400f-afd6-47fb5b805ccd) - + reachable changed The name of the autocreated EventType (8384e07b-8b91-492a-b6c8-e72b325ba0b4) - + reachable - The name of the ParamType of StateType (8384e07b-8b91-492a-b6c8-e72b325ba0b4) of DeviceClass plantCare + The name of the ParamType of the autocreated EventType (8384e07b-8b91-492a-b6c8-e72b325ba0b4) of DeviceClass plantCare - + toggle led The name of the ActionType 9afbcc80-1c97-4c18-bc08-5209d6297f2e of deviceClass plantCare diff --git a/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts b/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts index 5bff69ca..b92a12b9 100644 --- a/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts +++ b/remotessh/translations/cd75d899-3f53-43fa-9ee8-f6b36646a27d-en_US.ts @@ -3,11 +3,6 @@ RemoteSsh - - RemoteSsh - The name of the plugin RemoteSsh (cd75d899-3f53-43fa-9ee8-f6b36646a27d) - - Remote Access The name of the vendor (e87ad7b1-1705-46b1-a962-282126646b4d) @@ -48,21 +43,11 @@ The name of the autocreated EventType (19f079f0-1654-44c3-ab10-e7d7f9742e09) - - reachable - The name of the ParamType of StateType (19f079f0-1654-44c3-ab10-e7d7f9742e09) of DeviceClass reverseSsh - - Connected changed The name of the autocreated EventType (1ae425b2-d642-42ca-be41-4d06dff5c5cd) - - connected - The name of the ParamType of StateType (1ae425b2-d642-42ca-be41-4d06dff5c5cd) of DeviceClass reverseSsh - - Connect to Server The name of the autocreated ActionType (1ae425b2-d642-42ca-be41-4d06dff5c5cd) @@ -74,8 +59,25 @@ - sshKey - The name of the ParamType of StateType (d8bb619e-6602-4c89-8654-85e111520561) of DeviceClass reverseSsh + Remote SSH + The name of the plugin RemoteSsh (cd75d899-3f53-43fa-9ee8-f6b36646a27d) + + + + Server Reachable + The name of the ParamType of the autocreated EventType (19f079f0-1654-44c3-ab10-e7d7f9742e09) of DeviceClass reverseSsh + + + + Connected + The name of the ParamType of the autocreated EventType (1ae425b2-d642-42ca-be41-4d06dff5c5cd) of DeviceClass reverseSsh +---------- +The name of the autocreated ParamType of the writable StateType (1ae425b2-d642-42ca-be41-4d06dff5c5cd) of DeviceClass reverseSsh + + + + SSH public key + The name of the ParamType of the autocreated EventType (d8bb619e-6602-4c89-8654-85e111520561) of DeviceClass reverseSsh diff --git a/senic/translations/413e9d77-335f-4ecf-abbc-8f2a8a399c39-de_DE.ts b/senic/translations/413e9d77-335f-4ecf-abbc-8f2a8a399c39-de_DE.ts index e5ea2c5f..721b5456 100644 --- a/senic/translations/413e9d77-335f-4ecf-abbc-8f2a8a399c39-de_DE.ts +++ b/senic/translations/413e9d77-335f-4ecf-abbc-8f2a8a399c39-de_DE.ts @@ -30,36 +30,12 @@ The name of the vendor (8e6cae9c-706b-49e5-ae86-da52a20dd336) The name of the paramType (71553f6a-2ed4-4896-bb7b-52e7dca948b2) of nuimo - - - connected - The name of the ParamType of StateType (5286976a-f5dc-4662-872a-438ac5d491cb) of DeviceClass nuimo - - Hardware revision changed The name of the autocreated EventType (5c400da4-a14e-4e0a-be9f-c82ffe7e1972) - - - hardwareRevision - The name of the ParamType of StateType (5c400da4-a14e-4e0a-be9f-c82ffe7e1972) of DeviceClass nuimo - - - - - firmwareRevision - The name of the ParamType of StateType (edcf76c6-9fed-4c26-9853-c284cf887adb) of DeviceClass nuimo - - - - - softwareRevision - The name of the ParamType of StateType (be42cbd3-12e9-44ec-8f9d-141e10d9573a) of DeviceClass nuimo - - battery changed @@ -69,7 +45,7 @@ The name of the vendor (8e6cae9c-706b-49e5-ae86-da52a20dd336) battery - The name of the ParamType of StateType (b5ee2465-7fa1-450b-8073-f115537d3409) of DeviceClass nuimo + The name of the ParamType of the autocreated EventType (b5ee2465-7fa1-450b-8073-f115537d3409) of DeviceClass nuimo @@ -81,7 +57,7 @@ The name of the vendor (8e6cae9c-706b-49e5-ae86-da52a20dd336) rotation - The name of the ParamType of StateType (69a5f495-5452-434b-8fb8-b73d992c5446) of DeviceClass nuimo + The name of the ParamType of the autocreated EventType (69a5f495-5452-434b-8fb8-b73d992c5446) of DeviceClass nuimo @@ -90,18 +66,42 @@ The name of the vendor (8e6cae9c-706b-49e5-ae86-da52a20dd336) The name of the autocreated EventType (5286976a-f5dc-4662-872a-438ac5d491cb) + + + Connected + The name of the ParamType of the autocreated EventType (5286976a-f5dc-4662-872a-438ac5d491cb) of DeviceClass nuimo + + + + + Hardware revision + The name of the ParamType of the autocreated EventType (5c400da4-a14e-4e0a-be9f-c82ffe7e1972) of DeviceClass nuimo + + Firmware revision changed The name of the autocreated EventType (edcf76c6-9fed-4c26-9853-c284cf887adb) + + + Firmware revision + The name of the ParamType of the autocreated EventType (edcf76c6-9fed-4c26-9853-c284cf887adb) of DeviceClass nuimo + + Software revision changed The name of the autocreated EventType (be42cbd3-12e9-44ec-8f9d-141e10d9573a) + + + Software revision + The name of the ParamType of the autocreated EventType (be42cbd3-12e9-44ec-8f9d-141e10d9573a) of DeviceClass nuimo + + Show logo diff --git a/senic/translations/413e9d77-335f-4ecf-abbc-8f2a8a399c39-en_US.ts b/senic/translations/413e9d77-335f-4ecf-abbc-8f2a8a399c39-en_US.ts index fd628f9a..a82f1b94 100644 --- a/senic/translations/413e9d77-335f-4ecf-abbc-8f2a8a399c39-en_US.ts +++ b/senic/translations/413e9d77-335f-4ecf-abbc-8f2a8a399c39-en_US.ts @@ -30,36 +30,12 @@ The name of the vendor (8e6cae9c-706b-49e5-ae86-da52a20dd336) The name of the paramType (71553f6a-2ed4-4896-bb7b-52e7dca948b2) of nuimo - - - connected - The name of the ParamType of StateType (5286976a-f5dc-4662-872a-438ac5d491cb) of DeviceClass nuimo - - Hardware revision changed The name of the autocreated EventType (5c400da4-a14e-4e0a-be9f-c82ffe7e1972) - - - hardwareRevision - The name of the ParamType of StateType (5c400da4-a14e-4e0a-be9f-c82ffe7e1972) of DeviceClass nuimo - - - - - firmwareRevision - The name of the ParamType of StateType (edcf76c6-9fed-4c26-9853-c284cf887adb) of DeviceClass nuimo - - - - - softwareRevision - The name of the ParamType of StateType (be42cbd3-12e9-44ec-8f9d-141e10d9573a) of DeviceClass nuimo - - battery changed @@ -69,7 +45,7 @@ The name of the vendor (8e6cae9c-706b-49e5-ae86-da52a20dd336) battery - The name of the ParamType of StateType (b5ee2465-7fa1-450b-8073-f115537d3409) of DeviceClass nuimo + The name of the ParamType of the autocreated EventType (b5ee2465-7fa1-450b-8073-f115537d3409) of DeviceClass nuimo @@ -81,7 +57,7 @@ The name of the vendor (8e6cae9c-706b-49e5-ae86-da52a20dd336) rotation - The name of the ParamType of StateType (69a5f495-5452-434b-8fb8-b73d992c5446) of DeviceClass nuimo + The name of the ParamType of the autocreated EventType (69a5f495-5452-434b-8fb8-b73d992c5446) of DeviceClass nuimo @@ -90,18 +66,42 @@ The name of the vendor (8e6cae9c-706b-49e5-ae86-da52a20dd336) The name of the autocreated EventType (5286976a-f5dc-4662-872a-438ac5d491cb) + + + Connected + The name of the ParamType of the autocreated EventType (5286976a-f5dc-4662-872a-438ac5d491cb) of DeviceClass nuimo + + + + + Hardware revision + The name of the ParamType of the autocreated EventType (5c400da4-a14e-4e0a-be9f-c82ffe7e1972) of DeviceClass nuimo + + Firmware revision changed The name of the autocreated EventType (edcf76c6-9fed-4c26-9853-c284cf887adb) + + + Firmware revision + The name of the ParamType of the autocreated EventType (edcf76c6-9fed-4c26-9853-c284cf887adb) of DeviceClass nuimo + + Software revision changed The name of the autocreated EventType (be42cbd3-12e9-44ec-8f9d-141e10d9573a) + + + Software revision + The name of the ParamType of the autocreated EventType (be42cbd3-12e9-44ec-8f9d-141e10d9573a) of DeviceClass nuimo + + Show logo diff --git a/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts b/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts index e49dc380..01d002dd 100644 --- a/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts +++ b/simulation/translations/b7368429-e312-4c82-9eab-e1cd996e43d6-en_US.ts @@ -43,23 +43,6 @@ The name of the autocreated EventType (9faaffe5-6a76-47d2-a14a-550f60390245) The name of the autocreated EventType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) - - power - The name of the ParamType of StateType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) of DeviceClass alternativeButton ----------- -The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heating ----------- -The name of the ParamType of StateType (b786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass evCharger ----------- -The name of the ParamType of StateType (9faaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass colorBulb ----------- -The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass socket ----------- -The name of the ParamType of StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod ----------- -The name of the ParamType of StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass waterValve - - Set power The name of the autocreated ActionType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) @@ -85,15 +68,6 @@ The name of the autocreated ActionType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) - - temperature - The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) of DeviceClass netatmoIndoor ----------- -The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass gardenSensor - - Humidity changed The name of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) @@ -101,13 +75,6 @@ The name of the ParamType of StateType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of The name of the autocreated EventType (b2225720-dfdc-40f8-a24a-20247e69e575) - - humidity - The name of the ParamType of StateType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (b2225720-dfdc-40f8-a24a-20247e69e575) of DeviceClass netatmoIndoor - - Battery level changed The name of the autocreated EventType (45c0de32-b519-47d7-9f82-e5f09d1542d4) @@ -117,17 +84,6 @@ The name of the autocreated EventType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) The name of the autocreated EventType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) - - batteryLevel - The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) of DeviceClass motionDetector ----------- -The name of the ParamType of StateType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) of DeviceClass battery ----------- -The name of the ParamType of StateType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass gardenSensor - - Battery critical changed The name of the autocreated EventType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) @@ -137,17 +93,6 @@ The name of the autocreated EventType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) The name of the autocreated EventType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) - - batteryCritical - The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) of DeviceClass motionDetector ----------- -The name of the ParamType of StateType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) of DeviceClass battery ----------- -The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass gardenSensor - - Connected changed The name of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) @@ -155,23 +100,6 @@ The name of the ParamType of StateType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of The name of the autocreated EventType (b481b6e7-77c1-40b0-859a-286876b05959) - - connected - The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass temperatureSensor ----------- -The name of the ParamType of StateType (b481b6e7-77c1-40b0-859a-286876b05959) of DeviceClass motionDetector ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass fingerPrintSensor ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass smartMeter ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass battery ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod ----------- -The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass gardenSensor - - Motion Detector The name of the DeviceClass (990fc2ba-260a-4648-9a93-e803e219da4f) @@ -182,11 +110,6 @@ The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of The name of the autocreated EventType (5ab00bfc-7345-44a2-90d4-852c810e59ec) - - active - The name of the ParamType of StateType (5ab00bfc-7345-44a2-90d4-852c810e59ec) of DeviceClass motionDetector - - Heating The name of the DeviceClass (62e302f4-b92a-4b55-bd18-a1e0cc56362a) @@ -197,23 +120,11 @@ The name of the ParamType of StateType (e66aba37-2647-4b6b-8740-d59eb98d846c) of The name of the autocreated EventType (47a16375-1027-42cc-82d3-56cbfdb1193c) - - heatingActive - The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heating ----------- -The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heatingRod - - target temperature changed The name of the autocreated EventType (8256a670-85c5-4043-9133-05518812848c) - - targetTemperature - The name of the ParamType of StateType (8256a670-85c5-4043-9133-05518812848c) of DeviceClass heating - - change target temperature The name of the autocreated ActionType (8256a670-85c5-4043-9133-05518812848c) @@ -229,11 +140,6 @@ The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of The name of the autocreated EventType (87600986-da37-4032-af37-015995910368) - - current - The name of the ParamType of StateType (87600986-da37-4032-af37-015995910368) of DeviceClass evCharger - - Set current The name of the autocreated ActionType (87600986-da37-4032-af37-015995910368) @@ -244,11 +150,6 @@ The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of The name of the autocreated EventType (9d3f56e1-bb73-4efd-814c-50477c609c17) - - evCharging - The name of the ParamType of StateType (9d3f56e1-bb73-4efd-814c-50477c609c17) of DeviceClass evCharger - - Garage Door The name of the DeviceClass (cfb44bcf-b4b9-4bef-89f7-3a55baf35668) @@ -259,11 +160,6 @@ The name of the ParamType of StateType (47a16375-1027-42cc-82d3-56cbfdb1193c) of The name of the autocreated EventType (f786029d-f3a6-4b47-978a-ac1a581aac0f) - - door - The name of the ParamType of StateType (f786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass garageDoor - - Open The name of the ActionType 1786029d-f3a6-4b47-978a-ac1a581aac0f of deviceClass garageDoor @@ -291,11 +187,6 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated EventType (1386029d-f3a6-4b47-978a-ac1a581aac0f) - - shutterStatus - The name of the ParamType of StateType (1386029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass rollerShutter - - stop The name of the ActionType 27860292-f3a6-4b47-978a-ac1a581aac0f of deviceClass rollerShutter @@ -316,11 +207,6 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated EventType (cff4206f-f219-4f06-93c4-4ca515a56f79) - - colorTemperature - The name of the ParamType of StateType (cff4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass colorBulb - - Set color temperature The name of the autocreated ActionType (cff4206f-f219-4f06-93c4-4ca515a56f79) @@ -331,11 +217,6 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated EventType (df5423f1-b924-4b20-80b6-77eecc65d089) - - color - The name of the ParamType of StateType (df5423f1-b924-4b20-80b6-77eecc65d089) of DeviceClass colorBulb - - Set color The name of the autocreated ActionType (df5423f1-b924-4b20-80b6-77eecc65d089) @@ -346,11 +227,6 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated EventType (90e91f11-a208-468c-a5a2-7f47e08229e2) - - brightness - The name of the ParamType of StateType (90e91f11-a208-468c-a5a2-7f47e08229e2) of DeviceClass colorBulb - - Set brigtness The name of the autocreated ActionType (90e91f11-a208-468c-a5a2-7f47e08229e2) @@ -391,24 +267,20 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated EventType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) - - powerConsumption - The name of the ParamType of StateType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) of DeviceClass smartMeter - - Today's energy production changed The name of the autocreated EventType (5ac91819-c855-441c-a734-ee5cc0514822) - - energyToday - The name of the ParamType of StateType (5ac91819-c855-441c-a734-ee5cc0514822) of DeviceClass smartMeter - - Battery - The name of the DeviceClass (280c481e-757a-4af7-b1d3-dc9cfc1d46a5) + The name of the ParamType of the autocreated EventType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass temperatureSensor +---------- +The name of the ParamType of the autocreated EventType (4d66c81e-6293-4997-9685-8b44d7e5c1bd) of DeviceClass motionDetector +---------- +The name of the DeviceClass (280c481e-757a-4af7-b1d3-dc9cfc1d46a5) +---------- +The name of the ParamType of the autocreated EventType (45c0de32-b519-47d7-9f82-e5f09d1542d4) of DeviceClass gardenSensor @@ -418,7 +290,7 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r charging - The name of the ParamType of StateType (c977e60a-e820-4647-addb-cf0b39732ffb) of DeviceClass battery + The name of the ParamType of the autocreated EventType (9d3f56e1-bb73-4efd-814c-50477c609c17) of DeviceClass evCharger @@ -426,11 +298,6 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated EventType (bdf328a6-eebc-4b67-8165-551bc21e9be6) - - maxCharging - The name of the ParamType of StateType (bdf328a6-eebc-4b67-8165-551bc21e9be6) of DeviceClass battery - - Set max charging power The name of the autocreated ActionType (bdf328a6-eebc-4b67-8165-551bc21e9be6) @@ -443,7 +310,35 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r Power - The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) + The name of the ParamType of the autocreated EventType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) of DeviceClass alternativeButton +---------- +The name of the autocreated ParamType of the writable StateType (fa63c0b9-10e5-4280-9cc2-243bf27c05ad) of DeviceClass alternativeButton +---------- +The name of the ParamType of the autocreated EventType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heating +---------- +The name of the autocreated ParamType of the writable StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heating +---------- +The name of the ParamType of the autocreated EventType (b786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass evCharger +---------- +The name of the autocreated ParamType of the writable StateType (b786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass evCharger +---------- +The name of the ParamType of the autocreated EventType (9faaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass colorBulb +---------- +The name of the autocreated ParamType of the writable StateType (9faaffe5-6a76-47d2-a14a-550f60390245) of DeviceClass colorBulb +---------- +The name of the ParamType of the autocreated EventType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass socket +---------- +The name of the autocreated ParamType of the writable StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass socket +---------- +The name of the ParamType of the autocreated EventType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod +---------- +The name of the autocreated ActionType (e1910c53-a6bc-434b-9caa-0d08e214c122) +---------- +The name of the autocreated ParamType of the writable StateType (e1910c53-a6bc-434b-9caa-0d08e214c122) of DeviceClass heatingRod +---------- +The name of the ParamType of the autocreated EventType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass waterValve +---------- +The name of the autocreated ParamType of the writable StateType (b7ff029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass waterValve @@ -451,11 +346,6 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated EventType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) - - maxPower - The name of the ParamType of StateType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) of DeviceClass heatingRod - - Set max power The name of the autocreated ActionType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) @@ -466,11 +356,6 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated EventType (49388b11-8076-4698-8091-5c5f5762fd08) - - waterTemperature - The name of the ParamType of StateType (49388b11-8076-4698-8091-5c5f5762fd08) of DeviceClass heatingRod - - Set target water temperature The name of the autocreated ActionType (49388b11-8076-4698-8091-5c5f5762fd08) @@ -486,51 +371,26 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated EventType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) - - updateTime - The name of the ParamType of StateType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) of DeviceClass netatmoIndoor - - Pressure changed The name of the autocreated EventType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) - - pressure - The name of the ParamType of StateType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) of DeviceClass netatmoIndoor - - Noise changed The name of the autocreated EventType (b16ea43e-75ef-4bee-ade6-839682ec3068) - - noise - The name of the ParamType of StateType (b16ea43e-75ef-4bee-ade6-839682ec3068) of DeviceClass netatmoIndoor - - CO2 changed The name of the autocreated EventType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) - - co2 - The name of the ParamType of StateType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) of DeviceClass netatmoIndoor - - Wifi signal strength changed The name of the autocreated EventType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) - - wifiStrength - The name of the ParamType of StateType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) of DeviceClass netatmoIndoor - - Garden sensor The name of the DeviceClass (b759f558-b484-45b6-9132-218d135c27d6) @@ -541,11 +401,6 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r The name of the autocreated EventType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) - - soilMoisture - The name of the ParamType of StateType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) of DeviceClass gardenSensor - - Water valve The name of the DeviceClass (8fc2e79b-1770-4b18-bf01-78ed15893a81) @@ -557,8 +412,180 @@ The name of the ActionType 17860291-f3a6-4b47-978a-ac1a581aac0f of deviceClass r - illuminance - The name of the ParamType of StateType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) of DeviceClass gardenSensor + Temperature + The name of the ParamType of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass temperatureSensor +---------- +The name of the ParamType of the autocreated EventType (b5244e65-0811-4dc2-afd2-6bf3092d44c7) of DeviceClass netatmoIndoor +---------- +The name of the ParamType of the autocreated EventType (169d7a2a-d1c9-4578-bb30-fc7d25690e59) of DeviceClass gardenSensor + + + + Humidity + The name of the ParamType of the autocreated EventType (10c735fd-7b81-484a-a148-76ea0da840f0) of DeviceClass temperatureSensor +---------- +The name of the ParamType of the autocreated EventType (b2225720-dfdc-40f8-a24a-20247e69e575) of DeviceClass netatmoIndoor + + + + Battery critical + The name of the ParamType of the autocreated EventType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass temperatureSensor +---------- +The name of the ParamType of the autocreated EventType (1c621a6f-86fe-4351-bf9e-03c3deaef6ad) of DeviceClass motionDetector +---------- +The name of the ParamType of the autocreated EventType (4857f2b4-0840-4c7e-82ff-bd881ae32cf9) of DeviceClass battery +---------- +The name of the ParamType of the autocreated EventType (295b9a17-a4b1-4cc9-8ebb-2309b72c75f6) of DeviceClass gardenSensor + + + + Connected + The name of the ParamType of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass temperatureSensor +---------- +The name of the ParamType of the autocreated EventType (b481b6e7-77c1-40b0-859a-286876b05959) of DeviceClass motionDetector +---------- +The name of the ParamType of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass fingerPrintSensor +---------- +The name of the ParamType of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass gardenSensor + + + + Active + The name of the ParamType of the autocreated EventType (5ab00bfc-7345-44a2-90d4-852c810e59ec) of DeviceClass motionDetector +---------- +The name of the ParamType of the autocreated EventType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heating +---------- +The name of the ParamType of the autocreated EventType (47a16375-1027-42cc-82d3-56cbfdb1193c) of DeviceClass heatingRod + + + + Target temperature + The name of the ParamType of the autocreated EventType (8256a670-85c5-4043-9133-05518812848c) of DeviceClass heating +---------- +The name of the autocreated ParamType of the writable StateType (8256a670-85c5-4043-9133-05518812848c) of DeviceClass heating + + + + Current + The name of the ParamType of the autocreated EventType (87600986-da37-4032-af37-015995910368) of DeviceClass evCharger +---------- +The name of the autocreated ParamType of the writable StateType (87600986-da37-4032-af37-015995910368) of DeviceClass evCharger + + + + Garage door + The name of the ParamType of the autocreated EventType (f786029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass garageDoor + + + + Status + The name of the ParamType of the autocreated EventType (1386029d-f3a6-4b47-978a-ac1a581aac0f) of DeviceClass rollerShutter + + + + Color temperature + The name of the ParamType of the autocreated EventType (cff4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass colorBulb +---------- +The name of the autocreated ParamType of the writable StateType (cff4206f-f219-4f06-93c4-4ca515a56f79) of DeviceClass colorBulb + + + + Color + The name of the ParamType of the autocreated EventType (df5423f1-b924-4b20-80b6-77eecc65d089) of DeviceClass colorBulb +---------- +The name of the autocreated ParamType of the writable StateType (df5423f1-b924-4b20-80b6-77eecc65d089) of DeviceClass colorBulb + + + + Brightness + The name of the ParamType of the autocreated EventType (90e91f11-a208-468c-a5a2-7f47e08229e2) of DeviceClass colorBulb +---------- +The name of the autocreated ParamType of the writable StateType (90e91f11-a208-468c-a5a2-7f47e08229e2) of DeviceClass colorBulb + + + + Reachable + The name of the ParamType of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass smartMeter +---------- +The name of the ParamType of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass battery +---------- +The name of the ParamType of the autocreated EventType (e66aba37-2647-4b6b-8740-d59eb98d846c) of DeviceClass heatingRod + + + + Power consumtion + The name of the ParamType of the autocreated EventType (d57f4d9c-759e-40eb-999e-a1acbc8df2b1) of DeviceClass smartMeter + + + + Today's energy production + The name of the ParamType of the autocreated EventType (5ac91819-c855-441c-a734-ee5cc0514822) of DeviceClass smartMeter + + + + Battery level + The name of the ParamType of the autocreated EventType (30fd9fd9-1a6b-4698-93ac-6b2a1ba18500) of DeviceClass battery + + + + Charging + The name of the ParamType of the autocreated EventType (c977e60a-e820-4647-addb-cf0b39732ffb) of DeviceClass battery + + + + Max charging power + The name of the ParamType of the autocreated EventType (bdf328a6-eebc-4b67-8165-551bc21e9be6) of DeviceClass battery +---------- +The name of the autocreated ParamType of the writable StateType (bdf328a6-eebc-4b67-8165-551bc21e9be6) of DeviceClass battery + + + + Max power + The name of the ParamType of the autocreated EventType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) of DeviceClass heatingRod +---------- +The name of the autocreated ParamType of the writable StateType (2ab2a0fa-ea66-426c-ba22-d23b42c80883) of DeviceClass heatingRod + + + + Target water temperature + The name of the ParamType of the autocreated EventType (49388b11-8076-4698-8091-5c5f5762fd08) of DeviceClass heatingRod +---------- +The name of the autocreated ParamType of the writable StateType (49388b11-8076-4698-8091-5c5f5762fd08) of DeviceClass heatingRod + + + + Last update + The name of the ParamType of the autocreated EventType (29a95a72-f897-4027-99a8-ab1aee1ebe2b) of DeviceClass netatmoIndoor + + + + Pressure + The name of the ParamType of the autocreated EventType (b13fa34e-b63d-4fa4-a786-e82776ee9cbe) of DeviceClass netatmoIndoor + + + + Noise + The name of the ParamType of the autocreated EventType (b16ea43e-75ef-4bee-ade6-839682ec3068) of DeviceClass netatmoIndoor + + + + CO2 + The name of the ParamType of the autocreated EventType (c5ebe5c0-b030-4eb6-a3f8-3a400061d09c) of DeviceClass netatmoIndoor + + + + Wifi signal strength + The name of the ParamType of the autocreated EventType (3b8fb712-ff4c-4c0f-83bc-2edac54fede7) of DeviceClass netatmoIndoor + + + + Soil moisture + The name of the ParamType of the autocreated EventType (63eb7cdd-d16e-4baf-820b-7ad9f0a2b2a8) of DeviceClass gardenSensor + + + + Illuminance + The name of the ParamType of the autocreated EventType (9781f0a5-3478-4291-ab51-9daa1ba0e44e) of DeviceClass gardenSensor diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de_DE.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de_DE.ts index d65febb6..4485897c 100644 --- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de_DE.ts +++ b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-de_DE.ts @@ -4,199 +4,202 @@ Snapd - + Snapd The name of the plugin Snapd (b82bce59-59bf-48b3-b781-54a6f45800f3) Snapd - + Advanced mode - The name of the paramType (017fe4c5-fc41-41fe-8e67-08fdaccb89ea) of Snapd + The name of the paramType (017fe4c5-fc41-41fe-8e67-08fdaccb89ea) of snapd Fortgeschrittener Modus - + Automatic daily refresh schedule - The name of the paramType (d2e697d1-9a68-4666-bf40-8d70fa694eec) of Snapd + The name of the paramType (d2e697d1-9a68-4666-bf40-8d70fa694eec) of snapd - + Canonical The name of the vendor (60582ddf-32ea-4fcd-a6f2-f3beaaf21517) Canonical - - snapdAvailable - The name of the ParamType of StateType (6b662b3e-fd12-4f24-be77-aec066f16d8c) of DeviceClass snapdControl - - - - + System update available changed The name of the autocreated EventType (a6b1d24b-d523-4516-9bce-5b467e5e09b2) Systemupdate Verfügbarkeit geändert - - updateAvailable - The name of the ParamType of StateType (a6b1d24b-d523-4516-9bce-5b467e5e09b2) of DeviceClass snapdControl - - - - - updateRunning - The name of the ParamType of StateType (01ca7a22-5607-4c5e-a465-a2ae7e8b529c) of DeviceClass snapdControl - - - - - lastUpdateTime - The name of the ParamType of StateType (c671545a-6bde-4c08-8e37-0d256841a3a5) of DeviceClass snapdControl - - - - - nextUpdateTime - The name of the ParamType of StateType (122c2423-a1d9-400f-80f8-b1f798975914) of DeviceClass snapdControl - - - - - status - The name of the ParamType of StateType (4987aca3-3916-4cb3-938f-df6c99d04dbf) of DeviceClass snapdControl - - - - - channel - The name of the ParamType of StateType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) of DeviceClass snap - - - - - version - The name of the ParamType of StateType (532a95f3-db29-427e-bb32-d5a22029e586) of DeviceClass snap - - - - - revision - The name of the ParamType of StateType (f26a6404-e011-11e7-9224-2350048461eb) of DeviceClass snap - - - - + Last automatic system update time changed The name of the autocreated EventType (c671545a-6bde-4c08-8e37-0d256841a3a5) Letztes automatisches Systemupdate geändert - + + Last automatic system update + The name of the ParamType of the autocreated EventType (c671545a-6bde-4c08-8e37-0d256841a3a5) of DeviceClass snapdControl + + + + Next automatic system update time changed The name of the autocreated EventType (122c2423-a1d9-400f-80f8-b1f798975914) Nächstes automatisches Systemupdate geändert - + + Next automatic system update + The name of the ParamType of the autocreated EventType (122c2423-a1d9-400f-80f8-b1f798975914) of DeviceClass snapdControl + + + + + Status + The name of the ParamType of the autocreated EventType (4987aca3-3916-4cb3-938f-df6c99d04dbf) of DeviceClass snapdControl + + + + ID The name of the paramType (9afb98fb-f717-4f4c-8009-1a6514054c5f) of snap ID - + Summary The name of the paramType (12b9a65f-970b-49b5-b1d0-1625fc6d8758) of snap Zusammenfassung - + Description The name of the paramType (fe24c61b-e154-4259-b7ca-6f0602e9d1c3) of snap Beschreibung - + Developer The name of the paramType (76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5) of snap Entwickler - + + + Channel + The name of the ParamType of the autocreated EventType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) of DeviceClass snap +---------- +The name of the autocreated ParamType of the writable StateType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) of DeviceClass snap + + + + Set channel The name of the autocreated ActionType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) Setze Kanal - + Version changed The name of the autocreated EventType (532a95f3-db29-427e-bb32-d5a22029e586) Version geändert - + + Version + The name of the ParamType of the autocreated EventType (532a95f3-db29-427e-bb32-d5a22029e586) of DeviceClass snap + + + + Revision changed The name of the autocreated EventType (f26a6404-e011-11e7-9224-2350048461eb) Revision geändert - + + Revision + The name of the ParamType of the autocreated EventType (f26a6404-e011-11e7-9224-2350048461eb) of DeviceClass snap + + + + Rollback to previous version The name of the ActionType e061dee6-62fc-45cc-9c9f-403c2be52939 of deviceClass snap Zurücksetzen auf vorhergehende Version - + Start update The name of the ActionType 45626b75-f09d-4dd1-b6c4-ee33201b47b0 of deviceClass snapdControl Starte Systemupdate - + Update manager The name of the DeviceClass (d90cda58-4d8c-4b7f-a982-38e56a95b72a) Update Manager - + Update manager available changed The name of the autocreated EventType (6b662b3e-fd12-4f24-be77-aec066f16d8c) Update Manager Verfügbarkeit geändert - + + Update manager available + The name of the ParamType of the autocreated EventType (6b662b3e-fd12-4f24-be77-aec066f16d8c) of DeviceClass snapdControl + + + + + System update available + The name of the ParamType of the autocreated EventType (a6b1d24b-d523-4516-9bce-5b467e5e09b2) of DeviceClass snapdControl + + + + + System update running + The name of the ParamType of the autocreated EventType (01ca7a22-5607-4c5e-a465-a2ae7e8b529c) of DeviceClass snapdControl + + + + Snap The name of the DeviceClass (ff0840d7-fcfc-4403-9d9f-301610d5a437) Snap - + System update running changed The name of the autocreated EventType (01ca7a22-5607-4c5e-a465-a2ae7e8b529c) Systemupdate aktiv geändert - + Status changed The name of the autocreated EventType (4987aca3-3916-4cb3-938f-df6c99d04dbf) Status geändert - + Name The name of the paramType (4f38614d-8be0-48dc-a24d-cee9ff1f2a89) of snap Name - + Channel changed The name of the autocreated EventType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) Kanal geändert - + Check for updates The name of the ActionType 4738f2c9-666e-45b9-91d3-7bcbf722b669 of deviceClass snapdControl Nach Aktualisierungen suchen diff --git a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts index 28c8dbec..f386b650 100644 --- a/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts +++ b/snapd/translations/b82bce59-59bf-48b3-b781-54a6f45800f3-en_US.ts @@ -4,199 +4,202 @@ Snapd - + Snapd The name of the plugin Snapd (b82bce59-59bf-48b3-b781-54a6f45800f3) - + Advanced mode - The name of the paramType (017fe4c5-fc41-41fe-8e67-08fdaccb89ea) of Snapd + The name of the paramType (017fe4c5-fc41-41fe-8e67-08fdaccb89ea) of snapd - + Automatic daily refresh schedule - The name of the paramType (d2e697d1-9a68-4666-bf40-8d70fa694eec) of Snapd + The name of the paramType (d2e697d1-9a68-4666-bf40-8d70fa694eec) of snapd - + Canonical The name of the vendor (60582ddf-32ea-4fcd-a6f2-f3beaaf21517) - - snapdAvailable - The name of the ParamType of StateType (6b662b3e-fd12-4f24-be77-aec066f16d8c) of DeviceClass snapdControl - - - - + System update available changed The name of the autocreated EventType (a6b1d24b-d523-4516-9bce-5b467e5e09b2) - - updateAvailable - The name of the ParamType of StateType (a6b1d24b-d523-4516-9bce-5b467e5e09b2) of DeviceClass snapdControl - - - - - updateRunning - The name of the ParamType of StateType (01ca7a22-5607-4c5e-a465-a2ae7e8b529c) of DeviceClass snapdControl - - - - - lastUpdateTime - The name of the ParamType of StateType (c671545a-6bde-4c08-8e37-0d256841a3a5) of DeviceClass snapdControl - - - - - nextUpdateTime - The name of the ParamType of StateType (122c2423-a1d9-400f-80f8-b1f798975914) of DeviceClass snapdControl - - - - - status - The name of the ParamType of StateType (4987aca3-3916-4cb3-938f-df6c99d04dbf) of DeviceClass snapdControl - - - - - channel - The name of the ParamType of StateType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) of DeviceClass snap - - - - - version - The name of the ParamType of StateType (532a95f3-db29-427e-bb32-d5a22029e586) of DeviceClass snap - - - - - revision - The name of the ParamType of StateType (f26a6404-e011-11e7-9224-2350048461eb) of DeviceClass snap - - - - + Last automatic system update time changed The name of the autocreated EventType (c671545a-6bde-4c08-8e37-0d256841a3a5) - + + Last automatic system update + The name of the ParamType of the autocreated EventType (c671545a-6bde-4c08-8e37-0d256841a3a5) of DeviceClass snapdControl + + + + Next automatic system update time changed The name of the autocreated EventType (122c2423-a1d9-400f-80f8-b1f798975914) - + + Next automatic system update + The name of the ParamType of the autocreated EventType (122c2423-a1d9-400f-80f8-b1f798975914) of DeviceClass snapdControl + + + + + Status + The name of the ParamType of the autocreated EventType (4987aca3-3916-4cb3-938f-df6c99d04dbf) of DeviceClass snapdControl + + + + ID The name of the paramType (9afb98fb-f717-4f4c-8009-1a6514054c5f) of snap - + Summary The name of the paramType (12b9a65f-970b-49b5-b1d0-1625fc6d8758) of snap - + Description The name of the paramType (fe24c61b-e154-4259-b7ca-6f0602e9d1c3) of snap - + Developer The name of the paramType (76ead9c5-0a18-40a2-b31d-f6bb6dfea0a5) of snap - + + + Channel + The name of the ParamType of the autocreated EventType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) of DeviceClass snap +---------- +The name of the autocreated ParamType of the writable StateType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) of DeviceClass snap + + + + Set channel The name of the autocreated ActionType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) - + Version changed The name of the autocreated EventType (532a95f3-db29-427e-bb32-d5a22029e586) - + + Version + The name of the ParamType of the autocreated EventType (532a95f3-db29-427e-bb32-d5a22029e586) of DeviceClass snap + + + + Revision changed The name of the autocreated EventType (f26a6404-e011-11e7-9224-2350048461eb) - + + Revision + The name of the ParamType of the autocreated EventType (f26a6404-e011-11e7-9224-2350048461eb) of DeviceClass snap + + + + Rollback to previous version The name of the ActionType e061dee6-62fc-45cc-9c9f-403c2be52939 of deviceClass snap - + Start update The name of the ActionType 45626b75-f09d-4dd1-b6c4-ee33201b47b0 of deviceClass snapdControl - + Update manager The name of the DeviceClass (d90cda58-4d8c-4b7f-a982-38e56a95b72a) - + Update manager available changed The name of the autocreated EventType (6b662b3e-fd12-4f24-be77-aec066f16d8c) - + + Update manager available + The name of the ParamType of the autocreated EventType (6b662b3e-fd12-4f24-be77-aec066f16d8c) of DeviceClass snapdControl + + + + + System update available + The name of the ParamType of the autocreated EventType (a6b1d24b-d523-4516-9bce-5b467e5e09b2) of DeviceClass snapdControl + + + + + System update running + The name of the ParamType of the autocreated EventType (01ca7a22-5607-4c5e-a465-a2ae7e8b529c) of DeviceClass snapdControl + + + + Snap The name of the DeviceClass (ff0840d7-fcfc-4403-9d9f-301610d5a437) - + System update running changed The name of the autocreated EventType (01ca7a22-5607-4c5e-a465-a2ae7e8b529c) - + Status changed The name of the autocreated EventType (4987aca3-3916-4cb3-938f-df6c99d04dbf) - + Name The name of the paramType (4f38614d-8be0-48dc-a24d-cee9ff1f2a89) of snap - + Channel changed The name of the autocreated EventType (7be2b61e-3f59-4b92-b2bb-50d027bb92ff) - + Check for updates The name of the ActionType 4738f2c9-666e-45b9-91d3-7bcbf722b669 of deviceClass snapdControl diff --git a/tcpcommander/translations/741b7b0a-0c9c-4c93-be99-0d0bcf5a4643-de_DE.ts b/tcpcommander/translations/741b7b0a-0c9c-4c93-be99-0d0bcf5a4643-de_DE.ts index a312b3e5..0dd4a694 100644 --- a/tcpcommander/translations/741b7b0a-0c9c-4c93-be99-0d0bcf5a4643-de_DE.ts +++ b/tcpcommander/translations/741b7b0a-0c9c-4c93-be99-0d0bcf5a4643-de_DE.ts @@ -5,7 +5,7 @@ TCPCommander - TCPCommander + tcp commander The name of the plugin TCPCommander (741b7b0a-0c9c-4c93-be99-0d0bcf5a4643) @@ -47,9 +47,9 @@ The name of the paramType (bee8b151-815a-4159-9d8a-42b76e99b42c) of tcpInput connected - The name of the ParamType of StateType (725b541a-9e0c-4634-81eb-e415c0b8f025) of DeviceClass tcpOutput + The name of the ParamType of the autocreated EventType (725b541a-9e0c-4634-81eb-e415c0b8f025) of DeviceClass tcpOutput ---------- -The name of the ParamType of StateType (725b541a-9e0c-4634-81eb-e415c0b8f025) of DeviceClass tcpInput +The name of the ParamType of the autocreated EventType (725b541a-9e0c-4634-81eb-e415c0b8f025) of DeviceClass tcpInput @@ -90,8 +90,8 @@ The name of the ParamType of StateType (725b541a-9e0c-4634-81eb-e415c0b8f025) of - dataReceived - The name of the ParamType of StateType (b98fdacc-59d7-41c4-b790-1fdca50dfb22) of DeviceClass tcpInput + Data Received + The name of the ParamType of the autocreated EventType (b98fdacc-59d7-41c4-b790-1fdca50dfb22) of DeviceClass tcpInput diff --git a/tcpcommander/translations/741b7b0a-0c9c-4c93-be99-0d0bcf5a4643-en_US.ts b/tcpcommander/translations/741b7b0a-0c9c-4c93-be99-0d0bcf5a4643-en_US.ts index e1f621c5..0b463175 100644 --- a/tcpcommander/translations/741b7b0a-0c9c-4c93-be99-0d0bcf5a4643-en_US.ts +++ b/tcpcommander/translations/741b7b0a-0c9c-4c93-be99-0d0bcf5a4643-en_US.ts @@ -5,7 +5,7 @@ TCPCommander - TCPCommander + tcp commander The name of the plugin TCPCommander (741b7b0a-0c9c-4c93-be99-0d0bcf5a4643) @@ -47,9 +47,9 @@ The name of the paramType (bee8b151-815a-4159-9d8a-42b76e99b42c) of tcpInput connected - The name of the ParamType of StateType (725b541a-9e0c-4634-81eb-e415c0b8f025) of DeviceClass tcpOutput + The name of the ParamType of the autocreated EventType (725b541a-9e0c-4634-81eb-e415c0b8f025) of DeviceClass tcpOutput ---------- -The name of the ParamType of StateType (725b541a-9e0c-4634-81eb-e415c0b8f025) of DeviceClass tcpInput +The name of the ParamType of the autocreated EventType (725b541a-9e0c-4634-81eb-e415c0b8f025) of DeviceClass tcpInput @@ -90,8 +90,8 @@ The name of the ParamType of StateType (725b541a-9e0c-4634-81eb-e415c0b8f025) of - dataReceived - The name of the ParamType of StateType (b98fdacc-59d7-41c4-b790-1fdca50dfb22) of DeviceClass tcpInput + Data Received + The name of the ParamType of the autocreated EventType (b98fdacc-59d7-41c4-b790-1fdca50dfb22) of DeviceClass tcpInput diff --git a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts index 3e5ec45d..207e3732 100644 --- a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts +++ b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-de_DE.ts @@ -4,15 +4,12 @@ UdpCommander + UDP Commander - The name of the DeviceClass (31b00639-8904-4522-84ed-54c46a54c63c) - - - - - UdpCommander - The name of the plugin UdpCommander (24a8474c-1d86-499e-a76e-9cbfbf48dd72) + The name of the plugin UdpCommander (24a8474c-1d86-499e-a76e-9cbfbf48dd72) +---------- +The name of the DeviceClass (31b00639-8904-4522-84ed-54c46a54c63c) @@ -50,8 +47,8 @@ The name of the paramType (eb204dfe-11f8-413f-8b68-8bffef3f9a7f) of udpCommander - inputData - The name of the ParamType of StateType (065a1a0a-d324-4ae6-a461-bef8143e8795) of DeviceClass udpReceiver + Received data + The name of the ParamType of the autocreated EventType (065a1a0a-d324-4ae6-a461-bef8143e8795) of DeviceClass udpReceiver diff --git a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts index e771ec41..fb0f1893 100644 --- a/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts +++ b/udpcommander/translations/24a8474c-1d86-499e-a76e-9cbfbf48dd72-en_US.ts @@ -4,15 +4,12 @@ UdpCommander + UDP Commander - The name of the DeviceClass (31b00639-8904-4522-84ed-54c46a54c63c) - - - - - UdpCommander - The name of the plugin UdpCommander (24a8474c-1d86-499e-a76e-9cbfbf48dd72) + The name of the plugin UdpCommander (24a8474c-1d86-499e-a76e-9cbfbf48dd72) +---------- +The name of the DeviceClass (31b00639-8904-4522-84ed-54c46a54c63c) @@ -50,8 +47,8 @@ The name of the paramType (eb204dfe-11f8-413f-8b68-8bffef3f9a7f) of udpCommander - inputData - The name of the ParamType of StateType (065a1a0a-d324-4ae6-a461-bef8143e8795) of DeviceClass udpReceiver + Received data + The name of the ParamType of the autocreated EventType (065a1a0a-d324-4ae6-a461-bef8143e8795) of DeviceClass udpReceiver diff --git a/usbwde/translations/b01bc368-d674-41ef-a368-6b6a76c96365-de_DE.ts b/usbwde/translations/b01bc368-d674-41ef-a368-6b6a76c96365-de_DE.ts index eb5195f3..8b64dee1 100644 --- a/usbwde/translations/b01bc368-d674-41ef-a368-6b6a76c96365-de_DE.ts +++ b/usbwde/translations/b01bc368-d674-41ef-a368-6b6a76c96365-de_DE.ts @@ -4,9 +4,12 @@ UsbWde + USB WDE - The name of the DeviceClass (20e1b650-41d1-41b7-891f-1e68130d1403) + The name of the plugin UsbWde (b01bc368-d674-41ef-a368-6b6a76c96365) +---------- +The name of the DeviceClass (20e1b650-41d1-41b7-891f-1e68130d1403) @@ -15,12 +18,6 @@ The name of the vendor (55500c7c-9b09-4462-8d71-e5b4b42f6940) - - - UsbWde - The name of the plugin UsbWde (b01bc368-d674-41ef-a368-6b6a76c96365) - - @@ -70,28 +67,10 @@ The name of the paramType (fc611e60-d975-4d1f-9977-19d2b90c3838) of windRainSens - lastUpdate - The name of the ParamType of StateType (046e5ffe-7d75-4a8a-ac0a-9310814a800e) of DeviceClass temperatureSensor + last update + The name of the ParamType of the autocreated EventType (046e5ffe-7d75-4a8a-ac0a-9310814a800e) of DeviceClass temperatureSensor ---------- -The name of the ParamType of StateType (046e5ffe-7d75-4a8a-ac0a-9310814a800e) of DeviceClass windRainSensor - - - - - windStrength - The name of the ParamType of StateType (8e058c13-b5bf-4558-b24e-e3197ba7a9de) of DeviceClass windRainSensor - - - - - rainStrength - The name of the ParamType of StateType (a6116ea9-1db9-4071-9daf-ae79aab62375) of DeviceClass windRainSensor - - - - - isRain - The name of the ParamType of StateType (a9660178-926b-4f86-9593-67678b337039) of DeviceClass windRainSensor +The name of the ParamType of the autocreated EventType (046e5ffe-7d75-4a8a-ac0a-9310814a800e) of DeviceClass windRainSensor @@ -105,9 +84,9 @@ The name of the ParamType of StateType (046e5ffe-7d75-4a8a-ac0a-9310814a800e) of temperature - The name of the ParamType of StateType (0023a9c1-0d84-499d-88c4-c06b6d793e27) of DeviceClass temperatureSensor + The name of the ParamType of the autocreated EventType (0023a9c1-0d84-499d-88c4-c06b6d793e27) of DeviceClass temperatureSensor ---------- -The name of the ParamType of StateType (0023a9c1-0d84-499d-88c4-c06b6d793e27) of DeviceClass windRainSensor +The name of the ParamType of the autocreated EventType (0023a9c1-0d84-499d-88c4-c06b6d793e27) of DeviceClass windRainSensor @@ -121,9 +100,9 @@ The name of the ParamType of StateType (0023a9c1-0d84-499d-88c4-c06b6d793e27) of humidity - The name of the ParamType of StateType (452400e8-89ac-4419-94a8-d6eeb97f694d) of DeviceClass temperatureSensor + The name of the ParamType of the autocreated EventType (452400e8-89ac-4419-94a8-d6eeb97f694d) of DeviceClass temperatureSensor ---------- -The name of the ParamType of StateType (452400e8-89ac-4419-94a8-d6eeb97f694d) of DeviceClass windRainSensor +The name of the ParamType of the autocreated EventType (452400e8-89ac-4419-94a8-d6eeb97f694d) of DeviceClass windRainSensor @@ -138,17 +117,35 @@ The name of the ParamType of StateType (452400e8-89ac-4419-94a8-d6eeb97f694d) of The name of the autocreated EventType (8e058c13-b5bf-4558-b24e-e3197ba7a9de) + + + wind strength + The name of the ParamType of the autocreated EventType (8e058c13-b5bf-4558-b24e-e3197ba7a9de) of DeviceClass windRainSensor + + rain strength changed The name of the autocreated EventType (a6116ea9-1db9-4071-9daf-ae79aab62375) + + + rain strength + The name of the ParamType of the autocreated EventType (a6116ea9-1db9-4071-9daf-ae79aab62375) of DeviceClass windRainSensor + + is raining changed The name of the autocreated EventType (a9660178-926b-4f86-9593-67678b337039) + + + is raining + The name of the ParamType of the autocreated EventType (a9660178-926b-4f86-9593-67678b337039) of DeviceClass windRainSensor + + diff --git a/usbwde/translations/b01bc368-d674-41ef-a368-6b6a76c96365-en_US.ts b/usbwde/translations/b01bc368-d674-41ef-a368-6b6a76c96365-en_US.ts index b830835d..a31b4d2c 100644 --- a/usbwde/translations/b01bc368-d674-41ef-a368-6b6a76c96365-en_US.ts +++ b/usbwde/translations/b01bc368-d674-41ef-a368-6b6a76c96365-en_US.ts @@ -4,9 +4,12 @@ UsbWde + USB WDE - The name of the DeviceClass (20e1b650-41d1-41b7-891f-1e68130d1403) + The name of the plugin UsbWde (b01bc368-d674-41ef-a368-6b6a76c96365) +---------- +The name of the DeviceClass (20e1b650-41d1-41b7-891f-1e68130d1403) @@ -15,12 +18,6 @@ The name of the vendor (55500c7c-9b09-4462-8d71-e5b4b42f6940) - - - UsbWde - The name of the plugin UsbWde (b01bc368-d674-41ef-a368-6b6a76c96365) - - @@ -70,28 +67,10 @@ The name of the paramType (fc611e60-d975-4d1f-9977-19d2b90c3838) of windRainSens - lastUpdate - The name of the ParamType of StateType (046e5ffe-7d75-4a8a-ac0a-9310814a800e) of DeviceClass temperatureSensor + last update + The name of the ParamType of the autocreated EventType (046e5ffe-7d75-4a8a-ac0a-9310814a800e) of DeviceClass temperatureSensor ---------- -The name of the ParamType of StateType (046e5ffe-7d75-4a8a-ac0a-9310814a800e) of DeviceClass windRainSensor - - - - - windStrength - The name of the ParamType of StateType (8e058c13-b5bf-4558-b24e-e3197ba7a9de) of DeviceClass windRainSensor - - - - - rainStrength - The name of the ParamType of StateType (a6116ea9-1db9-4071-9daf-ae79aab62375) of DeviceClass windRainSensor - - - - - isRain - The name of the ParamType of StateType (a9660178-926b-4f86-9593-67678b337039) of DeviceClass windRainSensor +The name of the ParamType of the autocreated EventType (046e5ffe-7d75-4a8a-ac0a-9310814a800e) of DeviceClass windRainSensor @@ -105,9 +84,9 @@ The name of the ParamType of StateType (046e5ffe-7d75-4a8a-ac0a-9310814a800e) of temperature - The name of the ParamType of StateType (0023a9c1-0d84-499d-88c4-c06b6d793e27) of DeviceClass temperatureSensor + The name of the ParamType of the autocreated EventType (0023a9c1-0d84-499d-88c4-c06b6d793e27) of DeviceClass temperatureSensor ---------- -The name of the ParamType of StateType (0023a9c1-0d84-499d-88c4-c06b6d793e27) of DeviceClass windRainSensor +The name of the ParamType of the autocreated EventType (0023a9c1-0d84-499d-88c4-c06b6d793e27) of DeviceClass windRainSensor @@ -121,9 +100,9 @@ The name of the ParamType of StateType (0023a9c1-0d84-499d-88c4-c06b6d793e27) of humidity - The name of the ParamType of StateType (452400e8-89ac-4419-94a8-d6eeb97f694d) of DeviceClass temperatureSensor + The name of the ParamType of the autocreated EventType (452400e8-89ac-4419-94a8-d6eeb97f694d) of DeviceClass temperatureSensor ---------- -The name of the ParamType of StateType (452400e8-89ac-4419-94a8-d6eeb97f694d) of DeviceClass windRainSensor +The name of the ParamType of the autocreated EventType (452400e8-89ac-4419-94a8-d6eeb97f694d) of DeviceClass windRainSensor @@ -138,17 +117,35 @@ The name of the ParamType of StateType (452400e8-89ac-4419-94a8-d6eeb97f694d) of The name of the autocreated EventType (8e058c13-b5bf-4558-b24e-e3197ba7a9de) + + + wind strength + The name of the ParamType of the autocreated EventType (8e058c13-b5bf-4558-b24e-e3197ba7a9de) of DeviceClass windRainSensor + + rain strength changed The name of the autocreated EventType (a6116ea9-1db9-4071-9daf-ae79aab62375) + + + rain strength + The name of the ParamType of the autocreated EventType (a6116ea9-1db9-4071-9daf-ae79aab62375) of DeviceClass windRainSensor + + is raining changed The name of the autocreated EventType (a9660178-926b-4f86-9593-67678b337039) + + + is raining + The name of the ParamType of the autocreated EventType (a9660178-926b-4f86-9593-67678b337039) of DeviceClass windRainSensor + + diff --git a/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-de_DE.ts b/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-de_DE.ts index 5735cb7e..8b79a5a9 100644 --- a/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-de_DE.ts +++ b/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-de_DE.ts @@ -5,7 +5,7 @@ WakeOnLan - WakeOnLan + Wake on Lan The name of the plugin WakeOnLan (b5a87848-de56-451e-84a6-edd26ad4958f) diff --git a/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-en_US.ts b/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-en_US.ts index a2a3d79e..2087bf05 100644 --- a/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-en_US.ts +++ b/wakeonlan/translations/b5a87848-de56-451e-84a6-edd26ad4958f-en_US.ts @@ -5,7 +5,7 @@ WakeOnLan - WakeOnLan + Wake on Lan The name of the plugin WakeOnLan (b5a87848-de56-451e-84a6-edd26ad4958f) diff --git a/wemo/translations/2e3b5ce0-ecf1-43de-98f0-07df4068a583-de_DE.ts b/wemo/translations/2e3b5ce0-ecf1-43de-98f0-07df4068a583-de_DE.ts index 0ef9b113..bf99052d 100644 --- a/wemo/translations/2e3b5ce0-ecf1-43de-98f0-07df4068a583-de_DE.ts +++ b/wemo/translations/2e3b5ce0-ecf1-43de-98f0-07df4068a583-de_DE.ts @@ -4,75 +4,78 @@ Wemo - + Wemo The name of the plugin Wemo (2e3b5ce0-ecf1-43de-98f0-07df4068a583) - + Belkin The name of the vendor (b241f7f5-8153-4a72-b260-f62beadc2d19) - + WeMo Switch The name of the DeviceClass (69d97d3b-a8e6-42f3-afc0-ca8a53eb7cce) - + name The name of the paramType (50d2236d-b73a-4d7b-ac8a-34c6566e6543) of wemoSwitch - + host address The name of the paramType (84ed399c-edb0-40da-8e2f-86eefc5790eb) of wemoSwitch - + port The name of the paramType (2d30eb6b-08cf-4d34-aeb5-fb441bb2291a) of wemoSwitch - + serial number The name of the paramType (93e1a45a-b8b9-48a7-869e-ad07550a1951) of wemoSwitch - + power changed The name of the autocreated EventType (7166c4f6-f68c-4188-8f7c-2205d72a5a6d) - + + power - The name of the ParamType of StateType (7166c4f6-f68c-4188-8f7c-2205d72a5a6d) of DeviceClass wemoSwitch + The name of the ParamType of the autocreated EventType (7166c4f6-f68c-4188-8f7c-2205d72a5a6d) of DeviceClass wemoSwitch +---------- +The name of the autocreated ParamType of the writable StateType (7166c4f6-f68c-4188-8f7c-2205d72a5a6d) of DeviceClass wemoSwitch - + Set power The name of the autocreated ActionType (7166c4f6-f68c-4188-8f7c-2205d72a5a6d) - + reachable changed The name of the autocreated EventType (ec2f5b49-585c-4455-a233-b7aa4c608dbc) - + reachable - The name of the ParamType of StateType (ec2f5b49-585c-4455-a233-b7aa4c608dbc) of DeviceClass wemoSwitch + The name of the ParamType of the autocreated EventType (ec2f5b49-585c-4455-a233-b7aa4c608dbc) of DeviceClass wemoSwitch diff --git a/wemo/translations/2e3b5ce0-ecf1-43de-98f0-07df4068a583-en_US.ts b/wemo/translations/2e3b5ce0-ecf1-43de-98f0-07df4068a583-en_US.ts index 7e3eedb4..f0372279 100644 --- a/wemo/translations/2e3b5ce0-ecf1-43de-98f0-07df4068a583-en_US.ts +++ b/wemo/translations/2e3b5ce0-ecf1-43de-98f0-07df4068a583-en_US.ts @@ -4,75 +4,78 @@ Wemo - + Wemo The name of the plugin Wemo (2e3b5ce0-ecf1-43de-98f0-07df4068a583) - + Belkin The name of the vendor (b241f7f5-8153-4a72-b260-f62beadc2d19) - + WeMo Switch The name of the DeviceClass (69d97d3b-a8e6-42f3-afc0-ca8a53eb7cce) - + name The name of the paramType (50d2236d-b73a-4d7b-ac8a-34c6566e6543) of wemoSwitch - + host address The name of the paramType (84ed399c-edb0-40da-8e2f-86eefc5790eb) of wemoSwitch - + port The name of the paramType (2d30eb6b-08cf-4d34-aeb5-fb441bb2291a) of wemoSwitch - + serial number The name of the paramType (93e1a45a-b8b9-48a7-869e-ad07550a1951) of wemoSwitch - + power changed The name of the autocreated EventType (7166c4f6-f68c-4188-8f7c-2205d72a5a6d) - + + power - The name of the ParamType of StateType (7166c4f6-f68c-4188-8f7c-2205d72a5a6d) of DeviceClass wemoSwitch + The name of the ParamType of the autocreated EventType (7166c4f6-f68c-4188-8f7c-2205d72a5a6d) of DeviceClass wemoSwitch +---------- +The name of the autocreated ParamType of the writable StateType (7166c4f6-f68c-4188-8f7c-2205d72a5a6d) of DeviceClass wemoSwitch - + Set power The name of the autocreated ActionType (7166c4f6-f68c-4188-8f7c-2205d72a5a6d) - + reachable changed The name of the autocreated EventType (ec2f5b49-585c-4455-a233-b7aa4c608dbc) - + reachable - The name of the ParamType of StateType (ec2f5b49-585c-4455-a233-b7aa4c608dbc) of DeviceClass wemoSwitch + The name of the ParamType of the autocreated EventType (ec2f5b49-585c-4455-a233-b7aa4c608dbc) of DeviceClass wemoSwitch diff --git a/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-de_DE.ts b/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-de_DE.ts index ac26c28b..5ac5930c 100644 --- a/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-de_DE.ts +++ b/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-de_DE.ts @@ -4,199 +4,220 @@ Ws2812 - + + WS2812 - The name of the DeviceClass (3142db46-5c6f-42d6-9001-753150763385) + The name of the plugin Ws2812 (60b68c75-3261-4bf1-8912-798d2d3bbd3b) +---------- +The name of the DeviceClass (3142db46-5c6f-42d6-9001-753150763385) - + RPL address - The name of the paramType (0a2898cb-ca36-4c6e-8418-993c1d9df434) of Ws2812 + The name of the paramType (0a2898cb-ca36-4c6e-8418-993c1d9df434) of ws2812 - - Ws2812 - The name of the plugin Ws2812 (60b68c75-3261-4bf1-8912-798d2d3bbd3b) - - - - + host The name of the paramType (ccf1f6b1-54c4-46c1-b978-6abcf3fad882) of ws2812 - + battery voltage changed The name of the autocreated EventType (c9f6042f-1193-4075-94b1-37b29641ec24) - - battery - The name of the ParamType of StateType (c9f6042f-1193-4075-94b1-37b29641ec24) of DeviceClass ws2812 - - - - - effectColor - The name of the ParamType of StateType (8a73c60a-1da9-4228-8dba-2ffccc6531a6) of DeviceClass ws2812 - - - - - maxPix - The name of the ParamType of StateType (ac372b72-c2ae-4f0f-9fca-bd7cf654603a) of DeviceClass ws2812 - - - - - effectMode - The name of the ParamType of StateType (f4fe5d31-1edb-4944-9ddb-c89e7da8bee7) of DeviceClass ws2812 - - - - - tcolor1 - The name of the ParamType of StateType (8fe2e42a-7b9d-4c76-ae77-355759c81350) of DeviceClass ws2812 - - - - - tcolor2 - The name of the ParamType of StateType (dd4ad65b-007a-4eae-8ce0-b76d6cbf093e) of DeviceClass ws2812 - - - - - tcolor3 - The name of the ParamType of StateType (97c83be0-7ba7-4758-b52b-d997a80bfbe5) of DeviceClass ws2812 - - - - + reachable changed The name of the autocreated EventType (08091cde-983d-42f7-bdd7-d89c312ccbed) - + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - reachable - The name of the ParamType of StateType (08091cde-983d-42f7-bdd7-d89c312ccbed) of DeviceClass ws2812 + + battery voltage + The name of the ParamType of the autocreated EventType (c9f6042f-1193-4075-94b1-37b29641ec24) of DeviceClass ws2812 - + + reachable + The name of the ParamType of the autocreated EventType (08091cde-983d-42f7-bdd7-d89c312ccbed) of DeviceClass ws2812 + + + + color changed The name of the autocreated EventType (8a73c60a-1da9-4228-8dba-2ffccc6531a6) - + + + color + The name of the ParamType of the autocreated EventType (8a73c60a-1da9-4228-8dba-2ffccc6531a6) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (8a73c60a-1da9-4228-8dba-2ffccc6531a6) of DeviceClass ws2812 + + + + set color The name of the autocreated ActionType (8a73c60a-1da9-4228-8dba-2ffccc6531a6) - + brightness changed The name of the autocreated EventType (01da8dbc-1ac8-4d18-bc17-fc4b4c591693) - + + brightness - The name of the ParamType of StateType (01da8dbc-1ac8-4d18-bc17-fc4b4c591693) of DeviceClass ws2812 + The name of the ParamType of the autocreated EventType (01da8dbc-1ac8-4d18-bc17-fc4b4c591693) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (01da8dbc-1ac8-4d18-bc17-fc4b4c591693) of DeviceClass ws2812 - + set brightness The name of the autocreated ActionType (01da8dbc-1ac8-4d18-bc17-fc4b4c591693) - + leds changed The name of the autocreated EventType (ac372b72-c2ae-4f0f-9fca-bd7cf654603a) - + + + leds + The name of the ParamType of the autocreated EventType (ac372b72-c2ae-4f0f-9fca-bd7cf654603a) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (ac372b72-c2ae-4f0f-9fca-bd7cf654603a) of DeviceClass ws2812 + + + + set leds The name of the autocreated ActionType (ac372b72-c2ae-4f0f-9fca-bd7cf654603a) - + speed changed The name of the autocreated EventType (e53ae524-ca10-49c5-b530-e414779ecc1d) - + + speed - The name of the ParamType of StateType (e53ae524-ca10-49c5-b530-e414779ecc1d) of DeviceClass ws2812 + The name of the ParamType of the autocreated EventType (e53ae524-ca10-49c5-b530-e414779ecc1d) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (e53ae524-ca10-49c5-b530-e414779ecc1d) of DeviceClass ws2812 - + set speed The name of the autocreated ActionType (e53ae524-ca10-49c5-b530-e414779ecc1d) - + effect mode changed The name of the autocreated EventType (f4fe5d31-1edb-4944-9ddb-c89e7da8bee7) - + + + effect mode + The name of the ParamType of the autocreated EventType (f4fe5d31-1edb-4944-9ddb-c89e7da8bee7) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (f4fe5d31-1edb-4944-9ddb-c89e7da8bee7) of DeviceClass ws2812 + + + + set effect mode The name of the autocreated ActionType (f4fe5d31-1edb-4944-9ddb-c89e7da8bee7) - + tricolore color 1 changed The name of the autocreated EventType (8fe2e42a-7b9d-4c76-ae77-355759c81350) - + + + tricolore color 1 + The name of the ParamType of the autocreated EventType (8fe2e42a-7b9d-4c76-ae77-355759c81350) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (8fe2e42a-7b9d-4c76-ae77-355759c81350) of DeviceClass ws2812 + + + + set tricolore color 1 The name of the autocreated ActionType (8fe2e42a-7b9d-4c76-ae77-355759c81350) - + tricolore color 2 changed The name of the autocreated EventType (dd4ad65b-007a-4eae-8ce0-b76d6cbf093e) - + + + tricolore color 2 + The name of the ParamType of the autocreated EventType (dd4ad65b-007a-4eae-8ce0-b76d6cbf093e) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (dd4ad65b-007a-4eae-8ce0-b76d6cbf093e) of DeviceClass ws2812 + + + + set tricolore color 2 The name of the autocreated ActionType (dd4ad65b-007a-4eae-8ce0-b76d6cbf093e) - + tricolore color 3 changed The name of the autocreated EventType (97c83be0-7ba7-4758-b52b-d997a80bfbe5) - + + + tricolore color 3 + The name of the ParamType of the autocreated EventType (97c83be0-7ba7-4758-b52b-d997a80bfbe5) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (97c83be0-7ba7-4758-b52b-d997a80bfbe5) of DeviceClass ws2812 + + + + set tricolore color 3 The name of the autocreated ActionType (97c83be0-7ba7-4758-b52b-d997a80bfbe5) diff --git a/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-en_US.ts b/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-en_US.ts index 66a2709b..0969672e 100644 --- a/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-en_US.ts +++ b/ws2812/translations/60b68c75-3261-4bf1-8912-798d2d3bbd3b-en_US.ts @@ -4,199 +4,220 @@ Ws2812 - + + WS2812 - The name of the DeviceClass (3142db46-5c6f-42d6-9001-753150763385) + The name of the plugin Ws2812 (60b68c75-3261-4bf1-8912-798d2d3bbd3b) +---------- +The name of the DeviceClass (3142db46-5c6f-42d6-9001-753150763385) - + RPL address - The name of the paramType (0a2898cb-ca36-4c6e-8418-993c1d9df434) of Ws2812 + The name of the paramType (0a2898cb-ca36-4c6e-8418-993c1d9df434) of ws2812 - - Ws2812 - The name of the plugin Ws2812 (60b68c75-3261-4bf1-8912-798d2d3bbd3b) - - - - + host The name of the paramType (ccf1f6b1-54c4-46c1-b978-6abcf3fad882) of ws2812 - + battery voltage changed The name of the autocreated EventType (c9f6042f-1193-4075-94b1-37b29641ec24) - - battery - The name of the ParamType of StateType (c9f6042f-1193-4075-94b1-37b29641ec24) of DeviceClass ws2812 - - - - - effectColor - The name of the ParamType of StateType (8a73c60a-1da9-4228-8dba-2ffccc6531a6) of DeviceClass ws2812 - - - - - maxPix - The name of the ParamType of StateType (ac372b72-c2ae-4f0f-9fca-bd7cf654603a) of DeviceClass ws2812 - - - - - effectMode - The name of the ParamType of StateType (f4fe5d31-1edb-4944-9ddb-c89e7da8bee7) of DeviceClass ws2812 - - - - - tcolor1 - The name of the ParamType of StateType (8fe2e42a-7b9d-4c76-ae77-355759c81350) of DeviceClass ws2812 - - - - - tcolor2 - The name of the ParamType of StateType (dd4ad65b-007a-4eae-8ce0-b76d6cbf093e) of DeviceClass ws2812 - - - - - tcolor3 - The name of the ParamType of StateType (97c83be0-7ba7-4758-b52b-d997a80bfbe5) of DeviceClass ws2812 - - - - + reachable changed The name of the autocreated EventType (08091cde-983d-42f7-bdd7-d89c312ccbed) - + guh GmbH The name of the vendor (2062d64d-3232-433c-88bc-0d33c0ba2ba6) - - reachable - The name of the ParamType of StateType (08091cde-983d-42f7-bdd7-d89c312ccbed) of DeviceClass ws2812 + + battery voltage + The name of the ParamType of the autocreated EventType (c9f6042f-1193-4075-94b1-37b29641ec24) of DeviceClass ws2812 - + + reachable + The name of the ParamType of the autocreated EventType (08091cde-983d-42f7-bdd7-d89c312ccbed) of DeviceClass ws2812 + + + + color changed The name of the autocreated EventType (8a73c60a-1da9-4228-8dba-2ffccc6531a6) - + + + color + The name of the ParamType of the autocreated EventType (8a73c60a-1da9-4228-8dba-2ffccc6531a6) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (8a73c60a-1da9-4228-8dba-2ffccc6531a6) of DeviceClass ws2812 + + + + set color The name of the autocreated ActionType (8a73c60a-1da9-4228-8dba-2ffccc6531a6) - + brightness changed The name of the autocreated EventType (01da8dbc-1ac8-4d18-bc17-fc4b4c591693) - + + brightness - The name of the ParamType of StateType (01da8dbc-1ac8-4d18-bc17-fc4b4c591693) of DeviceClass ws2812 + The name of the ParamType of the autocreated EventType (01da8dbc-1ac8-4d18-bc17-fc4b4c591693) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (01da8dbc-1ac8-4d18-bc17-fc4b4c591693) of DeviceClass ws2812 - + set brightness The name of the autocreated ActionType (01da8dbc-1ac8-4d18-bc17-fc4b4c591693) - + leds changed The name of the autocreated EventType (ac372b72-c2ae-4f0f-9fca-bd7cf654603a) - + + + leds + The name of the ParamType of the autocreated EventType (ac372b72-c2ae-4f0f-9fca-bd7cf654603a) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (ac372b72-c2ae-4f0f-9fca-bd7cf654603a) of DeviceClass ws2812 + + + + set leds The name of the autocreated ActionType (ac372b72-c2ae-4f0f-9fca-bd7cf654603a) - + speed changed The name of the autocreated EventType (e53ae524-ca10-49c5-b530-e414779ecc1d) - + + speed - The name of the ParamType of StateType (e53ae524-ca10-49c5-b530-e414779ecc1d) of DeviceClass ws2812 + The name of the ParamType of the autocreated EventType (e53ae524-ca10-49c5-b530-e414779ecc1d) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (e53ae524-ca10-49c5-b530-e414779ecc1d) of DeviceClass ws2812 - + set speed The name of the autocreated ActionType (e53ae524-ca10-49c5-b530-e414779ecc1d) - + effect mode changed The name of the autocreated EventType (f4fe5d31-1edb-4944-9ddb-c89e7da8bee7) - + + + effect mode + The name of the ParamType of the autocreated EventType (f4fe5d31-1edb-4944-9ddb-c89e7da8bee7) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (f4fe5d31-1edb-4944-9ddb-c89e7da8bee7) of DeviceClass ws2812 + + + + set effect mode The name of the autocreated ActionType (f4fe5d31-1edb-4944-9ddb-c89e7da8bee7) - + tricolore color 1 changed The name of the autocreated EventType (8fe2e42a-7b9d-4c76-ae77-355759c81350) - + + + tricolore color 1 + The name of the ParamType of the autocreated EventType (8fe2e42a-7b9d-4c76-ae77-355759c81350) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (8fe2e42a-7b9d-4c76-ae77-355759c81350) of DeviceClass ws2812 + + + + set tricolore color 1 The name of the autocreated ActionType (8fe2e42a-7b9d-4c76-ae77-355759c81350) - + tricolore color 2 changed The name of the autocreated EventType (dd4ad65b-007a-4eae-8ce0-b76d6cbf093e) - + + + tricolore color 2 + The name of the ParamType of the autocreated EventType (dd4ad65b-007a-4eae-8ce0-b76d6cbf093e) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (dd4ad65b-007a-4eae-8ce0-b76d6cbf093e) of DeviceClass ws2812 + + + + set tricolore color 2 The name of the autocreated ActionType (dd4ad65b-007a-4eae-8ce0-b76d6cbf093e) - + tricolore color 3 changed The name of the autocreated EventType (97c83be0-7ba7-4758-b52b-d997a80bfbe5) - + + + tricolore color 3 + The name of the ParamType of the autocreated EventType (97c83be0-7ba7-4758-b52b-d997a80bfbe5) of DeviceClass ws2812 +---------- +The name of the autocreated ParamType of the writable StateType (97c83be0-7ba7-4758-b52b-d997a80bfbe5) of DeviceClass ws2812 + + + + set tricolore color 3 The name of the autocreated ActionType (97c83be0-7ba7-4758-b52b-d997a80bfbe5)