ansible4ozw 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/ansible.rb +47 -0
- data/lib/ansible/ansible_callback.rb +142 -0
- data/lib/ansible/ansible_device.rb +68 -0
- data/lib/ansible/ansible_value.rb +179 -0
- data/lib/ansible/config.rb +92 -0
- data/lib/ansible/devices/ansible_dimmer.rb +80 -0
- data/lib/ansible/devices/ansible_switch.rb +66 -0
- data/lib/ansible/knx/EIBConnection.rb +2371 -0
- data/lib/ansible/knx/dpt/canonical_1bit.rb +54 -0
- data/lib/ansible/knx/dpt/dpt1.rb +224 -0
- data/lib/ansible/knx/dpt/dpt10.rb +85 -0
- data/lib/ansible/knx/dpt/dpt11.rb +72 -0
- data/lib/ansible/knx/dpt/dpt12.rb +61 -0
- data/lib/ansible/knx/dpt/dpt13.rb +100 -0
- data/lib/ansible/knx/dpt/dpt14.rb +87 -0
- data/lib/ansible/knx/dpt/dpt15.rb +72 -0
- data/lib/ansible/knx/dpt/dpt16.rb +67 -0
- data/lib/ansible/knx/dpt/dpt17.rb +65 -0
- data/lib/ansible/knx/dpt/dpt18.rb +66 -0
- data/lib/ansible/knx/dpt/dpt19.rb +100 -0
- data/lib/ansible/knx/dpt/dpt2.rb +156 -0
- data/lib/ansible/knx/dpt/dpt3.rb +104 -0
- data/lib/ansible/knx/dpt/dpt4.rb +75 -0
- data/lib/ansible/knx/dpt/dpt5.rb +124 -0
- data/lib/ansible/knx/dpt/dpt6.rb +73 -0
- data/lib/ansible/knx/dpt/dpt7.rb +146 -0
- data/lib/ansible/knx/dpt/dpt8.rb +118 -0
- data/lib/ansible/knx/dpt/dpt9.rb +204 -0
- data/lib/ansible/knx/dpt/tests/test_dpt10.rb +45 -0
- data/lib/ansible/knx/dpt/tests/test_dpt9.rb +60 -0
- data/lib/ansible/knx/hexdump.rb +113 -0
- data/lib/ansible/knx/knx_dpt.rb +58 -0
- data/lib/ansible/knx/knx_dpt_scalar.rb +62 -0
- data/lib/ansible/knx/knx_eistypes.rb +76 -0
- data/lib/ansible/knx/knx_protocol.rb +99 -0
- data/lib/ansible/knx/knx_scene.rb +48 -0
- data/lib/ansible/knx/knx_tools.rb +76 -0
- data/lib/ansible/knx/knx_transceiver.rb +237 -0
- data/lib/ansible/knx/knx_value.rb +327 -0
- data/lib/ansible/openzwave/ozw_constants.rb +11 -0
- data/lib/ansible/openzwave/ozw_headers.rb +80 -0
- data/lib/ansible/openzwave/ozw_remote_manager.rb +7615 -0
- data/lib/ansible/openzwave/ozw_types.rb +406 -0
- data/lib/ansible/orbiter_proxy.rb +12 -0
- data/lib/ansible/transceiver.rb +63 -0
- data/lib/ansible/zwave/types/valuetype_bool.rb +74 -0
- data/lib/ansible/zwave/types/valuetype_button.rb +63 -0
- data/lib/ansible/zwave/types/valuetype_byte.rb +78 -0
- data/lib/ansible/zwave/types/valuetype_decimal.rb +64 -0
- data/lib/ansible/zwave/types/valuetype_int.rb +63 -0
- data/lib/ansible/zwave/types/valuetype_list.rb +64 -0
- data/lib/ansible/zwave/types/valuetype_short.rb +63 -0
- data/lib/ansible/zwave/types/valuetype_string.rb +61 -0
- data/lib/ansible/zwave/zwave_command_classes.rb +113 -0
- data/lib/ansible/zwave/zwave_node.rb +5 -0
- data/lib/ansible/zwave/zwave_protocol.rb +52 -0
- data/lib/ansible/zwave/zwave_transceiver.rb +435 -0
- data/lib/ansible/zwave/zwave_value.rb +193 -0
- metadata +108 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
=begin
|
2
|
+
Project Ansible - An extensible home automation scripting framework
|
3
|
+
----------------------------------------------------
|
4
|
+
Copyright (c) 2011 Elias Karakoulakis <elias.karakoulakis@gmail.com>
|
5
|
+
|
6
|
+
SOFTWARE NOTICE AND LICENSE
|
7
|
+
|
8
|
+
Project Ansible is free software: you can redistribute it and/or modify
|
9
|
+
it under the terms of the GNU Lesser General Public License as published
|
10
|
+
by the Free Software Foundation, either version 3 of the License,
|
11
|
+
or (at your option) any later version.
|
12
|
+
|
13
|
+
Project Ansible is distributed in the hope that it will be useful,
|
14
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
GNU Lesser General Public License for more details.
|
17
|
+
|
18
|
+
You should have received a copy of the GNU Lesser General Public License
|
19
|
+
along with Project Ansible. If not, see <http://www.gnu.org/licenses/>.
|
20
|
+
|
21
|
+
for more information on the LGPL, see:
|
22
|
+
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
|
23
|
+
=end
|
24
|
+
|
25
|
+
|
26
|
+
module Ansible
|
27
|
+
|
28
|
+
module KNX
|
29
|
+
|
30
|
+
#
|
31
|
+
# 1-bit canonical values for KNX
|
32
|
+
# implements value casting to/from the canonical type, a boolean value
|
33
|
+
module Canonical_1bit
|
34
|
+
|
35
|
+
# DPT1 canonical values
|
36
|
+
# ---------------------
|
37
|
+
# Use Ruby convention for booleans in order to convert
|
38
|
+
# input value of (nil, false) into 0, otherwise 1
|
39
|
+
|
40
|
+
# data is 1 ==> true, false otherwise
|
41
|
+
def as_canonical_value()
|
42
|
+
return (current_value.data.eql?1)
|
43
|
+
end
|
44
|
+
|
45
|
+
# v is true? 1 : 0
|
46
|
+
def to_protocol_value(v)
|
47
|
+
return (v ? 1 : 0)
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
@@ -0,0 +1,224 @@
|
|
1
|
+
=begin
|
2
|
+
Project Ansible - An extensible home automation scripting framework
|
3
|
+
----------------------------------------------------
|
4
|
+
Copyright (c) 2011 Elias Karakoulakis <elias.karakoulakis@gmail.com>
|
5
|
+
|
6
|
+
SOFTWARE NOTICE AND LICENSE
|
7
|
+
|
8
|
+
Project Ansible is free software: you can redistribute it and/or modify
|
9
|
+
it under the terms of the GNU Lesser General Public License as published
|
10
|
+
by the Free Software Foundation, either version 3 of the License,
|
11
|
+
or (at your option) any later version.
|
12
|
+
|
13
|
+
Project Ansible is distributed in the hope that it will be useful,
|
14
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
GNU Lesser General Public License for more details.
|
17
|
+
|
18
|
+
You should have received a copy of the GNU Lesser General Public License
|
19
|
+
along with Project Ansible. If not, see <http://www.gnu.org/licenses/>.
|
20
|
+
|
21
|
+
for more information on the LGPL, see:
|
22
|
+
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
|
23
|
+
=end
|
24
|
+
|
25
|
+
require 'knx/dpt/canonical_1bit'
|
26
|
+
|
27
|
+
module Ansible
|
28
|
+
|
29
|
+
module KNX
|
30
|
+
|
31
|
+
#
|
32
|
+
# DPT1: 1-bit (boolean) value
|
33
|
+
#
|
34
|
+
module DPT1
|
35
|
+
|
36
|
+
# DPT1 frame description.
|
37
|
+
# Always 8-bit aligned.
|
38
|
+
class DPT1_Frame < DPTFrame
|
39
|
+
bit2 :apci_pad, :display_name => "APCI info (not useful)"
|
40
|
+
bit5 :null_pad
|
41
|
+
bit1 :data, :display_name => "6 bit of useful data"
|
42
|
+
end
|
43
|
+
|
44
|
+
include Canonical_1bit
|
45
|
+
|
46
|
+
# DPT basetype info hash
|
47
|
+
Basetype = {
|
48
|
+
:bitlength => 1,
|
49
|
+
:range => 0..1,
|
50
|
+
:valuetype => :basic,
|
51
|
+
:desc => "1-bit value"
|
52
|
+
}
|
53
|
+
|
54
|
+
# DPT subtypes info hash
|
55
|
+
Subtypes = {
|
56
|
+
# 1.001 on/off
|
57
|
+
"001" => { :use => "G",
|
58
|
+
:name => "DPT_Switch",
|
59
|
+
:desc => "switch",
|
60
|
+
:enc => { 0 => "Off", 1 => "On" }
|
61
|
+
},
|
62
|
+
|
63
|
+
# 1.002 boolean
|
64
|
+
"002" => { :use => "G",
|
65
|
+
:name => "DPT_Bool",
|
66
|
+
:desc => "bool",
|
67
|
+
:enc => { 0 => "false", 1 => "true" }
|
68
|
+
},
|
69
|
+
|
70
|
+
# 1.003 enable
|
71
|
+
"003" => { :use => "G",
|
72
|
+
:name => "DPT_Enable",
|
73
|
+
:desc => "enable",
|
74
|
+
:enc => { 0 => "disable", 1 => "enable" }
|
75
|
+
},
|
76
|
+
|
77
|
+
# 1.004 ramp
|
78
|
+
"004" => { :use => "FB",
|
79
|
+
:name => "DPT_Ramp",
|
80
|
+
:desc => "ramp",
|
81
|
+
:enc => { 0 => "No ramp", 1 => "Ramp" }
|
82
|
+
},
|
83
|
+
|
84
|
+
# 1.005 alarm
|
85
|
+
"005" => { :use => "FB",
|
86
|
+
:name => "DPT_Alarm",
|
87
|
+
:desc => "alarm",
|
88
|
+
:enc => { 0 => "No alarm", 1 => "Alarm" }
|
89
|
+
},
|
90
|
+
|
91
|
+
# 1.006 binary value
|
92
|
+
"006" => { :use => "FB",
|
93
|
+
:name => "DPT_BinaryValue",
|
94
|
+
:desc => "binary value",
|
95
|
+
:enc => { 0 => "Low", 1 => "High" }
|
96
|
+
},
|
97
|
+
|
98
|
+
# 1.007 step
|
99
|
+
"007" => { :use => "FB",
|
100
|
+
:name => "DPT_Step",
|
101
|
+
:desc => "step",
|
102
|
+
:enc => { 0 => "Decrease", 1 => "Increase" }
|
103
|
+
},
|
104
|
+
|
105
|
+
# 1.008 up/down
|
106
|
+
"008" => { :use => "G",
|
107
|
+
:name => "DPT_UpDown",
|
108
|
+
:desc => "up/down",
|
109
|
+
:enc => { 0 => "Up", 1 => "Down" }
|
110
|
+
},
|
111
|
+
|
112
|
+
# 1.009 open/close
|
113
|
+
"009" => { :use => "G",
|
114
|
+
:name => "DPT_OpenClose",
|
115
|
+
:desc => "open/close",
|
116
|
+
:enc => { 0 => "Open", 1 => "Close" }
|
117
|
+
},
|
118
|
+
|
119
|
+
# 1.010 start/stop
|
120
|
+
"010" => { :use => "G",
|
121
|
+
:name => "DPT_Start",
|
122
|
+
:desc => "start/stop",
|
123
|
+
:enc => { 0 => "Stop", 1 => "Start" }
|
124
|
+
},
|
125
|
+
|
126
|
+
# 1.011 state
|
127
|
+
"011" => { :use => "FB",
|
128
|
+
:name => "DPT_State",
|
129
|
+
:desc => "state",
|
130
|
+
:enc => { 0 => "Inactive", 1 => "Active" }
|
131
|
+
},
|
132
|
+
|
133
|
+
# 1.012 invert
|
134
|
+
"012" => { :use => "FB",
|
135
|
+
:name => "DPT_Invert",
|
136
|
+
:desc => "invert",
|
137
|
+
:enc => { 0 => "Not inverted", 1 => "inverted" }
|
138
|
+
},
|
139
|
+
|
140
|
+
# 1.013 dim send style
|
141
|
+
"013" => { :use => "FB",
|
142
|
+
:name => "DPT_DimSendStyle",
|
143
|
+
:desc => "dim send style",
|
144
|
+
:enc => { 0 => "Start/stop", 1 => "Cyclically" }
|
145
|
+
},
|
146
|
+
|
147
|
+
# 1.014 input source
|
148
|
+
"014" => { :use => "FB",
|
149
|
+
:name => "DPT_InputSource",
|
150
|
+
:desc => "input source",
|
151
|
+
:enc => { 0 => "Fixed", 1 => "Calculated" }
|
152
|
+
},
|
153
|
+
|
154
|
+
# 1.015 reset
|
155
|
+
"015" => { :use => "G",
|
156
|
+
:name => "DPT_Reset",
|
157
|
+
:desc => "reset",
|
158
|
+
:enc => { 0 => "no action(dummy)", 1 => "reset command(trigger)" }
|
159
|
+
},
|
160
|
+
|
161
|
+
# 1.016 acknowledge
|
162
|
+
"016" => { :use => "G",
|
163
|
+
:name => "DPT_Ack",
|
164
|
+
:desc => "ack",
|
165
|
+
:enc => { 0 => "no action(dummy)", 1 => "acknowledge command(trigger)" }
|
166
|
+
},
|
167
|
+
|
168
|
+
# 1.017 trigger
|
169
|
+
"017" => { :use => "G",
|
170
|
+
:name => "DPT_Trigger",
|
171
|
+
:desc => "trigger",
|
172
|
+
:enc => { 0 => "trigger", 1 => "trigger" }
|
173
|
+
},
|
174
|
+
|
175
|
+
# 1.018 occupied
|
176
|
+
"018" => { :use => "G",
|
177
|
+
:name => "DPT_Occupancy",
|
178
|
+
:desc => "occupancy",
|
179
|
+
:enc => { 0 => "not occupied", 1 => "occupied" }
|
180
|
+
},
|
181
|
+
|
182
|
+
# 1.019 open window or door
|
183
|
+
"019" => { :use => "G",
|
184
|
+
:name => "DPT_WindowDoor",
|
185
|
+
:desc => "open window/door",
|
186
|
+
:enc => { 0 => "closed", 1 => "open" }
|
187
|
+
},
|
188
|
+
|
189
|
+
# 1.021 and/or
|
190
|
+
"021" => { :use => "FB",
|
191
|
+
:name => "DPT_LogicalFunction",
|
192
|
+
:desc => "and/or",
|
193
|
+
:enc => { 0 => "logical function OR", 1 => "logical function AND" }
|
194
|
+
},
|
195
|
+
|
196
|
+
# 1.022 scene A/B
|
197
|
+
"022" => { :use => "FB",
|
198
|
+
:name => "DPT_Scene_AB",
|
199
|
+
:desc => "scene A/B",
|
200
|
+
:enc => { 0 => "scene A", 1 => "scene B" }
|
201
|
+
},
|
202
|
+
|
203
|
+
# 1.023 shutter/blinds mode
|
204
|
+
"023" => { :use => "FB",
|
205
|
+
:name => "DPT_ShutterBlinds_Mode",
|
206
|
+
:desc => "shutter/blinds mode",
|
207
|
+
:enc => { 0 => "only move Up/Down mode (shutter)", 1 => "move Up/Down + StepStop mode (blind)" }
|
208
|
+
},
|
209
|
+
|
210
|
+
# 1.100 cooling/heating ---FIXME---
|
211
|
+
"100" => { :use => "???",
|
212
|
+
:name => "DPT_Heat/Cool",
|
213
|
+
:desc => "heat/cool",
|
214
|
+
:enc => { 0 => "???", 1 => "???" }
|
215
|
+
},
|
216
|
+
}
|
217
|
+
|
218
|
+
include Canonical_1bit
|
219
|
+
|
220
|
+
end #module DPT1
|
221
|
+
|
222
|
+
end
|
223
|
+
|
224
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
=begin
|
2
|
+
Project Ansible - An extensible home automation scripting framework
|
3
|
+
----------------------------------------------------
|
4
|
+
Copyright (c) 2011 Elias Karakoulakis <elias.karakoulakis@gmail.com>
|
5
|
+
|
6
|
+
SOFTWARE NOTICE AND LICENSE
|
7
|
+
|
8
|
+
Project Ansible is free software: you can redistribute it and/or modify
|
9
|
+
it under the terms of the GNU Lesser General Public License as published
|
10
|
+
by the Free Software Foundation, either version 3 of the License,
|
11
|
+
or (at your option) any later version.
|
12
|
+
|
13
|
+
Project Ansible is distributed in the hope that it will be useful,
|
14
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
GNU Lesser General Public License for more details.
|
17
|
+
|
18
|
+
You should have received a copy of the GNU Lesser General Public License
|
19
|
+
along with Project Ansible. If not, see <http://www.gnu.org/licenses/>.
|
20
|
+
|
21
|
+
for more information on the LGPL, see:
|
22
|
+
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
|
23
|
+
=end
|
24
|
+
|
25
|
+
module Ansible
|
26
|
+
|
27
|
+
module KNX
|
28
|
+
|
29
|
+
#
|
30
|
+
# DPT10.*: time
|
31
|
+
#
|
32
|
+
module DPT10
|
33
|
+
|
34
|
+
# DPTFrame to parse a DPT10 frame.
|
35
|
+
# Always 8-bit aligned.
|
36
|
+
class DPT10_Frame < DPTFrame
|
37
|
+
bit3 :dayofweek, {
|
38
|
+
:display_name => "Day of week",
|
39
|
+
:range => 0..7,
|
40
|
+
:enc => {
|
41
|
+
0 => "(no day set)",
|
42
|
+
1 => "Monday",
|
43
|
+
2 => "Tuesday",
|
44
|
+
3 => "Wednesday",
|
45
|
+
4 => "Thursday",
|
46
|
+
5 => "Friday",
|
47
|
+
6 => "Saturday",
|
48
|
+
7 => "Sunday"
|
49
|
+
}
|
50
|
+
}
|
51
|
+
bit5 :hour, {
|
52
|
+
:display_name => "Hour", :range => 0..23
|
53
|
+
}
|
54
|
+
#
|
55
|
+
bit2 :pad2
|
56
|
+
bit6 :minutes, {
|
57
|
+
:display_name => "Minutes", :range => 0..59
|
58
|
+
}
|
59
|
+
#
|
60
|
+
bit2 :pad3
|
61
|
+
bit6 :seconds, {
|
62
|
+
:display_name => "Seconds", :range => 0..59
|
63
|
+
}
|
64
|
+
end
|
65
|
+
|
66
|
+
# DPT10 base type info
|
67
|
+
Basetype = {
|
68
|
+
:bitlength => 24,
|
69
|
+
:valuetype => :composite,
|
70
|
+
:desc => "day of week + time of day"
|
71
|
+
}
|
72
|
+
|
73
|
+
# DPT10 subtypes info
|
74
|
+
Subtypes = {
|
75
|
+
# 10.001 time of day
|
76
|
+
"001" => {
|
77
|
+
:name => "DPT_TimeOfDay", :desc => "time of day"
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
=begin
|
2
|
+
Project Ansible - An extensible home automation scripting framework
|
3
|
+
----------------------------------------------------
|
4
|
+
Copyright (c) 2011 Elias Karakoulakis <elias.karakoulakis@gmail.com>
|
5
|
+
|
6
|
+
SOFTWARE NOTICE AND LICENSE
|
7
|
+
|
8
|
+
Project Ansible is free software: you can redistribute it and/or modify
|
9
|
+
it under the terms of the GNU Lesser General Public License as published
|
10
|
+
by the Free Software Foundation, either version 3 of the License,
|
11
|
+
or (at your option) any later version.
|
12
|
+
|
13
|
+
Project Ansible is distributed in the hope that it will be useful,
|
14
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
GNU Lesser General Public License for more details.
|
17
|
+
|
18
|
+
You should have received a copy of the GNU Lesser General Public License
|
19
|
+
along with Project Ansible. If not, see <http://www.gnu.org/licenses/>.
|
20
|
+
|
21
|
+
for more information on the LGPL, see:
|
22
|
+
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
|
23
|
+
=end
|
24
|
+
|
25
|
+
module Ansible
|
26
|
+
|
27
|
+
module KNX
|
28
|
+
|
29
|
+
#
|
30
|
+
# DPT11.*: date
|
31
|
+
#
|
32
|
+
module DPT11
|
33
|
+
|
34
|
+
class DPT11_Frame < DPTFrame
|
35
|
+
bit3 :pad1
|
36
|
+
bit5 :dayofmonth, {
|
37
|
+
:display_name => "Day of month (1..31)", :range => 1..31
|
38
|
+
}
|
39
|
+
#
|
40
|
+
bit4 :pad2
|
41
|
+
bit4 :month, {
|
42
|
+
:display_name => "Month (1..12)", :range => 1..12
|
43
|
+
}
|
44
|
+
#
|
45
|
+
bit1 :pad3
|
46
|
+
bit7 :year, {
|
47
|
+
:display_name => "Year 0..99 (<90 => 20xx, >=90 => 19xx)", :range => 0..99
|
48
|
+
}
|
49
|
+
end
|
50
|
+
|
51
|
+
# DPT11 base type info
|
52
|
+
Basetype = {
|
53
|
+
:bitlength => 24,
|
54
|
+
:valuetype => :composite,
|
55
|
+
:desc => "3-byte date value"
|
56
|
+
}
|
57
|
+
|
58
|
+
|
59
|
+
# DPT11 subtypes info
|
60
|
+
Subtypes = {
|
61
|
+
# 11.001 date
|
62
|
+
"001" => {
|
63
|
+
:name => "DPT_Date", :desc => "Date"
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
@@ -0,0 +1,61 @@
|
|
1
|
+
=begin
|
2
|
+
Project Ansible - An extensible home automation scripting framework
|
3
|
+
----------------------------------------------------
|
4
|
+
Copyright (c) 2011 Elias Karakoulakis <elias.karakoulakis@gmail.com>
|
5
|
+
|
6
|
+
SOFTWARE NOTICE AND LICENSE
|
7
|
+
|
8
|
+
Project Ansible is free software: you can redistribute it and/or modify
|
9
|
+
it under the terms of the GNU Lesser General Public License as published
|
10
|
+
by the Free Software Foundation, either version 3 of the License,
|
11
|
+
or (at your option) any later version.
|
12
|
+
|
13
|
+
Project Ansible is distributed in the hope that it will be useful,
|
14
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
GNU Lesser General Public License for more details.
|
17
|
+
|
18
|
+
You should have received a copy of the GNU Lesser General Public License
|
19
|
+
along with Project Ansible. If not, see <http://www.gnu.org/licenses/>.
|
20
|
+
|
21
|
+
for more information on the LGPL, see:
|
22
|
+
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
|
23
|
+
=end
|
24
|
+
|
25
|
+
module Ansible
|
26
|
+
|
27
|
+
module KNX
|
28
|
+
|
29
|
+
#
|
30
|
+
# DPT12.*: 4-byte unsigned value
|
31
|
+
#
|
32
|
+
module DPT12
|
33
|
+
|
34
|
+
class DPT12_Frame < DPTFrame
|
35
|
+
uint32 :data, {
|
36
|
+
:display_name => "32-bit value",
|
37
|
+
:range => 0..2**32-1
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
41
|
+
# DPT12 base type info
|
42
|
+
Basetype = {
|
43
|
+
:bitlength => 32,
|
44
|
+
:valuetype => :basic,
|
45
|
+
:desc => "4-byte unsigned value"
|
46
|
+
}
|
47
|
+
|
48
|
+
# DPT12 subtype info
|
49
|
+
Subtypes = {
|
50
|
+
# 12.001 counter pulses
|
51
|
+
"001" => {
|
52
|
+
:name => "DPT_Value_4_Ucount", :desc => "counter pulses"
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|