Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Работа из скрипта со свойствами объектов

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Работа из скрипта со свойствами объектов

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Ho Hum last edited by

      Прошу совета, может быть кто-нибудь уже делал подобное.

      Я разделяю слои физических и логических устройств, связывая их между собой в отдельном скрипте.

      В результате получаю удобную структуру на логическом уровне и дальше работаю только с логическими устройствами. В случае изменения чего-либо редактирую только связку, в вся основная логика, которая может быть во многих скриптах, остается неизменной.

      Вот пример:

      ~~![](</s><URL url=)http://s13.radikal.ru/i186/1611/88/f054e266c976.jpg" />

      Теперь собственно вопрос:

      Как логичнее и удобнее всего связать выключатель с соответствующими лампами (их может быть как одна, так и несколько). Логичнее всего, на мой взгляд, в объекте выключателя добавить свойство, в которое прописать имена объектов - ламп, которыми он управляет. Система позволяет добавить такое свойство, но из скрипта вытащить его значения у меня не получается…

      Можно в global сделать массив и описать ссылки на управляющие и управляемые объекты в нем, но мне кажется, что это некрасиво и громоздко.

      Что подскажет коллективный разум?~~

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        @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]
        ```~~
        1 Reply Last reply Reply Quote 0
        • H
          Ho Hum last edited by

          Спасибо, попробую.

          Надеюсь, слова про интересный подход сказаны в прямом, а не переносном смысле 🙂

          1 Reply Last reply Reply Quote 0
          • Bluefox
            Bluefox last edited by

            @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]
            
            1 Reply Last reply Reply Quote 0
            • H
              Haus last edited by

              @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

              1 Reply Last reply Reply Quote 0
              • A
                andrey99986 last edited by

                Значение сейчас true :

                var obj1=JSON.stringify(getObject('megad.0.p0').common.custom["sql.0"].enabled);
                
                

                Как его поменять на false?

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                840
                Online

                31.7k
                Users

                79.8k
                Topics

                1.3m
                Posts

                4
                6
                3690
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo