Module: TeslaApi::Autopark

Included in:
Vehicle
Defined in:
lib/tesla_api/autopark.rb

Instance Method Summary collapse

Instance Method Details

#start_autopark(&handler) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/tesla_api/autopark.rb', line 3

def start_autopark(&handler)
  EventMachine.run do
    autopark_socket.on(:message) do |event|
      message = if event.data.is_a?(Array)
        JSON.parse(event.data.map(&:chr).join)
      else
        JSON.parse(event.data)
      end

      default_handler(message)
      handler.call(message.delete('msg_type'), message)
    end

    autopark_socket.on(:close) do |_|
      @autopark_socket = nil
      @heartbeat && @heartbeat.cancel
      EventMachine.stop
    end
  end
end