Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Визуализация
  5. ioBroker.vis Драйвер
  6. Разные вопросы по Vis

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

Разные вопросы по Vis

Scheduled Pinned Locked Moved ioBroker.vis Драйвер
218 Posts 20 Posters 66.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    Haba
    wrote on last edited by
    #75

    Если можно еще тупой вопрос.

    {a:objectID1;b:objectID2;parseInt(a)+parseInt(b)} строка работает

    но в виджете basic Val Number уже не работает, опять какое-то несовпадение типов?

    Не могу понять что не так

    1 Reply Last reply
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      wrote on last edited by
      #76

      @Haba:

      Если можно еще тупой вопрос.

      {a:objectID1;b:objectID2;parseInt(a)+parseInt(b)} строка работает

      но в виджете basic Val Number уже не работает, опять какое-то несовпадение типов?

      Не могу понять что не так `
      Поле ObjectID ожидает ввода только ID, а не формулы. Что бы показать, то что ты хочешь, надо взять просто basic-HTTP

      1 Reply Last reply
      0
      • H Offline
        H Offline
        Haba
        wrote on last edited by
        #77

        хм…. я ориентировался на документацию:
        ` > Bindings of objects

        Normally most of widgets have ObjectID attribute. And this attribute can be bound with some value of object ID. But there is another option how to bind any attribute of widget to some ObjectID.

        Just write into attribute {object.id} and it will be bound (not in edit mode) to this object's value. If you will use special format, you can even make some simple operations with it, e.g. multiplying or formatting. Patten has following format: `

        Тогда как правильно надо делать следующее?

        Допустим есть объект, в котором число вида xxxx, текущий заряд батареи в мВ.

        Я планировал использовать виджет "basic stateful Image 8", и в поле ObjectID в результате небольшой математической операции получить число из диапазон а 0,1,..,5. В результате в зависимости от значения заряда батареи, отображалась нужная картинка.

        PS. Очень нехватает документанции на ioBroker, хотя бы описание азов.

        1 Reply Last reply
        0
        • I Offline
          I Offline
          instalator
          wrote on last edited by
          #78

          @Haba:

          хм…. я ориентировался на документацию:
          ` > Bindings of objects

          Normally most of widgets have ObjectID attribute. And this attribute can be bound with some value of object ID. But there is another option how to bind any attribute of widget to some ObjectID.

          Just write into attribute {object.id} and it will be bound (not in edit mode) to this object's value. If you will use special format, you can even make some simple operations with it, e.g. multiplying or formatting. Patten has following format: `

          Тогда как правильно надо делать следующее?

          Допустим есть объект, в котором число вида xxxx, текущий заряд батареи в мВ.

          Я планировал использовать виджет "basic stateful Image 8", и в поле ObjectID в результате небольшой математической операции получить число из диапазон а 0,1,..,5. В результате в зависимости от значения заряда батареи, отображалась нужная картинка.

          PS. Очень нехватает документанции на ioBroker, хотя бы описание азов. `
          Так не пойдет? http://forum.iobroker.net/viewtopic.php?f=26&t=2129

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

          http://blog.instalator.ru/

          1 Reply Last reply
          0
          • H Offline
            H Offline
            Haba
            wrote on last edited by
            #79

            instalator суть по идее понял. В виджете в поле ObjectID ссылаемся на скрипт "javascript.0.Phone.battery"

            Сам скрипт сделан в дравере Javascript/Coffescript Script Engine

            Так?

            1 Reply Last reply
            0
            • I Offline
              I Offline
              instalator
              wrote on last edited by
              #80

              @Haba:

              instalator суть по идее понял. В виджете в поле ObjectID ссылаемся на скрипт "javascript.0.Phone.battery"

              Сам скрипт сделан в дравере Javascript/Coffescript Script Engine

              Так? ` ссылаемся на переменную. В ней уровень заряда

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

              http://blog.instalator.ru/

              1 Reply Last reply
              0
              • H Offline
                H Offline
                Haba
                wrote on last edited by
                #81

                подскажите, как можно у виджета менять CSS-класс по значению объекта?

                ….

                менять класс у виджета можно например так:

                осталось придумать как прицепиться к ObjectID и избавиться от промежуточных кнопок….

                1 Reply Last reply
                0
                • BluefoxB Offline
                  BluefoxB Offline
                  Bluefox
                  wrote on last edited by
                  #82

                  @Haba:

                  подскажите, как можно у виджета менять CSS-класс по значению объекта?

                  ….

                  менять класс у виджета можно например так:

                  осталось придумать как прицепиться к ObjectID и избавиться от промежуточных кнопок…. `
                  У каждого виджета есть поле class. Если в нем прописать

                  {a:objectID1; a==1 ? 'class1':'class2'}

                  То получится то что ты хочешь.

                  1 Reply Last reply
                  0
                  • H Offline
                    H Offline
                    Haba
                    wrote on last edited by
                    #83

                    Bluefox супер!

                    чем больше изучаю ioBroker, тем он мне больше нравится своей гибкостью и возможностями.

                    Подскажи еще пожалуйста, как можно упростить вот такую конструкцию:

                    [/i][/i]
                    
                    1 Reply Last reply
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      wrote on last edited by
                      #84

                      @Haba:

                      Bluefox супер!

                      чем больше изучаю ioBroker, тем он мне больше нравится своей гибкостью и возможностями.

                      Подскажи еще пожалуйста, как можно упростить вот такую конструкцию:

                      
                      Ну для начала. Можно использовать jquery. Он неплохо упрощает.
                      
                      `~~[code]~~[{"tpl":"tplHtml","data":{"visibility-cond":"==","visibility-val":1,"refreshInterval":
                      "0","gestures-offsetX":0,"gestures-offsetY":0,"class":"b-block"},"style":{"left":"481px","top":"98px"},
                      "widgetSet":"basic"},{"tpl":"tplHtml","data":{"visibility-cond":"==","visibility-val":1,"refreshInterval":
                      "0","gestures-offsetX":0,"gestures-offsetY":0,"html":" \n"},"style":
                      {"left":"322px","top":"99px","width":"154px","height":"27px"},"widgetSet":"basic"}][/code]`
                      Но я считаю, что это не правильный подход. Это квитирование работает только в одном виз и больше нигде..
                      
                      А что делать на соседнем планшете?
                      
                      Надо создать объект: javasciprt.0.acknowledged и его ставить на false, как только есть что квитировать и прописывать в виз true по кнопке. Тогда информация на всех планшетах/телефонах будет синхронной и даже можно послать сообщение или произнести что нибудь.
                      
                      И использовать эту переменную, в поле class как 
                      
                      {a:javasciprt.0.acknowledged;a ? '' : 'b-block'}
                        [48_click.gif](/assets/uploads/files/48_click.gif)  [/i][/i]
                      ``` ` 
                      1 Reply Last reply
                      0
                      • H Offline
                        H Offline
                        Haba
                        wrote on last edited by
                        #85

                        Согласен!

                        Зациклился на визуализации и упустил из виду, что отображаться будет на нескольких устройствах.

                        В общем у меня такой вышел результат:

                        {a:javascript.0.test.color;b:javascript.0.Signalka.acknowledged; (a=='true' && b=='true') ? 'c-red': a=='true' ? 'b-block':''}
                        

                        т.е. если пришла тревога, фон определенного виджета мерцает желтым-красным

                        если есть квитирование, но тревога еще висит - то фон красный

                        1 Reply Last reply
                        0
                        • I Offline
                          I Offline
                          instalator
                          wrote on last edited by
                          #86

                          @Haba:

                          Согласен!

                          Зациклился на визуализации и упустил из виду, что отображаться будет на нескольких устройствах.

                          В общем у меня такой вышел результат:

                          {a:javascript.0.test.color;b:javascript.0.Signalka.acknowledged; (a=='true' && b=='true') ? 'c-red': a=='true' ? 'b-block':''}
                          

                          т.е. если пришла тревога, фон определенного виджета мерцает желтым-красным

                          если есть квитирование, но тревога еще висит - то фон красный `
                          Я себе делал так

                          ! ````
                          [{"tpl":"tplHqButton","data":{"visibility-cond":"==","visibility-val":1,"oid":"mqtt.0.myhome.Mother.AquaStoroj","min":"0","max":"1","iconName":"/vis/img/Icons/dashui_ico/mfd/sani_irrigation.png","btIconWidth":"63","offsetAuto":false,"leftOffset":"-10","topOffset":"-10","timeAsInterval":"true","infoLeftFontSize":"12","infoFontRightSize":"12","changeEffect":"flash","testActive":false,"usejQueryStyle":false,"waveColor":"#FFFFFF","oid-working":"","filterkey":"","visibility-oid":"mqtt.0.myhome.Mother.AquaStoroj","styleActive":"hq-button-red-active","caption":"","captionOn":"","gestures-offsetX":0,"gestures-offsetY":0},"style":{"left":"165px","top":"263px","border-radius":"50px","width":"50","height":"50","z-index":"3"},"widgetSet":"hqwidgets"}]

                          Но только для кого оно мигать будет? у меня если что произошло в зависимости от обстоятельств либо голос, либо на телефон оповещение сразу идет.

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

                          http://blog.instalator.ru/

                          1 Reply Last reply
                          0
                          • H Offline
                            H Offline
                            Haba
                            wrote on last edited by
                            #87

                            звуковое оповещение тоже будет + сообщение или звонок на телефон

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

                            Можно было бы обойтись только свойством "цвет фона", но для красоты хочется добавить еще переливы фона с помощью CSS :)

                            Причем в зависимости от нескольких переменных, фон должен иметь разное цветовое состояние.

                            1 Reply Last reply
                            0
                            • H Offline
                              H Offline
                              Haba
                              wrote on last edited by
                              #88

                              Пока вышел такой рабочий вариант:

                              ! createState('Signalka.acknowledged', false); // создаем переменную "квитирование" // Классы CSS для датчиков createState('Signalka.Sensor.10_CSS', ''); createState('Signalka.Sensor.11_CSS', ''); createState('Signalka.Sensor.12_CSS', ''); createState('Signalka.Sensor.13_CSS', ''); createState('Signalka.Sensor.14_CSS', ''); ! var mySubscription; var Sensor_Start = 10; var CountSens = 5; ! on("mysensors.0.30.1_CUSTOM.V_VAR1"/*Signalka.V_VAR1*/, function (obj) { log ('Статус сигнализации = ' + obj.state.val); if (obj.state.val == 2) { log("Режим 'Охрана' включаем подписку на события с датчиков"); //подписываемся на несколько объектов по шаблону. Срабатывать будет только если новое значение больше предыдущего mySubscription = on({id: /^mysensors\.0\.30\.1._CUSTOM\.V_VAR1$/, change: 'gt'}, function (obj) { log("Сработал датчик " + obj.id + " включить тревогу"); //var tmp = obj.state.val & 3; // отсекаем все лишнее, оставляем геркон и вибро if ((obj.state.val & 3) > 0) { log('Определяем в какой CSS писать'); var str = obj.id.substr(obj.id.indexOf("_CUSTOM")-2, 2); // парсим id датчика, чтобы определить его номер setState("javascript.0.Signalka.Sensor."+ str +"_CSS", "s-blink" , true/*ack*/); // включаем мигание фона у нужного датчика } setState("javascript.0.Signalka.acknowledged"/*acknowledged*/, true , true/*ack*/); // включить индикацию тревоги }); } else { if (unsubscribe(mySubscription)) { log('Отключаем подписку на события с датчиков'); } } }); // подписка на событие "сквитировано" on({id: 'javascript.0.Signalka.acknowledged', change: 'lt'}, function (obj) { for (i = Sensor_Start; i < Sensor_Start+CountSens; i++){ var CSS = getState("javascript.0.Signalka.Sensor."+ i +"_CSS"); var SensState = getState("mysensors.0.30." + i +"_CUSTOM.V_VAR1"); if ((CSS.val == "s-blink") && ((SensState.val & 3) === 0)) CSS.val = ''; // все тревоги с датчика ушли if ((CSS.val == "s-blink") && ((SensState.val & 3) > 0)) CSS.val = 's-red'; //тревоги еще есть setState("javascript.0.Signalka.Sensor."+ i +"_CSS", CSS.val , true/*ack*/); // сохраняем новый CSS log('Статус новый CSS ' + CSS.val + ', SensState ' + SensState.val + ', SensState & ' + (SensState.val & 3)); } }); // подписка на состояние датчиков "good" и квитирование = false on({id: /^mysensors\.0\.30\.1._CUSTOM\.V_VAR1$/, change: 'lt'}, function (obj) { var Ack = getState("javascript.0.Signalka.acknowledged"); if (Ack.val === false) { var str = obj.id.substr(obj.id.indexOf("_CUSTOM")-2, 2); // парсим id датчика, чтобы определить его номер setState("javascript.0.Signalka.Sensor."+ str +"_CSS", "" , true/*ack*/); } }); !
                              у виджета датчика соответсвенно класс CSS {javascript.0.Signalka.Sensor.10_CSS}

                              в идеале надо бы добавить возможность вводить номер датчика прямо в рантайме, чтобы не требовалось лезть в редактор для перепривязки ID объекта

                              1 Reply Last reply
                              0
                              • aurodionovA Offline
                                aurodionovA Offline
                                aurodionov
                                wrote on last edited by
                                #89

                                Подскажите в чём ошибаюсь

                                    setState ('vis.0.control.command', {instance: 'FFFFFFFF', command: 'changedView', data: 'surfer8.31/Security'}); // переключится  на вкладку 
                                
                                    setState ('vis.0.control.command', {instance: 'FFFFFFFF', command: 'alert ', data: 'Message; Test ;info'}); // показать уведомление
                                

                                Пишу с пульта….

                                1 Reply Last reply
                                0
                                • BluefoxB Offline
                                  BluefoxB Offline
                                  Bluefox
                                  wrote on last edited by
                                  #90

                                  @aurodionov:

                                  Подскажите в чём ошибаюсь

                                      setState ('vis.0.control.command', {instance: 'FFFFFFFF', command: 'changedView', data: 'surfer8.31/Security'}); // переключится  на вкладку 
                                     
                                      setState ('vis.0.control.command', {instance: 'FFFFFFFF', command: 'alert ', data: 'Message; Test ;info'}); // показать уведомление
                                  ```` `  
                                  

                                  changedView => changeView

                                  У тебя правда так view называется? surfer8.31/Security

                                  'alert ' => 'alert' (лишний пробел)

                                  setState ('vis.0.control.command', {val: {instance: 'FFFFFFFF', command: 'changeView', data: 'surfer8.31/Security'}, ack: false});
                                  setState ('vis.0.control.command', {val: {instance: '*', command: 'alert', data: 'Message; Test ;info'}, ack: false});
                                  
                                  1 Reply Last reply
                                  0
                                  • aurodionovA Offline
                                    aurodionovA Offline
                                    aurodionov
                                    wrote on last edited by
                                    #91

                                    Bluefox, да так получилось, по названию планшета /вкладка которую хочу открывать. Но вообще заработало, спасибо за помощь.

                                    Пишу с пульта….

                                    Пишу с пульта….

                                    1 Reply Last reply
                                    0
                                    • aurodionovA Offline
                                      aurodionovA Offline
                                      aurodionov
                                      wrote on last edited by
                                      #92

                                      @Bluefox:

                                      У тебя правда так view называется? surfer8.31/Security `
                                      Вроде понял, если указать Security, перейдёт на всех устройствах где есть вкладка с таким названием

                                      Пишу с пульта….

                                      1 Reply Last reply
                                      0
                                      • E Offline
                                        E Offline
                                        electric
                                        wrote on last edited by
                                        #93

                                        Установил версию драйвера 0.10.9 с гит.

                                        Заработал только после команды

                                        iobroker upload vis
                                        
                                        

                                        В логе ошибка появилась:

                                        host-cubietruck	2016-09-10 10:47:44.512	error	startInstance system.adapter.vis.0: TypeError: Cannot read property 'version' of undefined
                                        
                                        
                                        1 Reply Last reply
                                        0
                                        • BluefoxB Offline
                                          BluefoxB Offline
                                          Bluefox
                                          wrote on last edited by
                                          #94

                                          @electric:

                                          Установил версию драйвера 0.10.9 с гит.

                                          Заработал только после команды

                                          iobroker upload vis
                                          
                                          

                                          В логе ошибка появилась:

                                          host-cubietruck	2016-09-10 10:47:44.512	error	startInstance system.adapter.vis.0: TypeError: Cannot read property 'version' of undefined
                                          
                                          ```` `  
                                          

                                          Проверь правильность файлa …/node_modules/iobroker.web/io-package.json.

                                          А какой controller?

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          849

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe