class Roowifi::Roomba

Constants

BUTTON_MAPPING

Attributes

client[R]
ip[R]

Public Class Methods

new(ip:, user: 'admin', pass: 'roombawifi') click to toggle source
# File lib/roowifi/roomba.rb, line 14
def initialize(ip:, user: 'admin', pass: 'roombawifi')
  @ip     = ip
  @client = HTTP.basic_auth(user: user, pass: pass)
end

Public Instance Methods

clean() click to toggle source
# File lib/roowifi/roomba.rb, line 23
def clean
  click_button(:clean)
end
dock() click to toggle source
# File lib/roowifi/roomba.rb, line 19
def dock
  click_button(:dock)
end
spot() click to toggle source
# File lib/roowifi/roomba.rb, line 27
def spot
  click_button(:spot)
end
status() click to toggle source
# File lib/roowifi/roomba.rb, line 35
def status
  json_body = client.get("http://#{ip}/roomba.json").body.to_s
  Status.new(JSON.parse json_body)
end
stop() click to toggle source
# File lib/roowifi/roomba.rb, line 31
def stop
  click_button(:idle)
end

Private Instance Methods

click_button(button) click to toggle source
# File lib/roowifi/roomba.rb, line 44
def click_button(button)
  client.get("http://#{ip}/rwr.cgi?exec=#{BUTTON_MAPPING[button]}")
end