Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Визуализация
    5. ioBroker.vis Драйвер
    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

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

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

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

      1 Reply Last reply Reply Quote 0
      • I
        instalator last edited by

        @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('Тут выключаем все что  нужно.');
          } 
        });
        
        1 Reply Last reply Reply Quote 0
        • H
          Ho Hum last edited by

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

          Вроде понял.

          1 Reply Last reply Reply Quote 0
          • H
            Ho Hum last edited by

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

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

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

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

            1 Reply Last reply Reply Quote 0
            • I
              instalator last edited by

              @Ho Hum:

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

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

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

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

              1 Reply Last reply Reply Quote 0
              • H
                Ho Hum last edited by

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

                `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 Reply Last reply Reply Quote 0
                • I
                  instalator last edited by

                  > Объект для действия ставлю в 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.
                  1 Reply Last reply Reply Quote 0
                  • H
                    Ho Hum last edited by

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

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

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    942
                    Online

                    31.9k
                    Users

                    80.1k
                    Topics

                    1.3m
                    Posts

                    2
                    8
                    2514
                    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