NEWS
Разные вопросы по Vis
- 
					
					
					
					
 Мне интересно это только у меня так браузер в андроиде (5, 7 ) ведёт, у всех всё нормально при скролинге длинных страниц, открытых по ссылке ? У меня вроде норм, а Апп не юзаешь? Может с жестами чего намудрил?
 Апп с https не работает пока. А с http не хочу из соображений безопасности, там ещё надо как-то вручную аутентификацию включать.Можно конечно через vpn, но тогда теряется возможность с произвольного десктопа зайти. Жесты не трогал, галочки проверял - все убраны. Есть идея пересоздать проект, других идей нет. 
- 
					
					
					
					
 Выяснил что проблема создаётся если создать новый проект и тут же удалить страницу Demoview. Если же оставить страницу Demoview и прямо в ней создать линки - глюка нет. Пробовал удалить все элементы кроме одного на странице Demoview - страница перестаёт загружаться при просмотре. (в редакторе - грузится). Что - то в этой страницу есть , что без неё этот глюк проявляется Какая правильная последовательность создания нового проекта без лишних страниц (Demoview)? 
- 
					
					
					
					
 Почему DemoView перестаёт грузится (в режиме просмотра) если удалить на ней все элементы " ? Создавал новый проект по учёткой "admin". В режиме просмотра под другим пользователем со всеми правами проект не виден (после удаления Demoview). Под учёткой "admin" - проект в режиме просмотра грузится. 1. Где настроить права? Галка "доступно для всех" в vis-е стоит. В админке в "Группы" в свойствах user-а стоят все галки - даны все права. 2. Как корректно удалить проект? В меню не нашёл. Если удалить в файловой системе - в меню доступных проектов удалённые проекты исчезают, но в файле /vis.0/_data.json остаются описания несуществующих проектов. 
- 
					
					
					
					
 Кто не боится - удалите страницу Demoview и проверьте - проект под юзером будет виден? (сделайте бэкап на всякий случай) 
- 
					
					
					
					
 Глюк (или особенность? ) со скролингом возникает если установить птичку в закладке "Инструменты" "По умолчанию" в настройках разрешения экрана. Ещё вопрос - как выбрать веб-страницу проекта которая будет грузиться по умолчанию? Чтобы не указывать "#имя_страницы" в урле каждый раз. 
- 
					
					
					
					
 Ещё вопрос - как выбрать веб-страницу проекта которая будет грузиться по умолчанию? Чтобы не указывать "#имя_страницы" в урле каждый раз. ` 
 Первая созданная страница в проекте будет грузиться по умолчанию, изменить можно вopt/iobroker/iobroker-data/files/vis.0/main/vis-views.json переместив нужную страницу вперёд. При глобальных изменениях пере загружай сервер. 
- 
					
					
					
					
 Спасибо, попробую. А зачем перегружать linux, если никаких процессов nodejs нет? Чем отличаться будет от iobroker stop, ps ax - анализ запущенных процессов, kill при необходимости, iobroker start? Глюкофича со скролингом и потерей прав от перезагрузки не зависит… Вопрос - есть глобальная переменная(Объект) в которой записан url. Какой элемент использовать в vis-е и как чтобы сделать из этого объекта динамическую ссылку, доступную для перехода в виде например кнопки? Дайте пример пожалуйста. 
- 
					
					
					
					
 Понятно что можно просто использовать {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......)
- 
					
					
					
					
 Ещё вопрос - как выбрать веб-страницу проекта которая будет грузиться по умолчанию? Чтобы не указывать "#имя_страницы" в урле каждый раз. ` 
 Первая созданная страница в проекте будет грузиться по умолчанию, изменить можно вopt/iobroker/iobroker-data/files/vis.0/main/vis-views.json переместив нужную страницу вперёд. При глобальных изменениях пере загружай сервер. ` 
 Ну это конечно слишком сложно. На самом деле я встроил механизм выбора первой странцы. И что то мне подсказывает, что именно этот механизм вызывает этот глюк.Можно выбрать одну страницу по умолчанию для каждого разрешения. Может ты несколько страниц пометил, как по умолчанию? Я подозреваю, что при быстром скролинге генерируется событие изменения разрешения экрана и система ищет страницу по умолчанию. Это и происходит. Решение проблемы. Убрать везде галочки "по умолчанию ". 
- 
					
					
					
					
 Решение проблемы. Убрать везде галочки "по умолчанию ". ` Да - это решает проблему. Я в предыдущих постах написал об этом. 
- 
					
					
					
					
 Понятно что можно просто использовать {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......) 
- 
					
					
					
					
 Что ты хочешь сделать? Просто показать в виз ip адрес клиента? Не думаю, что это возможно без модификации socket.io. ` Хочу чтобы на странице vis создавалась ссылка в зависимости от того, с какого адреса была открыта страница. Если клиент зашёл с той же ЛВС, где находится iobroker- создавалась ссылка на внутренний ресурс вида http://192.168.. Если клиент зашёл c Интернет - создавалась ссылка на ресурс вида http://www… Ну ещё желательно определять в заголовках User Agent-а, чтобы создавать url-ы в зависимости от устройства с которого зашли. А то сейчас приходится делать 6 ссылок на просмотр видео: - 
Если зашли с Desktop с ЛВС 
- 
Если зашли с Desktop с Интернет 
- 
Если зашли с Android с ЛВС 
- 
Если зашли с Android с Интернет 
- 
Если зашли с IOS с ЛВС 
- 
Если зашли с IOS с Интернет 
 На php можно было оставить на странице только одну ссылку. В iobroker нужны все шесть? 
- 
- 
					
					
					
					
 Что ты хочешь сделать? Просто показать в виз ip адрес клиента? Не думаю, что это возможно без модификации socket.io. ` Хочу чтобы на странице vis создавалась ссылка в зависимости от того, с какого адреса была открыта страница. Если клиент зашёл с той же ЛВС, где находится iobroker- создавалась ссылка на внутренний ресурс вида http://192.168.. Если клиент зашёл c Интернет - создавалась ссылка на ресурс вида http://www… Ну ещё желательно определять в заголовках User Agent-а, чтобы создавать url-ы в зависимости от устройства с которого зашли. А то сейчас приходится делать 6 ссылок на просмотр видео: - 
Если зашли с Desktop с ЛВС 
- 
Если зашли с Desktop с Интернет 
- 
Если зашли с Android с ЛВС 
- 
Если зашли с Android с Интернет 
- 
Если зашли с IOS с ЛВС 
- 
Если зашли с IOS с Интернет 
 На php можно было оставить на странице только одну ссылку. В iobroker нужны все шесть? ` 
 Все что тебе надо. Можно отлично определить на клиенте. У меня сделано так, что по локалке я захожу без пароля, а по инету с паролем по https. Таким образом я могу отличить lan/wan, а тип клиента определяется js на раз два. Тебе надо понимать, что здесь используется отличная от php технология. Статические страницы и динамические данные могут поступать с двух разных источников. За счет этого достигается огромная скорость и гибкость. Тебе нельзя думать терминами php, но то что тебе надо сделать можно.Посмотри здесь я делаю что то похожее: 
- 
- 
					
					
					
					
 Все что тебе надо. Можно отлично определить на клиенте. У меня сделано так, что по локалке я захожу без пароля, а по инету с паролем по https. Таким образом я могу отличить lan/wan, а тип клиента определяется js на раз два. Тебе надо понимать, что здесь используется отличная от php технология. Статические страницы и динамические данные могут поступать с двух разных источников. За счет этого достигается огромная скорость и гибкость. Тебе нельзя думать терминами php, но то что тебе надо сделать можно. Посмотри здесь я делаю что то похожее: То есть из wan - открываем одну страницу, из lan - другую? По локалке хотелось бы тоже с паролем. И по причине безопасности и из-за избыточности иметь две ссылки. На странице по ссылке - ошибки. 
- 
					
					
					
					
 Все что тебе надо. Можно отлично определить на клиенте. У меня сделано так, что по локалке я захожу без пароля, а по инету с паролем по https. Таким образом я могу отличить lan/wan, а тип клиента определяется js на раз два. Тебе надо понимать, что здесь используется отличная от php технология. Статические страницы и динамические данные могут поступать с двух разных источников. За счет этого достигается огромная скорость и гибкость. Тебе нельзя думать терминами php, но то что тебе надо сделать можно. Посмотри здесь я делаю что то похожее: То есть из 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"}]
- 
					
					
					
					
 Нет. Страница одна и та же. Но разные web драйвера. У меня установлено 2 web драйвера. Один для интернет и один для локалки. Ну начни уже что нибудь делать. Я подмогу. ` 
 За готовый ответ по определению устройства спасибо конечно же, с js можно мне достаточно было бы ткнуть на любой линк с подобным решением.Но я пока не понял как конкретно ты определяешь wan/lan вход. Надо как-то на js определить из-под какого драйвера запущен веб-сервер? Этот вопрос как бы не погуглишь  А практики с iobroker у меня слишком мало чтобы догадаться. А практики с iobroker у меня слишком мало чтобы догадаться.
- 
					
					
					
					
 Нет. Страница одна и та же. Но разные web драйвера. У меня установлено 2 web драйвера. Один для интернет и один для локалки. Ну начни уже что нибудь делать. Я подмогу. ` Но я пока не понял как конкретно ты определяешь wan/lan вход. Надо как-то на js определить из-под какого драйвера запущен веб-сервер? Этот вопрос как бы не погуглишь  А практики с iobroker у меня слишком мало чтобы догадаться. ` А практики с iobroker у меня слишком мало чтобы догадаться. `
 Скорей всего по запросу https://192.168.1.10…. или http://192.168.1.10... у меня тоже так web.0 по http в доме без пароля, web.1 https из вне на доменное имя с паролем. Если по lan хочешь с паролем то в system.adapter.web.0 поставь галочку и будет тебе счастье.
- 
					
					
					
					
 Скорей всего по запросу 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 } });
- 
					
					
					
					
 Скорей всего по запросу 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 другой, безопасность не помешает 
- 
					
					
					
					
 Скорей всего по запросу 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 проблема. 
 
		
	