Керуємо Home Assistant за допомогою Kindle
Привіт. У цій статті покажу, як зробити Jailbreak Kindle та створити інтерактивний дашборд Home Assistant. Kindle обрав через те що він має E-Ink екран, який має споживати менше, а також ці пристрої коштують не дорого на OLX. Наприклад свій Kindle 7 Generation версії 5.12.2.2 я купив на OLX за 500 грн.
Щоб не було плутатини наперед скажу для дашборду не потрібен jailbreak, для скрінсейвера потрібен. Прошивати можна і найновіші і ще старіші за мій Kindle. Метоти прошивки різні, результат той самий, можна запускати стороні скрипти та програми. Перед покупкою уточніть модель і серійний номер і перевірте їх на сайті kindlemodding.org.
росія — держава терорист, систематично, масово та цілеспрямовано завдає удари по енергетичній, логістичній та комерційній інфраструктурі України. Підтримайте гривнею збір мого друга з Social Drone на комплектуючі для збору FPV-дронів.
Jailbreak Kindle
1. Обрати прошивку за допомогою помічника. В результаті мені підійшла прошивка WinterBreak2

2. Заповнити пам’ять пристрою для неможливості оновлень
Тут у мене була помилка, скрипт не сприймав мої відповіді. Тому я спочатку завантажив його, а потім запустив локально.

3. Завантажити останній реліз WinterBreak2. Посилання не даю, бо на момент коли ви читаєте останній реліз може бути інший. Слідуйте інструкції.
4. Розархівуйте файл wb2.zip та перемістіть каталог winterbreak2 у кореневу каталог Kindle.

5. Безпечно від’єднайте пристрій від комп’ютера та приєднайте до мережі Wi-Fi
6. Відкрийте Experimental Browser та введіть адресу https://penguins184.xyz/wb2

7. Натисніть кнопку Jailbreak по центру екрану

8. Після процес почнеться і з’явиться дивне вікно. Не лякайтесь. Після у вікні знизу справа з’явиться не дуже помітна кнопка Clouse. Натисніть на неї. Щоб дізнатись чи спрацював Jailbreak у пошуку введіть ;log У мене з’явився новий текстовий файл JAILBROKEN. Це означає, що ви прошиті.


9. Перезавантажте книгу. Для цього відкрийте три крапкм → Settings → Device Options → Restart. Дочекайтеся повного перезавантаження Kindle.

10. Видаліть блокуючі файли. Це можна зробити тим самим скриптом, або руками

Створення дашборду Home Assistant
Для створення інтерактивного дашборду скористаємось як прикладом проєктом Kindle-Home-Assistant-Remote (derekmcauley7)
Якщо коротко, нам потрібно створити HTML файл, з елементами керування. Він буде лежати у файловій системі Home Assistant, а через браузер Kindle ми будемо переглядати цей файл.
1. Отримайте довгостроковий токен в Home Assistant. Для цого перейдіть в бічне меню >> Профіль користувача >> вкладка Безпека >> розділ довгострокові токени доступу >> натисніть кнопку створити токен. Придумайте довільну назву та скопіюйте токен.

2. За допомогою File Editor cтворіть каталог з назвою www. Каталог має знаходитись на тому ж рівні ієрархії, що і configuration.yaml Якщо ви не маєте File Editor, завантажте його у магазині застосунків.

3. У каталозі www створіть .html файл з довільною назвою, наприклад kindle-dashboard.html та вставте цей код. Ось моя варіація цього ж дашборду. Я переклав коментарі та інтерфейс українською. Також додав картки, поведінку та домен для телевізора та кондиціонера.


На перший погляд файл здається великим і складним, але щойно стає зрозумілою структура — все значно простіше. Умовно його можна поділити на кілька частин:
Налаштування — три змінні на початку <script>:
HA_TOKEN— сюди вставляється довгостроковий токенHA_URL— адреса Home Assistant; можна не вказувати, якщо файл лежить у теціwwwсамого Home AssistantAUTO_REFRESH_MS— час автоматичного оновлення сторінки
GROUPS — перелік сутностей і секцій, у яких вони з’являться. Це те, що редагується найчастіше: id сутності з Home Assistant і name — підпис на плитці.
DOMAIN_META — поведінка для кожного домену: яка іконка, який стан вважається «увімкнено», які підписи показувати і які сервіси викликати, якщо домен не підтримує звичайний toggle. Саме сюди додано climate і media_player.
ICONS — іконки у вигляді простих SVG прямо в коді, без зовнішніх файлів, щоб вони гарантовано відмалювалися на e-ink.
Відмальовування кнопок і логіка — решта коду, яку не потрібно чіпати: збирає плитки з GROUPS, отримує стани через API Home Assistant і перемикає пристрої.
Про оновлення станів. Стани оновлюються лише поки сторінка відкрита. Кнопка Refresh унизу оновлює всі плитки одразу. Змінна AUTO_REFRESH_MS задає, як часто це відбувається автоматично — за замовчуванням раз на 30 секунд. Коли Kindle засинає, оновлення зупиняється. Якщо значення 0 стани оновлюватимуться лише вручну кнопкою.
Home Assistant Online Screensaver
Для цього проєкту знадобиться jailbreak. При засипані, чи блокуванні книги Kindle підвантажує гарні зображення з пам’яті пристрою. Цю особливість використовує проєкт Home Assistant Lovlace Kindle Screensaver. Він робить скріншот дашборду Home Assistant, конвертує його в формат зрозумілій Kindle та відображає на заблокованому екрані. З цікавого Home Assistant надзвичайно гнучкий і в дашборді можна відобразити що завгодно в бажаному стилі. Для створення такого скрінсейвера знадобиться Home Assistant застосунок та Kindle розширення.
1. Перейдіть в Home Assistan >> Налаштування >> Застосунки >> Встановити застосунок >> у верхній правій частині натисніть три крапки >> Репозиторії >> Додати >> у вікні що відкрилось вставте https://github.com/sibbl/hass-lovelace-kindle-screensaver

2. У магазині застосунків у пошуку знайдіть та встановіть Lovelace Kindle Screensaver. Для конфігурації нам знадобиться назва дашборду та токен:
Оберіть існуючу, або створіть нову інформаційну панель. Скопіюйте її адресу. До прикладу, посилання, яке я бачу в браузері http://192.168.31.172:8123/dashboard-kindle/0 адреса моєї панелі dashboard-kindle/0
Створіть довгостроковий токен доступу
3. У застосунку Lovelace Kindle Screensaver у вкладці конфігурація вкажіть адресу Home Assistant, адресу інформаційної панелі та токен доступу. Усе інше можна лишити без змін. Не поширюйте свій токен доступу публічно. Запустіть застосунок.

4. При усішному запуску, коли ми натиснемо кнопку відкрити веб інтерфейс ми побачимо чорно біле зображення. Це саме зображення повинно відкриватись якщо звернутись за адресою Home Assistant + порт 5000. У мене це http://192.168.31.172:5000

5. Тепер треба встановити застосунок на Kindle. Для цього спочатку потрібно встановити KUAL. KUAL — Kindle Unified Application Launcher, "єдиний запускач застосунків для Kindle".Це меню для сторонніх застосунків, якого в Kindle немає з коробки. Для цього на kindle modding є окрема інструкція.

- Для мого Kindle підходить перший варіант PEKI. Я його завантажив.
- Наступним кроком завантажив MRPI (MobileRead Package Installer) for Modern Devices.
- Розархівувати kual-mrinstaller-khf, скопіювати каталоги
extensionsтаmrpackagesі перемістити їх в кореневий каталог Kindle.

- Розархівувати PEKI
- Cкопіювати файли
KUAL.shandKUAL.jarдо текиdocumentsв Kindle - Відключити Kindle. Після того на екрані з’явиться піктограма KUAL

6. Ще потрібні два хаки (.bin файли, які змінюють саму систему Kindle) з теми NiLuJe на MobileRead.
linkss — дозволяє замінити штатну заставку своєю картинкою. Створює теку, куди Online Screensaver кладе завантажене зображення. Без нього нічого не запрацює.
USBNetwork — дає SSH-доступ до Kindle. Не обов’язковий, але рятує, коли треба глянути логи.
Для мого Kindle у розлділі з назвою Packages targeting the Kindle 5 треба завантажити файли kindle-linkss-0.25.N-r18981.tar.xz та kindle-usbnet-0.22.N-r19297.tar.xz Потрібно розпакувати ці архіви, знайти в першому файл Update_linkss_0.25.N_install_pw2_and_up.bin в другому Update_usbnet_0.22.N_install_pw2_and_up.bin та скопіювати їх в каталог mrpackages. Увесь інший вміст архівів не потрібен.
Після можна від’єднати Kindle. Зайти в KUAL >> Helper >> Install MR Packages. Обидва пакети встановилися за один прохід, і в KUAL з’явився новий пункт Screen Savers.

Щоб перевірити чи працює заміна зображення, достатньо заблокувати екран, з’явится пінгвінчик.

Після встановлення в корені Kindle з’явиться тека linkss/screensavers з файлом bg_ss00.png — тепер саме він відповідає за заставку. Замініть його своєю картинкою: PNG у сірому, 600×800, з тією ж назвою. Гарні готові зображення є тут, а підготувати власне зручно в редакторі.
7. Наступним кроком потрібно завантажити Online Screensaver. та скопіювати повністю до каталогу extensions, має вийти extensions/onlinescreensaver/bin/... Це розширення за розкладом завантажує картинку із заданої адреси і кладе її в теку linkss, тобто автоматизує заміну заставки.
8. Тепер потрібно відредагувати три значеналаштування — файл bin/config.sh
IMAGE_URI — звідки брати картинку. Це адреса вашого Home Assistant, але з портом аддона 5000, наприклад 192.168.31.172:5000
SCREENSAVERFILE — куди її класти. У конфізі стоїть bg_medium_ss00.png, я замінив на bg_ss00.png, оскільки це назва того зображення з пінгвіном.
Решту можна лишити як є. Там ще є SCHEDULE — розклад оновлень, але типові значення цілком робочі.

Тепер можна перевіряти. У KUAL з’явився пункт Online-Screensaver. Спершу Update now — разове завантаження; приспіть Kindle кнопкою живлення, і замість пінгвіна має з’явитися ваш дашборд. Якщо вийшло — Enable auto-download, після цього картинка оновлюватиметься сама за розкладом і переживатиме перезавантаження.


Бонус: Менеджер пакетів KPM
KPM (Kindle Package Manager) — це менеджер пакетів для Kindle після jailbreak. Він дозволяє встановлювати та оновлювати сторонні програми й модифікації прямо з Kindle. Тобто KPM для Kindle — приблизно як apt у Linux.
Наприклад:
;kpm update — оновити список пакетів.
;kpm install koreader — встановити KOReader. Я також встановив плагіни SimpleUi та App Store.
;kpm install kterm — встановити емулятор терміналу Kterm. У мене не викликалась віртуальна клавіатура. Рішення у файлі kterm.conf в рядку kb_conf_path змінити шлях
;kpm upgrade — оновити вже встановлені пакети.
Також існує велика кількість сторонніх застосунків. Але я поки не розібрався як їх встановити.
Для мене не дуже очевидно було як воно працює. Спочатку команду треба написати в пошуку. І наступний неочевидний крок стати в кінець рядка і натиснути кнопку Enter.


Більше цікавих статей читайте на форумі розумного будинку
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів