Вопросы по работе системы



  • @Alex_Jet:

    Наверное, необходимо использовать startOnChange(…) чтобы скрипт запустился и отработал?

    Да, конечно.



  • @intrapro:

    @Alex_Jet:

    Наверное, необходимо использовать startOnChange(…) чтобы скрипт запустился и отработал?

    Да, конечно.

    А можно поподробнее как? Поскольку все что я пробовал при сохранении ругалось на не верные аргументы 😞



  • @Alex_Jet:

    Не понимаю в какой момент setvolume меняется - при изменении значения или нажатия кнопки? Сейчас подобную структуру вставил в start, но в логе при изменении значения setvolume ничего подобного нет. Проверка на изменение происходит только при запуске скрипта внешним запросом (плагином):

    Свойство (уставка) отправляется на сервер, когда нажимаете галочку.

    При этом возникает событие устройства, свойство которого изменилось.

    @Alex_Jet:

    А можно поподробнее как? Поскольку все что я пробовал при сохранении ругалось на не верные аргументы 😞

    У Вас сценарий, который добавляет свойства индикатору 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 варианту, так как можно объявлять разные свойства устройства в разных сценариях, желательно конечно, чтобы имена свойств не совпадали.



  • @intrapro:

    Свойство (уставка) отправляется на сервер, когда нажимаете галочку.

    При этом возникает событие устройства, свойство которого изменилось.

    Спасибо за разъяснения! Все что надо получилось. Жаль, что информация в боковом меню не обновляется онлайн, а только при каждом новом вызове…

    А еще просветите - от 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});
      }
    
    


  • @Alex_Jet:

    Спасибо за разъяснения! Все что надо получилось. Жаль, что информация в боковом меню не обновляется онлайн, а только при каждом новом вызове…

    Здорово, что все получилось!

    @Alex_Jet:

    А еще просветите - от startOnChange можно как-то получить что конкретно изменилось? Сейчас сделал обработку событий "вручную":

    Да, это логично - получить объект, в котором содержатся данные, которые привели к запуску сценария .

    Добавим



  • @intrapro:

    Да, это логично - получить объект, в котором содержатся данные, которые привели к запуску сценария .

    Добавим

    Да, это очень логично! Причем в отладчике сценария уже сейчас пишется что именно изменилось, только это сейчас не забрать… Пример, проверки на изменение - 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 вообще так.

    Как правильно использовать часы?



  • Добрый день,

    @Erik:

    Еще раз про отображение.

    В хроме полосы.

    Попробуйте уменьшить виджет "Часы", возможно виджет налезает на другой и перекрывает полосу скролинга

    @Erik:

    Еще раз про отображение.

    Начал перебирать браузеры, и в IE вообще так.

    Спасибо за помощь 😉

    @Erik:

    Как правильно использовать часы?

    Данный виджет несет только информационный характер, логическая часть в нем отсутствует



  • там нет ничего, что может его перекрывать.

    Часы в свои границы не помещаются, если использовать IE 🙂

    Вопрос про SVG.

    У стороннего SVG не совпадают каналы с ожиданиями IH. В результате ни цвет ни фон не меняются.

    Есть ли описание, что нужно IH от SVG?



  • @Erik:

    Часы в свои границы не помещаются, если использовать IE 🙂

    Поддерживаю! У меня и в хроме на некоторых разрешениях не помещаются - сдвигаются в сторону.



  • @Erik:

    там нет ничего, что может его перекрывать.

    Часы в свои границы не помещаются, если использовать IE 🙂

    Вопрос про SVG.

    У стороннего SVG не совпадают каналы с ожиданиями IH. В результате ни цвет ни фон не меняются.

    Есть ли описание, что нужно IH от SVG?

    Добрый день, жестких стандартов нет, в большинстве случаев проблем не должно быть, пришлите Ваш файл и мы сообщим почему возникает проблема





  • @Erik:

    https://yadi.sk/d/gx340JbOGgebEQ

    файл svg

    Добрый день, файл состоит из линий и графических элементов (png). Лини замкнутые и их можно залить, но у них уставлена принудительная заливка слоя в белый цвет, отключите её и все заработает. Графические элементы залить цветом не получиться



  • фон не меняется



  • @Erik:

    фон не меняется

    Добрый день, заливка работает по другому, например: попробуйте нарисовать в svg пустой прямоугольник, загрузите в систему intraHouse и установите цвет 😉



  • Есть такой 3D редактор - SweetHome.

    Он нарисованные планы может импортировать в SVG.

    Дальше что, вручную в коде файла ковыряться?

    Или другим редактором открыть?

    Каким?



  • Я тоже использую SweetHome для построения планов.

    Но получаю png, обрезаю и использую в качестве плана.

    Вариант с svg узнал от Вас. Попробовал. План в IH загружается нормально.

    Но менять цвет фона и окантовки в IH действительно не получается. Хотя это вроде и не требуется. План из SweetHome обычно получаем раскрашенным как надо 😉

    Тем не менее. Попытался открыть Ваш файл цоколь.svg в программе Graphic. В этой программе я делаю все svg иконки.

    Попробовал поменять цвет фона на красный. Не получилось:
    plan101.jpg
    Там идет заливка не цветом а паттерном. Graphic изменить ее не может, как и IH

    Возможно связано с особенностями формата svg в SweetHome



  • @Erik:

    Дальше что, вручную в коде файла ковыряться?

    Или другим редактором открыть?

    Каким?

    Попробуйте Inkscape https://inkscape.org/ru/



  • Доброго времени суток. Помогите пожалуйста мыслью. На raspberry pi 3 установлены часы ds3231. При резком отключении питания и с последующим включением дата сбивается и время. Батарейка новая, плату RTC менял на другую. Бывает включится нормально, а бывает нет. Выключение через командную строку не решает проблемы.



  • @artem521:

    Доброго времени суток. Помогите пожалуйста мыслью. На raspberry pi 3 установлены часы ds3231. При резком отключении питания и с последующим включением дата сбивается и время. Батарейка новая, плату RTC менял на другую. Бывает включится нормально, а бывает нет. Выключение через командную строку не решает проблемы.

    Вот здесь есть описание по настройке RTC https://ih-systems.com/ru/rtc-ds3231-raspberry-pi/

    Если все это уже проделывали, тогда не знаю :?


Авторизуйтесь, чтобы ответить