ayla
Version:
Ayla at your service.
59 lines (45 loc) • 1.75 kB
text/coffeescript
# ELECTRIC IMP API
# -----------------------------------------------------------------------------
class ElectricImp extends (require "./baseApi.coffee")
expresser = require "expresser"
events = expresser.events
logger = expresser.logger
settings = expresser.settings
async = require "async"
lodash = require "lodash"
moment = require "moment"
# INIT
# -------------------------------------------------------------------------
# Init the Electric Imp module.
init: =>
@baseInit()
# Start collecting Electric Imp data.
start: =>
@getDeviceData()
@baseStart()
# Stop collecting Electric Imp data.
stop: =>
@baseStop()
# GET DEVICE DATA
# -------------------------------------------------------------------------
# Gets the data.
getDeviceData: =>
if not settings.electricImp?.api?
logger.warn "ElectricImp.getDeviceData", "Electric Imp API settings are not defined. Abort!"
return
@makeRequest settings.electricImp.api.url, (err, result) =>
if err?
@logError "ElectricImp.getDeviceData", err
else
@setData "current", result
# JOBS
# -------------------------------------------------------------------------
# Refresh weather data and save to the database.
jobGetWeather: =>
@getCurrentWeather()
# Singleton implementation.
# -----------------------------------------------------------------------------
ElectricImp.getInstance = ->
@instance = new ElectricImp() if not @instance?
return @instance
module.exports = exports = ElectricImp.getInstance()