Предложение



  • @Alex_Jet:

    Изменения по состояниям устройств можно "Фиксировать в журнале", но меня немного смущает вид этой фиксации в журнале:

    Журнал_Фиксация_Состояний_Устройств.png

    Можно либо убрать пробел перед точкой или формировать изменение в журнале так "Название устройства - Состояние"?

    То есть точку заменить на тире?



  • @intrapro:

    То есть точку заменить на тире?

    На ваше усмотрение. Мне больше нравится (и логичнее выглядит) когда есть тире.



  • Большая просьба добавить в расписания возможность выполнения произвольной HTTP команды, а то сейчас приходится для элементарной команды делать сценарий и его запускать.



  • @gis:

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

    Хорошо, добавим 🙂



  • А нет возможности как в berry сделать сценарии но только в виде блок схем? Очень много нюансов в ходе тестирования узнается, что усложняет настройку.



  • Интерфейсные хотелки.

    1. Привязать включение/выключение правого меню к состояниям устройства. Чтобы к каждом состоянии была своя настройка отображения.

    2. Добавить свойство состояний "не отображать вообще". Чтобы в состоянии устройства, в котором это свойство задействовано, его вообще не было на виджете. Сейчас можно сделать 0 размера, или невидимым, но если нажать в зону нахождения, правое меню "спрятанного" устройства все равно открывается 🙂



  • Нужно в действия устройств добавить запуск скрипта.

    У актуатора, например, только включить\выключить\переключить.

    Задача - 4-х позиционных переключатель, со значениями 0,1,2,3

    Состояния определены в свойствах.

    Нужно сделать из него 4 объекта в виджете, которые меняют цвет в зависимости от режима.

    Объект 0 - должен установить при нажатии значение 0. И в настройках состояние "0" яркое цветное, остальные состояния серые/прозрачные.

    Тот же объект еще раз на виджете, только при нажатии устанавливать должен значение 1, и состояние "1" яркое, остальные - прозрачные.

    Все работает, кроме установки конкретного значения при нажатии. Выбор только on/off/toggle. Добавить бы в этот выбор "запустить скрипт".

    Или добраться до редактирования действий.



  • @Erik:

    Нужно в действия устройств добавить запуск скрипта.

    У актуатора, например, только включить\выключить\переключить.

    Задача - 4-х позиционных переключатель, со значениями 0,1,2,3

    Состояния определены в свойствах.

    Нужно сделать из него 4 объекта в виджете, которые меняют цвет в зависимости от режима.

    Объект 0 - должен установить при нажатии значение 0. И в настройках состояние "0" яркое цветное, остальные состояния серые/прозрачные.

    Тот же объект еще раз на виджете, только при нажатии устанавливать должен значение 1, и состояние "1" яркое, остальные - прозрачные.

    Все работает, кроме установки конкретного значения при нажатии. Выбор только on/off/toggle. Добавить бы в этот выбор "запустить скрипт".

    Или добраться до редактирования действий.

    Добрый день, вы можете проделать следующее:

    1. Создайте новое устройство и выберите тип "Переключатель", сохраните.

    2. Нажмите кнопку сплит меню, выберите раздел "Состояния".

    3. Выберите любое состояние и нажмите кнопку скопировать, заполните необходимые параметры, сохраните.

    4. Разместите данное устройство на мнемосхеме выберите в параметрах устройства, шаблон представления –> "Переключатель состояния"

    У Вас получилось виртуальное устройство с 4-ми состояниями.

    Добавьте сценарий, укажите свой id устройств

    /** 
    * @name Новый сценарий 
    * @desc  
    * @version 4 
    */
    
    const dimm1 = Device("DIMM1"); 
    const switch1 = Device("SWITCH1"); 
    
    startOnChange(switch1); 
    
    script({
        start() {
          if (switch1.value === 0) {
            dimm1.setValue(10);
            this.log('state: 0');
          }
    
          if (switch1.value === 1) {
            dimm1.setValue(50);
            this.log('state: 1');
          }
    
          if (switch1.value === 2) {
            dimm1.setValue(75);
            this.log('state: 2');
          }
    
          if (switch1.value === 3) {
            dimm1.setValue(100);
            this.log('state: 3');
          }
        } 
    });
    
    
    

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



  • Ага, вот

    startOnChange(switch1); 
    
    

    Какие есть еще способы запуска скрипта?

    У Вас получилось виртуальное устройство с 4-ми состояниями.

    Ничем от актуатора не отличается.

    И не решает поставленную задачу по визуализации включенного режима (4 кнопки, из которых в цвете только та, чей режим включен)



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

    @Erik:

    Какие есть еще способы запуска скрипта?

    Можете запускать по нажатию по кнопке

    @Erik:

    Ничем от актуатора не отличается.

    И не решает поставленную задачу по визуализации включенного режима (4 кнопки, из которых в цвете только та, чей режим включен)

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



  • нужно 4 кнопки, у каждой 2 визуальных состояния - светится / не светится

    Нужно чтобы:

    Нажатие кнопки 1 включало актуатор в состояние 1, зажигало кнопку 1, гасило кнопки 2,3,4.

    Нажатие кнопки 2 включало актуатор в состояние 2, зажигало кнопку 2, гасило кнопки 1,3,4.

    Нажатие кнопки 3 включало актуатор в состояние 3, зажигало кнопку 3, гасило кнопки 1,2,4.

    Нажатие кнопки 4 включало актуатор в состояние 4, зажигало кнопку 4, гасило кнопки 1,2,3.



  • @dev:

    Добрый день,

    @Erik:

    Какие есть еще способы запуска скрипта?

    Можете запускать по нажатию по кнопке

    т.е. всего 2 варианта.

    1. по изменению состояния устройства.

    2. по нажатию кнопки.

    Больше нет вариантов?



  • @Erik:

    @dev:

    Добрый день,

    @Erik:

    Какие есть еще способы запуска скрипта?

    Можете запускать по нажатию по кнопке

    т.е. всего 2 варианта.

    1. по изменению состояния устройства.

    2. по нажатию кнопки.

    Больше нет вариантов?

    Добрый день, по расписанию можно запускать



  • Здравствуйте.

    Т.е. 3 варианта?

    1. по изменению состояния устройства.

    2. по нажатию кнопки.

    3. по таймеру



  • @Erik:

    Здравствуйте.

    Т.е. 3 варианта?

    1. по изменению состояния устройства.

    2. по нажатию кнопки.

    3. по таймеру

    Добрый день, огласите свой вариант 😉



  • Я с вами как дознаватель святой инквизиции общаюсь.

    Думаю, их 7. И это не предел. 🙂



  • @Erik:

    нужно 4 кнопки, у каждой 2 визуальных состояния - светится / не светится

    Нужно чтобы:

    Нажатие кнопки 1 включало актуатор в состояние 1, зажигало кнопку 1, гасило кнопки 2,3,4.

    Нажатие кнопки 2 включало актуатор в состояние 2, зажигало кнопку 2, гасило кнопки 1,3,4.

    Нажатие кнопки 3 включало актуатор в состояние 3, зажигало кнопку 3, гасило кнопки 1,2,4.

    Нажатие кнопки 4 включало актуатор в состояние 4, зажигало кнопку 4, гасило кнопки 1,2,3.

    Попробуйте такой скрипт

    В девайсах поставьте свои актуаторы

    /** 
    * @name Переключатель с помощью 4-x DO  
    * @desc  
    * @version 4  
    */
    
    const but1 = Device("ActorD","Триггер 1"); 
    const but2 = Device("ActorD","Триггер 2"); 
    const but3 = Device("ActorD","Триггер 3"); 
    const but4 = Device("ActorD","Триггер 4"); 
    
    startOnChange([but1,but2,but3,but4]); 
    
    script({
        start() {
          if (this.isChanged(but1) && but1.isOn()) {
            but2.off();
            but3.off();
            but4.off();
            return;
          }  
          if (this.isChanged(but2) && but2.isOn()) {
            but1.off();
            but3.off();
            but4.off();
          }
        if (this.isChanged(but3) && but3.isOn()) {
            but1.off();
            but2.off();
            but4.off();
          }
       if (this.isChanged(but4) && but4.isOn()) {
            but1.off();
            but2.off();
            but3.off();
          }
    })
    
    
    

    При нажатии на каждом нужно выбрать on, а не toggle



  • @Erik:

    Думаю, их 7. И это не предел. 🙂

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



  • @intrapro:

    При нажатии на каждом нужно выбрать on, а не toggle

    Создал переключатель.

    У него было 3 состояния.

    Переименовал выкл в комфорт

    вкл в эконом

    авто в расписание и скопировал авто, переименовав его в выкл.

    Получил 3 состояния - комфорт, эконом, расписание и выкл.

    Добавил переключатель в виджет в виде "иконка с дополнительными элементами".

    Предполагаю, что она должна включать режим комфорт.

    Но в действиях - toggle, on,off, none.

    Если ставлю "on", как вы советуете - нажатие активирует состояние "эконом", которое ранее (до переименования) было "вкл".

    Если ставлю "off", нажатие активирует состояние "комфорт", которое ранее (до переименования) было "выкл".

    Если ставлю "toggle", нажатие переключает между состояниями "комфорт" и "эконом", которые ранее (до переименования) были "выкл" и "вкл".

    Больше активировать нечего, и состояния "расписание" и "выкл" нажатиями не активировать.

    А ваш скрипт предполагает, что это каким-то образом произошло.

    Каким образом?



  • @Erik:

    Создал переключатель.

    У него было 3 состояния.

    Переименовал выкл в комфорт

    вкл в эконом

    авто в расписание и скопировал авто, переименовав его в выкл.

    Получил 3 состояния - комфорт, эконом, расписание и выкл.

    Добавил переключатель в виджет в виде "иконка с дополнительными элементами".

    Предполагаю, что она должна включать режим комфорт.

    Но в действиях - toggle, on,off, none.

    Если ставлю "on", как вы советуете - нажатие активирует состояние "эконом", которое ранее (до переименования) было "вкл".

    Если ставлю "off", нажатие активирует состояние "комфорт", которое ранее (до переименования) было "выкл".

    Если ставлю "toggle", нажатие переключает между состояниями "комфорт" и "эконом", которые ранее (до переименования) были "выкл" и "вкл".

    Больше активировать нечего, и состояния "расписание" и "выкл" нажатиями не активировать.

    А ваш скрипт предполагает, что это каким-то образом произошло.

    Каким образом?

    Видимо, слишком много асинхронных советов 🙂

    Скрипт был для вопроса: Нужно сделать из него 4 объекта в виджете, которые меняют цвет в зависимости от режима.

    То есть 4 актуатора - 4 режима

    Этот вопрос вроде уже обсуждался в теме Modbus:

    __Можно сделать 4 кнопки и один сценарий, который пишет значение в устройство

    На устройстве сделать 4 состояния, и картинки/тексты будут переключаться на индикации (показывать текущее состояние), а нажимать на устройство запретить.

    Другой вариант - у нас есть переключатель, можно было бы использовать его, но он на текущий момент не доступен как устройство для канала Modbus (просто не включили, добавим при обновлении)

    Плюсы такого решения - индикация и управление в одном флаконе

    Минусы - ограниченные возможности по дизайну кнопок__

    Третий, получается, вариант - не кнопки, а устройства с функцией button - вкл-выкл. Для этого варианта был предложен скрипт

    Ок, берем вариант два, Переключатель. Как устройство для Modbus сейчас доступно, можно попробовать

    Для реализации функции переключателя есть Шаблон представления "Переключатель состояния"

    Шаблон представления "Иконка" в случае переключателя используется только для индикации текущего состояния, не для нажатий
    switch_prop.png

    Действие при нажатии нужно выбрать none, так как нажатие отрабатывает сам компонент и уже возвращает значение.

    Изменение яркости выбранного элемента выполняется самим элементом, никакого доп скрипта не надо


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