Как подключить Fleet Management к AI-агенту ASI Biont: пошаговое руководство по автоматизации автопарка

Введение

Управление автопарком — одна из самых затратных и сложных задач в логистике. Контроль топлива, мониторинг маршрутов, планирование техобслуживания — всё это требует постоянного внимания и ручного труда. Но что, если передать эти задачи AI-агенту? ASI Biont — это AI-агент, который подключается к вашему оборудованию через диалог в чате и берёт на себя интеграцию. В этой статье мы разберём, как подключить систему fleet management к ASI Biont, используя реальные протоколы: GPS-трекеры через COM-порт, данные с CAN-шины автомобиля, а также HTTP API для управления маршрутами и уведомлениями. Никаких панелей управления — всё делается через чат.

Что такое Fleet Management и зачем его подключать к AI-агенту?

Fleet management — это система управления автопарком, которая включает в себя GPS-трекеры, датчики уровня топлива, CAN-шину для считывания параметров двигателя, а также серверную часть для хранения и анализа данных. Обычно такие системы требуют настройки вручную: программисты пишут скрипты для сбора данных, настраивают триггеры и уведомления. ASI Biont автоматизирует этот процесс: вы описываете в чате, что нужно сделать, и AI сам пишет код интеграции, подключаясь к вашему оборудованию через один из поддерживаемых протоколов.

Как ASI Biont подключается к Fleet Management?

ASI Biont поддерживает несколько способов интеграции с устройствами автопарка:
- COM-порт (RS-232/RS-485) — для подключения GPS-трекеров через Hardware Bridge (bridge.py на вашем ПК).
- CAN bus — для чтения данных с CAN-шины автомобиля (скорость, расход топлива, обороты двигателя).
- HTTP API — для интеграции с облачными платформами fleet management (например, Wialon, Omnicomm).
- MQTT — для подключения IoT-трекеров, которые публикуют данные в MQTT-брокер.
- execute_python — универсальный способ: AI пишет Python-скрипт с использованием библиотек pyserial, python-can, requests, paho-mqtt и выполняет его в облаке.

Все команды отправляются через industrial_command() — это встроенный инструмент ASI Biont для работы с промышленным оборудованием. Пользователь просто описывает задачу в чате, и AI выбирает подходящий протокол.

Сценарий 1: Подключение GPS-трекера через COM-порт (Hardware Bridge)

Допустим, у вас есть GPS-трекер, который подключается к компьютеру через COM-порт и передаёт NMEA-строки (например, $GPGGA, $GPRMC). Вы хотите, чтобы AI-агент каждые 5 минут считывал координаты и отправлял уведомление в Telegram, если автомобиль выехал за пределы заданной геозоны.

Как это работает?

  1. Вы скачиваете bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge).
  2. Запускаете bridge.py на своём ПК с параметрами: --token=YOUR_TOKEN --ports=COM3 --baud 9600 --rate=5.
  3. Bridge подключается к ASI Biont через WebSocket (единственный канал связи) и открывает COM-порт.
  4. Вы пишете в чат: «Подключись к GPS-трекеру на COM3, 9600 бод. Каждые 5 минут читай NMEA-строки, парси координаты. Если автомобиль выезжает за пределы радиуса 10 км от точки (55.751244, 37.618423), отправь уведомление в Telegram».
  5. AI использует industrial_command(protocol='serial', command='serial_write_and_read', data='...') для отправки команды на bridge и получения ответа.

Пример кода, который генерирует AI

AI пишет Python-скрипт для execute_python, который подключается к Telegram Bot API и анализирует геоданные:

import requests
import json
from math import radians, cos, sin, asin, sqrt

# Конфигурация
TELEGRAM_TOKEN = "ваш_токен"
CHAT_ID = "ваш_chat_id"
HOME_LAT, HOME_LON = 55.751244, 37.618423
RADIUS_KM = 10.0

def haversine(lat1, lon1, lat2, lon2):
    R = 6371
    dlat = radians(lat2 - lat1)
    dlon = radians(lon2 - lon1)
    a = sin(dlat/2)**2 + cos(radians(lat1)) * cos(radians(lat2)) * sin(dlon/2)**2
    return 2 * R * asin(sqrt(a))

def parse_nmea(sentence):
    if sentence.startswith('$GPGGA'):
        parts = sentence.split(',')
        if len(parts) >= 6 and parts[2] and parts[4]:
            lat = float(parts[2][:2]) + float(parts[2][2:])/60
            lon = float(parts[4][:3]) + float(parts[4][3:])/60
            if parts[3] == 'S': lat = -lat
            if parts[5] == 'W': lon = -lon
            return lat, lon
    return None

# Допустим, AI получил NMEA-строку через bridge
nmea_data = "$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47"
coords = parse_nmea(nmea_data)
if coords:
    lat, lon = coords
    dist = haversine(HOME_LAT, HOME_LON, lat, lon)
    if dist > RADIUS_KM:
        msg = f"⚠️ Автомобиль вышел за геозону! Координаты: {lat:.4f}, {lon:.4f}, расстояние: {dist:.2f} км"
        requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
                      json={"chat_id": CHAT_ID, "text": msg})

AI выполняет этот скрипт в sandbox-окружении (таймаут 30 секунд) и получает результат. Если координаты выходят за пределы — отправляется уведомление.

Сценарий 2: Чтение данных с CAN-шины автомобиля

CAN-шина — это стандартный интерфейс для считывания параметров автомобиля: скорость, обороты двигателя, уровень топлива, температура охлаждающей жидкости. ASI Biont подключается к CAN-шине через USB-to-CAN адаптер (например, PCAN-USB или CANtact) и использует библиотеку python-can.

Как это работает?

  1. Вы подключаете USB-to-CAN адаптер к ПК.
  2. Устанавливаете драйверы (например, для PCAN-USB — PCANBasic).
  3. В чате пишете: «Подключись к CAN-шине через PCAN-USB на bitrate 500000. Читай фреймы с ID 0x0CF00400 (скорость) и 0x0CF00300 (расход топлива). Логируй данные каждые 10 секунд и сохраняй в CSV-файл».
  4. AI использует industrial_command(protocol='can', command='read_frame', args={'channel': 'PCAN_USBBUS1', 'bitrate': 500000, 'can_id': '0x0CF00400'}).

Пример кода для execute_python

import can
import csv
import datetime

# Настройка CAN-интерфейса
bus = can.interface.Bus(channel='PCAN_USBBUS1', bustype='pcan', bitrate=500000)

# ID фреймов для скорости и расхода топлива
SPEED_ID = 0x0CF00400
FUEL_ID = 0x0CF00300

# Чтение одного фрейма (не бесконечный цикл!)
msg = bus.recv(timeout=1.0)
if msg is not None:
    if msg.arbitration_id == SPEED_ID:
        speed = msg.data[0]  # пример: первый байт — скорость в км/ч
        print(f"Скорость: {speed} км/ч")
    elif msg.arbitration_id == FUEL_ID:
        fuel = (msg.data[0] << 8) | msg.data[1]  # два байта — расход
        print(f"Расход топлива: {fuel} л/100км")
    # Сохранение в CSV
    with open('can_data.csv', 'a', newline='') as f:
        writer = csv.writer(f)
        writer.writerow([datetime.datetime.now(), hex(msg.arbitration_id), msg.data.hex()])

bus.shutdown()

AI может настроить отправку этих данных в Telegram или на сервер fleet management через HTTP API.

Сценарий 3: Управление маршрутами через HTTP API

Многие платформы fleet management (например, Wialon, Omnicomm, Gurtam) предоставляют REST API для управления маршрутами, получения отчётов и отправки команд на трекеры. ASI Biont подключается к такому API через aiohttp или requests.

Как это работает?

  1. Вы даёте AI API-ключ от вашей платформы fleet management.
  2. В чате пишете: «Подключись к Wialon API (https://hst-api.wialon.com). Получи список всех активных автомобилей за последние 24 часа. Если какой-то автомобиль превысил скорость 90 км/ч, отправь уведомление в Telegram».
  3. AI пишет Python-скрипт с requests, который авторизуется, получает данные и анализирует.

Пример кода

import requests
import json

# Авторизация в Wialon
TOKEN = "ваш_токен"
BASE_URL = "https://hst-api.wialon.com"

# Получение сессии
resp = requests.post(f"{BASE_URL}/wialon/ajax.html", params={
    "svc": "token/login",
    "params": json.dumps({"token": TOKEN})
})
if resp.status_code == 200:
    sid = resp.json()['eid']
    # Получение списка объектов
    resp2 = requests.post(f"{BASE_URL}/wialon/ajax.html", params={
        "svc": "core/search_items",
        "params": json.dumps({"spec": {"itemsType": "avl_unit"}, "force": 1, "flags": 1, "from": 0, "to": 0}),
        "sid": sid
    })
    items = resp2.json()['items']
    for item in items:
        name = item['nm']
        # Проверка на превышение скорости (предположим, есть поле 'speed')
        speed = item.get('spd', 0)
        if speed > 90:
            telegram_msg = f"🚗 {name} превысил скорость: {speed} км/ч"
            requests.post(f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
                          json={"chat_id": CHAT_ID, "text": telegram_msg})

Сценарий 4: Автоматизация техобслуживания

AI может анализировать данные с CAN-шины (пробег, моточасы) и автоматически создавать задачи на техобслуживание. Например, когда пробег достигает 15 000 км, AI отправляет уведомление механику и создаёт запись в Google Sheets.

Пример запроса в чате

«Подключись к CAN-шине и считывай общий пробег (ID 0x0CF00400, байты 2-5). Каждые 100 км проверяй, не превысил ли пробег 15000 км. Если да — отправь сообщение в Telegram и запиши в Google Sheets через API».

AI сгенерирует скрипт, который использует python-can для чтения, requests для Google Sheets API и telegram-уведомления.

Преимущества интеграции с ASI Biont

  • Экономия времени: AI пишет код за секунды, вместо часов ручной разработки.
  • Гибкость: подключайтесь к любому устройству — от GPS-трекера до CAN-шины — через единый интерфейс чата.
  • Автоматизация: AI сам анализирует данные и принимает решения (отправка уведомлений, запись в базу, управление маршрутами).
  • Безопасность: все скрипты выполняются в изолированном sandbox-окружении, без доступа к вашей локальной сети.

Заключение

Интеграция fleet management с AI-агентом ASI Biont — это не просто модная технология, а реальный способ сократить издержки на управление автопарком. Подключите GPS-трекеры через COM-порт, читайте CAN-шину, управляйте маршрутами через HTTP API — всё через диалог в чате. Попробуйте интеграцию на asibiont.com и автоматизируйте свой автопарк уже сегодня.

← Все статьи

Комментарии