class Botvac::Robot

Attributes

secret[RW]
serial[RW]

Public Class Methods

new(serial, secret) click to toggle source
# File lib/botvac/robot.rb, line 10
def initialize(serial, secret)
  self.serial  = serial
  self.secret  = secret
end

Public Instance Methods

disable_schedule() click to toggle source
# File lib/botvac/robot.rb, line 49
def disable_schedule
  connection.post("messages", JSON.dump({ reqId: "1", cmd: "disableSchedule"})).body
end
enable_schedule() click to toggle source
# File lib/botvac/robot.rb, line 45
def enable_schedule
  connection.post("messages", JSON.dump({ reqId: "1", cmd: "enableSchedule" })).body
end
get_robot_state() click to toggle source
# File lib/botvac/robot.rb, line 41
def get_robot_state
  connection.post("messages", JSON.dump({ reqId: "1", cmd: "getRobotState" })).body
end
get_schedule() click to toggle source
# File lib/botvac/robot.rb, line 53
def get_schedule
  connection.post("messages", JSON.dump({ reqId: "1", cmd: "getSchedule" })).body
end
pause_cleaning() click to toggle source
# File lib/botvac/robot.rb, line 29
def pause_cleaning
  connection.post("messages", JSON.dump({ reqId: "1",cmd: "pauseCleaning" })).body
end
send_to_base() click to toggle source
# File lib/botvac/robot.rb, line 37
def send_to_base
  connection.post("messages", JSON.dump({ reqId: "1",cmd: "sendToBase" })).body
end
start_cleaning() click to toggle source
# File lib/botvac/robot.rb, line 15
def start_cleaning
  connection.post("messages", JSON.dump(
    {
      reqId: "1",
      cmd: "startCleaning",
      params: {
        category: 2,
        mode: 2,
        modifier: 2
      }
    }
  )).body
end
stop_cleaning() click to toggle source
# File lib/botvac/robot.rb, line 33
def stop_cleaning
  connection.post("messages", JSON.dump({ reqId: "1",cmd: "stopCleaning" })).body
end

Protected Instance Methods

connection() click to toggle source
# File lib/botvac/robot.rb, line 78
def connection
  @connection ||= Faraday.new(ssl: { ca_file: File.join(File.dirname(__FILE__), '..', '..', 'cert', 'neatocloud.com.crt') }) do |faraday|
    faraday.url_prefix= "#{Botvac::ENDPOINT}/vendors/neato/robots/#{self.serial}/"
    faraday.use Hmac, { serial: self.serial, secret: self.secret }
    faraday.headers["Accept"]= 'application/vnd.neato.nucleo.v1'
    faraday.adapter Faraday.default_adapter
  end
end