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



  • @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 
       }
    
    


  • Как можно установить значение датчика из сценария ?
    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
    Чем можно помочь, а то зависают графики и учет после аварийной перезагрузки ?


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