Умный дом на Z-Wave — это десятки датчиков, реле, замков и розеток, которые работают по радиоканалу. Но управлять ими обычно приходится через пульты, приложения или голосовых ассистентов с жёсткими сценариями. Проблема: если нужно изменить логику — приходится лезть в настройки контроллера, писать скрипты или ждать обновлений прошивки. ASI Biont решает это кардинально: AI-агент подключается к Z-Wave контроллеру через SSH или MQTT и сам пишет код интеграции под вашу конфигурацию. В этой статье — как это работает на реальном примере с датчиком протечки и автоматическим отключением воды.
Как AI подключается к Z-Wave
ASI Biont не имеет встроенных драйверов для каждого устройства — он использует execute_python, чтобы написать Python-скрипт под вашу конкретную задачу. Для Z-Wave есть два основных пути:
- Через SSH — если ваш Z-Wave контроллер (например, Raspberry Pi с OpenZWave или Z-Wave.Me) работает под управлением Linux. AI подключается по SSH с помощью paramiko, запускает скрипт, который через библиотеку python-openzwave или Z-Wave JS (zwave-js-server) читает состояния и отправляет команды.
- Через MQTT — многие современные Z-Wave контроллеры (Home Assistant, Hubitat, SmartThings) могут публиковать события в MQTT-брокер. AI подписывается на топики и при необходимости публикует команды.
Пользователь просто пишет в чате: «Подключись к моему Z-Wave контроллеру по адресу 192.168.1.100, порт 22, логин pi, пароль raspberry, и запусти скрипт, который читает состояние датчика протечки на кухне». AI генерирует код и выполняет его.
Реальный сценарий: датчик протечки + автоматическое отключение воды
Допустим, у вас установлен Z-Wave датчик протечки Fibaro Flood Sensor и Z-Wave мотор для шарового крана (например, Aeotec Smart Water Valve). Задача: при обнаружении воды AI должен перекрыть кран и отправить уведомление в Telegram.
Шаг 1. Настройка MQTT-моста
Если контроллер поддерживает MQTT (как Home Assistant), достаточно указать брокер. Если нет — можно использовать bridge.py на ПК с подключением к контроллеру через последовательный порт (Z-Wave USB-стик).
Шаг 2. Описание задачи в чате
Пользователь пишет:
«Прочитай состояние датчика протечки на кухне (node ID 5) по MQTT, топик homeassistant/sensor/flood_sensor/state. Если значение "wet" — опубликуй команду в топик homeassistant/valve/kitchen/set с содержимым "CLOSE" и отправь мне уведомление в Telegram».
Шаг 3. AI генерирует и выполняет код
Вот пример того, что напишет AI (этот код выполняется в sandbox ASI Biont):
import paho.mqtt.client as mqtt
import requests
import json
TELEGRAM_BOT_TOKEN = "ваш_токен"
TELEGRAM_CHAT_ID = "ваш_chat_id"
# Функция отправки сообщения в Telegram
def send_telegram(text):
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
requests.post(url, json={"chat_id": TELEGRAM_CHAT_ID, "text": text})
# Колбэк при получении MQTT-сообщения
def on_message(client, userdata, msg):
payload = msg.payload.decode()
if payload == "wet":
# Публикуем команду на закрытие крана
client.publish("homeassistant/valve/kitchen/set", "CLOSE")
send_telegram("⚠️ Обнаружена протечка на кухне! Кран перекрыт.")
elif payload == "dry":
send_telegram("✅ Датчик протечки: сухо.")
# Подключение к MQTT-брокеру
client = mqtt.Client()
client.on_message = on_message
client.connect("192.168.1.50", 1883, 60) # IP брокера
client.subscribe("homeassistant/sensor/flood_sensor/state")
client.loop_start() # не блокирует, используется таймаут 30 с
AI не ждёт вечно — sandbox имеет таймаут 30 секунд, поэтому используется loop_start() (асинхронный цикл).
Почему это проще, чем писать самому
- Не нужно знать API Z-Wave — AI сам разбирается в протоколах и библиотеках. Он использует paho-mqtt для MQTT, paramiko для SSH, pymodbus для Modbus, aiohttp для HTTP — всё из sandbox.
- Любое устройство за минуту — достаточно описать задачу словами, и AI напишет рабочий код. Не нужно ждать, пока разработчики добавят поддержку конкретного чипа или контроллера.
- Гибкие сценарии — можно комбинировать Z-Wave с другими протоколами: при срабатывании датчика движения Z-Wave включать свет через ESP32 по MQTT, а при протечке — вызывать API страховой компании.
Подводные камни и советы
- Совместимость контроллера — не все Z-Wave контроллеры отдают данные по MQTT. Если ваш старый (например, Vera или Zipato) — используйте Hardware Bridge с COM-портом. AI подскажет, какой способ подходит для вашей модели.
- Безопасность — не передавайте токены и пароли в открытом виде в чате. AI поддерживает переменные окружения (os.environ), но лучше использовать отдельный файл конфигурации.
- Задержки — Z-Wave работает на 908 МГц (в США) или 868 МГц (в Европе), задержка может достигать 0.5–1 секунды. Для критичных сценариев (отключение газа) используйте локальный MQTT-брокер на Raspberry Pi.
Результаты
После настройки такой интеграции вы получаете:
- Автоматическое реагирование на протечки, движение, открытие окон — AI не только выполняет сценарий, но и может анализировать тренды: если датчик стал срабатывать чаще — предупредить заранее.
- Единая точка управления — все Z-Wave устройства доступны через Telegram, голосового ассистента или веб-чат ASI Biont.
- Снижение энергозатрат — AI может отключать неиспользуемые приборы по расписанию, учитывая данные с датчиков освещённости и присутствия.
Как попробовать
- Зайдите на asibiont.com и создайте AI-агента.
- В чате напишите: «Подключись к моему Z-Wave контроллеру по SSH (IP: 192.168.1.100, логин: pi, пароль: raspberry) и настрой мониторинг датчика протечки с уведомлением в Telegram».
- AI сам сгенерирует код, выполнит его и начнёт слушать события.
Не нужно быть программистом — достаточно описать задачу своими словами. AI сделает всю интеграцию за секунды.
Комментарии