Системы автоматизации зданий (BMS) на базе протокола BACnet управляют отоплением, вентиляцией, кондиционированием и освещением в коммерческих и жилых объектах. Однако гибкое управление и реакция на нештатные ситуации часто требуют ручного вмешательства или сложных скриптов. AI-агент ASI Biont решает эту проблему: он подключается к BACnet-устройствам через BACnet/IP или MQTT-мост и позволяет автоматизировать сценарии с помощью текстовых команд на естественном языке.
Способы подключения BACnet к ASI Biont
1. Прямое BACnet/IP (через industrial_command)
Если BACnet-контроллер имеет публичный IP или доступен через VPN, AI использует встроенный инструмент industrial_command с библиотекой bac0. Команды выполняются в облачном sandbox ASI Biont.
Пример команды для чтения температуры из аналогового входа:
industrial_command(
protocol='bacnet',
command='read_property',
device_instance=12345,
object_type='analog-input',
object_instance=1,
property='present-value'
)
2. Через MQTT-мост (рекомендуемый способ)
Для локальных BACnet-сетей надёжнее установить на ПК в той же подсети Python-скрипт-мост, который через bac0 читает/пишет свойства и публикует данные в MQTT-брокер (например, Mosquitto). ASI Biont подключается к тому же брокеру через execute_python.
Пример скрипта моста (запускается на локальной машине):
import bac0
import paho.mqtt.client as mqtt
import json
bacnet = bac0.connect(ip='192.168.1.100')
mqttc = mqtt.Client()
mqttc.connect('test.mosquitto.org', 1883)
# Чтение температуры каждые 30 секунд
def read_and_publish():
val = bacnet.read('analog-input 1 present-value')
mqttc.publish('building/temperature', json.dumps({'value': val}))
# Планировщик (schedule) опущен для краткости
ASI Biont в ответ на запрос пользователя генерирует и запускает такой код в sandbox (execute_python) для подписки на MQTT и обратной связи:
import paho.mqtt.client as mqtt
import json
def on_message(client, userdata, msg):
data = json.loads(msg.payload)
if data['value'] > 30:
# AI может инициировать команду на охлаждение через BACnet мост
pass
client = mqtt.Client()
client.connect('test.mosquitto.org', 1883)
client.subscribe('building/temperature')
client.on_message = on_message
client.loop_start()
Реальные сценарии автоматизации
1. Отключение вентиляции по превышению CO₂
Датчик CO₂ подключён к BACnet как аналоговый вход. AI подписан на топик CO₂. При значении > 1000 ppm AI отправляет команду на BACnet-выход, управляющий клапаном:
industrial_command(
protocol='bacnet',
command='write_property',
device_instance=12345,
object_type='analog-output',
object_instance=5,
property='present-value',
value=0.0 # закрыть клапан
)
2. Голосовое управление температурой
Пользователь пишет в чат ASI Biont: «Сделай 22 градуса в конференц-зале». AI парсит запрос, определяет объект (analog-output 2), пишет значение:
industrial_command(protocol='bacnet', command='write_property',
device_instance=12345, object_type='analog-output',
object_instance=2, property='present-value', value=22.0)
3. Аварийные уведомления в Telegram
AI периодически читает статус бинарных входов аварий (BACnet binary-input). При изменении на «active» отправляет сообщение через Telegram Bot API:
import requests
token = 'ВАШ_ТОКЕН'
chat_id = 'ЧАТ_ID'
requests.post(f'https://api.telegram.org/bot{token}/sendMessage',
json={'chat_id': chat_id, 'text': 'Авария: превышение температуры!'})
Как это работает в ASI Biont?
Вам не нужно писать код с нуля. Вы описываете задачу в чате: «Подключись к BACnet-контроллеру с IP 192.168.1.100, читай температуру каждые 10 секунд и при превышении 30°C присылай уведомление в Telegram». AI сам выбирает способ (MQTT-мост или direct), генерирует код и выполняет его. Весь процесс — в диалоге, без панелей управления и кнопок «добавить устройство».
Почему это выгодно?
- Экономия времени: интеграция занимает минуты вместо дней программирования.
- Гибкость: меняйте сценарии текстом, не переписывая прошивки.
- Доступность: BACnet-устройства становятся частью единого AI-помощника, который может общаться через Telegram, Slack или голосовой интерфейс.
Заключение
Интеграция BACnet (BMS) с AI-агентом ASI Biont открывает путь к интеллектуальным зданиям без сложного кода. Подключайте существующую инфраструктуру, автоматизируйте рутину и получайте уведомления об авариях мгновенно. Попробуйте прямо сейчас на asibiont.com — опишите свою задачу в чате, и AI выполнит интеграцию за секунды.
Комментарии