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.vis Драйвер
  6. Как вызвать скрипт?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    929

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Как вызвать скрипт?

Geplant Angeheftet Gesperrt Verschoben ioBroker.vis Драйвер
8 Beiträge 2 Kommentatoren 2.7k 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

    Подскажите, пожалуйста: как из vis можно вызвать скрипт кликом на виджет?

    Ищу что-то типа события onClick, но не нахожу ничего подобного.

    Что хочу сделать: например, на виджет (Метро) выводить кол-во горящих ламп, а по клику гасить их всех.

    1 Antwort Letzte Antwort
    0
    • I Offline
      I Offline
      instalator
      schrieb am zuletzt editiert von
      #2

      @Ho Hum:

      Подскажите, пожалуйста: как из vis можно вызвать скрипт кликом на виджет?

      Ищу что-то типа события onClick, но не нахожу ничего подобного.

      Что хочу сделать: например, на виджет (Метро) выводить кол-во горящих ламп, а по клику гасить их всех. `

      createState('alloff', 0);
      on({id: 'javascript.0.alloff', change: 'any'}, function (obj) {
        if (obj.newState.val === true || obj.newState.val === 'true'){
            log('Тут выключаем все что  нужно.');
        } 
      });
      

      Высокий уровень Децибел вреден для здоровья!

      http://blog.instalator.ru/

      1 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        Ho Hum
        schrieb am zuletzt editiert von
        #3

        Большое спасибо!

        Вроде понял.

        1 Antwort Letzte Antwort
        0
        • H Offline
          H Offline
          Ho Hum
          schrieb am zuletzt editiert von
          #4

          И еще один вопрос в продолжение темы.

          Как можно изменить значение виджета?

          Вывел виджет Метро Tile State / Badge Number. Он показывает количество включенных ламп через ID числа (считаю в скрипте, формирую объект со значением). Объект для действия ставлю в ID статуса и значение устанавливаю в "1". При нажатии выключаю все лампы. Потом, когда какя-то лампа включается (например, клавишей), надо значение виджета установить в "0".

          Как это сделать - не понял.

          1 Antwort Letzte Antwort
          0
          • I Offline
            I Offline
            instalator
            schrieb am zuletzt editiert von
            #5

            @Ho Hum:

            И еще один вопрос в продолжение темы.

            Как можно изменить значение виджета?

            Вывел виджет Метро Tile State / Badge Number. Он показывает количество включенных ламп через ID числа (считаю в скрипте, формирую объект со значением). Объект для действия ставлю в ID статуса и значение устанавливаю в "1". При нажатии выключаю все лампы. Потом, когда какя-то лампа включается (например, клавишей), надо значение виджета установить в "0".

            Как это сделать - не понял. `
            Скинь скрипт, ничего не понял

            Высокий уровень Децибел вреден для здоровья!

            http://blog.instalator.ru/

            1 Antwort Letzte Antwort
            0
            • H Offline
              H Offline
              Ho Hum
              schrieb am zuletzt editiert von
              #6

              Скрипт такой:

              `function getLights() {
                  createState("Lights.Count");
                  createState("Lights.onCount");
                  setState("Lights.Count", lights1floor.length, true);
                  var LightsOnCount = 0;
                  for(var i = 0; i < lights1floor.length; i++) {
                      if (getState(lights1floor[i]).val) {
                          LightsOnCount++;
                      }
                  }
                  setState("Lights.onCount", LightsOnCount, true);
              }
              
              // every 1 sec
              schedule("*/1 * * * * *", getLights);`
              
              В LightsOnCount помещаю кол-во включенных ламп. Если это значение не равно нулю, хочу из скрипта изменять состояние виджета.[/i]
              
              1 Antwort Letzte Antwort
              0
              • I Offline
                I Offline
                instalator
                schrieb am zuletzt editiert von
                #7

                > Объект для действия ставлю в ID статуса и значение устанавливаю в "1". При нажатии выключаю все лампы. Потом, когда какя-то лампа включается (например, клавишей), надо значение виджета установить в "0".
                А зачем тебе выставлять 0? кнопка и так сработает если подписаться как any.

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

                ! Note: you can use RegExp directly:
                ! ````
                on(/^system.adapter..*.\d+.memRss$/, function (obj) {
                });

                >! // same as
                

                on({id: /^system.adapter..*.\d+.memRss$/, "change": "ne"}, function (obj) {
                });

                To simply connect two states with each other, write:
                >! on('stateId1', 'stateId2');
                >! All changes of stateId1 will be written to stateId2.
                >! Function "on" returns handler back. This handler can be used by unsubscribe.

                Высокий уровень Децибел вреден для здоровья!

                http://blog.instalator.ru/

                1 Antwort Letzte Antwort
                0
                • H Offline
                  H Offline
                  Ho Hum
                  schrieb am zuletzt editiert von
                  #8

                  Спасибо, сделал, как хотел.

                  Не въехал пока в концепцию…

                  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

                  645

                  Online

                  32.6k

                  Benutzer

                  82.2k

                  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