Вопросы по работе системы
-
Не понимаю в какой момент setvolume меняется - при изменении значения или нажатия кнопки? Сейчас подобную структуру вставил в start, но в логе при изменении значения setvolume ничего подобного нет. Проверка на изменение происходит только при запуске скрипта внешним запросом (плагином):
Свойство (уставка) отправляется на сервер, когда нажимаете галочку.
При этом возникает событие устройства, свойство которого изменилось.
А можно поподробнее как? Поскольку все что я пробовал при сохранении ругалось на не верные аргументы
У Вас сценарий, который добавляет свойства индикатору unit, какие действия выполняет?
Как обычно, есть минимум три варианта
1. Добавить в этот же сценарий триггер: startOnChange(unit)
и действие в функцию start()
if (this.isChanged(unit, 'setvolume')) { this.pluginCommand({unit:'voiceterminal1', command:{prop:'volume', value:unit.getParam('setvolume')}}); }
Действие будет выполняться, если сценарий запускается при изменении свойства setvolume
2. Можно сделать отдельный сценарий - только управление громкостью, так как свойство можно объявить в одном сценарии, а использовать в другом
const unit = Device("_UNIT_voiceterminal1"); startOnChange(unit); script({ start() { if (this.isChanged(unit, 'setvolume')) { this.pluginCommand({unit:'voiceterminal1', command:{prop:'volume', value:unit.getParam('setvolume')}}); } } })
3. Можно и объявление свойства setvolume перенести в сценарий по 2 варианту, так как можно объявлять разные свойства устройства в разных сценариях, желательно конечно, чтобы имена свойств не совпадали.
-
Свойство (уставка) отправляется на сервер, когда нажимаете галочку.
При этом возникает событие устройства, свойство которого изменилось.
Спасибо за разъяснения! Все что надо получилось. Жаль, что информация в боковом меню не обновляется онлайн, а только при каждом новом вызове…
А еще просветите - от startOnChange можно как-то получить что конкретно изменилось? Сейчас сделал обработку событий "вручную":
//Проверка с какого устройства поступила команда if(this.isChanged(dev1, "set_volume")) { device = dev1; } else if(this.isChanged(dev2, "set_volume")) { device = dev2; } //Установка громкости нужного терминала this.SetVolume(device);
Ну и функция, которая дает команду плагину:
SetVolume(dev) { let unit = dev.id.replace('_UNIT_', ''); let command = dev.getParam('set_volume'); this.pluginCommand({unit: unit, command:"volume:" +command}); }
-
Спасибо за разъяснения! Все что надо получилось. Жаль, что информация в боковом меню не обновляется онлайн, а только при каждом новом вызове…
Здорово, что все получилось!
А еще просветите - от startOnChange можно как-то получить что конкретно изменилось? Сейчас сделал обработку событий "вручную":
Да, это логично - получить объект, в котором содержатся данные, которые привели к запуску сценария .
Добавим
-
Да, это логично - получить объект, в котором содержатся данные, которые привели к запуску сценария .
Добавим
Да, это очень логично! Причем в отладчике сценария уже сейчас пишется что именно изменилось, только это сейчас не забрать… Пример, проверки на изменение - if(this.isChanged(dev1)), в отладчике получаем вот это:
28.02 22:19:21.119 Started 28.02 22:19:21.119 isChanged(_UNIT_voiceterminal1,dval)=false Changed: {"_UNIT_voiceterminal1":{"set_volume":90}}
PS: подумайте над онлайн-обновлением данных в боковом меню устройства.
Update1: Еще момент - управлять громкостью могу, вводя новые значения. А как можно из сценария поменять значение свойства?
{"name":"set_volume", "note":"Громкость терминала", "type":"number", "val":50},
Дело в том, что я могу сказать голосом терминалу "Алиса громкость 60" и он сделает громкость 60 и отправит об этом данные на сервер, но как это "записать" в val "set_volume"? Сейчас его val просто обнуляется…
Update2: затупил немного… изменял val по сути на стринг (obj.volume+ "%"), поэтому значение обнулялось.
-
Еще раз про отображение.
В хроме полосы.
Начал перебирать браузеры, и в IE вообще так.
Как правильно использовать часы?
-
Добрый день,
Еще раз про отображение.
В хроме полосы.
Попробуйте уменьшить виджет "Часы", возможно виджет налезает на другой и перекрывает полосу скролинга
Еще раз про отображение.
Начал перебирать браузеры, и в IE вообще так.
Спасибо за помощь
Как правильно использовать часы?
Данный виджет несет только информационный характер, логическая часть в нем отсутствует
-
там нет ничего, что может его перекрывать.
Часы в свои границы не помещаются, если использовать IE
Вопрос про SVG.
У стороннего SVG не совпадают каналы с ожиданиями IH. В результате ни цвет ни фон не меняются.
Есть ли описание, что нужно IH от SVG?
-
Часы в свои границы не помещаются, если использовать IE
Поддерживаю! У меня и в хроме на некоторых разрешениях не помещаются - сдвигаются в сторону.
-
там нет ничего, что может его перекрывать.
Часы в свои границы не помещаются, если использовать IE
Вопрос про SVG.
У стороннего SVG не совпадают каналы с ожиданиями IH. В результате ни цвет ни фон не меняются.
Есть ли описание, что нужно IH от SVG?
Добрый день, жестких стандартов нет, в большинстве случаев проблем не должно быть, пришлите Ваш файл и мы сообщим почему возникает проблема
-
https://yadi.sk/d/gx340JbOGgebEQ
файл svg
-
https://yadi.sk/d/gx340JbOGgebEQ
файл svg
Добрый день, файл состоит из линий и графических элементов (png). Лини замкнутые и их можно залить, но у них уставлена принудительная заливка слоя в белый цвет, отключите её и все заработает. Графические элементы залить цветом не получиться
-
фон не меняется
-
фон не меняется
Добрый день, заливка работает по другому, например: попробуйте нарисовать в svg пустой прямоугольник, загрузите в систему intraHouse и установите цвет
-
Есть такой 3D редактор - SweetHome.
Он нарисованные планы может импортировать в SVG.
Дальше что, вручную в коде файла ковыряться?
Или другим редактором открыть?
Каким?
-
Я тоже использую SweetHome для построения планов.
Но получаю png, обрезаю и использую в качестве плана.
Вариант с svg узнал от Вас. Попробовал. План в IH загружается нормально.
Но менять цвет фона и окантовки в IH действительно не получается. Хотя это вроде и не требуется. План из SweetHome обычно получаем раскрашенным как надо
Тем не менее. Попытался открыть Ваш файл цоколь.svg в программе Graphic. В этой программе я делаю все svg иконки.
Попробовал поменять цвет фона на красный. Не получилось:
Там идет заливка не цветом а паттерном. Graphic изменить ее не может, как и IHВозможно связано с особенностями формата svg в SweetHome
-
Дальше что, вручную в коде файла ковыряться?
Или другим редактором открыть?
Каким?
Попробуйте Inkscape https://inkscape.org/ru/
-
Доброго времени суток. Помогите пожалуйста мыслью. На raspberry pi 3 установлены часы ds3231. При резком отключении питания и с последующим включением дата сбивается и время. Батарейка новая, плату RTC менял на другую. Бывает включится нормально, а бывает нет. Выключение через командную строку не решает проблемы.
-
Доброго времени суток. Помогите пожалуйста мыслью. На raspberry pi 3 установлены часы ds3231. При резком отключении питания и с последующим включением дата сбивается и время. Батарейка новая, плату RTC менял на другую. Бывает включится нормально, а бывает нет. Выключение через командную строку не решает проблемы.
Вот здесь есть описание по настройке RTC https://ih-systems.com/ru/rtc-ds3231-raspberry-pi/
Если все это уже проделывали, тогда не знаю :?
-
@intrahouse:
Доброго времени суток. Помогите пожалуйста мыслью. На raspberry pi 3 установлены часы ds3231. При резком отключении питания и с последующим включением дата сбивается и время. Батарейка новая, плату RTC менял на другую. Бывает включится нормально, а бывает нет. Выключение через командную строку не решает проблемы.
Вот здесь есть описание по настройке RTC https://ih-systems.com/ru/rtc-ds3231-raspberry-pi/
Если все это уже проделывали, тогда не знаю :?
Это все делал неделю выключен сервер, включаю- все нормально, выключу-включу 1970 год. Уже грешу на помеху какую.
-
Это все делал неделю выключен сервер, включаю- все нормально, выключу-включу 1970 год. Уже грешу на помеху какую.
Если причина в том, что обращение к часам при загрузке происходит раньше времени, то можно добавить ее в cron
сделайте эту команду скриптом.
/sbin/hwclock -s
сделайте скрипт исполняемым
chmod +x "путь до скрипта"
Далее выполните команду:
crontab -e
Допишите в конце строку:
@reboot "путь до скрипта"