NEWS
Работа из скрипта со свойствами объектов
-
Прошу совета, может быть кто-нибудь уже делал подобное.
Я разделяю слои физических и логических устройств, связывая их между собой в отдельном скрипте.
В результате получаю удобную структуру на логическом уровне и дальше работаю только с логическими устройствами. В случае изменения чего-либо редактирую только связку, в вся основная логика, которая может быть во многих скриптах, остается неизменной.
Вот пример:
~~![](</s><URL url=)http://s13.radikal.ru/i186/1611/88/f054e266c976.jpg" />
Теперь собственно вопрос:
Как логичнее и удобнее всего связать выключатель с соответствующими лампами (их может быть как одна, так и несколько). Логичнее всего, на мой взгляд, в объекте выключателя добавить свойство, в которое прописать имена объектов - ламп, которыми он управляет. Система позволяет добавить такое свойство, но из скрипта вытащить его значения у меня не получается…
Можно в global сделать массив и описать ссылки на управляющие и управляемые объекты в нем, но мне кажется, что это некрасиво и громоздко.
Что подскажет коллективный разум?~~
-
@Ho Hum:Прошу совета, может быть кто-нибудь уже делал подобное.
Я разделяю слои физических и логических устройств, связывая их между собой в отдельном скрипте.
В результате получаю удобную структуру на логическом уровне и дальше работаю только с логическими устройствами. В случае изменения чего-либо редактирую только связку, в вся основная логика, которая может быть во многих скриптах, остается неизменной.
Вот пример:
~~![](</s><URL url=)http://s13.radikal.ru/i186/1611/88/f054e266c976.jpg" />
Теперь собственно вопрос:
Как логичнее и удобнее всего связать выключатель с соответствующими лампами (их может быть как одна, так и несколько). Логичнее всего, на мой взгляд, в объекте выключателя добавить свойство, в которое прописать имена объектов - ламп, которыми он управляет. Система позволяет добавить такое свойство, но из скрипта вытащить его значения у меня не получается…
Можно в global сделать массив и описать ссылки на управляющие и управляемые объекты в нем, но мне кажется, что это некрасиво и громоздко.
Что подскажет коллективный разум?~~ ` ~~Ты можешь посмотреть данные объекта, так:
console.log(JSON.stringify(getObject('Home.0.Lights.FirstFloor.L-20').native));
И даже заносить туда свои значения. Параметр объекта native создан как раз для того, что бы там хранить специфичные данные.
Советую сделать так:
extendObject('Home.0.Lights.FirstFloor.L-20', {native: {binds: ['myRealID']}});
И потом
`on('Home.0.Lights.FirstFloor.L-20', function (obj) { var myObj = getObject('Home.0.Lights.FirstFloor.L-20'); if (myObj && myObj.native && myObj.native.binds) { if (typeof myObj.native.binds === 'object') { for (var b = 0; b < myObj.native.binds.length; b++) { setState(myObj.native.binds[b], obj.state.val); } } else { setState(myObj.native.binds, obj.state.val); } } });` P.S. очень интересный подход. ;)[/b] ```~~
-
Спасибо, попробую.
Надеюсь, слова про интересный подход сказаны в прямом, а не переносном смысле
-
@Ho Hum:Спасибо, попробую.
Надеюсь, слова про интересный подход сказаны в прямом, а не переносном смысле `
В прямом.Я бы даже изменил:
`on(/^Home\./, function (obj) { if (obj && obj.native && obj.native.binds) { if (typeof obj.native.binds === 'object') { for (var b = 0; b < obj.native.binds.length; b++) { setState(obj.native.binds[b], obj.state.val); } } else { setState(obj.native.binds, obj.state.val); } } });` [/b]
-
@Ho Hum:Прошу совета, может быть кто-нибудь уже делал подобное.
Я разделяю слои физических и логических устройств, связывая их между собой в отдельном скрипте.
В результате получаю удобную структуру на логическом уровне и дальше работаю только с логическими устройствами. В случае изменения чего-либо редактирую только связку, в вся основная логика, которая может быть во многих скриптах, остается неизменной.
Вот пример:
~~![](</s><URL url=)http://s13.radikal.ru/i186/1611/88/f054e266c976.jpg" />
Теперь собственно вопрос:
Как логичнее и удобнее всего связать выключатель с соответствующими лампами (их может быть как одна, так и несколько). Логичнее всего, на мой взгляд, в объекте выключателя добавить свойство, в которое прописать имена объектов - ламп, которыми он управляет. Система позволяет добавить такое свойство, но из скрипта вытащить его значения у меня не получается…
Можно в global сделать массив и описать ссылки на управляющие и управляемые объекты в нем, но мне кажется, что это некрасиво и громоздко.
Что подскажет коллективный разум?~~ `
http://forum.iobroker.net/viewtopic.php?f=16&t=7113 -
Значение сейчас true :
var obj1=JSON.stringify(getObject('megad.0.p0').common.custom["sql.0"].enabled);
Как его поменять на false?