     catch error
       @emitError error
 
-  onError: =>
-    randomNumber = Math.random() * 5
-    reconnectTimeout = @backoff.duration() * randomNumber
-    debug "reconnecting in #{reconnectTimeout}ms"
-    setTimeout @reconnect, reconnectTimeout
+  onError: (error) =>
+    console.error error.message
+    @reconnectWithBackoff()
 
   onMessage: (message) =>
     @emit 'message.recieve', message

    @meshblu.whoami uuid: @config.uuid
    @meshblu.on 'whoami', (device) =>
      @plugin.setOptions device

  reconnect: =>
    debug 'reconnect'

    @meshblu.on 'ready', @onReady
    @meshblu.on 'message', @onMessage
    @meshblu.on 'config', @onConfig
    @meshblu.on 'close', @reconnectWithBackoff

  onConfig: (device) =>
    @emit 'config', device
