Class: Dirigera::Blinds

Inherits:
Device
  • Object
show all
Defined in:
lib/dirigera/blinds.rb

Instance Attribute Summary

Attributes inherited from Device

#client

Instance Method Summary collapse

Methods inherited from Device

#battery_level, #created_at, #id, #initialize, #last_seen_at, #name, #name=, #reachable?, #reload, #room, #type

Constructor Details

This class inherits a constructor from Dirigera::Device

Instance Method Details

#current_levelObject



14
15
16
# File 'lib/dirigera/blinds.rb', line 14

def current_level
  @data['attributes']['blindsCurrentLevel']
end

#downObject



6
7
8
# File 'lib/dirigera/blinds.rb', line 6

def down
  self.target_level = 100
end

#stateObject



10
11
12
# File 'lib/dirigera/blinds.rb', line 10

def state
  @data['attributes']['blindsState']
end

#target_levelObject



18
19
20
# File 'lib/dirigera/blinds.rb', line 18

def target_level
  @data['attributes']['blindsTargetLevel']
end

#target_level=(level) ⇒ Object

Raises:

  • (ArgumentError)


22
23
24
25
26
27
28
29
# File 'lib/dirigera/blinds.rb', line 22

def target_level=(level)
  raise ArgumentError, 'level must be between 0 and 100' unless (0..100).include?(level)

  response = @client.patch("/devices/#{id}", [{ attributes: { blindsTargetLevel: level } }])
  raise 'Failed to update target level' unless response.code == 202

  @data['attributes']['blindsTargetLevel'] = level
end

#upObject



2
3
4
# File 'lib/dirigera/blinds.rb', line 2

def up
  self.target_level = 0
end