NEWS
Разные вопросы по Vis
-
Согласен!
Зациклился на визуализации и упустил из виду, что отображаться будет на нескольких устройствах.
В общем у меня такой вышел результат:
{a:javascript.0.test.color;b:javascript.0.Signalka.acknowledged; (a=='true' && b=='true') ? 'c-red': a=='true' ? 'b-block':''}т.е. если пришла тревога, фон определенного виджета мерцает желтым-красным
если есть квитирование, но тревога еще висит - то фон красный
-
Согласен!
Зациклился на визуализации и упустил из виду, что отображаться будет на нескольких устройствах.
В общем у меня такой вышел результат:
{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"}]Но только для кого оно мигать будет? у меня если что произошло в зависимости от обстоятельств либо голос, либо на телефон оповещение сразу идет. -
звуковое оповещение тоже будет + сообщение или звонок на телефон
виджет будет отображать несколько состояний в обычном режиме на прозрачном фоне и те же состояния и цветной фон в режиме охраны, если датчик сработал. Поэтому использую поле "класс".
Можно было бы обойтись только свойством "цвет фона", но для красоты хочется добавить еще переливы фона с помощью CSS :)
Причем в зависимости от нескольких переменных, фон должен иметь разное цветовое состояние.
-
Пока вышел такой рабочий вариант:
!
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 объекта
-
Подскажите в чём ошибаюсь
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'}); // показать уведомление -
Подскажите в чём ошибаюсь
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}); -
Bluefox, да так получилось, по названию планшета /вкладка которую хочу открывать. Но вообще заработало, спасибо за помощь.
Пишу с пульта….
-
У тебя правда так view называется? surfer8.31/Security `
Вроде понял, если указать Security, перейдёт на всех устройствах где есть вкладка с таким названием -
Установил версию драйвера 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 -
Установил версию драйвера 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?
-
Где задаётся время жизни кэша web-сервера?
Картинку обновляю в папке /vis.0/ - на клиенте видна старая версия.
-
Где задаётся время жизни кэша web-сервера?
Картинку обновляю в папке /vis.0/ - на клиенте видна старая версия. `
Там её нельзя обновлять.Нужно обновлять через вызов
> iorboker upload /path/to/file/picture.png /vis.0/main/somewhere/picture.png -
Где задаётся время жизни кэша web-сервера?
Картинку обновляю в папке /vis.0/ - на клиенте видна старая версия. `
Там её нельзя обновлять.Нужно обновлять через вызов
> iorboker upload /path/to/file/picture.png /vis.0/main/somewhere/picture.png`Таким образом единственный способ получать снимки с камер и сохранять их в веб-папку примерно такой? :
camera1_snap_tmp = '/tmp/cam1.jpg'; camera1_snap_web = '/vis.0/main/img/cam1.jpg'; cmd_get_snap1 = 'wget "http://192.168.2.10:8088/snapshot?username=user&userpwd=passw&strm=1" --no-use-server-timestamps -O ' + camera1_snap_tmp; exec(cmd_get_snap1, function (error, result, stderr) { if ((function () {var val = (stderr.indexOf('.jpg’ saved') + 1); if (val === 'true') return true; if (val === 'false') return false; return !!val;})()) { cmd_copy_web = '/usr/bin/iobroker upload ' + camera1_snap_tmp + ' ' + camera1_snap_web; exec (cmd_copy_web); console.log('copy image to web folder: ' + cmd_copy_web); } else { console.log('Error get image from camera'); } }); -
camera1_snap_web = '/vis.0/main/img/cam1.jpg'; cmd_get_snap1 = 'http://192.168.2.10:8088/snapshot?username=user&userpwd=passw&strm=1'; var request = require('request'); request.get({url: cmd_get_snap1, encoding: 'binary'}, function (err, response, body) { writeFile(camera1_snap_web, body, function (error) { console.log('file written'); }); }); -
На главной странице в vis- редакторе настроил элемент "bars - Views bar" .
К кнопкам этого элемента подключены другие страницы.
Так вот при быстрой прокрутке любой страницы - текущая страница закрывается и происходит переход назад, как будто нажали клавишу "Backspase".
На компьютере этого эффекта нет - оно и понятно - там мышь.
А вот на браузере на android-e этот эффект мешает. Если ОЧЕНЬ медленно скролить то возврата на главную страницу нет, но так просматривать страницы невозможно.
-
camera1_snap_web = '/vis.0/main/img/cam1.jpg'; cmd_get_snap1 = 'http://192.168.2.10:8088/snapshot?username=user&userpwd=passw&strm=1'; var request = require('request'); request.get({url: cmd_get_snap1, encoding: 'binary'}, function (err, response, body) { writeFile(camera1_snap_web, body, function (error) { console.log('file written'); }); }); ```` `Спасибо. То есть "iobroker upload" не нужен для web если сохранять файл встроенными в драйвер js функциями (https://github.com/ioBroker/ioBroker.javascript ).
-
К вопросу о прокрутке и автоматическому переходу назад( как будто нажали клавишу "Backspase") - куда копать?
Дело в настройках vis-а или это глюк виджета?
-
В редактор VIS планируется добавить кнопку "Опустить ниже" выбранный элемент на форме по сравнению с другими.
Надеюсь понятно описал :)
А то когда добавляешь например виджет Border в конце, приходится все элементы добавленные до него, выделять, вырезать и снова вставлять, чтобы они были "выше" него.
-
На главной странице в vis- редакторе настроил элемент "bars - Views bar" .
К кнопкам этого элемента подключены другие страницы.
Так вот при быстрой прокрутке любой страницы - текущая страница закрывается и происходит переход назад, как будто нажали клавишу "Backspase".
На компьютере этого эффекта нет - оно и понятно - там мышь.
А вот на браузере на android-e этот эффект мешает. Если ОЧЕНЬ медленно скролить то возврата на главную страницу нет, но так просматривать страницы невозможно. `
Я не припомню, что бы что то такое было специально сделано. Может это свойство браузера? Как там в других браузерах? -
В редактор VIS планируется добавить кнопку "Опустить ниже" выбранный элемент на форме по сравнению с другими.
Надеюсь понятно описал :)
А то когда добавляешь например виджет Border в конце, приходится все элементы добавленные до него, выделять, вырезать и снова вставлять, чтобы они были "выше" него. `
Для этого есть zindex. Выставляешь у всех zindex 1, а у border 0. И всё.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden