Class: TPLink::Device

Inherits:
Object
  • Object
show all
Defined in:
lib/tp_link/device.rb

Overview

Generic class for all TPLink devices0

Direct Known Subclasses

Light, Plug, RGBLight

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#aliasString (readonly)

Returns alais of device.

Returns:

  • (String)

    Device alias (name in kasa app).



13
14
15
# File 'lib/tp_link/device.rb', line 13

def alias
  @alias
end

#nameString (readonly)

Returns name of device.

Returns:

  • (String)

    Name of device (e.g. TP Link Smart Plug).



17
18
19
# File 'lib/tp_link/device.rb', line 17

def name
  @name
end

#statusBoolean<1>, Boolean<0> (readonly)

Returns satus of device.

Returns:

  • (Boolean<1>)

    if device is on.

  • (Boolean<0>)

    if device is off.



9
10
11
# File 'lib/tp_link/device.rb', line 9

def status
  @status
end

Instance Method Details

#offObject

Turn device off



71
# File 'lib/tp_link/device.rb', line 71

def off; end

#off?True, False

Returns:

  • (True)

    if device is off.

  • (False)

    if device is on.



82
83
84
# File 'lib/tp_link/device.rb', line 82

def off?
  !on?
end

#onObject

Turn device on



68
# File 'lib/tp_link/device.rb', line 68

def on; end

#on?True, False

Returns:

  • (True)

    if device is on.

  • (False)

    if device is off.



75
76
77
78
# File 'lib/tp_link/device.rb', line 75

def on?
  reload
  @status == 1
end

#reloadObject

Reload data / device state



52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/tp_link/device.rb', line 52

def reload
  res = @parent.send_data(self,
                          "system":
                           { "get_sysinfo": nil },
                          "emeter": { "get_realtime": nil })
  @rssi = res['responseData']['system']['get_sysinfo']['rssi']
  case self.class.to_s
  when 'TPLink::Light'
    reload_light(res)
  when 'TPLink::Plug'
    reload_plug(res)
  end
  true
end

#rssiObject

Get Wifi signal strength in dB



46
47
48
49
# File 'lib/tp_link/device.rb', line 46

def rssi
  reload
  @rssi
end