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



  • Пользователь @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 
       }
    
    


  • Как можно установить значение датчика из сценария ?
    x.setValue() не работает (может потому что у датчика нет отключения Auto).
    Есть же в методах определения значения (при создании устройства) "вычисляется сценарием" ....

    З.ы Извините если было уже - не нашел..



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

    Как можно установить значение датчика из сценария ?
    x.setValue() не работает (может потому что у датчика нет отключения Auto).
    Есть же в методах определения значения (при создании устройства) "вычисляется сценарием" ....

    З.ы Извините если было уже - не нашел..

    Добрый день, можно установить через assign

    this.assign(temp1, "value", 42);
    

    Через assign можно присвоить значение любому свойству, даже если это свойство readonly или есть привязка к каналу.

    Метод определения значения менять не нужно



  • Столкнулся с ошибкой в системе.
    Была у меня мнемосхема 49, так же был возможность её выбора в некоторых навигаторах мнемосхем.
    Решил её удалить. Теперь ни один навигатор не работает, требует её. Ни удаление навигаторов, ни перезагрузка системы не помогает. В списке выбора мнемосхем её нигде нет.
    alt text

    Что делать?



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

    Столкнулся с ошибкой в системе.
    Была у меня мнемосхема 49, так же был возможность её выбора в некоторых навигаторах мнемосхем.
    Решил её удалить. Теперь ни один навигатор не работает, требует её. Ни удаление навигаторов, ни перезагрузка системы не помогает. В списке выбора мнемосхем её нигде нет.
    Что делать?

    На каком этапе возникает ошибка? Попробуйте запустить интерфейс в новой вкладке анонимно или от другого пользователя.



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

    Столкнулся с ошибкой в системе.
    Была у меня мнемосхема 49, так же был возможность её выбора в некоторых навигаторах мнемосхем.
    Решил её удалить. Теперь ни один навигатор не работает, требует её. Ни удаление навигаторов, ни перезагрузка системы не помогает. В списке выбора мнемосхем её нигде нет.
    alt text

    Что делать?

    у дырки для мнемосхемы на экране есть настройка "мнемосхема по умолчанию".



  • Коллеги, у меня с недавних пор LMS в виджете html iH запускается вот таким образом:
    LMS_Not_Use_Cookie.png

    Это как-то может быть связано с обновлением Chrome? В отдельном окне браузера все запускается отлично без сообщений о файлах cookie.



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

    Попробуйте запустить интерфейс в новой вкладке анонимно или от другого пользователя.

    Похоже в виджете мнемосхема по умолчанию она стояла, из-за этого и ошибки. Я не заметил, наверное надо было изменить состояние по умолчанию и всё.

    Но я добавил 49.json в конфигах на сервере, а также скорректировал mnemoshemes.json, тем самым вернул её. После чего уже заметил, что мнемосхема по умолчанию отображает 49ую. И исправил это.))

    Спасибо за советы. Было бы здорово если бы сообщения об ошибках были бы более информативными.



  • @Alex_Jet пробовал на других браузерах?
    У меня например в Firefox выгрузка проекта в файл не работает, так, что от браузера могут быть различия...



  • @regabriel, если в отдельной вкладке запускаю то все хорошо работает! Поэтому скорее всего здесь что-то не хватает у html-виджета вероятно в связи с обновками Chrome. Другие браузеры не использую, Chrome всем устраивает.



  • Не могу понять это ошибка системы?? Почему некоторые скрипты не запускаются по времени? Где нибудь ошибка?

    alt text

    Возможно магия стоит в "запуске/остановке/заблакировке/разблокировке" сценария
    Видимо если ты запускаешь сценарий в ручную, то последующий действия по расписанию идти не будут? Пока его не разблокируешь? Они могут самозаблокироваться(ночью я точно скрипты не трогал)?



  • @regabriel

    То что смог откопать, скорее всего из-за этого и зависло:

    const count = Device("Meter","Счетчик");
    ...
    после этого момента скрипт не выполняется:
    this.assign(count,"aval", "тоже значение что и было раньше");
    

    Где-то ошибка в коде разрабов т.к. не очень правильно, чтобы скрипт просто зависал на таком моменте.



  • При перезагрузке системы возникает проблема : нет подключения к базам mysql. Помогает только перезапуск программы. Такое ощущение что прога запускается раньше mysql. В уните:
    [Unit]
    Description=intrahouse-c
    After=network.target mysql.service
    Requires=mysql.service

    [Service]
    WorkingDirectory=/opt/intrahouse-c
    ExecStart=/opt/intrahouse-c/node/bin/node /opt/intrahouse-c/backend/app.js prod
    Restart=always
    RestartSec=5
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=intrahouse-c

    [Install]
    WantedBy=multi-user.target mysql.service
    Чем можно помочь, а то зависают графики и учет после аварийной перезагрузки ?



  • @Anatol, вероятно, mysql стартует, но не сразу начинает обрабатывать подключения. База на этом же сервере или на другом?

    Со стороны IH проблему можно решить повторным подключением при ошибке.
    Эта задача на данный момент реализована и проходит тестирование:

    • при ошибке подключения к БД пытаться подключиться до 5 раз с интервалом 5 сек.

    Обновление будет в ближайшие дни



  • @Anatol Опубликовано обновление Cherry. Версия 4.7.6
    Попробуйте.



  • @intrahouse Ок, работает. Спасибо



  • Опять сбились все настройки в ih. В чем может быть проблема?



  • Настройки сбиваются при отключении света больше чем на 30 минут.


Log in to reply