Class: TuyaCloud::API

Inherits:
Object
  • Object
show all
Defined in:
lib/tuya_cloud/api.rb

Defined Under Namespace

Classes: Auth

Constant Summary collapse

CLOUD_URL =
'https://px1.tuya%.com'
DEFAULT_REGION =
'us'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(username, password, country_code, brand, region = DEFAULT_REGION) ⇒ API

Returns a new instance of API.



15
16
17
18
19
# File 'lib/tuya_cloud/api.rb', line 15

def initialize(username, password, country_code, brand, region = DEFAULT_REGION)
  self.auth = Auth.new(username, password, country_code, brand, region)
  auth.
  self.devices = []
end

Instance Attribute Details

#authObject

Returns the value of attribute auth.



12
13
14
# File 'lib/tuya_cloud/api.rb', line 12

def auth
  @auth
end

#devicesObject

Returns the value of attribute devices.



12
13
14
# File 'lib/tuya_cloud/api.rb', line 12

def devices
  @devices
end

Instance Method Details

#discover_devicesObject



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/tuya_cloud/api.rb', line 21

def discover_devices
  request = auth.process_request('Discovery', 'discovery')
  return nil unless request &&
                    request['devices'] &&
                    request['devices'].is_a?(Array)

  self.devices = []
  request['devices'].each do |device|
    devices << Device.new(device, auth)
  end
  devices
end

#find_device_by_id(id) ⇒ Object



38
39
40
41
42
# File 'lib/tuya_cloud/api.rb', line 38

def find_device_by_id(id)
  discover_devices if devices.size.zero?
  devices.each { |device| return device if device.id == id }
  nil
end

#find_device_by_name(name) ⇒ Object



44
45
46
47
48
# File 'lib/tuya_cloud/api.rb', line 44

def find_device_by_name(name)
  discover_devices if devices.size.zero?
  devices.each { |device| return device if device.name == name }
  nil
end

#refresh_devicesObject



34
35
36
# File 'lib/tuya_cloud/api.rb', line 34

def refresh_devices
  discover_devices
end