Концепция: зачем Муксис, если есть Алиса
Муксис решает главную проблему умного дома: зависимость от облака и интернета. В 4DUK голосовое управление должно работать даже при полном отключении интернета. Муксис — это колонка на базе SU-03T + ESP, которая:
- Работает только в локальной сети (L2-сегмент).
- Общается через UDP broadcast порт 9009.
- Не имеет OTA-обновлений — прошивка обновляется только по запросу.
- Использует сервисный пин, который задаёт пользователь.
Степаныч, давай охолаживай: если интернет упал — дом всё равно должен слушаться. Вот для этого и нужен Муксис.
Железо: SU-03T + ESP
| Компонент | Роль | Совместимость с 4DUK |
|---|---|---|
| SU-03T | Аудио-модуль: микрофон, ЦАП, усилитель, динамик | Локальное распознавание, без облачных сервисов |
| ESP01 / ESP32 | Сетевой стек, UDP 9009, логика команд | Отправка devping/devstate, маппинг на JSONB, интеграция с Postgresql |
| Электретные микрофоны | Расширение зоны захвата (до 3-4 м) | Параллельное подключение к SU-03T |
Архитектура взаимодействия
Муксис не «понимает» речь сам — SU-03T распознаёт команду локально, отправляет по UART на ESP, ESP формирует UDP-пакет в сеть 4DUK. Сервер или устройства реагируют.
Голос -> SU-03T (распознавание) -> UART -> ESP32 (UDP 9009) -> Сеть 4DUK -> Устройство
Пример пакета:
devstate:muxis_01:event:voice_command:value:turn_on_light_corridor
Сервер 4DUK получает пакет, ищет corridor_light в JSONB-дереве, маппит на native.relay_set и формирует:
device:corridor_light:action:set:value:1
Сценарии
- Полная автономия: при падении интернета Муксис продолжает работать в локальной сети.
- Утреннее шоу: проигрывает локальные аудиоролики без обращения к внешним сервисам.
- Умный утюг: можно привязать к Муксису озвучку и сценарии, не используя Алису.
- Обучение: урок «реле + кнопка + голос» — ученики собирают схему, настраивают SU-03T и учатся отправлять UDP-пакеты.
Пример кода: ESP32 + SU-03T
#include <WiFi.h>
#include <WiFiUdp.h>
WiFiUDP udp;
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASS";
void setup() {
Serial.begin(115200); // UART к SU-03T
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
udp.begin(0);
}
void loop() {
// SU-03T отправляет распознанную команду по UART
if (Serial.available()) {
String cmd = Serial.readStringUntil('\n');
cmd.trim();
String packet = "devstate:muxis_01:event:voice_command:value:" + cmd;
udp.beginPacket("255.255.255.255", 9009);
udp.write(packet.c_str(), packet.length());
udp.endPacket();
}
}
Муксис vs Алиса
| Параметр | Алиса | Муксис |
|---|---|---|
| Интернет | Нужен | Не нужен |
| Распознавание | Облачное, безграничное | Локальное, ограниченный словарь |
| Словарь | Произвольные фразы | Предзаданные команды (настраиваются в SU-03T) |
| Обновление | Автоматически (облако) | По запросу, вручную |
| Приватность | Аудиоданные в облаке | Полностью локально |
| Стоимость | Колонка с Алисой | SU-03T + ESP (дёшево) |
Принципы
- Никаких облачных распознаваний: команды передаются как события, логика — на сервере 4DUK.
- Сервисный пин задаёт пользователь.
- Обновление прошивки — только по запросу.
- AP Isolation должна быть отключена.
Как начать
Пришлите описание сценариев — мы подготовим JSONB-схему, маппинг команд и пример кода под SU-03T.
Обсудить интеграцию Муксиса