NEWS
Работа из скрипта со свойствами объектов
-
Прошу совета, может быть кто-нибудь уже делал подобное.
Я разделяю слои физических и логических устройств, связывая их между собой в отдельном скрипте.
В результате получаю удобную структуру на логическом уровне и дальше работаю только с логическими устройствами. В случае изменения чего-либо редактирую только связку, в вся основная логика, которая может быть во многих скриптах, остается неизменной.
Вот пример:
~~http://s13.radikal.ru/i186/1611/88/f054e266c976.jpg" />Теперь собственно вопрос:
Как логичнее и удобнее всего связать выключатель с соответствующими лампами (их может быть как одна, так и несколько). Логичнее всего, на мой взгляд, в объекте выключателя добавить свойство, в которое прописать имена объектов - ламп, которыми он управляет. Система позволяет добавить такое свойство, но из скрипта вытащить его значения у меня не получается…
Можно в global сделать массив и описать ссылки на управляющие и управляемые объекты в нем, но мне кажется, что это некрасиво и громоздко.
Что подскажет коллективный разум?~~
-
@Ho Hum:Прошу совета, может быть кто-нибудь уже делал подобное.
Я разделяю слои физических и логических устройств, связывая их между собой в отдельном скрипте.
В результате получаю удобную структуру на логическом уровне и дальше работаю только с логическими устройствами. В случае изменения чего-либо редактирую только связку, в вся основная логика, которая может быть во многих скриптах, остается неизменной.
Вот пример:
~~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:Прошу совета, может быть кто-нибудь уже делал подобное.
Я разделяю слои физических и логических устройств, связывая их между собой в отдельном скрипте.
В результате получаю удобную структуру на логическом уровне и дальше работаю только с логическими устройствами. В случае изменения чего-либо редактирую только связку, в вся основная логика, которая может быть во многих скриптах, остается неизменной.
Вот пример:
~~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?
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login