77 lines
3.1 KiB
JavaScript
77 lines
3.1 KiB
JavaScript
const post = require('../lib/post')
|
|
const common = require('../lib/common')
|
|
let logger = require('perfect-logger')
|
|
|
|
|
|
module.exports = function (app) {
|
|
app.post("/water/switch", async function (req, res, next) {
|
|
logger.debug('POST - /water/switch - START')
|
|
if (req.body.switch === "1") {
|
|
logger.debug('POST - /water/switch - ON - START')
|
|
try {
|
|
await post.postRequest('{"zoneId":[1],"setPoint": 255,"durationMinutes": 90}', 'apply_timer')
|
|
const response = await post.postRequest('{}', 'poll')
|
|
const water = response.updateData.zones[1].status
|
|
const on = await common.heatingOn(water)
|
|
|
|
let waterStatus = {
|
|
"waterOn": JSON.stringify(on),
|
|
}
|
|
logger.debug('POST - /water/switch - ON - COMPLETE')
|
|
res.json(waterStatus)
|
|
} catch (error) {
|
|
logger.warn('POST - /water/switch - ON - FAILED')
|
|
}
|
|
} else if (req.body.switch === "0") {
|
|
try {
|
|
logger.debug('POST - /water/switch - OFF - START')
|
|
await post.postRequest('{"zoneId":[1]}', 'cancel_timer')
|
|
const response = await post.postRequest('{}', 'poll')
|
|
const water = response.updateData.zones[1].status
|
|
const on = await common.heatingOn(water)
|
|
|
|
let waterStatus = {
|
|
"waterOn": JSON.stringify(on),
|
|
}
|
|
logger.debug('POST - /water/switch - OFF - COMPLETE')
|
|
res.json(waterStatus)
|
|
} catch (error) {
|
|
const response = await post.postRequest('{}', 'poll')
|
|
const water = response.updateData.zones[1].status
|
|
const on = await common.heatingOn(water)
|
|
|
|
let waterStatus = {
|
|
"waterOn": JSON.stringify(on),
|
|
}
|
|
logger.warn('POST - /water/switch - OFF - FAILED')
|
|
res.json(waterStatus)
|
|
}
|
|
} else {
|
|
const response = await post.postRequest('{}', 'poll')
|
|
const water = response.updateData.zones[1].status
|
|
const on = await common.heatingOn(water)
|
|
|
|
let waterStatus = {
|
|
"waterOn": JSON.stringify(on),
|
|
}
|
|
logger.warn('POST - /water/switch - OFF - FAILED')
|
|
res.json(waterStatus)
|
|
}
|
|
});
|
|
|
|
app.post("/water/status", async function (req, res, next) {
|
|
logger.debug('POST - /water/status - START')
|
|
const response = await post.postRequest('{}', 'poll')
|
|
const water = response.updateData.zones[1].status
|
|
const on = await common.heatingOn(water)
|
|
|
|
let waterStatus = {
|
|
"waterOn": JSON.stringify(on),
|
|
"currentSetpoint": JSON.stringify(water.currentSetpoint),
|
|
"lastTimerSetPoint": JSON.stringify(water.lastTimerSetPoint),
|
|
"lastTimerDurationMinutes": JSON.stringify(water.lastTimerDurationMinutes)
|
|
}
|
|
logger.debug('POST - /water/status - END')
|
|
res.json(waterStatus)
|
|
});
|
|
} |