Z-Wave и ASI Biont: подключение умного дома к AI-агенту без единой строки кода

Умный дом на Z-Wave — это десятки датчиков, реле, замков и розеток, которые работают по радиоканалу. Но управлять ими обычно приходится через пульты, приложения или голосовых ассистентов с жёсткими сценариями. Проблема: если нужно изменить логику — приходится лезть в настройки контроллера, писать скрипты или ждать обновлений прошивки. ASI Biont решает это кардинально: AI-агент подключается к Z-Wave контроллеру через SSH или MQTT и сам пишет код интеграции под вашу конфигурацию. В этой статье — как это работает на реальном примере с датчиком протечки и автоматическим отключением воды.

Как AI подключается к Z-Wave

ASI Biont не имеет встроенных драйверов для каждого устройства — он использует execute_python, чтобы написать Python-скрипт под вашу конкретную задачу. Для Z-Wave есть два основных пути:

  1. Через SSH — если ваш Z-Wave контроллер (например, Raspberry Pi с OpenZWave или Z-Wave.Me) работает под управлением Linux. AI подключается по SSH с помощью paramiko, запускает скрипт, который через библиотеку python-openzwave или Z-Wave JS (zwave-js-server) читает состояния и отправляет команды.
  2. Через 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 может отключать неиспользуемые приборы по расписанию, учитывая данные с датчиков освещённости и присутствия.

Как попробовать

  1. Зайдите на asibiont.com и создайте AI-агента.
  2. В чате напишите: «Подключись к моему Z-Wave контроллеру по SSH (IP: 192.168.1.100, логин: pi, пароль: raspberry) и настрой мониторинг датчика протечки с уведомлением в Telegram».
  3. AI сам сгенерирует код, выполнит его и начнёт слушать события.

Не нужно быть программистом — достаточно описать задачу своими словами. AI сделает всю интеграцию за секунды.

← Все статьи

Комментарии