Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. Работа из скрипта со свойствами объектов

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

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

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
6 Beiträge 4 Kommentatoren 3.8k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • H Offline
    H Offline
    Ho Hum
    schrieb am zuletzt editiert von
    #1

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

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

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

    Вот пример:

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

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

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

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

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

    1 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #2

      @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 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        Ho Hum
        schrieb am zuletzt editiert von
        #3

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

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

        1 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #4

          @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 Antwort Letzte Antwort
          0
          • H Offline
            H Offline
            Haus
            schrieb am zuletzt editiert von
            #5

            @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

            js-controller: 1.5.7 / node.js: v8.15.1/ npm: 6.4.1

            admin: 3.6.0

            javascript: 4.1.10

            web: 2.4.1 vis: 1.1.10

            cloud: 2.6.2

            Server: DELL FX170 / linux: Debian 9.5 Stretch

            Adapter: MegaD-2561, Mega-ES…

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              andrey99986
              schrieb am zuletzt editiert von
              #6

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

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

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

              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              875

              Online

              32.4k

              Benutzer

              81.5k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe