Module: HAP::Client
Constant Summary
Constants included
from Pairing
Pairing::ERROR_NAMES, Pairing::ERROR_TYPES
EncryptionRequest::AAD_LENGTH_BYTES, EncryptionRequest::AUTHENTICATE_TAG_LENGTH_BYTES
Constants included
from Log
Log::LOG_LVL
Instance Attribute Summary
#decryption_count, #encryption_count
Instance Method Summary
collapse
Methods included from Pairing
#pair_setup, #pair_verify
Methods included from Request
#get, #init_request, #post, #put
#encryption_ready?
Methods included from Parser
#init_parser, #on_body, #on_headers_complete, #on_message_begin, #on_message_complete, #receive_data
Methods included from Log
#debug, #error, #fatal, #info, #init_log, #log_debug?, #warn
Instance Method Details
#get_accessories(&block) ⇒ Object
71
72
73
74
75
76
77
78
|
# File 'lib/hap_client.rb', line 71
def get_accessories(&block)
info("Get Accessories")
get("/")
if block_given?
@callback = block
end
end
|
#get_id(service_id, characteristic_id) ⇒ Object
96
97
98
99
100
101
102
103
104
105
106
107
|
# File 'lib/hap_client.rb', line 96
def get_id(service_id, characteristic_id)
@services.each do |service|
if service[:type] == service_id
service[:characteristics].each do |char|
if char[:type] == characteristic_id
return char
end
end
end
end
return nil
end
|
#get_type(aid, iid) ⇒ Object
88
89
90
91
92
93
94
|
# File 'lib/hap_client.rb', line 88
def get_type(aid, iid)
begin
return @ids[aid][iid]
rescue
return ""
end
end
|
#get_value(aid, iid) ⇒ Object
80
81
82
83
84
85
86
|
# File 'lib/hap_client.rb', line 80
def get_value(aid, iid)
begin
return @values[aid][iid][:value]
rescue
return ""
end
end
|
#initialize ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/hap_client.rb', line 15
def initialize
@name = "Unknown Client"
@mode = :init
@values = {}
@ids = {}
@manufacturer = ""
@model = ""
@name = ""
@serial = ""
@version = ""
init_request()
init_log()
end
|
#set_value(aid, iid, value) ⇒ Object
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/hap_client.rb', line 31
def set_value(aid, iid, value)
info("Set Value #{aid}:#{iid} to #{value}")
data = {
"characteristics" => [{
"aid" => aid.to_i,
"iid" => iid.to_i,
"value" => value.to_i
}]
}
put("/characteristics", "application/hap+json", JSON.generate(data))
end
|
#subscribe(&block) ⇒ Object
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
|
# File 'lib/hap_client.rb', line 44
def subscribe(&block)
events = []
@values.each do |service|
service[1].each do |val|
value = val[1]
if value[:perms].include?("ev")
info("Subscribe to #{value[:aid]}:#{value[:iid]}")
events.push({
:aid => value[:aid],
:iid => value[:iid],
:ev => true
})
end
end
end
data = {
:characteristics => events
}
put("/characteristics", "application/hap+json", JSON.generate(data))
if block_given?
@callback = block
end
end
|
#to_s ⇒ Object
109
110
111
|
# File 'lib/hap_client.rb', line 109
def to_s
@name
end
|