class HumbleRPiPluginDoorLock

Public Class Methods

new(settings: {}, variables: {}) click to toggle source
# File lib/humble_rpi-plugin-doorlock.rb, line 11
def initialize(settings: {}, variables: {})
  
  @gpio_pins = settings[:pins]

end

Public Instance Methods

on_doorlock_message(message) click to toggle source
# 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_exit() click to toggle source
# File lib/humble_rpi-plugin-doorlock.rb, line 52
def on_exit()
  @door.on_exit
end
on_start()
Alias for: start
start() click to toggle source
# File lib/humble_rpi-plugin-doorlock.rb, line 44
def start()

  @door = SimpleRaspberryPi.new(@gpio_pins).pins  if @gpio_pins.any?    
  
end
Also aliased as: on_start