if not modules then modules = { } end modules ['mtx-evohome'] = { version = 1.002, comment = "script to fetch data from a evohome device", author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", copyright = "PRAGMA ADE", license = "see context related readme files" } local evohome = require("util-evo") local formatters = string.formatters -- the script local helpinfo = [[ mtx-evohome Evohome Fetcher 1.00 collect data from device update data from device file with authenciation data fetch temperature data every hour server port when running the service, default: 8068 server host when running the service, default: localhost Example mtxrun --script evohome --collect --presets=c:/data/develop/domotica/code/evohome-presets.lua mtxrun --script evohome --server --presets=c:/data/develop/domotica/code/evohome-presets.lua ]] local application = logs.application { name = "mtx-evohome", banner = "Evohome Fetcher 1.00", helpinfo = helpinfo, } local report = application.report scripts = scripts or { } scripts.evohome = scripts.evohome or { } local arguments = environment.arguments local files = environment.files function scripts.evohome.collect() local presets = arguments.presets local delay = tonumber(arguments.delay) or 15*60*60 if presets then presets = evohome.helpers.loadpresets(presets) end if presets then local function fetch() report("current time %a",os.now()) evohome.helpers.updatetemperatures(presets) end if arguments.auto then while true do fetch() report("sleeping for %i seconds",delay) io.flush() os.sleep(delay) end else fetch(presets) end else report("invalid preset file") end end function scripts.evohome.update() local presets = arguments.presets if presets then presets = evohome.helpers.loadpresets(presets) end if presets then evohome.helpers.geteverything(presets) else report("invalid preset file") end end function scripts.evohome.server() local presets = arguments.presets if presets then require("util-evo-imp-server") evohome.server { filename = presets, -- e:/domotica/code/evohome-presets.lua host = arguments.host, port = tonumber(arguments.port), } else report("invalid preset file") end end if environment.argument("collect") then scripts.evohome.collect() elseif environment.argument("update") then scripts.evohome.update() elseif environment.argument("server") then scripts.evohome.server() elseif environment.argument("exporthelp") then application.export(environment.argument("exporthelp"),environment.files[1]) else application.help() end