Home Assistant Dashboard on Sonoff NSPanel Pro

blakadder
Written by blakadder on
Home Assistant Dashboard on Sonoff NSPanel Pro

How to sideload apps to NSPanel Pro and use Home Assistant dashboard on its screen. There’s now a better way!

Full disclosure: This is a pre production unit sent to me free of charge by Sonoff. Some aspects of it might be changed in official release. Shopping links in this article are affiliate links and I earn a small commission when you buy through them

You can still grab an NSPanel Pro for a presale discount on Itead store.

After the initial shock and disappointment with the release firmware and a smaller scale repeat of that with the September upgrade I decided to go deeper. The simplest way to do that is with Android Debug Bridge.

Edit 2022-09-26 Upon further inspection it seems ADB over TCP is enabled by default so you can skip the disassembly and USB cable. Install ADB and connect immediately with adb connect [ip_address] and skip to Using ADB

Disassembly

Remove the panel from the base. Unscrew the two screws on the back then carefully pry away the back plate starting at this point.

Unscrew two screwsLift the panel

Now unscrew the tiny screws circled. Remove the tape from the touch panel connector and disconnect the connector to lift up the PCB.

Unscrew tiny screwsDisconnect the touch controller

Connect the data USB cable from your computer to the OTG port.

Connect the USB cable

Install ADB and Drivers

Download ADB drivers and install.

When the NSPanel Pro is connected to your computer via USB you should have a new device in Device Manager.

Front

Download the Android platform-tools and unzip the contents to a folder. Open a Command Prompt and navigate to that folder. In my case it is located at D:\adb

Get ADB Access

Run command adb devices -l. It will list all the connected devices with extra information.

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

Run command adb tcpip 5555 to set the NSPanel Pro to listen for a TCP/IP connection on port 5555

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

Now you can connect to the NSPanel Pro wirelessly. If you don’t know the IP address run adb shell ip -o a to find out.

Try it out while still wired to make sure everything is working.

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

Reassemble the panel and plug it into the base again. Once it boots up, run adb connect [ip_address].

Using ADB

With ADB access you have a powerful tool at your disposal to take control of the NSPanel Pro. You can use to install and uninstall apps, list running processes, free memory and even gain root access.

Here’s a list of ADB commands you can use on your NSPanel Pro.

A useful one is a simulated press of the Home button with adb shell input keyevent 3.

You can also easily gain root access with adb root.

Push a file to NSPanel Pro, f.e. a new wallpaper:

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)

Install a Launcher

To make working with the NSPanel easier you need to change the default launcher, eWeLink Control Panel, to a more standard one. My pick was Lawnchair because it’s lightweight. Download the APK to the adb folder and install it to the NSPanel Pro using 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)

Set is as default launcher in Settings - Apps & notifications - Advanced - Default apps and set “Home app” to Lawnchair.

Change default launcher to Lawnchair

To enable the navigation bar go to Settings - Display and toggle “show status bar” to on!

Enable navigation bar

Now you can navigate through the UI properly.

Home Assistant

You can install Home Assistant Companion app but I had issues connecting, probably cause by the very old WebView component used in the system. Same thing goes for Fully Kiosk Browser, which complains the component is too old.

But you can still get access to your Home Assistant dashboard through a browser. Download Chromium for Android and install with ADB command adb install chromium-106.0.5228.0.apk (version number will be different in the future).

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

This’ll take a while, the apk is BIG! You can launch it using the launcher or with adb command adb shell monkey - p org.chromium.chrome 1. It will complain about the lack of Google Play services, just ignore that and proceed. Type in your Home Assistant dashboard url and open it up.

Add HA to ChromiumAdd HA to ChromiumAdd HA to Chromium

After logging in to Home Assistant dashboard, tap the three dots and add the page to Home Screen.

Add HA to ChromiumAdd HA to ChromiumAdd HA to Chromium

Tapping the Assistant icon brings up a full screen view of the dashboard.

Add HA to Chromium

Possibilities?!

This solution isn’t perfect but its what I’ve managed for now. The best option would be to contact Itead en masse and demand support for HA Companion app and Fully Kiosk Browser out of the box. They get more sales, we get more options, its a win-win scenario and now we know it is possible. At the very least, demand an updated WebView to a compatible version. Tweet them at https://twitter.com/ITeadstudio, write them at support@itead.cc or through their contact form and tell them Blakadder sent you!

Digging into the adb shell revealed some interesting things like mosquitto, a bash script to interface with the Zigbee module, traces of RS485, Relay 1 and Relay 2 and probably more. I hope more Android savvy developers will hop on the train and really unlock the device. I do have a sneaking suspicion Android is based on this.

You can still grab an NSPanel Pro for a presale discount on Itead store.

Comments

comments powered by Disqus