Панель Home Assistant на Sonoff NSPanel Pro

Ця стаття – переклад та адаптація розповіді ентузіаста розумного будинку, який називає себе blakadder. Нижче описано його досвід, а в статті використано його матеріали. Посилання на оригінал статті blakadder

Попередження: я використовував девайс з передсерійної партії, який був безкоштовно наданий мені компанією Sonoff. Можливо, деякі його елементи бути змінені з офіційним випуском.

Поки що ви можете придбати NSPanel Pro зі знижкою перед відкриттям продажів у магазині Itead.

Після шоку та розчарування випуском прошивки та вересневого оновлення я вирішив піти далі. Найпростіший спосіб зробити це за допомогою Android Debug Bridge.

Розбирання

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

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

Підключіть USB-кабель до USB порту комп’ютера.

Встановіть ADB і драйвери

Завантажте драйвери ADB і встановіть їх.
Коли NSPanel Pro буде підключено до комп’ютера через USB, у диспетчері пристроїв має з’явитись новий пристрій.

device_manager

Завантажте Android platform-tools і розпакуйте вміст у папку. Відкрийте командний рядок і перейдіть до цієї папки. У моєму випадку він був розташований за адресою D:\adb

Надання доступ до ADB

Виконати команду adb devices -l . У ньому буде перелічено всі підключені пристрої з додатковою інформацією.

D:\adb>adb devices -l
List of devices attached
F061512302021100016 device product:px30_evb model:px30_evb device:px30_evb transport_id:3

Виконайте команду adb tcpip 5555, щоб налаштувати NSPanel Pro на прослуховування з’єднання TCP/IP на порту 5555

D:\adb>adb tcpip 5555
restarting in TCP mode port: 5555

Тепер ви можете підключитися до NSPanel Pro бездротовим способом. Якщо ви не знаєте IP-адресу, введіть adb shell ip -o a , щоб дізнатися її.

Спробуйте це, поки ви ще підключені за допомогою USB, щоб переконатися, що все працює.

D:\adb>
adb connect 10.1.1.144
connected to 10.1.1.144:5555

Знову зберіть панель і підключіть її до силового блоку. Після завантаження запустіть adb connect [ip_address].

Використання ADB

З доступом до ADB у вашому розпорядженні є потужний інструмент для контролю NSPanel Pro. Ви можете використовувати його для встановлення та видалення додатків, отримання списку запущених процесів, звільнення пам’яті та навіть отримання root доступу.
Ось список команд ADB, які можна використовувати на NSPanel Pro.

Корисним є імітація натискання кнопки «Додому» за допомогою adb shell input keyevent 3.

Ви також можете легко отримати root-доступ за допомогою adb root.

Надішліть файл до NSPanel Pro, наприклад, нові шпалери:

D:\adb>adb push wallpaper.jpg /sdcard/Download/wallpaper.jpg
wallpaper.jpg: 1 file pushed, 0 skipped. 18.5 MB/s (52101 bytes in 0.003s)

Встановлення програми запуску (launcher)

Щоб полегшити роботу з NSPanel, вам потрібно змінити додаток запуску за замовчуванням. Тобто панель керування eWeLink, на більш звичну. Я вибрав Lawnchchair, так як він має малий розмір. Завантажте APK у папку adb і встановіть його на NSPanel Pro за допомогою ADB.

D:\adb>adb install ch.deletescape.lawnchair.plah_2001.apk
Performing Streamed Install
Success

D:\adb>adb shell monkey -p ch.deletescape.lawnchair.plah 1
bash arg: -p
bash arg: ch.deletescape.lawnchair.plah
bash arg: 1
args: [-p, ch.deletescape.lawnchair.plah, 1]
arg: “-p”
arg: “ch.deletescape.lawnchair.plah”
arg: “1”
data=”ch.deletescape.lawnchair.plah”
Events injected: 1
## Network stats: elapsed time=32ms (0ms mobile, 0ms wifi, 32ms not connected)

 

Встановіть за замовчуванням програму запуску у меню Settings – Apps & notifications – Advanced – Default apps і встановіть Lawnchair як «Домашня програма».

statusbar

Щоб увімкнути панель навігації, перейдіть до Налаштування – Дисплей і ввімкніть «show status bar»!

Тепер ви можете вільно орієнтуватися в інтерфейсі користувача.

Home Assistant

Ви можете встановити програму Home Assistant Companion, але у мене виникли проблеми з підключенням, ймовірно, через дуже старий компонент WebView, який використовується в системі. Те ж саме стосується веб-переглядача Fully Kiosk, який скаржиться, що компонент занадто старий.

Але ви все ще можете отримати доступ до інформаційної панелі Home Assistant через браузер. Завантажте Chromium для Android і встановіть його за допомогою команди ADB adb install chromium-106.0.5228.0.apk (номер версії може бути іншим).

D:\adb>adb install chromium-106.0.5228.0.apk
Performing Streamed Install
Success

Це займе деякий час, адже apk файл великий! Ви можете запустити його за допомогою панелі запуску або за допомогою команди adb shell monkey – p org.chromium.chrome 1

Він буде скаржитися на відсутність служб Google Play, просто проігноруйте це повідомлення. Введіть URL-адресу Home Assistant і відкрийте її.

Після переходу на інформаційну панель Home Assistant торкніться трьох крапок і додайте сторінку на головний екран.

Натискання піктограми відкриває повноекранний режим інформаційної панелі Home Assistant.

chromium7

Можливості

Це рішення не є ідеальним, але це те, що наразі мені вдалося. Найкращим варіантом було б масово звернутися до Itead і вимагати підтримки програми HA Companion або Fully Kiosk Browser із коробки. Вони отримають більше продажів, ми отримуємо більше можливостей, це взаємовигідний сценарій, і тепер ми знаємо, що це можливо. Принаймні вимагайте оновлення WebView до сумісної версії. Твітніть їх на https://twitter.com/ITeadstudio, пишіть їм на support@itead.cc або за допомогою контактної форми!

Колупання в adb-середовищі виявило деякі цікаві речі, такі як mosquitto, сценарії bash для взаємодії з модулем Zigbee, сліди RS485, реле 1 і реле 2 і, можливо, багато іншого. Я сподіваюся, що більше розробників, які розуміються на Android дійсно повністю розблокують цей пристрій.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *