Релиз IntraHouse V5



  • Пользователь @Lost написал в Релиз IntraHouse V5:

    Тестовые сообщения уходят. На команду из сценария типа this.info('telegram', 'admin', 'Текст сообщения') в отладчике появляются следующие сообщения:
    04.11 22:43:37.613 Send info telegram:{"txt":"Текст сообщения","dest":"admin"}
    04.11 22:43:37.616 ERROR Send info! Не найдены адреса информирования для получателя admin
    Я что то не так делаю или где-то косяк?

    Сообщение системой отправляется, если для адреса стоит галка "Отправлять сообщение". (Пользователь - Информирование)
    Это позволяет использовать несколько адресов, также можно заблокировать отправку по конкретному адресу.

    Пользователь @Lost написал в Релиз IntraHouse V5:

    Еще на команду из сценария this.pluginCommand({unit:'megad1', command:'/%pwd%/?cmd=all'});
    выдает ошибку:
    04.11 22:57:06.910 Blocked with run-time error: TypeError: this.pluginCommand is not a function

    Пока в сценариях не работают функции pluginCommand, snap, execOs
    Будут добавлены в ближайших релизах

    Пользователь @Lost написал в Релиз IntraHouse V5:

    Получается в 5 версии систему команд и формат сценариев поменяли? Когда будет актуальное описание?

    Некоторые отличия есть. В основном в сторону упрощения синтаксиса
    Есть описание отличий синтаксиса сценариев от версии Cherry: https://docs.intrahouse.ru/ru/pg043

    Пользователь @Lost написал в Релиз IntraHouse V5:

    Так же в расширениях плагина Megad не удается выбрать сценарий для запуска в ответ на входящее сообщение от контроллера

    Это проверим.



  • @IntraVM С отправкой сообщений разобрался. Сразу не обратил внимание на то, что сообщения отправляются по ID пользователя. Создал я нового пользователя. Его ID получился u0002. А у встроенной учетной записи Admin и ID тоже admin. Поэтому и возникает вопрос можно ли как то отредактировать ID нового пользователя в удобоваримый вид?



  • Еще обратил внимание, что иногда после изменения настроек каналов в плагине Megad корректная работа устройств начинается только после перезагрузки сервера. Перезапуск самого плагина не помогает.



  • @Lost
    Добрый день, спасибо за информацию, проверим



  • День добрый!
    Когда ожидать полноwенную работоспособность сценариев?



  • @Lost Прошу пояснить. Сейчас работоспособность сценариев не полноценна?



  • Да. Например 10.12 20:11:33.239 scen002 Blocked TypeError: this.pluginCommand is not a function

    Или 10.12 20:12:26.203 scen003 Blocked TypeError: this.agent.getSysTime is not a function. Это из вашего сценария датчика темноты. Дальше пока не проверял.



  • Покажите код сценария и где вы его взяли. Без кода невозможно понять, в чем проблема,



  • /**

    • @desc 0 - светло, 1 - темно
    • Запускается на старте сервера
    • @version 5
      */
      const darkness = Device("DI_009");

    const script = {
    // boot() {
    // return true;
    // },
    start() {
    let now = Date.now();
    let sunrise = this.getSysTime('sunrise','today');
    let sunset = this.getSysTime('sunset','today');

      let val = (now < sunrise || now > sunset) ? 1 : 0;
      this.assign(darkness, 'dval', val);
      
      let nextrise = (now < sunrise) ? sunrise : this.getSysTime('sunrise','tomorrow');
      this.startTimer('sunrise', nextrise, 'onSunrise');
      
      let nextset = (now < sunset) ? sunset : this.getSysTime('sunset','tomorrow');
      this.startTimer('sunset', nextset, 'onSunset');  
    },
    

    //Восход
    onSunrise() {
    this.assign(darkness, 'dval', 0);
    this.startTimer('sunrise', this.getSysTime('sunrise','tomorrow'), 'onSunrise');
    },
    //Закат
    onSunset() {
    this.assign(darkness, 'dval', 1);
    this.startTimer('sunset', this.getSysTime('sunset','tomorrow'), 'onSunset');
    }
    };



  • /**

    • @desc Обработка события перезагрузки MegaD
    • @version 5
      */

    const script = {
    comm:'/%pwd%/?cmd=all', //Команда для опроса всех каналов
    param: 'megad1',
    //Param - имя MegaD. Передается из плагина как параметр сценария
    start() {
    this.pluginCommand({unit:this.param, command:this.comm});
    // this.info('telegram', 'u0002', 'Рестарт контроллера ' + this.param);

        this.info('pushnotification', 'u0002', 'Рестарт контроллера ' + this.param);
    } 
    

    };



  • В четвертой версии все работает. Тут нет.



  • Если закоментарить строку this.pluginCommand({unit:this.param, command:this.comm});
    то сценарий отрабатывает.



  • Это все и отсутствие нормального описания системы команд пока сдерживает полноценный переход на V5



  • Всех с новым годом!
    Хотел прояснить один момент. В 4 версии вот такая строка

    this.startTimer('sunrise', this.getSysTime('sunrise','tomorrow'), 'onSunrise');

    приводила к срабатыванию функции onSunrise() на рассвете завтрашнего дня. Эта же строка в 5 версии приводит к следующему результату:

    02.01 08:31:56.330 getSysTime sunrise tomorrow = 03.01 08:31:43.156 (1641187903156)
    02.01 08:31:56.330 Start timer sunrise for 1641187903156 sec

    Получается сработка произойдет примерно через 52000 лет? Почему так получается? Косяк?



  • @Lost, да, Вы правы. Такой вариант запуска startTimer (второй аргумент не интервал, а временная точка) пока не работает. Добавим в ближайшем релизе.
    Всем удачи и больше светлых полос в Новом тигровом году!



  • Добрый вечер!
    А каким образом можно восстановить проект из сохраненной копии (например project15.ihpack)? Через импорт не получается. Появляется ошибка после достижения 99% прогресса:
    036df732-db2b-4aeb-b54e-6b83a47ccff2-image.png

    Хотя по факту таких папок точно нет на этом сервере. Или я может что-то не так делаю?



  • Добрый день!
    Подскажите, а как максимально безболезненно мигрировать с v4 на v5 и что точно не переедет и придется переделывать?
    Инструкцию не нашел ни на форуме ни на сайте.
    Заранее спасибо!



  • @homa Добрый день!
    Переедут устройства.
    Экраны нет, сценарии нужно будет изменить.

    Если нет другого компьютера, V5 можно установить на тот же компьютер, где V4. Встанет на другой порт.



  • Механизм переноса: выгрузить проект в V4 и загрузить в V5



  • Пользователь @IntraVM написал в Релиз IntraHouse V5:

    Механизм переноса: выгрузить проект в V4 и загрузить в V5

    Ну а как все таки загрузить проект в V5?


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