В связи с выходом крупного обновления 5.9.х, приглашаем вас принять участие в вебинаре 09.06.2022 в 15:00. Участвовать

Плагин MegaD



  • Пользователь @intrapro написал в Плагин MegaD:

    @sergeyygr сегодня не получится 😞
    Попробуйте удалить этот сценарий полностью и перезагрузить сервер. Отладчик для других сценариев должен работать

    Да, действительно, отладчик стал работать, но не так как Вы писали: "Запустить отладчик для сценария. Окно пока будет пустое

    Далее нужно открыть вторую вкладку с разделом Рабочие сценарии и запустить этот сценарий (кнопка для вызова - полосатый квадратик. Кстати, здесь же есть пункт Остановить сценарий)

    Теперь в отладчике (в первой вкладке) будет трассировка прохождения сценария (либо в таблице в столбце Ошибка будет сообщение об ошибке, если сценарий не смог запуститься)".
    Запускаю отладчик, перехожу на вкладку Рабочие сценарии, запускаю сценарий, возвращаюсь, а там отладчик остановлен.



  • Пользователь @sergeyygr написал в Плагин MegaD:

    Запускаю отладчик, перехожу на вкладку Рабочие сценарии, запускаю сценарий, возвращаюсь, а там отладчик остановлен.

    Нужно открыть две разные вкладки браузера



  • @sergeyygr Добрый день.
    Сегодня сделали эмуляцию ответов от megad на запросы
    '/sec/?uart_tx=010400000001&mode=rs485' (так как у нас такого железа нет)

    Скопировали Ваш сценарий, вот что видим в отладчике:

    21.08 11:29:14.662 exec function nextParam
    21.08 11:29:14.663 plugincCommand { unit: 'megad1',
      command: { url: '/sec/?uart_tx=010400000001&mode=rs485' } }
    21.08 11:29:14.663 start timer T1 for 0.1 sek
    21.08 11:29:14.664 start timer T2 for 1 sek
    21.08 11:29:14.764 Done timer T1
    21.08 11:29:14.765 exec function getRx
    21.08 11:29:14.766 plugincCommand { unit: 'megad1',
      command: { url: '/sec/uart_rx=1&mode=rs485', onResponse: 'raw' } }
    21.08 11:29:15.139 exec function getResponse
    21.08 11:29:15.139 assign PZEM_Volt.value=223.5
    21.08 11:29:15.672 Done timer T2
    21.08 11:29:15.673 exec function nextParam
    21.08 11:29:15.673 plugincCommand { unit: 'megad1',
      command: { url: '/sec/?uart_tx=010400030002&mode=rs485' } }
    21.08 11:29:15.674 start timer T1 for 0.1 sek
    21.08 11:29:15.674 start timer T2 for 1 sek
    21.08 11:29:15.774 Done timer T1
    21.08 11:29:15.775 exec function getRx
    21.08 11:29:15.776 plugincCommand { unit: 'megad1',
      command: { url: '/sec/uart_rx=1&mode=rs485', onResponse: 'raw' } }
    21.08 11:29:15.943 exec function getResponse
    21.08 11:29:15.943 assign PZEM_Watt.value=2.237
    

    То есть сценарий работает постоянно и циклически опрашивает.
    Возможно, проблема в том, что для устройств остались активны сниппеты, и значение сбрасывается? Также устройства не должны быть привязаны к каналу.

    Если останется необходимость, можно подключиться удаленно.



  • Пользователь @intrapro написал в Плагин MegaD:

    @sergeyygr Добрый день.
    Сегодня сделали эмуляцию ответов от megad на запросы

    Возможно, проблема в том, что для устройств остались активны сниппеты, и значение сбрасывается? Также устройства не должны быть привязаны к каналу.

    Если останется необходимость, можно подключиться удаленно.

    Сниппеты удалил. Кстати, они работали даже если режим «При получении значений использовать сниппет» небыл активирован. Привязка к конкретному каналу MegaD нет. Присутствует лишь стандартная строка запроса, но период опроса стоит «0». В устройствах «Метод получения значения» стоит «Вычисляется сценарием». Может строку запроса удалить и оставить поле пустым?



  • Пользователь @sergeyygr написал в Плагин MegaD:

    Привязка к конкретному каналу MegaD нет. Присутствует лишь стандартная строка запроса, но период опроса стоит «0». Может строку запроса удалить и оставить поле пустым?

    Имеется в виду для плагина в целом? Опрос состояния всех устройств? Нет, это не должно никак влиять. У Вас другие входы-выходы работают с этим контроллером? Можно посмотреть отладчик плагина - там должны быть запросы от сценария.
    Возможно, для тестирования время нужно увеличить - вместо 1 сек 5 сек

    В устройствах «Метод получения значения» стоит «Вычисляется сценарием».

    Это не важно, можно оставить Стандарт



  • Пользователь @intrapro написал в Плагин MegaD:

    Пользователь @sergeyygr написал в Плагин MegaD:

    У Вас другие входы-выходы работают с этим контроллером? Можно посмотреть отладчик плагина - там должны быть запросы от сценария.
    Да, работают, вот пример:
    Снимок.PNG



  • Пользователь @intrapro написал в Плагин MegaD:

    Now is NOT active - означает, что в данный момент сценарий в спячке, т е ожидает сработки триггера.

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

    20.08 19:12:29.028 Started
    20.08 19:12:29.029 plugincCommand { unit: 'megad1',
      command: { url: '/sec/?uart_tx=010400000001&mode=rs485' } }
    20.08 19:12:29.030 Error: { message: 'Plugin megad1 is not running!' }
    20.08 19:12:29.030 start timer T1 for 0.1 sek
    20.08 19:12:29.031 start timer T2 for 2 sek
    20.08 19:12:29.176 Done timer T1
    20.08 19:12:29.176 exec function getRx
    20.08 19:12:29.177 plugincCommand { unit: 'megad1',
      command: { url: '/sec/uart_rx=1&mode=rs485', onResponse: 'raw' } }
    20.08 19:12:29.178 Error: { message: 'Plugin megad1 is not running!' }
    20.08 19:12:29.178 exec function getResponse
    20.08 19:12:29.179 Stopped
    

    Все заработало. Проверил синтаксис, не правильно формировался запрос.
    // Передать запрос на megad1, ответ придет в сценарий (onResponse:'raw')
    this.pluginCommand({unit:'megad1', command:{url:'/sec/uart_rx=1&mode=rs485', onResponse:'raw'}}, 'getResponse');
    },
    Надо - // Передать запрос на megad1, ответ придет в сценарий (onResponse:'raw')
    this.pluginCommand({unit:'megad1', command:{url:'/sec/?uart_rx=1&mode=rs485', onResponse:'raw'}}, 'getResponse');
    },



  • @sergeyygr, знака вопроса не хватало! Бывает, глаз замылился. А наш эмулятор проглотил 😞 Здорово, что получилось!
    В сценарии есть еще глючок - нужно считать только до 6

    nextParam() {
    this.step = this.step < 6 ? this.step+1 : 1;  // было this.step < 7 
    this.getTx();
    }
    

    А интервал 1 сек нормально отрабатывает?



  • Пользователь @intrapro написал в Плагин MegaD:

    @sergeyygr, знака вопроса не хватало! Бывает, глаз замылился. А наш эмулятор проглотил 😞 Здорово, что получилось!

    А интервал 1 сек нормально отрабатывает?

    Да, все хорошо.



  • Пользователь @sergeyygr написал в Плагин MegaD:

    Пользователь @intrapro написал в Плагин MegaD:

    @sergeyygr, знака вопроса не хватало! Бывает, глаз замылился. А наш эмулятор проглотил 😞 Здорово, что получилось!

    А интервал 1 сек нормально отрабатывает?

    Да, все хорошо.

    Спасибо большое!



  • Пользователь @sergeyygr написал в Плагин MegaD:

    Пользователь @sergeyygr написал в Плагин MegaD:

    Пользователь @intrapro написал в Плагин MegaD:

    @sergeyygr, знака вопроса не хватало! Бывает, глаз замылился. А наш эмулятор проглотил 😞 Здорово, что получилось!

    А интервал 1 сек нормально отрабатывает?

    Да, все хорошо.

    Спасибо большое!

    А можно в моем случае как-то корректировать значение кВт/час?



  • Пользователь @sergeyygr написал в Плагин MegaD:

    Спасибо большое!

    Да не за что. Извините за опечатку

    А можно в моем случае как-то корректировать значение кВт/час?

    Что имеете в виду?



  • Пользователь @intrapro написал в Плагин MegaD:

    Пользователь @sergeyygr написал в Плагин MegaD:

    Спасибо большое!

    Да не за что. Извините за опечатку

    А можно в моем случае как-то корректировать значение кВт/час?

    Что имеете в виду?

    Сейчас показания 3кВт/час, а надо установить 31кВт/час. Что бы показания совпадали со счетчиком на вводе.



  • Пользователь @sergeyygr написал в Плагин MegaD:

    Сейчас показания 3кВт/час, а надо установить 31кВт/час. Что бы показания совпадали со счетчиком на вводе.

    Можно просто добавить смещение в сценарии

    case 5:
    this.assign(kWh,"value", 28 + val/10 );
    return;
    

    Более универсально - добавить свойство устройству и редактировать его через интерфейс (правое меню устройства)

    const kWh = Device("PZEM_kWh", "Мощность накопленная ", [
      {"name":"offset", "note":"Базовое значение мощности", "type":"number", "val":28} ]);
    
    ...
    case 5:
    this.assign(kWh,"value", kWh.getParam("offset") + val/10 );
    
    


  • Пользователь @intrapro написал в Плагин MegaD:

    Пользователь @sergeyygr написал в Плагин MegaD:

    Сейчас показания 3кВт/час, а надо установить 31кВт/час. Что бы показания совпадали со счетчиком на вводе.

    Можно просто добавить смещение в сценарии

    case 5:
    this.assign(kWh,"value", 28 + val/10 );
    return;
    

    Более универсально - добавить свойство устройству и редактировать его через интерфейс (правое меню устройства)

    const kWh = Device("PZEM_kWh", "Мощность накопленная ", [
      {"name":"offset", "note":"Базовое значение мощности", "type":"number", "val":28} ]);
    
    ...
    case 5:
    this.assign(kWh,"value", kWh.getParam("offset") + val/10 );
    
    

    Второй вариант классный! Работает!



  • Пользователь @sergeyygr написал в Плагин MegaD:

    Пользователь @intrapro написал в Плагин MegaD:

    Пользователь @sergeyygr написал в Плагин MegaD:

    Сейчас показания 3кВт/час, а надо установить 31кВт/час. Что бы показания совпадали со счетчиком на вводе.

    Можно просто добавить смещение в сценарии

    case 5:
    this.assign(kWh,"value", 28 + val/10 );
    return;
    

    Более универсально - добавить свойство устройству и редактировать его через интерфейс (правое меню устройства)

    const kWh = Device("PZEM_kWh", "Мощность накопленная ", [
      {"name":"offset", "note":"Базовое значение мощности", "type":"number", "val":28} ]);
    
    ...
    case 5:
    this.assign(kWh,"value", kWh.getParam("offset") + val/10 );
    
    

    Второй вариант классный! Работает!

    Выглядит так:
    Снимок2.PNG



  • Подскажите как перевести показания АЦП порта меги в реальные показания, в плагине есть графа формула расчета но что то мне подсказывает что это не то.



  • This post is deleted!


  • Подскажите как применить формулу для расчета показаний АЦП меги вот формула (840-х/840-410)*100=у где х-показания АЦП а y-в данном случае влажность в % ?



  • Забыл 840 это 0% влажности 420 это 100% из показаний ацп.


Log in to reply