-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathI_DeusExMachinaII1.xml
98 lines (98 loc) · 3.48 KB
/
I_DeusExMachinaII1.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?xml version="1.0" encoding="UTF-8"?>
<implementation>
<functions>
-- -------------------------------------------------------------------------------------------------------------------------
-- Deus Ex Machina II
-- Copyright 2016,2017,2019,2022 Patrick H. Rigney, All Rights Reserved.
-- This file is part of DeusExMachinaII. For license info, see LICENSE at https://github.com/toggledbits/DeusExMachina
-- Original code and releases 1.x by Andy Lintner (beowulfe) Version 2.0 and beyond by Patrick Rigney (rigpapa/toggledbits).
-- A big thanks to Andy for passing the torch so that this great plug-in can live on.
-- -------------------------------------------------------------------------------------------------------------------------
function startupDeusExMachinaII1(deusDevice)
luup.log("DeusExMachinaII STARTUP!")
demII = require("L_DeusExMachinaII1")
deusTick = demII.deusTick
deusWatch = demII.deusWatch
deusRequestHandler = demII.request
luup.register_handler("deusRequestHandler", "DeusExMachinaII")
return demII.deusInit(deusDevice)
end
</functions>
<startup>startupDeusExMachinaII1</startup>
<actionList>
<action>
<serviceId>urn:upnp-org:serviceId:SwitchPower1</serviceId>
<name>SetTarget</name>
<run>
local newTargetValue = tonumber(lul_settings.newTargetValue) or 0
if newTargetValue ~= 0 then
demII.deusEnable(lul_device)
else
demII.deusDisable(lul_device)
end
</run>
</action>
<action>
<serviceId>urn:upnp-org:serviceId:SwitchPower1</serviceId>
<name>GetTarget</name>
<run>
-- nothing required
</run>
</action>
<action>
<serviceId>urn:upnp-org:serviceId:SwitchPower1</serviceId>
<name>GetStatus</name>
<run>
-- nothing required
</run>
</action>
<action>
<serviceId>urn:toggledbits-com:serviceId:DeusExMachinaII1</serviceId>
<name>SetEnabled</name>
<run>
local newEnabledValue = tonumber(lul_settings.NewEnabledValue) or 0
if (newEnabledValue ~= 0) then
luup.variable_set("urn:upnp-org:serviceId:SwitchPower1", "Target", "1", lul_device)
demII.deusEnable(lul_device)
else
luup.variable_set("urn:upnp-org:serviceId:SwitchPower1", "Target", "0", lul_device)
demII.deusDisable(lul_device)
end
</run>
</action>
<action>
<serviceId>urn:toggledbits-com:serviceId:DeusExMachinaII1</serviceId>
<name>Activate</name>
<run>
demII.actionActivate( lul_device, true )
</run>
</action>
<action>
<serviceId>urn:toggledbits-com:serviceId:DeusExMachinaII1</serviceId>
<name>Deactivate</name>
<run>
demII.actionActivate( lul_device, false )
</run>
</action>
<action>
<serviceId>urn:toggledbits-com:serviceId:DeusExMachinaII1</serviceId>
<name>GetPluginVersion</name>
<run>
-- Ugly hack. Luup seems to only be able to return values from related state variables (see S_), so use a temp
-- one to store the result we want to pass back. Blech. C'mon guys. Amateur hour. Add an extra return argument
-- for a table of return values or something, please?
local vs, vn = demII.getVersion()
luup.variable_set("urn:toggledbits-com:serviceId:DeusExMachinaII1", "TempStorage", vs, lul_device)
return true
</run>
</action>
<action>
<serviceId>urn:toggledbits-com:serviceId:DeusExMachinaII1</serviceId>
<name>SetTrace</name>
<run>
local newTraceValue = tonumber(lul_settings.newTraceValue or "0", 10)
demII.setTrace(lul_device, newTraceValue ~= 0)
</run>
</action>
</actionList>
</implementation>