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?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden