ansible4ozw 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|