53 KiB
Smart Home Tablet — Roadmap / идеи развития
Связанный doc:
smart-home-tablet.md(reference). Приоритеты от «ближайшая сессия» до «эксперименты». Для каждой идеи — что даёт, что нужно от Даниила, сложность (S/M/L), зависимости.
Сложность:
- S — 1 сессия (до 2 часов), только код
- M — 1-2 сессии, может требовать настройки на стороне
- L — 3+ сессий, внешние сервисы / железо / аккаунты
Статус:
- 🟢 готово к работе, всё что нужно — сделать
- 🟡 требует от Даниила что-то купить/настроить/зарегистрироваться
- 🔴 нужно железо или сторонние аккаунты, которых пока нет
🏡 Своя экосистема — самый большой рычаг
Это не «уровень», а сквозная тема. У Даниила уже запущены собственные приложения в /opt/digital-home/. Дашборд обязан быть их витриной — это сразу делает его уникальным артефактом, невозможным без этой конкретной инфраструктуры.
A. Habits-app streak widget
Что даёт: виджет на Home «сегодня 3/5 привычек» с прогресс-барами. Мотивирует каждое утро смотреть.
От тебя: выставить из habits-app JSON endpoint /api/public/today (или дёргать БД напрямую если контейнеры в одной сети).
Что нужно мне: proxy /api/habits + виджет.
Сложность: S · Статус: 🟢
B. Langlearn прогресс и streak
Что даёт: «15-й день подряд · сегодня 12 слов». На выходных — мотив сделать ежедневный минимум.
От тебя: endpoint из langlearn / lingua-learn.
Что нужно мне: proxy + виджет с миниатюрой «осталось N новых карточек».
Сложность: S · Статус: 🟢
C. Japan-app / trip countdown
Что даёт: до поездки в Токио — countdown + чеклист («виза / билеты / hotel / suitcase»). После поездки — галерея.
От тебя: API japan-app с датами поездки и чеклистом.
Что нужно мне: виджет с большими цифрами дней и нижним рядом чеклиста.
Сложность: S · Статус: 🟢
D. Pulse balance + текущий месяц
Что даёт: «осталось 12k до конца месяца», «накоплено на Токио: 340k / 500k (68%)». Один из самых high-glance виджетов.
От тебя: endpoint в pulse-web (предположительно уже есть /api/savings).
Что нужно мне: виджет с прогресс-кольцами.
Сложность: S · Статус: 🟢 (API /api/savings уже есть в проекте как заготовка)
E. Finance — бюджет и счета к оплате
Что даёт: «электричество до 25-го · 1580₽», «интернет завтра». Раз в месяц спасает от пеней.
От тебя: finance таблица счетов с due date.
Что нужно мне: виджет + уведомления overlay в день оплаты.
Сложность: S · Статус: 🟢
F. Adventurelog — карта поездок / воспоминания
Что даёт: «3 года назад · Прага» с фото — эмоциональный хук, возврат к дашборду.
От тебя: endpoint случайной точки из adventurelog.
Что нужно мне: виджет в screensaver / photo frame режиме.
Сложность: S · Статус: 🟢
G. Digest — сводка за день/неделю
Что даёт: если у тебя уже крутится проект digest (собирающий какие-то ежедневные сводки) — показывать их здесь.
От тебя: уточнить что именно digest агрегирует.
Что нужно мне: виджет с последним дайджестом.
Сложность: S · Статус: 🟡 (нужно понять что там)
H. Homelab-api — здоровье всех твоих сервисов
Что даёт: маленькая строка в TopBar — «все 18 сервисов OK», при красном — детальный список кто упал.
От тебя: endpoint из homelab-api со статусом всех docker-контейнеров.
Что нужно мне: виджет + фоновый polling.
Сложность: S · Статус: 🟢
Почему это важно сделать раньше внешних интеграций: потому что твоя экосистема — это то, что делает дашборд твоим. Погода и трамваи есть у всех. Habits+langlearn+pulse+trip countdown в одном месте — нет ни у кого. Это отличает «очередной дашборд» от «артефакта твоей жизни».
🎯 Уровень 1 — ближайшие 2-3 сессии
1. PWA standalone + Fully Kiosk Browser
Что даёт: планшет выглядит как нативное приложение — fullscreen, auto-wake от движения, защита от выхода, иконка на home screen, без адресной строки.
От тебя: установить FKB на планшет по инструкции smart-home-tablet-fkb-setup.md. Опционально купить FKB-лицензию €7 (снимает watermark, открывает Remote Admin).
Что нужно сделать мне: добавить manifest.json + service worker (offline fallback) в Next.js; apple-touch-icon.
Сложность: S · Статус: 🟢
2. WebSockets Home Assistant вместо polling
Что даёт: мгновенные обновления состояний устройств. Сейчас polling каждые N секунд — пропуск событий и лишняя нагрузка.
От тебя: ничего (long-lived token у тебя уже есть).
Что нужно мне: переписать hooks/useHA.ts на WebSocket API HA (/api/websocket), subscribe_events + get_states initial. Fallback на polling если WS не поднялся.
Сложность: M · Статус: 🟢
3. Яндекс.Станция виджет
Что даёт: видишь что играет, контроль громкости, таймеры Алисы на планшете.
От тебя: у тебя уже есть Станция Лайт/Мини? Если да — добавить AlexxIT/YandexStation интеграцию в Home Assistant (требует логин в Я.Аккаунт через HACS).
Что нужно мне: виджет <YandexStationCard /> на Home: текущий трек, пилюли «громкость −/+», «пауза», таймеры. Через HA entities media_player.yandex_station_*.
Сложность: M · Статус: 🟡 зависит от того, есть ли Станция в HA
4. Утренний режим (morning briefing)
Что даёт: с 7:00 до 10:00 Home показывает другую раскладку — большое «что надеть» (температура + рекомендация «+2°C лёгкая куртка»), walking-time до трамвая с пометкой «успеешь/бежать», события на сегодня.
От тебя: ничего.
Что нужно мне: условный рендер <MorningHomeTab /> по часу, логика одевалки (температура + осадки + ветер → текст), кэш walking-time (Google/OSRM API или хардкод).
Сложность: S · Статус: 🟢
5. Shared shopping list через Telegram-бот
Что даёт: Света со своего телефона пишет боту /add молоко — пункт появляется в списке на планшете. Замыкает семейный use case.
От тебя:
- Создать Telegram-бота через @BotFather, получить token (~2 минуты)
- Создать чат «Семья» с ботом и Светой Что нужно мне:
- Endpoint
/api/telegram/webhook→ парсит сообщения, дёргает/api/notesPUT - Скрипт установки webhook на старте контейнера
- Разделение списков per-user (или общий «семейный») Сложность: M · Статус: 🟡
6. Выбор остановок транспорта из UI
Что даёт: в Settings выбираешь остановки по поиску названия — избавляешься от хардкода 16226/16354. Поддержка N остановок.
От тебя: ничего.
Что нужно мне:
- Cron в
/api/transport/feed— раз в неделю скачивает GTFS, парситstops.txt - Endpoint
/api/transport/search?q=названия - UI в Settings: поиск + список избранных
- Сохранение в
/data/tablet-config.jsonСложность: M · Статус: 🟢
7. Контекстные подсказки
Что даёт: в углу TopBar маленький бар с «Дождь к 15:00, не забудь зонт», «Света выехала с работы — будет через 20 мин», «ДР Светы через 3 дня». От тебя: ничего критичного. Для «Света едет домой» — мобильное HA-приложение на её телефоне с device_tracker. Что нужно мне: rules-engine, комбинирующий погоду / календарь / HA device trackers. Приоритизация (один бар = одна самая важная подсказка). Сложность: M · Статус: 🟡 (для геолокации)
7b. Cooking mode
Что даёт: отдельный полноэкранный режим для готовки. Scroll-lock (экран не гаснет), шрифт крупный (24-28px), таймеры всегда видны, один рецепт на экране. Активируется кнопкой «Готовлю» с Home или автоматически когда идёшь к Я.Станции на кухне (если Света где-то настроит). От тебя: ничего. Опционально — база рецептов (можно потом). Что нужно мне:
/cookingroute с отдельным layout- Wake Lock API (
navigator.wakeLock) — экран не засыпает - Крупные таймеры, голосовое «окей, +5 минут» опционально Сложность: M · Статус: 🟢
7c. Service Worker + offline fallback + состояние между релоадами
Что даёт: при отвале WiFi приложение не белеет, а показывает последние данные. Плюс сохранение последней активной вкладки, фильтров календаря, выбранной остановки — чтобы F5 не сбрасывал контекст.
От тебя: ничего.
Что нужно мне: SW с stale-while-revalidate для API, persistent zustand store в localStorage.
Сложность: M · Статус: 🟢
🔜 Уровень 2 — ближайший месяц
8. Walking-time до остановок (для утреннего режима)
Что даёт: «ближайший 23-й через 4 мин, до остановки 6 мин — не успеешь». Приоритизация маршрутов. От тебя:
- Примерные координаты дома (или точный адрес)
- Опционально OpenRouteService API key (бесплатный)
Что нужно мне: fetch к OSRM / ORS, кэш в
/data/walking-times.json. Сложность: S · Статус: 🟡
9. Meal planner (меню на неделю)
Что даёт: планировщик еды: 7 ячеек × (завтрак/обед/ужин), совместное редактирование, из шаблонов. От тебя: сформулировать формат — какие блюда в ротации, кто готовит. Что нужно мне:
/api/meals/route.ts+ storage в/data/meals.json- Отдельная вкладка «Меню» или интеграция в Notes
- Сгенерировать shopping list из выбранных блюд (links между meals и ingredients) Сложность: L · Статус: 🟢
10. Рецепты из продуктов (Claude API)
Что даёт: вводишь «что есть в холодильнике» → Claude предлагает 3 рецепта. От тебя:
- Anthropic API key (личный, ~€5 депозита = ~500 запросов)
- Положить в
tablet.envкакANTHROPIC_API_KEYЧто нужно мне:/api/recipes/route.tsс prompt caching (история ингредиентов), UI-форма. Сложность: S · Статус: 🟡
11. Семейная геолокация (Даниил / Света)
Что даёт: маленькая пилюля «Света · 15 мин до дома / на работе / неизвестно». Триггеры для подсказок («Света едет» → поставь чайник). От тебя:
- Установить Home Assistant Companion App на телефон Даниила и Светы
- В HA настроить device_tracker + zones (Дом, Работа)
- Договориться что это ок для Светы (privacy check)
Что нужно мне: виджет в TopBar или маленький бар на Home, читает
device_tracker.*из HA. Сложность: S (код) + M (настройка HA) · Статус: 🟡
12. Быстрые кнопки на Home (Quick Actions)
Что даёт: «Новая заметка», «Таймер 10 мин», «Выключить свет везде», «Чайник» — одним тапом с главной.
От тебя: сформулировать какие именно кнопки тебе нужны (реально нужны в быту).
Что нужно мне: конфиг QUICK_ACTIONS с иконкой + onClick (может звать HA scene, открывать модалку, etc.).
Сложность: S · Статус: 🟢
13. Таймеры (кухонные)
Что даёт: «чайник 5 мин», «паста 9 мин» — старт с Home, визуальный отсчёт, звук по окончании.
От тебя: ничего. Опционально — разрешить звук в FKB (Settings → Audio).
Что нужно мне: компонент <Timer /> с state в /data/tablet-timers.json (чтобы пережил F5), WebAudio для звука.
Сложность: S · Статус: 🟢
14. Напоминалки (лекарства / витамины / полив цветов)
Что даёт: «Прими витамин D», «Полей монстеру». Чекбоксы истории — кликаешь «принял», пропадает. От тебя: сформулировать что напоминать и когда. Что нужно мне:
/api/reminders/route.ts+ storage- Cron-like schedule в UI (ежедневно в 10:00, каждые 3 дня, etc.)
- Показ активных напоминалок на Home Сложность: M · Статус: 🟢
15. Счётчик дней / countdown
Что даёт: «До отпуска Токио 47 дней», «ДР Светы через 5 дней», «Последний трамвай 23 через 3 часа».
От тебя: список событий с датами.
Что нужно мне: виджет <Countdown />, конфиг в /data/tablet-countdowns.json, UI в Settings.
Сложность: S · Статус: 🟢
16. Swipe-жесты вкладок
Что даёт: свайп между Home/Devices/Calendar/Notes/Settings влево-вправо.
От тебя: ничего.
Что нужно мне: framer-motion drag на <main>, snap к соседним вкладкам.
Сложность: S · Статус: 🟢
17. Bill / subscription tracker
Что даёт: «электричество до 25-го · 1580₽», «YouTube Premium завтра», «интернет через 3 дня». Маленький виджет, огромная польза — раз в месяц спасает от пеней.
От тебя: список своих счетов с датами и суммами, либо интеграция с finance проектом.
Что нужно мне: /api/bills/route.ts с JSON-хранилищем, UI в Settings для ввода, виджет-бар + overlay-alert в день оплаты.
Сложность: S · Статус: 🟢
18. Expense capture по фото чека
Что даёт: сфоткал чек в магазине → OCR вытаскивает сумму / магазин / дату → автоматически в pulse / finance. Убирает ежедневное «надо записать, а я забыл». От тебя:
- Tesseract.js (бесплатно, в браузере) или Claude API с vision (~€0.01/чек)
- Разрешить камеру FKB (уже должно быть) Что нужно мне: UI-кнопка «сфоткать чек» → фото → OCR/AI → preview → подтверждаешь → сохраняется. Интеграция с pulse. Сложность: M · Статус: 🟡
19. Photo frame режим
Что даёт: отдельный режим (не screensaver!) — когда в квартире никого, слайдшоу семейных фото с подписью «5 лет назад, Прага». Эмоциональный возвратный хук.
От тебя: у тебя Nextcloud уже развёрнут в /opt/digital-home/nextcloud/ — достать папку с фото через WebDAV. Альтернатива — Google Photos (ограничен последним годом).
Что нужно мне:
/api/photos/random→ достаёт случайное фото<PhotoFrame />как альтернативный screensaver после 20+ мин бездействия- Плавный fade между фото, минималистичная подпись с датой Сложность: M · Статус: 🟡 (нужно расчехлить Nextcloud API)
Пункт «Offline mode / Service Worker» объединён с 7c выше.
🗓 Уровень 3 — средний срок (1-3 месяца)
18. Telegram bridge (ответы с планшета)
Что даёт: приходит сообщение → уведомление на планшете → можно ответить оттуда. От тебя:
- Отдельный Telegram-аккаунт для планшета или Bot API (тогда только в чат с ботом)
- Либо userbot (MTProto) — сложнее, но отвечает от твоего имени (риск бана аккаунта при нарушении ToS) Что нужно мне: pyrogram/gramJS клиент как микросервис + WS в приложение. Сложность: L · Статус: 🟡
19. Виджет задач Vikunja
Что даёт: чеклист задач на сегодня с галочками. API /api/tasks уже есть.
От тебя: сказать какой список в Vikunja считать «на сегодня» (projectId).
Что нужно мне: подключить /api/tasks к виджету на Home, синхронизация.
Сложность: S · Статус: 🟢
20. Виджет накоплений Pulse
Что даёт: прогресс-бары финансовых целей («Токио: 68% · 340k / 500k»). От тебя: ничего, API уже готов. Что нужно мне: виджет + интеграция. Сложность: S · Статус: 🟢
21. Камеры наблюдения
Что даёт: превью камер во дворе / подъезде (если есть). При звонке в дверь — снапшот overlay. От тебя:
- IP-камеры в доме (RTSP-стрим) — у тебя есть?
- Настройка Frigate / WebRTC-моста в HA Что нужно мне: iframe с Frigate стримом или webrtc-card интеграция. Сложность: L · Статус: 🔴 нужно железо
22. Doorbell + motion detection
Что даёт: уведомление «звонок в дверь» с фото. «Пришла посылка» если camera видит курьера. От тебя: умный звонок (Aqara G4 / Ring) или IP-камера у двери + Frigate person detection. Что нужно мне: notification-overlay на весь экран с кнопкой «открыть». Сложность: M (код) + L (железо/настройка) · Статус: 🔴
23. Медиа-контроль (Spotify / Я.Музыка / Apple Music)
Что даёт: что играет на любом устройстве (телефон / колонка / комп) + pause/skip. От тебя:
- Spotify: developer account + client ID (бесплатно)
- Я.Музыка: неофициальное API, ломается иногда
Что нужно мне: oauth flow для Spotify, хранение refresh token в
/data/. Сложность: M · Статус: 🟡
24. IR-бластер (управление TV / AC)
Что даёт: с планшета включить телевизор, поменять канал, кондиционер на +2°C. От тебя: IR-бластер (Broadlink RM4 Pro или Aqara — ~2500₽), настройка в HA с «обучением» пульта. Что нужно мне: UI-пульт в Devices tab. Сложность: M (код) + M (обучение пультов) · Статус: 🔴 нужно железо
25. Робот-пылесос
Что даёт: запустить уборку с планшета, карта уборки. От тебя: пылесос с HA-интеграцией (Xiaomi / Roborock через miio) и настройка в HA. Что нужно мне: кнопка-виджет на Home или вкладке Devices. Сложность: S · Статус: 🔴 нужен пылесос
26. Энергомониторинг
Что даёт: графики потребления за день/неделю. «Сегодня +15% от среднего». От тебя: умный счётчик / умные розетки с watt-meter (Shelly / Aqara). Что нужно мне: интеграция через HA, chart.js. Сложность: M (код) + L (железо) · Статус: 🔴
27. Трекер посылок
Что даёт: «CDEK CN9876 — в городе, завтра на выдачу», «Ozon — курьер в пути». От тебя: копировать трек-номера вручную в UI, либо скрапер сделки/Ozon (API у них приватное, риск бана). Что нужно мне:
- Скорее всего платный 17track.net API (€, но универсальный трекинг)
- Либо самопис скраперов (хрупко) Сложность: M · Статус: 🟡 (если 17track)
28. Курс валют / бензин
Что даёт: USD/EUR/₽ маленькой строкой, цена бензина АИ-95 по району. От тебя: ничего. Что нужно мне: ЦБ РФ XML API (бесплатный), цена бензина через открытые источники (скрапер или yandex.ru/maps POI). Сложность: S · Статус: 🟢
29. Новости (RSS + Telegram каналы)
Что даёт: 3 топ-заголовка раз в час из выбранных источников. От тебя: список RSS и/или Telegram-каналов. Что нужно мне: rss-parser lib + Telegram Bot API (Bot может читать public channels). Сложность: M · Статус: 🟡
29a. Wake word («Окей, планшет»)
Что даёт: голосовая активация для рук-занятых ситуаций: «окей планшет, таймер 10 минут», «окей планшет, добавь молоко в список». Меняет способ использования на кухне. От тебя: ничего (работает локально, без облака). Что нужно мне:
- Porcupine — локальное wake-word detection, бесплатно до 3 wake-words
- После триггера — Web Speech API для следующей команды
- Маппинг команд: «таймер N минут» → запустить таймер, «добавь X в список» → call API Сложность: L · Статус: 🟡
29b. Guest mode с WiFi QR
Что даёт: приходят гости → кнопка «Режим гостей» → большой QR с паролем гостевой WiFi + часы/погода, без PIN, без твоих данных. Маленький ритуал, но работает каждый раз. От тебя:
- Гостевая WiFi-сеть на роутере (MikroTik/Keenetic — 5 минут)
- QR-код хранишь как SVG в настройках
Что нужно мне:
/guestroute без middleware + отдельный layout. Сложность: S · Статус: 🟡
29c. Health / Sleep integration
Что даёт: «вчера спал 6ч 20м, восстановление 62%», «сегодня 8k шагов». Если пересыпание или много ходьбы — подсветка в утреннем режиме (кофе / «молодец»). От тебя: фитнес-трекер с HA интеграцией:
- Mi Band + Gadgetbridge на Android-хабе
- или Fitbit через HA Fitbit integration (OAuth)
- или Apple Health → через Homebridge сложно, только через iOS shortcut Что нужно мне: виджет «сон и активность» на Home, подсветка в morning mode. Сложность: M (код) + M (настройка) · Статус: 🟡
🧪 Уровень 4 — эксперименты (когда захочется)
30. Scanner штрих-кодов для shopping list
Что даёт: планшет сканирует штрих-код товара → добавляет в список. Запоминает «4606036017412 = молоко».
От тебя: разрешить камеру в FKB.
Что нужно мне: @zxing/library WebAssembly barcode reader, локальный словарь штрих-кодов.
Сложность: M · Статус: 🟢
31. QR выгрузка списка покупок на телефон
Что даёт: в списке есть кнопка «QR» — сканируешь с телефона, открывается компактная mobile-страница этого же списка (без PIN, временный URL). От тебя: ничего. Что нужно мне: генератор короткоживущих токенов, mobile view. Сложность: S · Статус: 🟢
32. Фото-скринсейвер из Google Photos / Nextcloud
Что даёт: во время screensaver плавный слайдшоу семейных фото. От тебя:
- Google Photos: ограничен, API отдаёт только media items за последний год
- Nextcloud: если у тебя уже развёрнут (вижу в
/opt/digital-home/nextcloud/) →/remote.php/dav/WebDAV Что нужно мне: fetch случайной фотки, предзагрузка. Сложность: M · Статус: 🟡 (твой Nextcloud уже готов)
33. Мини-игры для гостей
Что даёт: простые игры — память, 2048, сапёр. Чтобы гостям / детям занять 5 минут. От тебя: ничего. Что нужно мне: отдельная вкладка или секция в Home. Сложность: M · Статус: 🟢
34. Гостевой режим
Что даёт: открыть UI без PIN, но в ограниченном виде (только время+погода, без календаря и заметок).
От тебя: ничего.
Что нужно мне: отдельный read-only pub URL /guest без middleware.
Сложность: S · Статус: 🟢
35. Голосовой ассистент на планшете
Что даёт: «Окей, дом — таймер на 5 минут», «Добавь в список молоко». От тебя:
- Для offline распознавания — Rhasspy или Vosk
- Для Whisper API — Anthropic/OpenAI key (платно) Что нужно мне: Web Speech API (браузерное, но требует onlineGoogle в Chrome) → либо кастомный микросервис STT на сервере. Сложность: L · Статус: 🟡
36. Multi-user профили (Даниил + Света)
Что даёт: два PIN, две темы, два избранных набора (остановки / заметки / календарные фильтры). От тебя: ничего. Что нужно мне: переделка auth — user slot, namespaced storage. Сложность: L · Статус: 🟢
37. Weekly digest / summary
Что даёт: воскресное напоминание «за неделю: 12 событий / 3 поездки / 5 заметок». От тебя: ничего. Что нужно мне: агрегатор со стораджа, показ overlay по воскресеньям. Сложность: S · Статус: 🟢
38. Фаза луны / восход-закат / магнитные бури
Что даёт: тонкий inline-виджет («Закат 20:47 · полная луна 🌕 · магнит. спокойно»). От тебя: ничего (открытые API). Что нужно мне: SunCalc + API Tesis/Spaceweather. Сложность: S · Статус: 🟢
39. Качество воздуха снаружи
Что даёт: сравнение PM2.5 внутри (из очистителя) vs на улице. Если снаружи хуже — «закрой окна». От тебя: ничего. Что нужно мне: OpenAQ / AirPollution API (бесплатно), виджет. Сложность: S · Статус: 🟢
40. Пробки / яндекс-карта
Что даёт: embed карты с пробками. Или собственный виджет «трафик СПб 5/10». От тебя: Yandex Maps API ключ (бесплатный при низком трафике). Что нужно мне: iframe или канвас. Сложность: S · Статус: 🟡
41. Интерактивный план квартиры (SVG floor plan)
Что даёт: схема квартиры с клик-устройствами прямо на плане комнат. От тебя: план квартиры (нарисовать в Figma / SVG). Что нужно мне: SVG редактор-viewer, маппинг точек на devices. Сложность: L · Статус: 🟡
42. Такси / eда (deep links)
Что даёт: кнопка «Такси до работы» открывает Yandex.Taxi deep-link с заданным адресом.
От тебя: ничего (deep links не требуют API).
Что нужно мне: просто <a href="yandextaxi://...">.
Сложность: S · Статус: 🟢
43. Автотема по времени суток
Что даёт: утром — светлая тема, вечером — тёмная. С опцией «следовать за закатом» (по локации). От тебя: ничего. Что нужно мне: cron-подобный useEffect, чекбокс в Settings. Сложность: S · Статус: 🟢
44. Backup / Export заметок
Что даёт: раз в день JSON-дамп всех данных в /data/backups/. Кнопка «Экспорт всё» в Settings.
От тебя: ничего.
Что нужно мне: cron внутри приложения (setInterval), clean-up старых бэкапов.
Сложность: S · Статус: 🟢
45. Error boundary + Sentry
Что даёт: вместо белого экрана при краше — friendly fallback + автоматический репорт.
От тебя: Sentry free tier (5k events/month).
Что нужно мне: @sentry/nextjs, error boundary.
Сложность: S · Статус: 🟡
46. Relationship / surprise layer
Что даёт: скрытая секция, которую видно только с PIN Даниила: годовщина («92 дня с тобой», «цветы Свете в следующую пятницу»), напоминания про подарки, history ссылок что ей понравилось в соцсетях. Маленькая, но эмоционально очень сильная фича. От тебя: ничего, но сформулировать что именно хочешь напоминать. Что нужно мне:
- Отдельный namespace в storage (encrypted или просто гейт по PIN)
- Countdown-миксин с существующим виджетом
- Настройки «закрытых» напоминалок Сложность: M · Статус: 🟢 · Зависимость: #36 (multi-user)
47. NFC / QR физические триггеры
Что даёт: метка на прикроватной тумбочке → тапнул телефоном → планшет переключается в «ночной режим» + HA гасит свет. Метка в прихожей → «ухожу» сценарий. Физическое ощущение управления домом. От тебя:
- NFC-метки (NTAG213 ~50₽/шт, 10 штук на Ozon ~500₽)
- Настройка Shortcuts на iOS / NFC Tools на Android — тап открывает URL типа
https://tablet.digital-home.site/trigger/nightЧто нужно мне:/trigger/{name}route, выполняющий preset HA-сцену. Сложность: S (код) + S (настройка меток) · Статус: 🟡
48. Health endpoint и мониторинг самого дашборда
Что даёт: /api/health для Uptime Kuma (уже развёрнут у тебя), алерт если tablet.digital-home.site лежит дольше 5 минут.
От тебя: добавить target в свой Uptime Kuma (это меньше минуты).
Что нужно мне: /api/health endpoint отдающий {ok: true, uptime, version}.
Сложность: S · Статус: 🟢
49. Feature flags / widget enable toggles
Что даёт: в Settings «включить/выключить виджет X» без редеплоя. Когда виджетов 15+, одни будут нужны Свете, другие Даниилу.
От тебя: ничего.
Что нужно мне: конфиг в /data/tablet-config.json + conditional rendering.
Сложность: S · Статус: 🟢
50. Internationalization (RU / EN toggle)
Что даёт: для гостей (если придут иностранцы) или если Даниил хочет «поработать на английском». От тебя: ничего. Что нужно мне: i18n ключи, переключалка в Settings. Большое количество строк — нетривиально. Сложность: L · Статус: 🟢
Что я бы делал следующим (если бы решал сам)
- Своя экосистема (A–H) — хотя бы 2-3 виджета (habits streak, pulse balance, homelab health). Это то, что делает дашборд твоим, а не «ещё один погодный виджет».
- PWA + Fully Kiosk (идея #1) — фундамент для «это выглядит как appliance»
- WebSockets HA (идея #2) — больше всего wow за трудозатрат, особенно если потом добавишь реальные устройства
- Утренний режим (идея #4) — сразу новая модальность дашборда
- Telegram shopping bot (идея #5) — замыкает Свету в семейный сценарий
- Cooking mode (7b) — специфичный ритуал, сильно меняет восприятие
- Выбор остановок из UI (идея #6) — убирает хардкод, делает виджет конфигурируемым
Что нужно от Даниила в порядке подготовки
| Подготовка | Зачем | Срочность |
|---|---|---|
| Установить Home Assistant Companion на телефон | геолокация, motion-wake, quick controls | высокая |
Создать Telegram-бота (@BotFather) |
shopping list bridge, notifications | средняя |
| Anthropic API key | рецепты, GPT-based фичи | средняя |
| План квартиры в SVG | интерактивный floor plan | низкая |
| Купить лицензию FKB €7 | снять watermark, remote admin | низкая |
| Купить IR-бластер (Broadlink RM4) | управление TV/AC с планшета | низкая |
| Добавить Я.Станцию в HA | виджет Я.Станции на home | средняя |
| Завести Sentry-проект | error monitoring | низкая |
| Завести OpenRouteService API key | walking times | средняя |
| Завести Spotify Developer App | media control | низкая |
Срочность = субъективная оценка пользы в ежедневном использовании.
Что стоит обсудить прежде чем делать
- Приватность геолокации Светы — она согласна?
- Анонимность vs удобство — храним ли историю команд, логи Telegram-сообщений? Компромисс: хранить 7 дней.
- Hard-коды vs конфиг — каждая новая фича = либо в
/data/tablet-config.json, либо UI в Settings. UI в Settings — дольше, но красиво. - Одна вкладка или много виджетов? — текущий подход bento на Home ограничен по высоте. Когда добавим 5+ виджетов, нужна ли отдельная «widget board»?
- Общая семейная БД или per-user? — сейчас всё shared. Multi-user ломает storage API, но может быть нужен.
✅ Что уже сделано (по состоянию на 23.04.2026)
Вычёркиваем из будущего — не путаемся.
- Базовая bento-сетка Home (редизайн 23.04)
- Семантические CSS-токены (
--surface-1/2/3,--border-subtle, etc.) — тёмная и светлая темы перестали ломаться - TopBar с приветствием в центре (3-col grid: часы · приветствие · сенсоры+HA)
- Виджет трамваев ОРГП СПб — 23/27/39 × 2 направления, живые прибытия каждые 30с
- Заметки с датой (
pinDate) + swipe-to-delete - Forecast swipe между днями в модалке погоды + dot-indicator
- Night-shift tint (22:00–06:00 — тёплый оранжевый оверлей)
- Календарь — CRUD, два владельца (Даниил + Света), фильтры, редактирование inline
- Screensaver — 2 минуты idle → часы+погода
- PIN-авторизация с HMAC cookie на 1 год
- Volume-mount
/data— заметки и PIN переживают редеплой - Календарь — Moscow TZ fix — сегодняшние события теперь показываются сразу в 00:00 МСК
- All-day events fix — end.date = next day + clear opposite field
- Tab transitions — mode=sync, без чёрного моргания
- Анимированная погода SVG + ambient orbs меняющие цвет от погоды
- 7-дневный прогноз с daily details (feels-like, осадки, ветер, влажность на день)
- Device animations — fan-spin, light-pulse, device-breathe
📊 Value × Effort матрица (для быстрого сканирования)
«Value» — субъективный glance-эффект в ежедневном использовании (1-5). «Effort» — время на реализацию (1-5, где 5 = L сложность).
Правый-верхний угол = делать в первую очередь. Левый-нижний = не делать совсем.
| Идея | Value | Effort | Value/Effort |
|---|---|---|---|
| (A) Habits streak widget | 5 | 1 | 5.0 ⭐ |
| (D) Pulse balance | 5 | 1 | 5.0 ⭐ |
| 4. Утренний режим | 5 | 2 | 2.5 |
| 7b. Cooking mode | 4 | 2 | 2.0 |
| 17. Bill tracker | 4 | 1 | 4.0 ⭐ |
| 15. Countdown (Токио) | 4 | 1 | 4.0 ⭐ |
| 2. WebSockets HA | 4 | 3 | 1.3 |
| 5. Telegram shopping bot | 5 | 3 | 1.7 |
| 1. PWA + FKB | 5 | 2 | 2.5 |
| 8. Walking-time | 5 | 1 | 5.0 ⭐ |
| 6. Выбор остановок из UI | 3 | 3 | 1.0 |
| 3. Яндекс.Станция | 4 | 3 | 1.3 |
| 7. Контекстные подсказки | 5 | 3 | 1.7 |
| 13. Таймеры | 4 | 1 | 4.0 ⭐ |
| 19. Photo frame | 3 | 3 | 1.0 |
| 29a. Wake word | 5 | 5 | 1.0 |
| 10. Рецепты AI | 3 | 2 | 1.5 |
| 25. Робот-пылесос | 2 | 1 | 2.0 (только при наличии) |
| 35. Voice assistant | 4 | 5 | 0.8 |
| 41. Floor plan | 2 | 5 | 0.4 |
⭐ — «немедленные победы» (V/E ≥ 4). Эти делаем первыми, независимо от уровня.
🔗 Граф зависимостей
Что блокирует что. Узлы слева — фундамент, справа — надстройки.
Свой API экосистемы (habits, pulse, langlearn)
↓
1. PWA + FKB ─────────────────┐
↓ │
4. Утренний режим ←── 8. Walking-time
│
2. WebSockets HA ─────────────┼──→ 3. Я.Станция виджет
↓ │
7. Контекстные подсказки ←────┤
│
11. Геолокация ───────────────┤
│
5. Telegram bot ──────────────┼──→ 18. Telegram bridge (ответы)
↓ │
Shared lists/notes ←──────────┘
36. Multi-user ───→ 46. Relationship layer (private)
29a. Wake word ───→ 13. Таймеры (voice-activated)
└──→ 35. Voice assistant (full)
17. Feature flags ───→ 21-28. Все conditional виджеты
Вывод: PWA/FKB и WebSockets — узкие места. Без них половина фич Level 2-3 бессмысленна.
🤔 Build vs Buy — что можно не писать самому
Прежде чем писать фичу, проверить: нет ли готового?
| Фича | Готовое решение | Стоит ли писать своё? |
|---|---|---|
| HA dashboard (кнопки устройств) | HA Lovelace, Bubble Card, Mushroom Cards | ❌ Не стоит — Bubble/Mushroom лучше нашего Devices tab, и они уже встроены в HA |
| Погода + календарь dashboard | MagicMirror² | ⚠️ Можно, но MM² для зеркал, не для планшетов; наш UX лучше |
| Kiosk mode | Fully Kiosk Browser | ✅ Покупаем, не пишем |
| Telegram bot для shopping | Grocy + их Telegram интеграция | ⚠️ Grocy огромен для нашей задачи, проще свой бот |
| Recipe recognition | Существующие приложения типа Yummly | ❌ Но свой через Claude API = контролируемо |
| Voice assistant | Home Assistant Voice Preview Edition (железка от HA за ~$60) или Rhasspy | ⚠️ HA Voice — зрелое решение, стоит попробовать вместо своего |
| Password manager на планшете | Vaultwarden (уже установлен в /opt/digital-home/vault/) |
✅ Использовать готовое, добавить autofill |
| Photo frame | Android стандартный Daydream + Google Photos / Simple Gallery | ⚠️ Стандартный Daydream не персонализирован под наш проект, но можно использовать как fallback |
| Bill tracker | Firefly III | ⚠️ Ogromen для одной фичи, проще свой |
| News reader | Miniflux + iframe | ✅ Можно положить iframe на отдельную вкладку |
Правило: если готовое закрывает 80% задачи — использовать его и встроить через iframe/API. Писать своё имеет смысл только если нужна тесная интеграция с другими виджетами (например, погода влияет на контекстную подсказку про зонт → это нельзя в iframe с MagicMirror).
🚫 Что отвергнуто (чтобы не возвращаться)
Идеи, которые обсудили и решили не делать:
- Интерактивный план квартиры (#41) — слишком много ручной работы по SVG, использовать будем раз в месяц. Лучше отдельная вкладка «Устройства по комнатам» с эмодзи.
- Мини-игры для гостей (#33) — гости предпочтут свой телефон. Не наш конкурентный домен.
- Ежедневные ручные чек-боксы привычек — через неделю забросишь. Habits-app делает это правильно через дофамин-цикл, дашборд просто показывает оттуда.
- Множественные квартирные планшеты (кухня + коридор + спальня) — не сейчас. Один планшет, если реально нужно — покупаем ещё, но дашборд один.
- Реклама / внешние push — never.
🗓️ Рекомендуемая последовательность на ближайший месяц
Неделя 1 (пока планшет в пути)
- Создать Telegram-бота (@BotFather) → token в
tablet.env - Install HA Companion на свой телефон → настроить device_tracker + zone «Дом»
- Согласовать с Светой геолокацию (она тоже ставит Companion)
- Собрать список counting events (ДР, Токио, годовщина)
- Узнать координаты дома + walking-time до остановок через Google Maps
Неделя 2 (планшет приехал)
- Сессия 1: PWA manifest + FKB развёртывание на планшете
- Сессия 2: Habits + Pulse виджеты (экосистема A + D) — самый быстрый wow
- Сессия 3: Утренний режим + Countdown виджет
Неделя 3
- Сессия 4: Telegram shopping bot
- Сессия 5: Walking-time интеграция в утренний режим
- Сессия 6: WebSockets HA (инфраструктура для сезона 3)
Неделя 4
- Сессия 7: Cooking mode с Wake Lock API
- Сессия 8: Bill tracker + Countdown для счетов
- Сессия 9: Контекстные подсказки (базовые без геолокации Светы)
- Неделя живём — собираем обратную связь, что мозолит глаз
После — оцениваем, хочется ли Сезон 3 (Яндекс.Станция, rules-engine, notification overlays) или переключиться на релакс-фичи (photo frame, moon phase, countdown polish).
Создано Cosmo, 2026-04-23. Обновлено 2026-04-23 (+ своя экосистема, +5 пропущенных идей, +value/effort матрица, +граф зависимостей, +build-vs-buy, +отвергнутые идеи, +список уже сделанного). См. smart-home-tablet.md (reference), smart-home-tablet-fkb-setup.md (kiosk), smart-home-tablet-vision.md (стратегия).