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

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    656

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

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

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

Scheduled Pinned Locked Moved ioBroker.vis Драйвер
218 Posts 20 Posters 70.9k 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.
  • A Offline
    A Offline
    andrey99986
    wrote on last edited by
    #110

    Почему DemoView перестаёт грузится (в режиме просмотра) если удалить на ней все элементы " ?

    Создавал новый проект по учёткой "admin". В режиме просмотра под другим пользователем со всеми правами проект не виден (после удаления Demoview).

    Под учёткой "admin" - проект в режиме просмотра грузится.

    1. Где настроить права?

    Галка "доступно для всех" в vis-е стоит. В админке в "Группы" в свойствах user-а стоят все галки - даны все права.

    2. Как корректно удалить проект?

    В меню не нашёл. Если удалить в файловой системе - в меню доступных проектов удалённые проекты исчезают, но в файле /vis.0/_data.json остаются описания несуществующих проектов.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      andrey99986
      wrote on last edited by
      #111

      Кто не боится - удалите страницу Demoview и проверьте - проект под юзером будет виден?

      (сделайте бэкап на всякий случай)

      1 Reply Last reply
      0
      • A Offline
        A Offline
        andrey99986
        wrote on last edited by
        #112

        Глюк (или особенность? ) со скролингом возникает если установить птичку в закладке "Инструменты" "По умолчанию" в настройках разрешения экрана.

        Ещё вопрос - как выбрать веб-страницу проекта которая будет грузиться по умолчанию? Чтобы не указывать "#имя_страницы" в урле каждый раз.

        1 Reply Last reply
        0
        • H Offline
          H Offline
          Haus
          wrote on last edited by
          #113

          @andrey99986:

          Ещё вопрос - как выбрать веб-страницу проекта которая будет грузиться по умолчанию? Чтобы не указывать "#имя_страницы" в урле каждый раз. `
          Первая созданная страница в проекте будет грузиться по умолчанию, изменить можно в

          opt/iobroker/iobroker-data/files/vis.0/main/vis-views.json переместив нужную страницу вперёд.

          При глобальных изменениях пере загружай сервер.

          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 Reply Last reply
          0
          • A Offline
            A Offline
            andrey99986
            wrote on last edited by
            #114

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

            А зачем перегружать linux, если никаких процессов nodejs нет?

            Чем отличаться будет от iobroker stop, ps ax - анализ запущенных процессов, kill при необходимости, iobroker start?

            Глюкофича со скролингом и потерей прав от перезагрузки не зависит…

            Вопрос - есть глобальная переменная(Объект) в которой записан url.

            Какой элемент использовать в vis-е и как чтобы сделать из этого объекта динамическую ссылку, доступную для перехода в виде например кнопки?

            Дайте пример пожалуйста.

            1 Reply Last reply
            0
            • A Offline
              A Offline
              andrey99986
              wrote on last edited by
              #115

              Понятно что можно просто использовать {ObjectID} в коде js (клиентская сторона) и создавать ссылки.

              Усложню вопрос - нужно сгенерить ссылку в зависимости от IP адреса клиента.

              То есть надо при открытии страницы сделать проверку IP (в скриптах в Админке iobroker) и вернуть на эту страницу информацию какой IP (ЛВС или Инет).

              При чём надо иметь ввиду что могут быть одновременно открыты страницы как из ЛВС так и из Интернет.

              На клиентском js проверять IP нельзя, так как IP может быть за нат-ом и совпадать с ЛВС.

              Другими словами как сконвертировать php-код в iobroker?

              		$ip = $_SERVER['REMOTE_ADDR'];
              		$iPhone  = stripos($_SERVER['HTTP_USER_AGENT'],"iPhone");
              		$iPad    = stripos($_SERVER['HTTP_USER_AGENT'],"iPad");
              		$Android = stripos($_SERVER['HTTP_USER_AGENT'],"Android");
              		if (strpos($ip,'192.168.2.') !== false) 
              		{
                              if( $iPhone || $iPad ) 
              			{
              			   echo "[](\"http://192.168.2......)
              
              1 Reply Last reply
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                wrote on last edited by
                #116

                @Haus:

                @andrey99986:

                Ещё вопрос - как выбрать веб-страницу проекта которая будет грузиться по умолчанию? Чтобы не указывать "#имя_страницы" в урле каждый раз. `
                Первая созданная страница в проекте будет грузиться по умолчанию, изменить можно в

                opt/iobroker/iobroker-data/files/vis.0/main/vis-views.json переместив нужную страницу вперёд.

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

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

                Может ты несколько страниц пометил, как по умолчанию? Я подозреваю, что при быстром скролинге генерируется событие изменения разрешения экрана и система ищет страницу по умолчанию. Это и происходит.

                Решение проблемы. Убрать везде галочки "по умолчанию ".

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  andrey99986
                  wrote on last edited by
                  #117

                  @Bluefox:

                  Решение проблемы. Убрать везде галочки "по умолчанию ". `

                  Да - это решает проблему. Я в предыдущих постах написал об этом.

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

                    @andrey99986:

                    Понятно что можно просто использовать {ObjectID} в коде js (клиентская сторона) и создавать ссылки.

                    Усложню вопрос - нужно сгенерить ссылку в зависимости от IP адреса клиента.

                    То есть надо при открытии страницы сделать проверку IP (в скриптах в Админке iobroker) и вернуть на эту страницу информацию какой IP (ЛВС или Инет).

                    При чём надо иметь ввиду что могут быть одновременно открыты страницы как из ЛВС так и из Интернет.

                    На клиентском js проверять IP нельзя, так как IP может быть за нат-ом и совпадать с ЛВС.

                    Другими словами как сконвертировать php-код в iobroker?

                    		$ip = $_SERVER['REMOTE_ADDR'];
                    		$iPhone  = stripos($_SERVER['HTTP_USER_AGENT'],"iPhone");
                    		$iPad    = stripos($_SERVER['HTTP_USER_AGENT'],"iPad");
                    		$Android = stripos($_SERVER['HTTP_USER_AGENT'],"Android");
                    		if (strpos($ip,'192.168.2.') !== false) 
                    		{
                                    if( $iPhone || $iPad ) 
                    			{
                    			   echo "[](\"http://192.168.2......)
                    ````[](\"http://192.168.2......) `   [Если я правильно понимаю, то это возможно, но не совсем.
                    

                    У тебя нет доступа к socket.io. Так как только socket.io имеет информацию о настоящем ip адресе.

                    Что ты хочешь сделать? Просто показать в виз ip адрес клиента? Не думаю, что это возможно без модификации socket.io.]("http://192.168.2......)

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      andrey99986
                      wrote on last edited by
                      #119

                      @Bluefox:

                      Что ты хочешь сделать? Просто показать в виз ip адрес клиента? Не думаю, что это возможно без модификации socket.io. `

                      Хочу чтобы на странице vis создавалась ссылка в зависимости от того, с какого адреса была открыта страница.

                      Если клиент зашёл с той же ЛВС, где находится iobroker- создавалась ссылка на внутренний ресурс вида http://192.168..

                      Если клиент зашёл c Интернет - создавалась ссылка на ресурс вида http://www…

                      Ну ещё желательно определять в заголовках User Agent-а, чтобы создавать url-ы в зависимости от устройства с которого зашли.

                      А то сейчас приходится делать 6 ссылок на просмотр видео:

                      1. Если зашли с Desktop с ЛВС

                      2. Если зашли с Desktop с Интернет

                      3. Если зашли с Android с ЛВС

                      4. Если зашли с Android с Интернет

                      5. Если зашли с IOS с ЛВС

                      6. Если зашли с IOS с Интернет

                      На php можно было оставить на странице только одну ссылку.

                      В iobroker нужны все шесть?

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

                        @andrey99986:

                        @Bluefox:

                        Что ты хочешь сделать? Просто показать в виз ip адрес клиента? Не думаю, что это возможно без модификации socket.io. `

                        Хочу чтобы на странице vis создавалась ссылка в зависимости от того, с какого адреса была открыта страница.

                        Если клиент зашёл с той же ЛВС, где находится iobroker- создавалась ссылка на внутренний ресурс вида http://192.168..

                        Если клиент зашёл c Интернет - создавалась ссылка на ресурс вида http://www…

                        Ну ещё желательно определять в заголовках User Agent-а, чтобы создавать url-ы в зависимости от устройства с которого зашли.

                        А то сейчас приходится делать 6 ссылок на просмотр видео:

                        1. Если зашли с Desktop с ЛВС

                        2. Если зашли с Desktop с Интернет

                        3. Если зашли с Android с ЛВС

                        4. Если зашли с Android с Интернет

                        5. Если зашли с IOS с ЛВС

                        6. Если зашли с IOS с Интернет

                        На php можно было оставить на странице только одну ссылку.

                        В iobroker нужны все шесть? `
                        Все что тебе надо. Можно отлично определить на клиенте. У меня сделано так, что по локалке я захожу без пароля, а по инету с паролем по https. Таким образом я могу отличить lan/wan, а тип клиента определяется js на раз два. Тебе надо понимать, что здесь используется отличная от php технология. Статические страницы и динамические данные могут поступать с двух разных источников. За счет этого достигается огромная скорость и гибкость. Тебе нельзя думать терминами php, но то что тебе надо сделать можно.

                        Посмотри здесь я делаю что то похожее:

                        https://iobroker.net:8080/vis/edit.html?main#DemoView

                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          andrey99986
                          wrote on last edited by
                          #121

                          @Bluefox:

                          Все что тебе надо. Можно отлично определить на клиенте. У меня сделано так, что по локалке я захожу без пароля, а по инету с паролем по https. Таким образом я могу отличить lan/wan, а тип клиента определяется js на раз два. Тебе надо понимать, что здесь используется отличная от php технология. Статические страницы и динамические данные могут поступать с двух разных источников. За счет этого достигается огромная скорость и гибкость. Тебе нельзя думать терминами php, но то что тебе надо сделать можно.

                          Посмотри здесь я делаю что то похожее:

                          https://iobroker.net:8080/vis/edit.html?main#DemoView `

                          То есть из wan - открываем одну страницу, из lan - другую?

                          По локалке хотелось бы тоже с паролем. И по причине безопасности и из-за избыточности иметь две ссылки.

                          На странице по ссылке - ошибки.

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

                            @andrey99986:

                            @Bluefox:

                            Все что тебе надо. Можно отлично определить на клиенте. У меня сделано так, что по локалке я захожу без пароля, а по инету с паролем по https. Таким образом я могу отличить lan/wan, а тип клиента определяется js на раз два. Тебе надо понимать, что здесь используется отличная от php технология. Статические страницы и динамические данные могут поступать с двух разных источников. За счет этого достигается огромная скорость и гибкость. Тебе нельзя думать терминами php, но то что тебе надо сделать можно.

                            Посмотри здесь я делаю что то похожее:

                            https://iobroker.net:8080/vis/edit.html?main#DemoView `

                            То есть из wan - открываем одну страницу, из lan - другую?

                            По локалке хотелось бы тоже с паролем. И по причине безопасности и из-за избыточности иметь две ссылки.

                            На странице по ссылке - ошибки. `
                            Нет. Страница одна и та же. Но разные web драйвера. У меня установлено 2 web драйвера. Один для интернет и один для локалки.

                            Ну начни уже что нибудь делать. Я подмогу.

                            [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"html":"\n\n\n\n"},"style":{"left":"733px","top":"77px"},"widgetSet":"basic"}]
                            
                            1 Reply Last reply
                            0
                            • A Offline
                              A Offline
                              andrey99986
                              wrote on last edited by
                              #123

                              @Bluefox:

                              Нет. Страница одна и та же. Но разные web драйвера. У меня установлено 2 web драйвера. Один для интернет и один для локалки.

                              Ну начни уже что нибудь делать. Я подмогу. `
                              За готовый ответ по определению устройства спасибо конечно же, с js можно мне достаточно было бы ткнуть на любой линк с подобным решением.

                              Но я пока не понял как конкретно ты определяешь wan/lan вход. Надо как-то на js определить из-под какого драйвера запущен веб-сервер? Этот вопрос как бы не погуглишь :) А практики с iobroker у меня слишком мало чтобы догадаться.

                              1 Reply Last reply
                              0
                              • H Offline
                                H Offline
                                Haus
                                wrote on last edited by
                                #124

                                @andrey99986:

                                @Bluefox:

                                Нет. Страница одна и та же. Но разные web драйвера. У меня установлено 2 web драйвера. Один для интернет и один для локалки.

                                Ну начни уже что нибудь делать. Я подмогу. `

                                Но я пока не понял как конкретно ты определяешь wan/lan вход. Надо как-то на js определить из-под какого драйвера запущен веб-сервер? Этот вопрос как бы не погуглишь :) А практики с iobroker у меня слишком мало чтобы догадаться. `
                                Скорей всего по запросу https://192.168.1.10…. или http://192.168.1.10... у меня тоже так web.0 по http в доме без пароля, web.1 https из вне на доменное имя с паролем. Если по lan хочешь с паролем то в system.adapter.web.0 поставь галочку и будет тебе счастье.

                                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 Reply Last reply
                                0
                                • A Offline
                                  A Offline
                                  andrey99986
                                  wrote on last edited by
                                  #125

                                  @Haus:

                                  Скорей всего по запросу https://192.168.1.10…. или http://192.168.1.10... у меня тоже так web.0 по http в доме без пароля, web.1 https из вне на доменное имя с паролем. Если по lan хочешь с паролем то в system.adapter.web.0 поставь галочку и будет тебе счастье. `

                                  Два web-адаптера для чего, если при этом один и тот же проект?

                                  Только ради того чтобы на странице отличить lan от wan входа? И кстати как конкретно? Так:?

                                  var x = document.referrer;
                                  

                                  Пробой локального ресурса? Так это можно и на одном web-адаптере сделать.

                                  Сейчас пытаюсь реализовать логику на пробе загрузки уникальной картинки (которая есть только в моей ЛВС). Интересно что в редакторе проба работает, а при просмотре страницы нет. Код стырил:

                                  function ImageExist(url) 
                                  {
                                     var img = new Image();
                                     img.src = url;
                                     return img.height != 0;
                                  }
                                  

                                  почему то такая конструкция вообще не заработала, даже в редакторе:

                                  $.ajax({
                                      url:'http://www.example.com/somefile.ext',
                                      type:'HEAD',
                                      error: function()
                                      {
                                          //file not exists
                                      },
                                      success: function()
                                      {
                                          //file exists
                                      }
                                  });
                                  
                                  1 Reply Last reply
                                  0
                                  • H Offline
                                    H Offline
                                    Haus
                                    wrote on last edited by
                                    #126

                                    @andrey99986:

                                    @Haus:

                                    Скорей всего по запросу https://192.168.1.10…. или http://192.168.1.10... у меня тоже так web.0 по http в доме без пароля, web.1 https из вне на доменное имя с паролем. Если по lan хочешь с паролем то в system.adapter.web.0 поставь галочку и будет тебе счастье. `

                                    Два web-адаптера для чего, если при этом один и тот же проект?

                                    Только ради того чтобы на странице отличить lan от wan входа? И кстати как конкретно? Так:? `
                                    Ну например дома на стене весит планшет, зачем там пароль и выход через определённое время. А вот из вне(с работы через комп) пароль и сброс через определённое время также https да и порт 443 другой, безопасность не помешает :)

                                    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 Reply Last reply
                                    0
                                    • BluefoxB Offline
                                      BluefoxB Offline
                                      Bluefox
                                      wrote on last edited by
                                      #127

                                      @andrey99986:

                                      @Haus:

                                      Скорей всего по запросу https://192.168.1.10…. или http://192.168.1.10... у меня тоже так web.0 по http в доме без пароля, web.1 https из вне на доменное имя с паролем. Если по lan хочешь с паролем то в system.adapter.web.0 поставь галочку и будет тебе счастье. `

                                      Два web-адаптера для чего, если при этом один и тот же проект?

                                      Только ради того чтобы на странице отличить lan от wan входа? И кстати как конкретно? Так:?

                                      var x = document.referrer;
                                      

                                      Пробой локального ресурса? Так это можно и на одном web-адаптере сделать.

                                      Сейчас пытаюсь реализовать логику на пробе загрузки уникальной картинки (которая есть только в моей ЛВС). Интересно что в редакторе проба работает, а при просмотре страницы нет. Код стырил:

                                      function ImageExist(url) 
                                      {
                                         var img = new Image();
                                         img.src = url;
                                         return img.height != 0;
                                      }
                                      

                                      почему то такая конструкция вообще не заработала, даже в редакторе:

                                      $.ajax({
                                          url:'http://www.example.com/somefile.ext',
                                          type:'HEAD',
                                          error: function()
                                          {
                                              //file not exists
                                          },
                                          success: function()
                                          {
                                              //file exists
                                          }
                                      });
                                      ```` `  
                                      

                                      Тебе надо засунуть код в

                                      Какие у тебя IP адреса в локалке и в инете? По ним нельзя определить?

                                      С загрузкой картинки может возникнуть CORS проблема.

                                      1 Reply Last reply
                                      0
                                      • A Offline
                                        A Offline
                                        andrey99986
                                        wrote on last edited by
                                        #128

                                        @Bluefox:

                                        Тебе надо засунуть код в

                                        Какие у тебя IP адреса в локалке и в инете? По ним нельзя определить?

                                        С загрузкой картинки может возникнуть CORS проблема. `

                                        аякс код дополнительно в ?

                                        Адреса в локалке 192.168.2.

                                        Но надо гарантировано определить что я в своей сети.

                                        var x = document.referrer;
                                        

                                        Выдаёт разный ответ при lan/wan доступе. Пока работает вот такой код , тестирую:

                                        var myref = document.referrer;
                                        clientip_www = false;
                                        if (myref.includes("www.")){
                                            clientip_www = true;
                                        }
                                        
                                        1 Reply Last reply
                                        0
                                        • A Offline
                                          A Offline
                                          andrey99986
                                          wrote on last edited by
                                          #129

                                          С document.referrer не во всех случаях работает.

                                          Поставил я второй web-адаптер с http протоколом.

                                          Как теперь в js отличить lan/wan вход?

                                          Код кто-нибудь может показать?

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          550

                                          Online

                                          32.7k

                                          Users

                                          82.6k

                                          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