61 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.4 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.info('POST - /water/switch - START')
 | 
						|
        if (req.body.switch === 1) {
 | 
						|
            logger.info('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.info('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.info('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.info('POST - /water/switch - OFF - COMPLETE')
 | 
						|
                res.json(waterStatus)
 | 
						|
            } catch (error) {
 | 
						|
                logger.warn('POST - /water/switch - OFF - FAILED')
 | 
						|
            }
 | 
						|
        } else {
 | 
						|
            logger.warn('POST - /water/switch - FAILED')
 | 
						|
        }
 | 
						|
    });
 | 
						|
 | 
						|
    app.post("/water/status", async function (req, res, next) {
 | 
						|
        logger.info('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.info('POST - /water/status - END')
 | 
						|
        res.json(waterStatus)
 | 
						|
    });
 | 
						|
} |