diff --git a/plugins/deviceplugins/googlemail/deviceplugingooglemail.cpp b/plugins/deviceplugins/googlemail/deviceplugingooglemail.cpp
index b27fc22c..c8d93d2c 100644
--- a/plugins/deviceplugins/googlemail/deviceplugingooglemail.cpp
+++ b/plugins/deviceplugins/googlemail/deviceplugingooglemail.cpp
@@ -16,6 +16,120 @@
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/*!
+ \page googlemail.html
+ \title Google Mail Notification
+
+ \ingroup plugins
+ \ingroup services
+
+ The Google Mail plugin allows you to send a mail notification from your Google mail
+ account by performing an \l{Action}.
+
+ ATTENTION: The password currently will be saved as plain text in the guh configuration file.
+
+ \section1 Examples
+ \section2 Adding a Google Mail Notification service
+ In order to add a Google Mail Notification service you need to configure
+ the "Google Mail login" (user), the password for your Gmail account and the address
+ of the recipient.
+ \code
+ {
+ "id":1,
+ "method":"Devices.AddConfiguredDevice",
+ "params":{
+ "deviceClassId": "{38ed6ffc-f43b-48f8-aea2-8d63cdcad87e}",
+ "deviceParams":{
+ "user":"my.address@gmail.com",
+ "password":"my_secret_password"
+ "sendTo":"recipient@example.com"}
+ }
+ }
+ }
+ \endcode
+ Before the device will be added, the plugin trys to login. If the username or the password
+ are wrong, an error message will be send.
+ \code
+ {
+ "id": 1,
+ "params": {
+ "deviceId": "{0b99ea27-896a-4a23-a044-3f1441f6a9a7}",
+ "errorMessage": "",
+ "success": true
+ },
+ "status": "success"
+ }
+ \endcode
+
+ \section2 Sending a mail notification
+ In order to send a mail notification from a configured Gmail service use following message
+ format.
+ \code
+ {
+ "id":1,
+ "method":"Actions.ExecuteAction",
+ "params":{
+ "actionTypeId": "{fa54f834-34d0-4aaf-b0ab-a165191d39d3}",
+ "deviceId":"{0b99ea27-896a-4a23-a044-3f1441f6a9a7}",
+ "params":{
+ "subject":"GUH notification",
+ "body":"Hello world!"
+ }
+ }
+ }
+ \endcode
+ response...
+ \code
+ {
+ "id": 1,
+ "params": {
+ "errorMessage": "",
+ "success": true
+ },
+ "status": "success"
+ }
+ \endcode
+
+ \section1 Plugin propertys:
+ \section2 Plugin parameters
+ Each configured plugin has following paramters:
+
+ \table
+ \header
+ \li Name
+ \li Description
+ \li Data Type
+ \row
+ \li user
+ \li This parameter holds the username (mail address) for the login
+ \li string
+ \row
+ \li password
+ \li This parameter holds the password for the login
+ \li string
+ \row
+ \li sendTo
+ \li This parameter holds the mail address of the recipient of the notification
+ \li string
+ \endtable
+
+ \section2 Plugin actions:
+ Following list contains all plugin \l{Action}s:
+ \table
+ \header
+ \li Name
+ \li Description
+ \li UUID
+ \row
+ \li sendMail
+ \li This action sends a mail to the recipient address of the configured device
+ with a given subject and text body.
+ \li fa54f834-34d0-4aaf-b0ab-a165191d39d3
+ \endtable
+
+
+*/
+
#include "deviceplugingooglemail.h"
#include "plugin/device.h"
@@ -113,6 +227,7 @@ DeviceManager::DeviceError DevicePluginGoogleMail::executeAction(Device *device,
qDebug() << "execute action " << sendMailActionTypeId.toString();
if(action.actionTypeId() == sendMailActionTypeId){
if(!m_smtpClient->login(device->paramValue("user").toString(), device->paramValue("password").toString())){
+ qDebug() << "ERROR: could nt login for sending mail";
return DeviceManager::DeviceErrorDeviceParameterError;
}
m_smtpClient->sendMail(device->paramValue("user").toString(), device->paramValue("sendTo").toString(), action.param("subject").value().toString(), action.param("body").value().toString());
diff --git a/plugins/deviceplugins/openweathermap/devicepluginopenweathermap.cpp b/plugins/deviceplugins/openweathermap/devicepluginopenweathermap.cpp
index d6fcde96..0b4a3dd6 100644
--- a/plugins/deviceplugins/openweathermap/devicepluginopenweathermap.cpp
+++ b/plugins/deviceplugins/openweathermap/devicepluginopenweathermap.cpp
@@ -23,10 +23,151 @@
\ingroup plugins
\ingroup services
- This plugin gives the possibility to get weather data...
+ This plugin alows you to get the current weather data from \l{http://www.openweathermap.org}.
+ The plugin offers two different search methods: if the user searches for a empty string,
+ the plugin makes an autodetction with the WAN ip and offers the user the found autodetectresult.
+ Otherwise the plugin return the list with the found searchresults.
- \chapter Plugin propertys:
- \section1 Actions
+ \section1 Examples
+ \section2 Autodetect location
+ If you want to autodetect your location dend a discovery request with an empty string.
+ \code
+ {
+ "id":1,
+ "method":"Devices.GetDiscoveredDevices",
+ "params":{
+ "deviceClassId":"985195aa-17ad-4530-88a4-cdd753d747d7",
+ "discoveryParams": {
+ "location":""
+ }
+ }
+ }
+ \endcode
+ response from autodetection...
+ \code
+ {
+ "id": 1,
+ "params": {
+ "deviceDescriptors": [
+ {
+ "description": "AT",
+ "id": "{75607672-5354-428f-a752-910140c22b18}",
+ "title": "Vienna"
+ }
+ ],
+ "errorMessage": "",
+ "success": true
+ },
+ "status": "success"
+ }
+ \endcode
+ \section2 Searching city
+ If you want to search a string send following discovery message:
+ \code
+ {
+ "id":1,
+ "method":"Devices.GetDiscoveredDevices",
+ "params":{
+ "deviceClassId":"985195aa-17ad-4530-88a4-cdd753d747d7",
+ "discoveryParams": {
+ "location":"Vie"
+ }
+ }
+ }
+ \endcode
+ response...
+ \code
+ {
+ "id": 1,
+ "params": {
+ "deviceDescriptors": [
+ {
+ "description": "DE",
+ "id": "{6dc6be43-5bdc-4dbd-bcbf-6f8e1f90000b}",
+ "title": "Viersen"
+ },
+ {
+ "description": "VN",
+ "id": "{af275298-77f1-40b4-843a-d0f3c7aef6bb}",
+ "title": "Viet Tri"
+ },
+ {
+ "description": "DE",
+ "id": "{86a4ab63-41b4-4348-9830-4bf6c87474bf}",
+ "title": "Viernheim"
+ },
+ {
+ "description": "AR",
+ "id": "{3b5f8eea-6159-4375-bd01-1f07de9c3a9d}",
+ "title": "Viedma"
+ },
+ {
+ "description": "FR",
+ "id": "{f3b91f26-3275-4bb4-a594-924202a2124e}",
+ "title": "Vierzon"
+ },
+ {
+ "description": "AT",
+ "id": "{b59d15f7-f52b-43a0-a9c5-a3fa80cbc2bd}",
+ "title": "Vienna"
+ }
+ ],
+ "errorMessage": "",
+ "success": true
+ },
+ "status": "success"
+ }
+ \endcode
+ \section2 Adding a discovered city
+ If you want to add a dicovered city send the add "AddConfiguredDevice" message
+ with the deviceDescriptorId from the searchresult list. In this example the id for Vienna.
+ \code
+ {
+ "id":1,
+ "method":"Devices.AddConfiguredDevice",
+ "params":{
+ "deviceClassId":"985195aa-17ad-4530-88a4-cdd753d747d7",
+ "deviceDescriptorId": "b59d15f7-f52b-43a0-a9c5-a3fa80cbc2bd"
+ }
+ }
+ \endcode
+ response...
+ \code
+ {
+ "id": 1,
+ "params": {
+ "deviceId": "{af0f1958-b901-48da-ad97-d4d64af88cf8}",
+ "errorMessage": "",
+ "success": true
+ },
+ "status": "success"
+ }
+ \endcode
+
+ \section1 Plugin propertys:
+ \section2 Plugin parameters
+ Each configured plugin has following paramters:
+
+ \table
+ \header
+ \li Name
+ \li Description
+ \li Data Type
+ \row
+ \li location
+ \li This parameter holds the name of the city
+ \li string
+ \row
+ \li country
+ \li This parameter holds the country of the city
+ \li string
+ \row
+ \li id
+ \li This parameter holds the city id from \l{http://www.openweathermap.org}
+ \li string
+ \endtable
+
+ \section2 Actions
Following list contains all plugin \l{Action}s:
\table
\header
@@ -35,23 +176,11 @@
\li UUID
\row
\li refresh
- \li This action refreshes all states. Only, if a state value realy changed
- a notification get emited.
+ \li This action refreshes all states.
\li cfbc6504-d86f-4856-8dfa-97b6fbb385e4
\endtable
- \section1 Events:
- Following list contains all plugin \l{Event}s:
- \table
- \header
- \li Name
- \li UUID
- \li Description
- \row
- \li
- \li
- \li
- \endtable
- \section1 States
+
+ \section2 States
Following list contains all plugin \l{State}s:
\table
\header
diff --git a/plugins/deviceplugins/wakeonlan/devicepluginwakeonlan.cpp b/plugins/deviceplugins/wakeonlan/devicepluginwakeonlan.cpp
index 4358388b..459da3aa 100644
--- a/plugins/deviceplugins/wakeonlan/devicepluginwakeonlan.cpp
+++ b/plugins/deviceplugins/wakeonlan/devicepluginwakeonlan.cpp
@@ -15,6 +15,104 @@
* along with guh. If not, see . *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/*!
+ \page wakeonlan.html
+ \title Wake On Lan
+
+ \ingroup plugins
+ \ingroup services
+
+ 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
+ a "magic packet" to a certain mac address in the local network. The WOL service must
+ be enabled on the host computer.
+
+ \section1 Examples
+ \section2 Adding a WOL device
+ In order to add a WOL device you need to know the mac address of the host computer you
+ want to wake up.
+ \code
+ {
+ "id":1,
+ "method":"Devices.AddConfiguredDevice",
+ "params":{
+ "deviceClassId": "{3c8f2447-dcd0-4882-8c09-99e579e4d24c}",
+ "deviceParams":{
+ "mac":"00:11:22:33:44:55",
+ "name":"Wohnzimmer-PC"
+ }
+ }
+ }
+ \endcode
+ response...
+ \code
+ {
+ "id": 1,
+ "params": {
+ "deviceId": "{76347a44-2091-428c-b320-5a8db4c359f6}",
+ "errorMessage": "",
+ "success": true
+ },
+ "status": "success"
+ }
+ \endcode
+
+ \section2 Wake up a device
+ In order to wake up a configured device send following message:
+ \code
+ {
+ "id":1,
+ "method":"Actions.ExecuteAction",
+ "params":{
+ "actionTypeId": "{fb9b9d87-218f-4f0d-9e16-39f8a105029a}",
+ "deviceId":"{76347a44-2091-428c-b320-5a8db4c359f6}"
+ }
+ }
+ \endcode
+ response...
+ \code
+ {
+ "id": 1,
+ "params": {
+ "errorMessage": "",
+ "success": true
+ },
+ "status": "success"
+ }
+ \endcode
+ \section1 Plugin propertys:
+ \section2 Plugin parameters
+ Each configured plugin has following paramters:
+
+ \table
+ \header
+ \li Name
+ \li Description
+ \li Data Type
+ \row
+ \li name
+ \li This parameter holds the name/description of the target computer
+ \li string
+ \row
+ \li mac
+ \li This parameter holds the mac address of the target computer
+ \li string
+ \endtable
+ \section2 Plugin actions:
+ Following list contains all plugin \l{Action}s:
+ \table
+ \header
+ \li Name
+ \li Description
+ \li UUID
+ \row
+ \li wakeup
+ \li This action send the "magic package" to the mac address configured in the device parameter.
+ \li fb9b9d87-218f-4f0d-9e16-39f8a105029a
+ \endtable
+
+*/
+
#include "devicepluginwakeonlan.h"
@@ -49,6 +147,8 @@ QList DevicePluginWakeOnLan::supportedDevices() const
deviceClassWakeOnLan.setName("Wake On Lan");
QList wolParams;
+ ParamType nameParam("name", QVariant::String);
+ wolParams.append(nameParam);
ParamType wolParam("mac", QVariant::String);
wolParams.append(wolParam);
diff --git a/tests/scripts/addconfigureddevice.sh b/tests/scripts/addconfigureddevice.sh
index 57efd1dd..709edeb5 100755
--- a/tests/scripts/addconfigureddevice.sh
+++ b/tests/scripts/addconfigureddevice.sh
@@ -32,7 +32,7 @@ else
elif [ $2 == "openweathermap" ]; then
(echo '{"id":1, "method":"Devices.AddConfiguredDevice", "params":{"deviceClassId": "{985195aa-17ad-4530-88a4-cdd753d747d7}","deviceDescriptorId":"'$4'"}}'; sleep 1) | nc $1 1234
elif [ $2 == "wol" ]; then
- (echo '{"id":1, "method":"Devices.AddConfiguredDevice", "params":{"deviceClassId": "{3c8f2447-dcd0-4882-8c09-99e579e4d24c}","deviceParams":{"mac":"'$3'"}}}'; sleep 1) | nc $1 1234
+ (echo '{"id":1, "method":"Devices.AddConfiguredDevice", "params":{"deviceClassId": "{3c8f2447-dcd0-4882-8c09-99e579e4d24c}","deviceParams":{"mac":"'$3'", "name":"Wohnzimmer-PC"}}}'; sleep 1) | nc $1 1234
elif [ $2 == "lirc" ]; then
(echo '{"id":1, "method":"Devices.AddConfiguredDevice", "params":{"deviceClassId": "{5c2bc4cd-ba6c-4052-b6cd-1db83323ea22}","deviceParams":{"remoteName":"'$3'"}}}'; sleep 1) | nc $1 1234
elif [ $2 == "discovered" ]; then
diff --git a/tests/scripts/executeaction.sh b/tests/scripts/executeaction.sh
index d5f4438e..7abc51ef 100755
--- a/tests/scripts/executeaction.sh
+++ b/tests/scripts/executeaction.sh
@@ -3,7 +3,7 @@
if [ -z $3 ]; then
echo "usage: $0 host actionTypeId deviceId [paramname paramvalue]"
elif [ -z $4 ]; then
- (echo '{"id":1, "method":"Actions.ExecuteAction","params":{"actionTypeId": "{'$2'}", "deviceId":"{'$3'}"}'; sleep 1) | nc $1 1234
+ (echo '{"id":1, "method":"Actions.ExecuteAction","params":{"actionTypeId": "{'$2'}", "deviceId":"{'$3'}"}}'; sleep 1) | nc $1 1234
elif [ -z $5 ]; then
echo "usage: $0 host actionTypeId deviceId [paramname paramvalue]"
else