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,73 @@
|
|
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
|
+
# DPT6.*: 8-bit signed value
|
27
|
+
#
|
28
|
+
|
29
|
+
module Ansible
|
30
|
+
|
31
|
+
module KNX
|
32
|
+
|
33
|
+
module DPT6
|
34
|
+
|
35
|
+
# Bitstruct to parse a DPT6 frame.
|
36
|
+
# Always 8-bit aligned.
|
37
|
+
class DPT6_Frame < DPTFrame
|
38
|
+
int8 :data, :display_name => "Signed value -128..127"
|
39
|
+
end
|
40
|
+
|
41
|
+
# DPT Basetype info
|
42
|
+
Basetype = {
|
43
|
+
:bitlength => 8,
|
44
|
+
:valuetype => :basic,
|
45
|
+
:desc => "8-bit signed value",
|
46
|
+
:range => -128..127
|
47
|
+
}
|
48
|
+
# DPT subtypes info
|
49
|
+
Subtypes = {
|
50
|
+
# 6.001 percentage (-128%..127%)
|
51
|
+
"001" => {
|
52
|
+
:name => "DPT_Switch", :desc => "percent",
|
53
|
+
:unit => "%",
|
54
|
+
},
|
55
|
+
|
56
|
+
# 6.002 counter pulses (-128..127)
|
57
|
+
"002" => {
|
58
|
+
:name => "DPT_Bool", :desc => "counter pulses",
|
59
|
+
:unit => "pulses"
|
60
|
+
},
|
61
|
+
#
|
62
|
+
}
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
=begin
|
70
|
+
puts KNX_DPT6.bit_length
|
71
|
+
puts KNX_DPT6.new([0x32].pack('c')).inspect # 50
|
72
|
+
puts KNX_DPT6.new([0xce].pack('c')).inspect # -50
|
73
|
+
=end
|
@@ -0,0 +1,146 @@
|
|
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
|
+
# DPT7.*: 2-byte unsigned value
|
27
|
+
#
|
28
|
+
|
29
|
+
module Ansible
|
30
|
+
|
31
|
+
module KNX
|
32
|
+
|
33
|
+
module DPT7
|
34
|
+
|
35
|
+
# Bitstruct to parse a DPT7 frame.
|
36
|
+
# Always 8-bit aligned.
|
37
|
+
class DPT7_Frame < DPTFrame
|
38
|
+
uint16 :data, :display_name => "Value"
|
39
|
+
end
|
40
|
+
|
41
|
+
# DPT basetype info
|
42
|
+
Basetype = {
|
43
|
+
:bitlength => 16,
|
44
|
+
:valuetype => :basic,
|
45
|
+
:desc => "16-bit unsigned value"
|
46
|
+
}
|
47
|
+
|
48
|
+
# DPT subtypes info
|
49
|
+
Subtypes = {
|
50
|
+
# 7.001 pulses
|
51
|
+
"001" => { :use => "G",
|
52
|
+
:name => "DPT_Value_2_Ucount",
|
53
|
+
:desc => "pulses",
|
54
|
+
:unit => "pulses"
|
55
|
+
},
|
56
|
+
|
57
|
+
# 7.002 time(ms)
|
58
|
+
"002" => { :use => "G",
|
59
|
+
:name => "DPT_TimePeriodMsec",
|
60
|
+
:desc => "time (ms)",
|
61
|
+
:unit => "milliseconds"
|
62
|
+
},
|
63
|
+
|
64
|
+
# 7.003 time (10ms)
|
65
|
+
"003" => { :use => "G",
|
66
|
+
:name => "DPT_TimePeriod10Msec",
|
67
|
+
:desc => "time (10ms)",
|
68
|
+
:unit => "centiseconds"
|
69
|
+
},
|
70
|
+
|
71
|
+
# 7.004 time (100ms)
|
72
|
+
"004" => { :use => "G",
|
73
|
+
:name => "DPT_TimePeriod100Msec",
|
74
|
+
:desc => "time (100ms)",
|
75
|
+
:unit => "deciseconds"
|
76
|
+
},
|
77
|
+
|
78
|
+
# 7.005 time (sec)
|
79
|
+
"005" => { :use => "G",
|
80
|
+
:name => "DPT_TimePeriodSec",
|
81
|
+
:desc => "time (s)",
|
82
|
+
:unit => "seconds"
|
83
|
+
},
|
84
|
+
|
85
|
+
# 7.006 time (min)
|
86
|
+
"006" => { :use => "G",
|
87
|
+
:name => "DPT_TimePeriodMin",
|
88
|
+
:desc => "time (min)",
|
89
|
+
:unit => "minutes"
|
90
|
+
},
|
91
|
+
|
92
|
+
# 7.007 time (hour)
|
93
|
+
"007" => { :use => "G",
|
94
|
+
:name => "DPT_TimePeriodHrs",
|
95
|
+
:desc => "time (hrs)",
|
96
|
+
:unit => "hours"
|
97
|
+
},
|
98
|
+
|
99
|
+
# 7.010 DPT_PropDataType
|
100
|
+
# not to be used in runtime communications!
|
101
|
+
"010" => { :use => "FB",
|
102
|
+
:name => "DPT_PropDataType",
|
103
|
+
:desc => "Identifier Interface Object Property data type "
|
104
|
+
},
|
105
|
+
|
106
|
+
# 7.011
|
107
|
+
"011" => { :use => "FB SAB",
|
108
|
+
:name => "DPT_Length_mm",
|
109
|
+
:desc => "Length in mm",
|
110
|
+
:unit => "mm"
|
111
|
+
},
|
112
|
+
|
113
|
+
# 7.012
|
114
|
+
"012" => { :use => "FB",
|
115
|
+
:name => "DPT_UEICurrentmA",
|
116
|
+
:desc => "bus power supply current (mA)",
|
117
|
+
:unit => "mA"
|
118
|
+
},
|
119
|
+
|
120
|
+
# 7.013
|
121
|
+
"013" => { :use => "FB",
|
122
|
+
:name => "DPT_Brightness",
|
123
|
+
:desc => "interior brightness",
|
124
|
+
:unit => "lux"
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
end
|
129
|
+
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
|
135
|
+
=begin
|
136
|
+
puts KNX_DPT2.bit_length
|
137
|
+
puts KNX_DPT2.new([0x00].pack('c')).inspect #
|
138
|
+
puts KNX_DPT2.new([0x01].pack('c')).inspect #
|
139
|
+
puts KNX_DPT2.new([0x02].pack('c')).inspect #
|
140
|
+
puts KNX_DPT2.new([0x03].pack('c')).inspect #
|
141
|
+
|
142
|
+
puts [0x02].pack('c').inspect
|
143
|
+
|
144
|
+
=begin
|
145
|
+
|
146
|
+
=end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
# encoding: ISO-8859-1
|
2
|
+
=begin
|
3
|
+
Project Ansible - An extensible home automation scripting framework
|
4
|
+
----------------------------------------------------
|
5
|
+
Copyright (c) 2011 Elias Karakoulakis <elias.karakoulakis@gmail.com>
|
6
|
+
|
7
|
+
SOFTWARE NOTICE AND LICENSE
|
8
|
+
|
9
|
+
Project Ansible is free software: you can redistribute it and/or modify
|
10
|
+
it under the terms of the GNU Lesser General Public License as published
|
11
|
+
by the Free Software Foundation, either version 3 of the License,
|
12
|
+
or (at your option) any later version.
|
13
|
+
|
14
|
+
Project Ansible is distributed in the hope that it will be useful,
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
+
GNU Lesser General Public License for more details.
|
18
|
+
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
20
|
+
along with Project Ansible. If not, see <http://www.gnu.org/licenses/>.
|
21
|
+
|
22
|
+
for more information on the LGPL, see:
|
23
|
+
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
|
24
|
+
=end
|
25
|
+
|
26
|
+
module Ansible
|
27
|
+
|
28
|
+
module KNX
|
29
|
+
|
30
|
+
#
|
31
|
+
# DPT8.*: 2-byte signed value
|
32
|
+
#
|
33
|
+
module DPT8
|
34
|
+
|
35
|
+
# Bitstruct to parse a DPT8 frame.
|
36
|
+
# Always 8-bit aligned.
|
37
|
+
class DPT8_Frame < DPTFrame
|
38
|
+
int16 :data, :display_name => "Value"
|
39
|
+
end
|
40
|
+
|
41
|
+
# DPT8 basetype info
|
42
|
+
Basetype = {
|
43
|
+
:bitlength => 16,
|
44
|
+
:valuetype => :basic,
|
45
|
+
:desc => "16-bit signed value"
|
46
|
+
}
|
47
|
+
|
48
|
+
# DPT8 subtypes info
|
49
|
+
Subtypes = {
|
50
|
+
# 8.001 pulses difference
|
51
|
+
"001" => {
|
52
|
+
:name => "DPT_Value_2_Count",
|
53
|
+
:desc => "pulses",
|
54
|
+
:unit => "pulses"
|
55
|
+
},
|
56
|
+
|
57
|
+
# 8.002 time lag (ms)
|
58
|
+
"002" => {
|
59
|
+
:name => "DPT_DeltaTimeMsec",
|
60
|
+
:desc => "time lag(ms)",
|
61
|
+
:unit => "milliseconds"
|
62
|
+
},
|
63
|
+
|
64
|
+
# 8.003 time lag (10ms)
|
65
|
+
"003" => {
|
66
|
+
:name => "DPT_DeltaTime10Msec",
|
67
|
+
:desc => "time lag(10ms)",
|
68
|
+
:unit => "centiseconds"
|
69
|
+
},
|
70
|
+
|
71
|
+
# 8.004 time lag (100ms)
|
72
|
+
"004" => {
|
73
|
+
:name => "DPT_DeltaTime100Msec",
|
74
|
+
:desc => "time lag(100ms)",
|
75
|
+
:unit => "deciseconds"
|
76
|
+
},
|
77
|
+
|
78
|
+
# 8.005 time lag (sec)
|
79
|
+
"005" => {
|
80
|
+
:name => "DPT_DeltaTimeSec",
|
81
|
+
:desc => "time lag(s)",
|
82
|
+
:unit => "seconds"
|
83
|
+
},
|
84
|
+
|
85
|
+
# 8.006 time lag (min)
|
86
|
+
"006" => {
|
87
|
+
:name => "DPT_DeltaTimeMin",
|
88
|
+
:desc => "time lag(min)",
|
89
|
+
:unit => "minutes"
|
90
|
+
},
|
91
|
+
|
92
|
+
# 8.007 time lag (hour)
|
93
|
+
"007" => {
|
94
|
+
:name => "DPT_DeltaTimeHrs",
|
95
|
+
:desc => "time lag(hrs)",
|
96
|
+
:unit => "hours"
|
97
|
+
},
|
98
|
+
|
99
|
+
# 8.010 percentage difference (%)
|
100
|
+
"010" => {
|
101
|
+
:name => "DPT_Percent_V16",
|
102
|
+
:desc => "percentage difference",
|
103
|
+
:unit => "%"
|
104
|
+
},
|
105
|
+
|
106
|
+
# 8.011 rotation angle (deg)
|
107
|
+
"011" => {
|
108
|
+
:name => "DPT_RotationAngle",
|
109
|
+
:desc => "angle(degrees)",
|
110
|
+
:unit => "°"
|
111
|
+
},
|
112
|
+
}
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
@@ -0,0 +1,204 @@
|
|
1
|
+
# encoding: ISO-8859-1
|
2
|
+
=begin
|
3
|
+
Project Ansible - An extensible home automation scripting framework
|
4
|
+
----------------------------------------------------
|
5
|
+
Copyright (c) 2011 Elias Karakoulakis <elias.karakoulakis@gmail.com>
|
6
|
+
|
7
|
+
SOFTWARE NOTICE AND LICENSE
|
8
|
+
|
9
|
+
Project Ansible is free software: you can redistribute it and/or modify
|
10
|
+
it under the terms of the GNU Lesser General Public License as published
|
11
|
+
by the Free Software Foundation, either version 3 of the License,
|
12
|
+
or (at your option) any later version.
|
13
|
+
|
14
|
+
Project Ansible is distributed in the hope that it will be useful,
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
+
GNU Lesser General Public License for more details.
|
18
|
+
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
20
|
+
along with Project Ansible. If not, see <http://www.gnu.org/licenses/>.
|
21
|
+
|
22
|
+
for more information on the LGPL, see:
|
23
|
+
http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
|
24
|
+
=end
|
25
|
+
|
26
|
+
module Ansible
|
27
|
+
|
28
|
+
module KNX
|
29
|
+
|
30
|
+
#
|
31
|
+
# DPT9.*: 2-byte floating point value
|
32
|
+
#
|
33
|
+
module DPT9
|
34
|
+
|
35
|
+
# special Bindata::Primitive class required
|
36
|
+
# for non-standard 16-bit floats used by DPT9
|
37
|
+
class DPT9_Float < BinData::Primitive
|
38
|
+
endian :big
|
39
|
+
#
|
40
|
+
bit1 :sign, :display_name => "Sign"
|
41
|
+
bit4 :exp, :display_name => "Exponent"
|
42
|
+
bit11 :mant, :display_name => "Mantissa"
|
43
|
+
#
|
44
|
+
def get
|
45
|
+
# puts "sign=#{sign} exp=#{exp} mant=#{mant}"
|
46
|
+
mantissa = (self.sign==1) ? ~(self.mant^2047) : self.mant
|
47
|
+
return Math.ldexp((0.01*mantissa), self.exp)
|
48
|
+
end
|
49
|
+
#
|
50
|
+
DPT9_Range = -671088.64..670760.96
|
51
|
+
#
|
52
|
+
def set(v)
|
53
|
+
raise "Value (#{v}) out of range" unless DPT9_Range === v
|
54
|
+
mantissa, exponent = Math.frexp(v)
|
55
|
+
#puts "#{self}.set(#{v}) with initial mantissa=#{mantissa}, exponent=#{exponent}"
|
56
|
+
# find the minimum exponent that will upsize the normalized mantissa (0,5 to 1 range)
|
57
|
+
# in order to fit in 11 bits (-2048..2047)
|
58
|
+
max_mantissa = 0
|
59
|
+
minimum_exp = exponent.downto(-15).find{ | e |
|
60
|
+
max_mantissa = Math.ldexp(100*mantissa, e).to_i
|
61
|
+
max_mantissa.between?(-2048, 2047)
|
62
|
+
}
|
63
|
+
self.sign = (mantissa < 0) ? 1 : 0
|
64
|
+
self.mant = (mantissa < 0) ? ~(max_mantissa^2047) : max_mantissa
|
65
|
+
self.exp = exponent - minimum_exp
|
66
|
+
end # set
|
67
|
+
end
|
68
|
+
|
69
|
+
# DPTFrame to parse a DPT9 frame.
|
70
|
+
# Always 8-bit aligned.
|
71
|
+
class DPT9_Frame < DPTFrame
|
72
|
+
dpt9_float :data
|
73
|
+
end
|
74
|
+
|
75
|
+
# DPT9 basetype info
|
76
|
+
Basetype = {
|
77
|
+
:bitlength => 16,
|
78
|
+
:valuetype => :basic,
|
79
|
+
:desc => "16-bit floating point value"
|
80
|
+
}
|
81
|
+
|
82
|
+
# DPT9 subtypes
|
83
|
+
Subtypes = {
|
84
|
+
# 9.001 temperature (oC)
|
85
|
+
"001" => {
|
86
|
+
:name => "DPT_Value_Temp", :desc => "temperature",
|
87
|
+
:unit => "°C", :range => -273..670760
|
88
|
+
},
|
89
|
+
|
90
|
+
# 9.002 temperature difference (oC)
|
91
|
+
"002" => {
|
92
|
+
:name => "DPT_Value_Tempd", :desc => "temperature difference",
|
93
|
+
:unit => "°C", :range => -670760..670760
|
94
|
+
},
|
95
|
+
|
96
|
+
# 9.003 kelvin/hour (K/h)
|
97
|
+
"003" => {
|
98
|
+
:name => "DPT_Value_Tempa", :desc => "kelvin/hour",
|
99
|
+
:unit => "°K/h", :range => -670760..670760
|
100
|
+
},
|
101
|
+
|
102
|
+
# 9.004 lux (Lux)
|
103
|
+
"004" => {
|
104
|
+
:name => "DPT_Value_Lux", :desc => "lux",
|
105
|
+
:unit => " lux", :range => 0..670760
|
106
|
+
},
|
107
|
+
|
108
|
+
# 9.005 speed (m/s)
|
109
|
+
"005" => {
|
110
|
+
:name => "DPT_Value_Wsp", :desc => "wind speed",
|
111
|
+
:unit => "m/s", :range => 0..670760
|
112
|
+
},
|
113
|
+
|
114
|
+
# 9.006 pressure (Pa)
|
115
|
+
"006" => {
|
116
|
+
:name => "DPT_Value_Pres", :desc => "pressure",
|
117
|
+
:unit => "Pa", :range => 0..670760
|
118
|
+
},
|
119
|
+
|
120
|
+
# 9.007 humidity (%)
|
121
|
+
"007" => {
|
122
|
+
:name => "DPT_Value_Humidity", :desc => "humidity",
|
123
|
+
:unit => "%", :range => 0..670760
|
124
|
+
},
|
125
|
+
|
126
|
+
# 9.008 parts/million (ppm)
|
127
|
+
"008" => {
|
128
|
+
:name => "DPT_Value_AirQuality", :desc => "air quality",
|
129
|
+
:unit => "ppm", :range => 0..670760
|
130
|
+
},
|
131
|
+
|
132
|
+
# 9.010 time (s)
|
133
|
+
"010" => {
|
134
|
+
:name => "DPT_Value_Time1", :desc => "time(sec)",
|
135
|
+
:unit => "s", :range => -670760..670760
|
136
|
+
},
|
137
|
+
|
138
|
+
# 9.011 time (ms)
|
139
|
+
"011" => {
|
140
|
+
:name => "DPT_Value_Time2", :desc => "time(msec)",
|
141
|
+
:unit => "ms", :range => -670760..670760
|
142
|
+
},
|
143
|
+
|
144
|
+
# 9.020 voltage (mV)
|
145
|
+
"020" => {
|
146
|
+
:name => "DPT_Value_Volt", :desc => "voltage",
|
147
|
+
:unit => "mV", :range => -670760..670760
|
148
|
+
},
|
149
|
+
|
150
|
+
# 9.021 current (mA)
|
151
|
+
"021" => {
|
152
|
+
:name => "DPT_Value_Curr", :desc => "current",
|
153
|
+
:unit => "mA", :range => -670760..670760
|
154
|
+
},
|
155
|
+
|
156
|
+
# 9.022 power density (W/m2)
|
157
|
+
"022" => {
|
158
|
+
:name => "DPT_PowerDensity", :desc => "power density",
|
159
|
+
:unit => "W/m²", :range => -670760..670760
|
160
|
+
},
|
161
|
+
|
162
|
+
# 9.023 kelvin/percent (K/%)
|
163
|
+
"023" => {
|
164
|
+
:name => "DPT_KelvinPerPercent", :desc => "Kelvin / %",
|
165
|
+
:unit => "K/%", :range => -670760..670760
|
166
|
+
},
|
167
|
+
|
168
|
+
# 9.024 power (kW)
|
169
|
+
"024" => {
|
170
|
+
:name => "DPT_Power", :desc => "power (kW)",
|
171
|
+
:unit => "kW", :range => -670760..670760
|
172
|
+
},
|
173
|
+
|
174
|
+
# 9.025 volume flow (l/h)
|
175
|
+
"025" => {
|
176
|
+
:name => "DPT_Value_Volume_Flow", :desc => "volume flow",
|
177
|
+
:unit => "l/h", :range => -670760..670760
|
178
|
+
},
|
179
|
+
|
180
|
+
# 9.026 rain amount (l/m2)
|
181
|
+
"026" => {
|
182
|
+
:name => "DPT_Rain_Amount", :desc => "rain amount",
|
183
|
+
:unit => "l/m²", :range => -670760..670760
|
184
|
+
},
|
185
|
+
|
186
|
+
# 9.027 temperature (Fahrenheit)
|
187
|
+
"027" => {
|
188
|
+
:name => "DPT_Value_Temp_F", :desc => "temperature (F)",
|
189
|
+
:unit => "°F", :range => -459.6..670760
|
190
|
+
},
|
191
|
+
|
192
|
+
# 9.028 wind speed (km/h)
|
193
|
+
"028" => {
|
194
|
+
:name => "DPT_Value_Wsp_kmh", :desc => "wind speed (km/h)",
|
195
|
+
:unit => "km/h", :range => 0..670760
|
196
|
+
},
|
197
|
+
}
|
198
|
+
|
199
|
+
end
|
200
|
+
|
201
|
+
end
|
202
|
+
|
203
|
+
end
|
204
|
+
|