На стене
Руководство панели
Панель на стене: комнаты, плитки устройств, режимы дома. Панель — пульт и приборная доска, а не мозг: команды она шлёт, состояние показывает, а автоматика и вся конфигурация живут в хабе. Что панель показывает, решает администратор дома в админке; панель хранит только вид.
Панель — это страница /wall того же приложения дома, а не отдельная
программа. Поэтому на стену годится почти любой экран: Android-планшет, старый ноутбук,
iPad, мини-ПК с телевизором. Интерфейс обновляется сам вместе с домом — ставить новый
APK ради новой кнопки больше не нужно.
- Панель говорит только с хабом. Она спрашивает у него дом целиком и слушает события; каким протоколом подключено устройство — забота хаба.
- Работает без интернета. Панель разговаривает с хабом в домашней сети напрямую; к релею уходит, только если до хаба не дозвонилась.
- Быстрый интерфейс. Панель рассчитана на слабое железо: минимум перерисовок, никаких тяжёлых эффектов.
- Любой экран. Нужен браузер. Android-оболочка Bekoz добавляет к нему то, чего браузер не умеет: автозапуск, киоск, гашение экрана и яркость.
- Несколько панелей — одна конфигурация. Панелям можно применить одну и ту же конфигурацию: тогда они клоны, и правка вида на одной появляется на остальных.
Первый запуск
Подключение
Код из админки
- В админке дома: Панели → «Подключить панель» → имя панели (например
kitchen) → шестизначный код. Код живёт 15 минут и срабатывает один раз. - На панели, на экране «Подключение к дому», введите код и нажмите Подключить. Адреса хаба и релея и ключ панель получит сама.
- Дом без интернета — нажмите «Дом без интернета? Указать адрес хаба» и введите адрес вида
192.168.1.10: код обменяется у самого хаба. - Панель уже настроена и её нужно перевесить на другой дом — тот же код вводится в Настройки → Подключение → «Подключить по коду».
Имя панели — это имя железки: одно имя — одна панель. Новый код для того же имени перевыпускает её ключ.
Подключённая панель пустая, пока администратор не применит ей конфигурацию (Панели → панель → «Конфигурация»). Конфигурация — это разрешённые устройства и сцены, настройки экрана, раскладка, PIN и киоск.
availability: true.Строка подключения
Настройки → Подключение → «Настроить вручную» → «Строка подключения»: канал, адреса,
ключ и ID панели упаковываются в одну строку вида BEKOZ1:…. Ту же строку
показывает админка при выпуске кода — для ручного ввода или ADB.
- Скопировать — строка попадает в буфер обмена; храните её как пароль.
- Из буфера — на новой панели вставьте строку: она подключится, а остальное приедет с хаба само. Полное восстановление в один шаг.
Железо
Как повесить панель на стену
Адрес панели — /wall: в домашней сети это http://<адрес хаба>:3000/wall, снаружи — https://app.bekoz.ru/wall. Открыли, ввели код из админки — стена готова.
Дальше вопрос только в том, чем эту страницу держать открытой.
Android: оболочка Bekoz
Лучший вариант для настоящей стены. Приложение com.munrexio.bekoz — тонкая
оболочка: она показывает ту же страницу и добавляет к ней то, чего у браузера нет.
- Автозапуск после включения питания и перезапуск после сбоя.
- Киоск — из панели не выйти; с Device Owner это неубиваемый режим.
- Экран и яркость — панель гаснет ночью и просыпается от касания.
- Тихое обновление самой оболочки из админки дома.
- Запасной экран, если дом не отвечает, и своя диагностика.
Оболочка сама ищет страницу: сначала хаб в домашней сети, потом app.bekoz.ru. Дом без интернета и интернет без дома — оба случая рабочие.
Планшет, ноутбук, мини-ПК с телевизором
- Откройте
/wallв браузере и введите код из админки. - Разверните на весь экран: Меню → На весь экран (или F11).
- В настройках устройства отключите сон экрана — страница просит систему не гасить его сама, но операционная система это иногда переопределяет.
Чего в браузере не будет: яркости, киоска и обновления оболочки. Настройки об этом честно говорят и лишних кнопок не показывают. Всё остальное — комнаты, плитки, шторки, камеры, заставка, гашение экрана плёнкой — работает.
iPad
- Откройте
/wallв Safari. - Поделиться → На экран «Домой» — появится значок, страница откроется без хрома браузера.
- Настройки → Универсальный доступ → Гид-доступ — включите; тройное нажатие боковой кнопки запирает iPad на этой странице.
- Настройки → Экран и яркость → Автоблокировка → Никогда.
Fully Kiosk Browser
Готовая киоск-обёртка для Android, если ставить оболочку Bekoz не хочется. Стартовый
адрес — /wall; включите Keep Screen On, Kiosk Mode и Screensaver в самом Fully. Страница его узнаёт и отдаёт ему экран и яркость;
обновления оболочки в этом варианте нет — Fully обновляется сам.
Каждый день
Экран
Экран на стене и приложение в телефоне — один и тот же экран: те же комнаты, те же плитки, та же раскладка и одно поведение. Разное у них только число колонок (его решает ширина экрана) и то, что нужно именно стене: заставка, гашение экрана, PIN настроек.
Комнаты и жесты
- Свайп влево и вправо — соседняя комната; комната едет за пальцем.
- Вертикальная прокрутка — плитки внутри комнаты.
- Комнаты — на широком экране списком слева, на узком (стена 480×480, телефон) полосой внизу, под большим пальцем.
- Сверху — меню ☰, часы и кнопки режимов дома.
- Меню ☰: тема, связь с домом, поиск устройства или сцены, что в доме просит внимания, «Камеры», «Раскладка экрана». На стене — ещё «Погасить экран» и «Настройки стены», у жильца — уведомления на телефон, выбор экрана и выход.
Плитки
- Касание плитки — карточка устройства. Сцена от касания запускается.
- Кнопка питания на плитке — включить и выключить, не открывая карточку.
- Высокая плитка показывает больше: ползунок яркости у лампы (сдвинули — погашенная лампа включится с этой яркостью), окно шторы, которое тянут пальцем, крупную температуру у датчика и климата. Низкая плитка — одна строка: значок, имя, кнопка.
- Размер «Авто» выбирает экран: камере, шторе, климату, лампе с яркостью и датчику — высокая, остальным — низкая. Плитка не меняет размер, когда устройство включили или выключили.
- Штора на высокой плитке — окно во всю плитку, кнопки под ним: полотно тянут пальцем за край или жёлтую ручку на нём (у рулонной — язычок на нижней планке, у штор — на внутренних краях), пока тянете, в середине виден процент. На низкой плитке значок сам показывает, насколько закрыто окно, а кнопка рядом открывает или закрывает; на широкой — кнопки «открыть», «стоп» и «закрыть».
Правка экрана
Меню ☰ → «Раскладка экрана». Плитки остаются на своих местах, поверх — ручки:
- Ручка ⠿ — потянуть плитку на новое место.
- Список — размер: Авто · Компактная · Широкая · Высокая · Большая.
- Крестик — убрать плитку с экрана. Убранные стоят в конце комнаты погашенными, «Вернуть» ставит обратно. Устройство при этом остаётся в доме: Алиса, автоматизации и другие экраны его видят.
- «Готово» внизу — выход из правки.
Раскладка — часть конфигурации экрана и одна на все устройства: переставили плитку в телефоне — она переехала и на стене с этой конфигурацией, и наоборот. Какие устройства и сцены вообще могут быть на экране, их имена и комнаты решает админка дома. Если у стены задан PIN, правка на ней открывается после PIN.
Карточка устройства
Открывается касанием плитки; содержимое зависит от типа:
- Состояние и «Обновлено» — когда устройство последний раз выходило на связь, заряд батареи и мощность, если устройство их сообщает.
- Свет — включить и выключить, яркость, температура света (если лампа умеет), таймер выключения.
- Розетка — питание, мощность и энергия, таймер выключения.
- Датчик — все показания.
- Штора — открыть, стоп, закрыть, положение. Климат — уставка и режимы. Замок — запереть и открыть. Медиа — транспорт и громкость. Камера — живое изображение на весь экран.
- Настройки устройства — всё, что хаб объявил сверх типа: скорость вентилятора, ионизация, подсветка, целевая влажность, световые сцены. Режимы — кнопками, тумблеры — переключателем, диапазоны — ползунком в границах самого устройства (лампа 2700–6500 K, тёплый пол до 70 °C).
Что показывает панель
Устройства
Устройства живут в реестре дома — один раз на дом, в админке (Дом → Устройства): там их находят в zigbee2mqtt, добавляют своими топиками, подхватывают у адаптеров или импортируют из личного Яндекса. Панель их только показывает: добавить или удалить устройство с панели нельзя.
| Тип | Что умеет на панели |
|---|---|
LIGHT | Вкл/выкл, яркость, температура света, цвет — панель показывает только то, что устройство реально отдаёт в состоянии. |
SWITCH | Вкл/выкл; если устройство шлёт метеринг (power/energy/voltage) —
показания и график мощности. |
SENSOR | Только чтение: температура, влажность, давление, CO₂, освещённость, контакт, движение, дым, газ, протечка, батарея. Открытый контакт и движение подсвечиваются. |
COVER | Открыть, закрыть, стоп, положение 0–100. У штор из Яндекса «Стопа» нет — Яндекс его не умеет. |
SCENE | Кнопка-триггер: касание запускает сцену дома. Состояния нет. |
CLIMATE | Текущая температура, уставка, режим (off/heat/auto/cool), индикация нагрева. |
LOCK | Запереть и открыть; открытие всегда через подтверждение. |
MEDIA | Play, pause, next, previous, stop, громкость, название трека. |
CAMERA | RTSP-поток на весь экран; на плитке — снапшот раз в 15 с, если задан snapshotUrl. Работает не по MQTT. |
Одним касанием
Сцены
Сцена — снимок состояний: свет с яркостью и температурой, розетки, положение штор. Сцены дома заводят в админке (Дом → Сцены, а также в конфигурации панели, где есть захват текущих состояний), панель их показывает плиткой в своей комнате — касание воспроизводит снимок.
Отдельно от них у ламп в карточке есть быстрые сцены (Ярко, Тёплый, Ночник, Закат, Кино) — это просто заготовленные яркость и цвет, они ничего не сохраняют.
Что панель ещё умеет
Возможности
Режимы дома
Кнопки сверху экрана. Какие именно — решает дом: режимы заводят в админке (Дом → Режимы), там же их называют, выбирают иконку и порядок. Новый дом начинает с привычных Дома · Ушли · Ночь · Гости, но это просто первые четыре — можно завести свой «Уборка» или «На работе». Какие из них показывает экран, выбирают в конфигурации (Конфигурации → экран → Экран → Режимы дома); сняли все — полосы кнопок нет.
- Касание кнопки публикует
bekoz/<panelId>/mode/set→{"mode":"<id режима>"}. - Активный режим подтверждает хаб (retained в
bekoz/<panelId>/mode) — панель подсвечивает кнопку. - Что режим делает — решают автоматизации дома: «когда режим стал „Ушли“ — выключить весь свет». Их заводят на странице «Автоматизации» в админке или словами через дворецкого. Режим без автоматизации — просто подсвеченная кнопка.
Таймер выключения
В карточке света и розетки — 5 / 15 / 30 / 60 мин и «Отменить». Панель только публикует запрос, а отсчёт ведёт хаб: таймер переживает и зависание панели, и перезапуск ядра — он записан в базе.
- Один таймер на устройство: новый заменяет прежний, «Отменить» снимает.
- Если хаб лежал дольше часа, просроченный таймер не срабатывает — об этом остаётся запись в журнале.
- Сложнее, чем «выключить через N минут», делается автоматизацией с паузой: «включи свет в коридоре и через 10 минут выключи».
Ночной режим
Настройки стены → Оформление: «Тёмная ночью по расписанию» и окно «Начало … Конец», например 22:00–07:00. Ночью стена переходит на тёмную тему, а яркость экрана (в оболочке Bekoz) падает до ночного уровня из конфигурации.
Скринсейвер и погода
- Включается в Настройки стены → Экран; срабатывает после простоя (от 30 секунд до 10 минут), касание будит. Там же — через сколько гасить экран совсем и какой датчик движения его будит.
- Показывает часы и, если включить, погоду (Open-Meteo, без ключа; город ищется по названию).
- Сводка проблем — до трёх строк: устройство не в сети, открытый контакт, движение, батарея ≤ 20 %, датчик молчит дольше 12 часов. Появляются только при отклонениях.
- Панель можно будить и усыплять извне (топик screen у хаба) — например, от датчика движения в прихожей.
Состояние дома
Первое, что видно в меню ☰: список того, что просит внимания, — кто не в сети, у кого батарея ≤ 20 %, какие датчики молчат дольше 12 часов, что открыто. Касание открывает карточку устройства. Тот же список — на заставке стены.
Алерты и домофон
- Алерт — баннер поверх всего, будит экран: протечка, дверь открыта, стирка
закончилась. Публикуется в
bekoz/<panelId>/alert, уровниinfo/warn/crit, со звуком и таймаутом или до касания. - Камеры — экран «Камеры» в меню показывает все разом, касание открывает на весь экран.
- Домофон — сообщение в
bekoz/<panelId>/doorbellбудит панель, открывает камеру на весь экран и показывает кнопку «Открыть замок».
Раз и надолго
Настройки панели
- Оформление — тема, готовые темы (Океан, Неон, Лимон, Стекло), тёмная ночью, фон с вуалью и прозрачность плиток.
- Экран — заставка и её тайм-аут, гашение экрана, датчик движения, который будит.
- Погода — город для заставки.
- Подключение — ID панели, адрес, по которому держится связь, диагностика, «Отвязать от дома».
- Режим киоска — полноэкранный режим с блокировкой выхода. С Device Owner (провижининг через adb) — неубиваемый lock task и скрытые системные панели; без него деградирует до обычного закрепления экрана.
- PIN настроек — защита от детей и случайных гостей. Приезжает из конфигурации, общий для панелей с одной конфигурацией.
- Диагностика — живой поток событий дома (последние 200) с фильтром и адресом, по которому сейчас держится связь. Пишется, только пока экран открыт.
Настройки живут в конфигурации панели, а не в памяти устройства: они переживают переустановку оболочки, видны в админке и одинаковы у всех стен с этой конфигурацией.
Обновляется оболочка: администратор публикует версию на странице Обновления в админке и отправляет её выбранным панелям. Панель скачивает файл с хаба, проверяет размер, хэш и подпись и устанавливает. Сам интерфейс стены обновляется вместе с домом — для него APK не нужен.
Для интеграторов
Контракт дома (MQTT)
Полная машинная спецификация — файл MQTT.md в поставке Bekoz (единый источник
правды). Здесь короткая версия. Если ID панели пуст, префикс топиков — просто bekoz/….
Сама панель этих топиков не читает и не пишет — она говорит с хабом напрямую. Топики ниже — контракт дома для автоматизаций и чужих интеграций: публикует и слушает их хаб, а до панели он довозит события сам.
Сервисные топики панели
| Топик | Кто кому | Payload и смысл |
|---|---|---|
…/availability retained | хаб → все | online, пока у панели жива связь с хабом, offline после
обрыва. Отдельного heartbeat нет: живость стережёт само соединение. |
…/screen retained | хаб → все | Бодрствует экран или спит. Панель работает датчиком присутствия. |
…/screen/set | все → панель | Разбудить или усыпить. Можно с комнатой или камерой: {"state":"ON","room":"Прихожая"}. |
…/alert | все → панель | {"text":"Протечка!","level":"info|warn|crit","timeout":30,"sound":true} — баннер поверх всего. |
…/doorbell | все → панель | {"camera":"<id|имя>","lock":"<id|имя>","sound":true} — звонок: камера и кнопка замка. Не retained. |
…/mode retained | хаб → панель | Активный режим дома — панель подсвечивает кнопку. |
…/mode/set | все → хаб | Переключить режим дома извне. |
…/timer/set | все → хаб | {"topic":"<командный топик>","payload":{"state":"OFF"},"minutes":15} — выполнить payload через N минут; "minutes":0 отменяет. |
Payload устройств
Состояние читается из state-топика, команды публикуются в <state>/set.
Формат единый для z2m и своих топиков:
# LIGHT — состояние
{"state":"ON","brightness":180,"color_temp":350,"color":{"hex":"#FFE02C"}}
# LIGHT — команды
{"state":"OFF"} · {"state":"ON","brightness":128} · {"state":"ON","color_temp":454}
# SWITCH (+ метеринг в состоянии, если устройство его шлёт)
{"state":"ON","power":42,"energy":1.5,"voltage":230}
# SENSOR — только состояние, любые из полей
{"temperature":21.5,"humidity":48,"co2":800,"illuminance_lux":120,
"contact":true,"occupancy":false,"battery":90}
# COVER
{"position":75} · {"state":"OPEN|CLOSE|STOP"}
# CLIMATE
{"local_temperature":21.5,"current_heating_setpoint":22,
"system_mode":"heat","running_state":"heat"}
# LOCK
{"state":"LOCK|UNLOCK"}
# MEDIA
{"state":"PLAYING","volume":35,"title":"…","artist":"…"}
# команды: {"state":"PLAY|PAUSE|NEXT|PREVIOUS|STOP"} · {"volume":50} Конфигурация
- Снимок в
bekoz/<panelId>/config— проекция реестра дома: хаб собирает его из устройств, комнат и сцен дома и конфигурации, назначенной панели. Панели с одной конфигурацией получают одинаковые снимки; панель без конфигурации — пустой. - Панель — не соавтор реестра. Она отдаёт хабу только вид экрана, PIN и киоск; устройства и сцены заводятся в админке и приезжают снимком с хаба.
- Не синхронизируются реквизиты дома, ID панели, файл обоев и история датчиков — первые два переносятся строкой подключения.
Не только Zigbee
Своё железо
Устройство, которого нет в zigbee2mqtt, попадает в дом двумя путями. Оба заводятся в админке, панель их не различает.
- Свои топики. У устройства указывается state-топик и командный топик, формат payload тот же. Важно: состояние само не возвращается — его должно публиковать само устройство или мост. Пока в state-топике ничего нет, панель показывает прочерк.
- Адаптер. Обычный процесс, который владеет железкой или сервисом и показывает их
устройствами в топиках
bekoz/adapters/<id>/…. В поставке — Python-SDK и супервизор, который подхватывает папку адаптера; адаптер падает в одиночку и не роняет хаб. Подробности —ADAPTERS.md.
Node-RED для Bekoz не нужен: режимы, таймеры и автоматизации ведёт хаб. Если он у вас уже есть — пусть живёт рядом с хабом и делает своё; панель об этом ничего не знает.
Что обычно хочется сделать и где это делается теперь:
- Пробуждение по движению — автоматизация дома: датчик сработал → публикация в
bekoz/<panelId>/screen/set. - «Панель офлайн» — за этим следит сам хаб: уведомления настраиваются в админке, Настройки → Уведомления.
- Баннер на стене — действие автоматизации, публикующее в
bekoz/<panelId>/alert.
Когда что-то не так
Частые вопросы
- Панель подключилась, а экран пустой
- Ей ещё не применили конфигурацию: админка → Панели → панель → «Конфигурация».
- Плитка «висит» в старом состоянии
- Откройте карточку долгим тапом: строка «Обновлено …» покажет, когда устройство выходило на связь. Давно — проверьте батарею и сеть устройства. У движения и контакта там же видно, с какого момента держится состояние.
- На плитках нет бейджа «Не в сети», хотя лампа обесточена
- Включите availability в zigbee2mqtt (
availability: true) — панель читаетzigbee2mqtt/<name>/availability. - Кнопки режимов не подсвечиваются
- Активный режим подтверждает хаб retained-сообщением. Проверьте, что хаб на связи и что тумблер «Режимы дома» включён в Настройки → Экран.
- Таймер не сработал
- Отсчёт ведёт хаб, и он переживает перезапуск. Проверьте, что хаб на связи и что в запросе стоит командный топик устройства — по другому таймер не сработает.
- Своё устройство не обновляет состояние
- Панель показывает то, что лежит в state-топике. Публиковать состояние должно само
устройство, мост или адаптер: команда в
…/setсама по себе состояния не меняет. - Как понять, что панель зависла
- В админке, на странице «Панели», видно, кто в сети. Автоматизации могут
подписаться на
bekoz/<panelId>/availability: хаб держит тамonline, пока панель на связи, и ставитofflineсразу после обрыва. - Как перенести панель на новое устройство
- Выпустите код на то же имя панели в админке и введите его на новой железке — она заберёт адреса, ключ и конфигурацию сама. Без интернета выручит строка подключения. Заново выбрать придётся только обои — это локальный файл.
- Несколько панелей показывают разное
- Проверьте в админке, что им применена одна и та же конфигурация. Панели с разными конфигурациями и должны показывать разное — это и есть смысл конфигураций.