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



  • Мне пригодилось.
    Я делал интерфейсы как для ПК так и для телефона. И в разных цветовых решениях нужны разные цвета фона/картинок. Устройство одно, а "стилей отображения" несколько. Хорошо, что это возможно.
    А когда добавляешь устройство на мнемосхему, цвета иконки подтягиваются из состояний. Но их можно изменить. Т.е. иконка по умолчанию имеет цвета из состояний устройства. А если менять - изменения коснутся только этого конкретного отображения на этой мнемосхеме. Удобно по моему.



  • @Erik, да, оказывается - это цвета и иконки "по умолчанию" в мобильном нативном приложении. Я им практически не пользуюсь - нарисовал веб-интерфейс для смартфона. Не хватает в системе комментариев для чего это море возможностей нужно)



  • Пользователь @Alex_Jet написал в Вопросы по работе системы:

    Для аналогового датчика давления настроил 3 состояния - низкое (верхний предел - 1), среднее (верхний предел - 3) и высокое (верхний предел - 10) давление. Соответственно для каждого состояния на мнемосхеме задал фон индикатора - желтый/зеленый/красный. Однако при показаниях в районе 2,6-2,9 фон почему-то желтый, а должен быть зеленым!

    Отвечу сам, хотя подсказал уважаемый @intrahouse, - для того чтобы состояния устройства менялись в зависимости от его показаний нужно в свойствах устройства (вкладка "Дополнительно") выбрать "Аналоговое значение - интервалы". Вот про это я как раз и забыл...



  • Всем доброго времени суток! Сменил роутер, для работы с БП. Настройки все сменились, IP там... Сервак перестал работать, т.к. смена IP. Как сменить настройки сервера, чтобы всё снова заработало. В прошлый раз пришлось удалить программу и установить заново. Система Lubuntu.



  • @Sergeus Таким устройствам нужно давать статические адреса на самом роутере



  • Это сообщение удалено!


  • Ещё замечена проблемка. Когда задействован шлюз в сервере, перестает работать кнопка на Шлюзе, включающая подсветку. Сигнализация ставится по двойному нажатию, а подсветка не фурычит.



  • Здравствуйте. А как реализовать выпадающий список со списком действий?
    Например переход на экраны.

    Можно конечно в Html блок запихнуть, только как сделать обработку выбора элемента?



  • @regabriel, есть системный виджет autocomplete (это как раз выпадающий список). Пробовал им пользоваться, но не понял как... с виджетом navigator все получилось сразу же - он у меня переключает разные мнемосхемы на экране (его нужно добавить после создания и сохранения контейнера мнемосхем на экране).



  • Пользователь @Alex_Jet написал в Вопросы по работе системы:

    системный виджет autocomplete

    Вот я тоже не понял как его настраивать.

    navigator работает но это не выпадающий список, не так элегантно получается, да и не получается в нем сделать переходы на экраны или другие действия(например запуск сценария или т.п.)



  • Пользователь @regabriel написал в Вопросы по работе системы:

    navigator работает но это не выпадающий список, не так элегантно получается, да и не получается в нем сделать переходы на экраны или другие действия(например запуск сценария или т.п.)

    Можно такой же навигатор сделать из кнопок. Кнопки позволяют переходить на другой экран или что-нибудь запускать (сценарий, команда плагина или просто url). Лучше всего сделать свой виджет с такими кнопками - если они будут размещены на нескольких экранах, то будет удобно в дальнейшем редактировать только этот виджет.



  • homescreen.png



  • @dm, в чем вопрос с такой тяжелой картинкой?



  • Это сообщение удалено!


  • Это сообщение удалено!


  • Это сообщение удалено!


  • Не пойму из-за чего могут не работать некоторые скрипты пишет что isChanged не функция, хотя это мультисценарий и у других норм:

    alt text

    Другой скрипт так же выдает при принудительном запуске:
    alt text

    Скажите из-за чего такое может выдавать? (перезагрузка не помогает)



  • Пользователь @regabriel написал в Вопросы по работе системы:

    Не пойму из-за чего могут не работать некоторые скрипты пишет что isChanged не функция, хотя это мультисценарий и у других норм:
    Скажите из-за чего такое может выдавать? (перезагрузка не помогает)

    Добрый день!
    isChanged вызывается как функция сценария, а не устройства, через this:

    if (this.isChanged(shutter_small, 'value') ) { // Сценарий вызван, т к изменилось значение свойства value устройства shutter_small
    ...
    }
    if (this.isChanged(shutter_small)) { // Сценарий вызван, т к изменилось какое-то  свойство shutter_small
    ...
    }
    

    В документации ошибка, к сожалению 😞



  • Пользователь @intrapro написал в Вопросы по работе системы:

    this.isChanged(shutter_small)

    Хорошо, а то я уже совсем голову сломал)) Спасибо.
    Только поясните еще один момент (isChanged когда оно равно true)

    const dev = Device("window");
    ...
    start() {
      	this.addTimer("T1");   
     //в этот момент времени dev закрыто
    this.startTimer("T1", 100, "finish_active"); 
    },
    
    finish_active(){
    // если до этого момента времени входа в start() не было, и dev открыто(т.е. изменилось)
    // то 
    this.isChanged(dev) == true  или false???
    
    // А если оно несколько раз менялось и осталось к этому моменту закрытым(т.е. не изменилось
    this.isChanged(dev) == true  или false???
    }
    // Или еще если говоря по русски, то isCanged()== true если значение изменилось, или менялось?


  • Пользователь @regabriel написал в Вопросы по работе системы:

    Пользователь @intrapro написал в Вопросы по работе системы:

    this.isChanged(shutter_small)

    Хорошо, а то я уже совсем голову сломал)) Спасибо.
    Только поясните еще один момент (isChanged когда оно равно true)

    // Или еще если говоря по русски, то isChanged()== true если значение изменилось, или менялось?

    isChanged()== true , если значение изменилось

    Но изменилось ДО запуска сценария.
    То есть с помощью isChanged() можно понять, какой триггер вызвал сценарий.
    Если устройство не триггер, isChanged() не поможет

    Если нужно следить за переключением ИЗНУТРИ сценария, применяется слушатель:

    count:0,  
    
    start() {
         //в этот момент времени dev закрыто
          this.count = 0;
          this.startTimer("T1", 100, "finish_active"); 
    
           this.addListener(dev, "onDev");  // Будет слушать изменения dev, пока сценарий не завершится. 
         // Если есть активный таймер или слушатель - сценарий активен. И второй раз не запустится 
        },
    
       onDev() { // Эта функция будет срабатывать каждый раз при изменении dev
         this.count++;   // просто считаем количество переключений 
         // или можно проверять состояние, или еще что-то
       },
    
       finish_active(){
          // если до этого момента времени входа в start() не было.... - ТАК НЕ БУДЕТ!!
          // Если сценарий запущен - он второй раз не запускается!!
     
         // Здесь можем проверить количество переключений ...
    
         this.exit(); // Поскольку есть не только таймер, но и слушатель - нужно явно обозначить выход
        // Следующий раз сценарий сработает по триггеру и войдет через start 
       }
    
    

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