Планировал спокойную неделю. Получился марафон

Сначала хотел только дописать пару инструментов для Вии - таймеры и напоминания. Потом подумал что уж мелочиться - добавлю погоду. Потом вспомнил что лампы (Kojima) уже месяц без голосового управления. Потом оказалось что дашборд надо переделывать

К концу недели закрыл 22 задачи в Linear

Лампы Kojima через tinytuya

Лампы это перемаркированный Tuya. local_key получил через wizard на iot.tuya.com, написал отдельную маленькую программу на Python которая висит в фоне и переводит команды от умного дома в язык который понимают лампы, подключил к MQTT

Теперь "Вия, включи свет в спальне на 40%" - работает физически, не в выдуманной реальности модели (раньше была заглушка)

Один нюанс: если отправлять включение и яркость двумя командами - лампа принимает только первую. Нужно set_multiple_values одной командой. Выяснил не сразу

wiia-chat: Вия в браузере

Добавил WebSocket сервер поверх того же мозга. Тот же персонаж, та же память, те же инструменты - только через браузер. Встроил в дашборд как отдельную вкладку

Интересная вещь: голосовой и текстовый канал живут как два процесса, оба пишут в общую память. Пришлось добавить filelock чтобы они не затёрли друг друга

ну, почти поняла меня)

Дашборд: командный центр

Переделал дашборд из набора карточек в командный центр. Боковая навигация, тёплая тёмная палитра, графики климата, панель Вии, лента событий. Пять вьюх вместо одной страницы.

Три раунда полировки после первой версии - это выученный урок: проверка через браузер, не просто чистый build проекта.

Что в цифрах

STT: faster-whisper medium FP16 ~0.3 сек. LLM: Qwen3 8B 60 t/s. TTS: XTTS-v2 RTF=0.27. Полный цикл вопрос-ответ: 3-5 секунд. VRAM: 9.9 ГБ из 12.

У Вии теперь 34 инструмента: температура, влажность, свет, погода, таймеры, напоминания, математика, списки, память.

Следующее: сцены (Утро/Ночь/Ухожу) и гибридная маршрутизация с облаком для сложных запросов.