UNPKG

node-red-contrib-clowire

Version:

clowire for node-red

54 lines (50 loc) 1.78 kB
function handleServiceData(data){ if (typeof data.uid !== 'string') return const domain = data.uid.split('.') if (!domain.length) return return sendData = { "id": Date.now(), "type": "call_service", "domain": domain[0], "service": 'toggle', "service_data": { "entity_id": data.uid } } } module.exports.ClimateObjToSerivce = function (data) { const sendData = handleServiceData(data) let flag = 1 switch (data.type) { case 'setTemperature': sendData.service = "set_temperature" sendData.service_data.temperature = data.val break case 'mode': sendData.service = "set_hvac_mode" sendData.service_data.hvac_mode = data.val break case 'fan_speed': sendData.service = "set_fan_mode" sendData.service_data.fan_mode = data.val break case 'power': if (data.val === 'on') { sendData.service = "set_hvac_mode" sendData.service_data.hvac_mode = "auto" } else sendData.service = 'turn_off' break default: flag = 0 break } if (flag) { return { call_service: sendData, data: { domain: data.uid.split('.')[0], entity_id: data.uid, data: sendData.service_data, service: sendData.service } } } return null } module.exports.SwitchObjToSerivce = function (data) { const sendData = handleServiceData(data) return { call_service: sendData, data: { domain: data.uid.split('.')[0], entity_id: data.uid, data: sendData.service_data, service: sendData.service } } }