Плагины



  • @intrapro отлично, попробуем



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

    Добрый день.

    1. Написал на стороне контроллера wago аварийную программу. Если включен определённый выключатель, то переменные от плагина ih не принимаются, а состояния устройств изменяются по логике программы на стороне ПЛК. Но это ручной режим. Вопрос, можно ли на стороне wago отловить не поступление данных от плагина и сервера IH ? Не пингуется, отвалился, и тп.

    Добрый день, потеря связи отслеживается библиотекой на контроллере и выполняется переподключение. Можно попробовать уменьшить таймаут TCP соединения на стороне сервера, так как по умолчанию с учетом проб keep-alive этот таймаут стандартно порядка 10 минут

    sudo sysctl -w net.ipv4.tcp_keepalive_intvl=15  // интервал между пробами=15 сек, по дефолту 75
    sudo sysctl -w net.ipv4.tcp_keepalive_probes=3  // количество проб=3, по дефолту 9
    

    Эти настройки влияют на все TCP соединения на сервере и сохранятся до перезагрузки. Если это поможет, можно будет прописать в конфиге sysctl

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

    Modbus. Есть необходимость отделить часть устройств и завести их на отдельный преобразователь интерфейсов. Есть такая возможность ?

    Да, это абсолютно нормальный вариант использования. Ответ выше

    1. После перезагрузки сервера нужно руками перезапускать MySQL. Затем делать перезагрузку проекта. Сама база не стартует.
      Подскажете скрипт ? В сценарий запихать и запускать при перезагрузке.

    Нет, сценарий тут не нужен. База должна стартовать сама, это обеспечивается скриптами, которые ставятся при установке MySQL
    Какая у Вас ОС?
    Для начала проверьте в файле /etc/systemd/system/intrahouse-c.service последний блок, он должен быть таким (IH стартует после mysql)

    [Install]
    WantedBy=multi-user.target mysql.service
    


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

    Нет, сценарий тут не нужен. База должна стартовать сама, это обеспечивается скриптами, которые ставятся при установке MySQL
    Какая у Вас ОС?
    Для начала проверьте в файле /etc/systemd/system/intrahouse-c.service последний блок, он должен быть таким (IH стартует после mysql)

    OC Ubuntu 18.04
    В файле все гуд ( WantedBy=multi-user.target mysql.service )
    Еще раз проверил, после отключения питания IH запускается а база нет.
    Делаешь sudo systemctl restart mysql, затем рестарт IH. База доступна.
    Изначально база криво могла встать ?



  • @fanagor, возможно, при запуске сервера что-то мешает MySQL запуститься.

    Сразу после перезагрузки, не запуская вручную, посмотрите статус службы:

     sudo systemctl status mysql -l
    

    Еще можно глянуть лог ошибок: /var/log/mysql/error.log



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

    @fanagor, добрый день!

    Можно ли из сценария делать перезапуск плагина, или обновлять каналы ?

    Сейчас можно отправлять плагину из сценария любые команды, кроме перезапуска.
    Команды плагина прописаны в манифесте плагина в разделе "commands".
    Например:

    // Обновить значения переменных для плагина Wago IP
    this.plugincommand({ unit: 'wip1', command: 'getdata' });
    
    // Получить каналы с контроллера:
    this.plugincommand({ unit: 'wip1', command: 'channels' });
    

    По поводу перезапуска плагина, пока такой возможности нет.
    Рассматривается два варианта:

    1. Команды stop-start-restart из сценария
    2. Введение тайм-аута плагина, за которым следит сервер и перезагружает плагин, если от него не поступает сообщений в течение заданного тайм-аута.

    в сценарий добавил команду this.plugincommand({ unit: 'wip1', command: 'getdata' });
    лог плагина WAGO
    ошибка IH.png
    но ничего не происходит, переменные не обновляются. Из самого плагина кнопка обновить переменные стабильно работает. Что не так ? Вернее где ?



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

    в сценарий добавил команду this.plugincommand({ unit: 'wip1', command: 'getdata' });
    лог плагина WAGO
    ошибка IH.png
    но ничего не происходит, переменные не обновляются. Из самого плагина кнопка обновить переменные стабильно работает. Что не так ? Вернее где ?

    Да, извините за неточность. В команде нужен еще любой канал контроллера. Так как плагин поддерживает подключение нескольких контроллеров, ему нужен любой канал, из него плагин извлекает идентификатор конкретного контроллера (часть после подчеркивания). Интерактивно вам тоже нужно выбрать строку в каналах, иначе команды нет в меню.

    // Обновить значения переменных для плагина Wago IP
    this.plugincommand({ unit: 'wip1', command: 'getdata', id:'STATUS_21C102'});
    


  • @intrapro, спасибо, теперь все работает.



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

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

    когда зависает вот что пишет отладчик плагина wago

    Завис wago.png

    Да, в одной сети, раз в сутки-двое виснет. Нет четкого времени.
    Лечится командой обновить значения с каналов или получить команды. Уже добавил в расписание сценарий. который раз в час обновляет.
    Но это костыль. Проблема то есть.



  • можно создать плагин для устройств бренда Miele? https://www.miele.com/developer/swagger-ui/index.html
    И конешно lg телевизоры https://youtu.be/f0i2R1cMWBg



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

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

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

    когда зависает вот что пишет отладчик плагина wago

    Завис wago.png

    Да, в одной сети, раз в сутки-двое виснет. Нет четкого времени.
    Лечится командой обновить значения с каналов или получить команды. Уже добавил в расписание сценарий. который раз в час обновляет.
    Но это костыль. Проблема то есть.

    Нет ответа ?


Log in to reply