Драйвер Telegram

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Автор
    Сообщения
  • #20485
    OlegSol
    Участник

    Вопрос знатокам:
    SCADA отправляет сообщения в созданный БОТ, а не в созданный чат, где бот является Админом. Где собака порылась?

    Журнал:
    2021-08-03 08:42:17 Сеанс связи с КП 11 «Telegram Sender», тип: KpTelegram
    Отправка запроса:
    https://api.telegram.org/bot1921491488:ХХХХХХХХХХХХ/getUpdates?offset=641549287&timeout=2&allowed_updates=message
    Полученный ответ:
    {«ok»:true,»result»:[]}

    #20486
    manjey73
    Участник

    Предположение. Бота надо включить в группу рассылки, и в настройках уже указывать ID группы, а не бота.

    #20492
    Mikhail
    Модератор

    Да, в настройках драйвера (свойства КП) указывается ID чата. Обычно группа имеет отрицательный ID, а индивидуальные контакты положительный — проверьте.

    #20604
    JKQ
    Участник

    Подниму немного тему. Бот отвечает на /info но тестовое сообщение из scada не отправляет
    КП 167 «kscada_bot»
    ————————
    DLL : KpTelegram
    Состояние : норма
    Сеанс связи : 19.08.2021 14:44:11
    Команда ТУ : 19.08.2021 13:59:39

    Сеансы связи (всего / ошибок) : 48048 / 2
    Команды ТУ (всего / ошибок) : 9 / 9
    Запросы (всего / ошибок) : 48060 / 2

    Текущие данные тегов КП
    +———+————————+———-+——-+
    | Сигнал | Наименование | Значение | Канал |
    +———+————————+———-+——-+
    | 1 | Отправлено уведомлений | 0 | |
    +———+————————+———-+——-+
    | 2 | Режим подписки | Откл | |
    +———+————————+———-+——-+

    Архивные данные отсутствуют

    #20616
    Mikhail
    Модератор

    Команды ТУ (всего / ошибок) : 9 / 9

    Нужно посмотреть в журнале линии связи подробности ошибки.

    #20772
    JKQ
    Участник

    Всё получилось. Настроил уведомление На изменение данных канала, но сообщений слишком много так как показания при регулировании меняются.

    Я так понимаю нужно создать новый канал(Дорасчётный ТИ) и использовать формулу. Подскажите пожалуйста какую формулу использовать чтобы данные отправлялись при изменении допустим на 5%

    SetVal(2,(Val(1)??????))

    #20773
    Mikhail
    Модератор

    Попробуйте для дорасчётного канала:
    ValIfDif(101, 0.05); Stat(101)

    В таблице Формулы:

    public double ValIfDif(int cnlNum, double dif)
    {
      if (Stat() != Stat(cnlNum) || Math.Abs(Val(cnlNum) - Val()) / Val() > dif)
      {
        return Val(cnlNum);
      }
      else
      {
        return Val();
      }
    }

    P.S. У себя не проверял.

    • Этот ответ был изменен 2 года, 7 месяцев назад от Mikhail.
    #20788
    JKQ
    Участник

    отлично работает! Единственное что реагирует на пропуски данных. когда данных нет (потеря связи) приходят —

    #20790
    Mikhail
    Модератор

    Можно с помощью формулы игнорировать пропуски данных в канале, но нужно ли это?

    if (Stat(cnlNum) > 0 && Stat() != Stat(cnlNum)… дальше то же самое

    #20814
    JKQ
    Участник

    не работает. я думаю что отсутствие данных это не 0 в телеграмме приходят 3 прочерка

    #20815
    manjey73
    Участник

    Я тоже получал три прочерка и вроде Михаил заявлял что модуль автоуправления должен игнорировать их, но видимо нет.

    Думаю тут нужна настройка для модуля, игнорировать вообще, или все таки использовать, например для контроля потери связи…

    #20830
    Mikhail
    Модератор

    Stat(cnlNum) > 0 — это проверка статуса.
    Чтобы узнать, какой статус на самом деле, откройте «сырые» данные в Администраторе, когда приходят прочерки.

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Вы должны авторизироваться для ответа в этой теме.