Релиз IntraHouse V5



  • @gis
    Кнопка Alt + колесико мыши - масштабирование
    Пробел + левая кнопка мыши - перемещение контейнеры, экрана



  • Уважаемые разработчики!!!
    Поделитесь, пожалуйста, планами разработки плагинов.
    Когда сделаете xiaomi и broadlink?



  • Добрый вечер!
    Установил IH v5.5.114. Настроил информирование через telegram в соответствии с документацией. Тестовые сообщения уходят. На команду из сценария типа 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
    Я что то не так делаю или где-то косяк?
    Еще на команду из сценария 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
    Получается в 5 версии систему команд и формат сценариев поменяли? Когда будет актуальное описание?
    Так же в расширениях плагина Megad не удается выбрать сценарий для запуска в ответ на входящее сообщение от контроллера



  • @Erik В настоящее время занимаемся именно плагинами. Появились плагины http, telegram, email. На следующей неделе выйдет плагин zigbee. Потом xiaomi.
    Что касается плагина broadlink, пока ничего сказать не могу. Этот плагин писали не мы. А главное, у нас нет оборудования для тестирования.



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

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


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