Введение
Системы автоматизации зданий (BMS) на базе протокола BACnet — стандарт де-факто для управления HVAC, освещением, пожарной сигнализацией и доступом в коммерческих зданиях. По данным BACnet International, более 50 000 зданий по всему миру используют BACnet, а количество устройств превышает 10 миллионов. Однако настройка и мониторинг таких систем традиционно требуют квалифицированных инженеров и дорогих SCADA-панелей. AI-агент ASI Biont меняет это: он подключается к BACnet-контроллерам напрямую через BACnet/IP, читает и пишет свойства (аналоговые входы, бинарные выходы, аварийные сообщения), автоматизирует управление климатом, освещением и безопасностью, используя AI-конструктор без написания кода. В этой статье — пошаговый гайд по интеграции BACnet BMS с ASI Biont, схемы, примеры конфигурации и расчёт экономии энергии до 30%.
Почему BACnet и ASI Biont — идеальная пара?
BACnet (Building Automation and Control Network) — открытый протокол, разработанный ASHRAE (стандарт 135). Он поддерживает 50+ типов объектов (Analog Input, Binary Output, Schedule, Calendar, Trend Log) и 40+ служб (ReadProperty, WriteProperty, SubscribeCOV). Современные BMS-контроллеры (Siemens Desigo, Johnson Controls Metasys, Honeywell WEBs, Schneider Electric Andover Continuum) имеют встроенный BACnet/IP-интерфейс. ASI Biont подключается к любому BACnet-устройству через BAC0 — Python-библиотеку, которая реализует BACnet/IP-стек. AI-агент использует industrial_command с командами discover_devices, read_property, write_property. Пользователю достаточно указать IP-адрес контроллера и номер порта (по умолчанию 0xBAC0 = 47808).
Как подключить BACnet-контроллер к ASI Biont: пошаговое руководство
1. Скачайте Hardware Bridge (если нужен COM-порт) или используйте execute_python
BACnet-устройства обычно работают по Ethernet (BACnet/IP), поэтому Hardware Bridge не требуется. ASI Biont подключается напрямую из облака через execute_python. Пользователь описывает задачу в чате, AI генерирует и выполняет Python-скрипт с библиотекой bac0.
2. Запустите диалог в чате ASI Biont
Пример запроса: "Подключись к BACnet-контроллеру по IP 192.168.1.100, найди все устройства, прочитай аналоговый вход AI1 (температура в зоне 1) и бинарный выход BO5 (состояние освещения). Если температура > 25°C, включи вентиляцию (BO3)."
3. AI выполняет industrial_command
Команда для обнаружения устройств:
industrial_command(
protocol='bacnet',
command='discover_devices',
params={'ip': '192.168.1.100', 'port': 47808}
)
Ответ: список устройств с device_id, vendor_name, model_name, firmware_version.
Команда для чтения свойства:
industrial_command(
protocol='bacnet',
command='read_property',
params={'device_instance': 1001, 'object_type': 'analogInput', 'object_instance': 1, 'property': 'presentValue'}
)
Возвращает 22.5 (температура в °C).
Команда для записи:
industrial_command(
protocol='bacnet',
command='write_property',
params={'device_instance': 1001, 'object_type': 'binaryOutput', 'object_instance': 3, 'property': 'presentValue', 'value': 'active'}
)
Включает реле вентиляции.
Практический сценарий: автоматизация климата и освещения
Задача
В офисном здании три зоны. Каждая зона имеет:
- Датчик температуры (AnalogInput, instance 1)
- Датчик CO2 (AnalogInput, instance 2)
- Привод вентиляции (BinaryOutput, instance 1)
- Освещение (BinaryOutput, instance 2)
Цель: Поддерживать температуру 22–24°C, CO2 < 800 ppm, выключать освещение при отсутствии людей (по расписанию или датчику движения).
Решение с ASI Biont
Пользователь пишет в чате: "Создай скрипт, который каждые 5 минут читает температуру и CO2 в зонах 1,2,3. Если температура выше 24°C — включи вентиляцию в этой зоне. Если ниже 22°C — выключи вентиляцию. Если CO2 > 800 ppm — включи вентиляцию независимо от температуры. Освещение выключай в 19:00."
AI генерирует Python-код (выполняется в sandbox):
import bac0
import time
from datetime import datetime
# Подключение к BACnet-сети
bacnet = bac0.connect(ip='192.168.1.100')
# Параметры зон
zones = [
{'device': 1001, 'temp_ai': 1, 'co2_ai': 2, 'fan_bo': 1, 'light_bo': 2},
{'device': 1002, 'temp_ai': 1, 'co2_ai': 2, 'fan_bo': 1, 'light_bo': 2},
{'device': 1003, 'temp_ai': 1, 'co2_ai': 2, 'fan_bo': 1, 'light_bo': 2}
]
while True: # Здесь без while — пример логики
for zone in zones:
temp = bacnet.read(zone['device'], 'analogInput', zone['temp_ai'], 'presentValue')
co2 = bacnet.read(zone['device'], 'analogInput', zone['co2_ai'], 'presentValue')
if temp > 24 or co2 > 800:
bacnet.write(zone['device'], 'binaryOutput', zone['fan_bo'], 'presentValue', 'active')
elif temp < 22:
bacnet.write(zone['device'], 'binaryOutput', zone['fan_bo'], 'presentValue', 'inactive')
now = datetime.now()
if now.hour >= 19 or now.hour < 7:
bacnet.write(zone['device'], 'binaryOutput', zone['light_bo'], 'presentValue', 'inactive')
else:
bacnet.write(zone['device'], 'binaryOutput', zone['light_bo'], 'presentValue', 'active')
time.sleep(300) # 5 минут
(Примечание: реальное выполнение в sandbox ограничено 30 секундами, поэтому для длительных задач AI может запланировать периодический запуск через внешний cron или использовать команду subscribe.)
Результат
- Температура стабильно 22–24°C
- CO2 ниже 800 ppm
- Освещение выключается автоматически в 19:00
- Экономия энергии до 30% (по данным исследований ASHRAE, умное управление HVAC и освещением снижает энергопотребление здания на 20–30%)
Дополнительные сценарии
| Сценарий | Объекты BACnet | Команда ASI Biont | Эффект |
|---|---|---|---|
| Управление пожарной сигнализацией | BinaryInput (датчики дыма), BinaryOutput (сирена) | read_property + write_property | Мгновенное оповещение и эвакуация |
| Мониторинг качества воздуха | AnalogInput (CO2, VOC, PM2.5) | read_property + subscribe | Уведомления в Telegram при превышении |
| Автоматизация жалюзи | AnalogOutput (угол наклона) + Schedule | write_property + schedule | Затенение в жаркое время дня |
| Учёт энергопотребления | AnalogInput (кВт·ч) + TrendLog | read_property + анализ трендов | Ежемесячные отчёты и оптимизация |
Почему это выгодно?
- Нет кода: Пользователь описывает задачу на естественном языке — AI пишет и выполняет код.
- Мгновенная интеграция: Не нужно ждать обновлений ПО — подключай любое BACnet-устройство прямо сейчас.
- AI-аналитика: AI не просто управляет, но и анализирует тренды, предсказывает отказы, предлагает оптимизации.
- Экономия: Снижение энергопотребления на 20–30%, сокращение времени на настройку BMS с недель до минут.
Заключение
Интеграция BACnet BMS с AI-агентом ASI Biont — это эволюция управления зданием. Вместо сложных SCADA-систем и ручного программирования — диалог с AI, который сам подключается к контроллерам, читает данные, управляет исполнительными механизмами и оптимизирует энергопотребление. Попробуйте сами: опишите свою BMS-задачу в чате ASI Biont на asibiont.com и убедитесь, как AI превращает здание в "умное" за минуты.
Комментарии