Class: HumbleRPiPluginDoorLock

Inherits:
Object
  • Object
show all
Defined in:
lib/humble_rpi-plugin-doorlock.rb

Instance Method Summary collapse

Constructor Details

#initialize(settings: {}, variables: {}) ⇒ HumbleRPiPluginDoorLock

Returns a new instance of HumbleRPiPluginDoorLock.



11
12
13
14
15
# File 'lib/humble_rpi-plugin-doorlock.rb', line 11

def initialize(settings: {}, variables: {})
  
  @gpio_pins = settings[:pins]

end

Instance Method Details

#on_doorlock_message(message) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/humble_rpi-plugin-doorlock.rb', line 17

def on_doorlock_message(message)
          
  r = message.match(/(\d+)?\s*(open|close|lock|unlock)\s*(?:\s*duration\s)?([\d\.]+)?/)

  if r then
    
    index, state, raw_duration = r.captures
    index ||= 0
    
    duration = raw_duration ? raw_duration.to_f : nil

    a = case state

      when 'open'
        [:unlock, duration]
      when 'unlock'
        [:unlock, duration]
      when 'close'
        [:lock, duration]
      when 'lock'
        [:lock, duration]
    end

    @door[index.to_i].send(*a)
  end
end

#on_exitObject



52
53
54
# File 'lib/humble_rpi-plugin-doorlock.rb', line 52

def on_exit()
  @door.on_exit
end

#startObject Also known as: on_start



44
45
46
47
48
# File 'lib/humble_rpi-plugin-doorlock.rb', line 44

def start()

  @door = SimpleRaspberryPi.new(@gpio_pins).pins  if @gpio_pins.any?    
  
end