uci-ha/examples/watch-set.js

38 lines
1.3 KiB
JavaScript

import Hass from '../src/homeassistant'
import readYaml from 'load-yaml-file'
;
(async () => {
let opts = await readYaml(process.env.HA_OPTS_PATH || './examples/opts.yaml')
console.log(opts)
const hass = new Hass(opts)
hass.on('connection', msg => console.log(`connection: ${msg}`))
await hass.connect()
if (hass.eventBusId) console.log('listener established for HA event bus')
hass.on('error', err => console.log(err))
let name = 'test'
let list = ['input_number.node_test_first_number','input_number.node_test_second_number']
await hass.makeWatchList(list,name)
hass.on('wl-'+name,(ent) => {
testAction(ent.entity_id)
})
function testAction() {
let vars = hass.getWatchList(name)
// console.log(vars)
let first = vars[list[0]].state
let second = vars[list[1]].state
let sum = +first + +second
console.log(`return sum of ${first} and ${second} which is ${sum}`)
hass.setVariable('node_test_sum', sum)
// sum > 99 ? hass.switch('node_test_switch','on') : hass.switch('node_test_switch','off')
sum > 99 ? hass.setVariable('node_test_switch', 'ON') : hass.setVariable('node_test_switch','OFF')
}
})().catch(err => {
console.error('FATAL: UNABLE TO START SYSTEM!\n',err)
process.kill(process.pid, 'SIGTERM')
})