UNPKG

iobroker.ems-esp

Version:
83 lines (72 loc) 2.47 kB
/* eslint-disable no-empty */ let adapter; const enums = async function (a, id) { adapter = a; const name = `ems-esp.${adapter.instance}.${id}`; // search for old enum room attributes and delete it let res = await adapter.getEnumsAsync('rooms'); let _result = res['enum.rooms']; for (const room in _result) { for (const i in _result[room].common.members) { if (_result[room].common.members[i] == name && room != adapter.config.room) { //adapter.log.info(name+" "+i+ " "+ room); _result[room].common.members.splice(i, 1); await adapter.setForeignObjectAsync(room, _result[room]); } } } // search for old enum function attributes and delete it res = await adapter.getEnumsAsync('functions'); _result = res['enum.functions']; for (const func in _result) { for (const i in _result[func].common.members) { if (_result[func].common.members[i] == name && func != adapter.config.function) { //adapter.log.info(name+" "+i+ " "+ func); _result[func].common.members.splice(i, 1); await adapter.setForeignObjectAsync(func, _result[func]); } } } // add enums room and function attributes if (adapter.config.room != '') { enum_add(adapter.config.room, name); } if (adapter.config.function != '') { enum_add(adapter.config.function, name); } }; async function enum_add(enumName, id) { const enumn = enumName; try { const obj = await adapter.getForeignObjectAsync(enumn); let found = false; for (let i = 0; i < obj.common.members.length; i++) { if (obj.common.members[i] == id) { found = true; break; } } if (!found) { obj.common.members.push(id); await adapter.setForeignObjectAsync(enumn, obj); } } catch {} } const roles = function (a, device, type, uom, writable) { adapter = a; let role = 'value'; if (writable == true) { role = 'level'; } if (uom == '°C' || uom == 'C') { role += '.temperature'; } if (type == 'boolean' && writable == true) { role = 'switch.mode'; } if (type == 'boolean' && writable == false) { role = 'indicator'; } return role; }; module.exports = { enums, roles };