This application is a custom developed apk which allows devices running on the
to leverage certain features such as proximity sensor, light sensor, and Home Assistant integration.
Application mainly tested on NSPanel Pro but may works on other devices.
Donate me if you want:
Actual plan is to have a release in every Quarter.
Release is dedicated to:
Release is dedicated to:
Note Don't forget to activate main switch
Sonoff NSPanel Pro is a smart home control panel which based on Android 8.1 Oreo (AOSP) system.
Device info: https://itead.cc/product/sonoff-nspanel-pro-smart-home-control-panel/
Download ADB drivers and install.
Download Android platform-tools unzip it to a folder.
Get device ip address (if you dont know what is ip-address and dont know how to find it do not root the device, you will mess the device up)
[!TIP] You'll find the ip address within Sonoff app settings or in your router dhcp clients view
Registrate your device with the eWeLink app just follow the device registration process
To gain ADB access tap on the device id quickly multiple times to enable developer mode
after you consider the adb agreement you will able to acces device through the adb command
[!WARNING] If you accept the agreement you won't be able to revert it.Your device will be rooted forever. You wont get any new future updates forever.
[!TIP] With my RootTool app you can update your device
start adb listen:
adb tcpip 5555
list devices
adb devices -l
connect device
adb connect <ip-address>
connect device
adb connect <ip-address>
list devices
adb devices -l
press home button
adb shell input keyevent 3
press power button
adb shell input keyevent 26
show notifications
adb shell cmd statusbar expand-notifications
install app
adb install <apk>
To handle the device more easily, you need to install a custom launcher.
Download UltraSmall Launcher
If you want to use Home Assistant companion app you must update factory provided webview component.
[!TIP] You dont need to instal Xposed root firmware as blackadder mentioned.
Just simple download com.android.webview_108.0.5359.128.apk or any new version which supporst arm64-v8, armeabi-v7a on firmware above 1.5 Lineageos version can be installed!
WebView 108 for firmware >=1.5
Under frimware version 1.5 you have two options, update firmware by my frimware updater or simply install this resigned version below.
install webview apk
adb install -r <webview>
[!NOTE] If the version number is marked, then it is only valid for that version.
version 2.x supports all v1.x features. Except the automatic brightness change which was experimental and replaced by light-level triggered brightness control see [Brightness category] (#brightness-category).
[!NOTE] All configuration for v1.x is obsolete in 2.x therefore 2.x app must be reconfigured before use.
Main switch allows for the complete disabling of the application's functions. Controls the background activities. Purpose of being able to disable the whole app without uninstall.
This tab groups all screen or display related configurations and features. Such as how and when to turn on and off or how bright is it. etc
Category for all wake-up related functions.
Unfortunatelly this AOSP 8.1 build does not support wakeup device which causes that if official app is not running the device will go to deepsleep. Due to the lack of power button, just a hard reset (unplug) can wake up the device.
Wake up the device by hand wave.
[!NOTE] Before turning it on, set up the sensor parameters on the sensor tab.
Wake up the device by touch gesture. Multiple gestures can be selected the behaviour will be the same it will wakes up the device.
[!IMPORTANT] FW Over 1.10.0 wont support touch gestures.
Dismiss the ScreenSaver if it is active. Only works if wake-on-wave is enabled.
Category for all brightness related functions.
Set system level display brightness. On certain cases it is used to set if no light change event is triggered.
Set brightness to the given value if light-below event is triggered.
[!NOTE] Before turning it on, set up the sensor parameters on the sensor tab.
Set brightness to the prescribed value.
Set brightness to the given value if light-above event is triggered.
[!NOTE] Before turning it on, set up the sensor parameters on the sensor tab.
Set brightness to the prescribed value.
Category for all (lcd) screen related functions.
Set system level display sleep time. After the prescribed interval the screen will be turned off if another function does not override it, for example: Prevent turn off or Screen begin
Defines the sleep mode behaviour
[!IMPORTANT] touch gestures only available in this mode
During a predefinied period it turns on the screen and it remains on untile the end of the interval.
The time when the screen-on begins on weekdays.
[!TIP] If both begin time and end time is "00:00" it will be disabled or ignored If the weekend is disabled, weekdays will jump over weekends. So after friday the monday will be scheduled. If the weekend is enabled, after friday the weekend intervall will take effect.
The time when the screen-on ends.
The time when the screen-on begins at weekends
[!TIP] If both begin time and end time is "00:00" it will be disabled or ignored If the weekdays is disabled, weekends will jump over weekdays. So after sunday the next saturday will be scheduled. If the weekdays is enabled, after sunday the weekdays intervall will take effect.
The time when the screen-on ends.
Category for proximity sensor related functions.
Proximity sensor live value shows actual sensor value and shows the trigger when it is activated.
Above the value the trigger event will be create
Category for proximity sensor related functions.
Light sensor live value shows actual sensor value and shows the trigger when it is activated.
Below the value the trigger event will be created
Above the value the trigger event will be created
Autostart or launch other app after device restart
Launch selected application after device reboot
Start selected application after WIFI connection is established
Monitoring selected app daily if it is not running, then it starts it.
Switch to selected application
Always shows the system level navigation bar.
Available if NavigationBar is turned off. An edge swipe up enables the navigation bar for X seconds.
Shows the system level notification bar by edge swipe down. Originally it is disabled in Sonoff system.
Switch to default launcher
The selected gesture will switch back to this application.
Not yet available planned to v2.2
Category for MQTT and HomeAssistant related settings
The current state of the connection.
Possible states:
Setup MQTT Connection
If turned off the connection will be dissconnected
If turned off the connection will be dissconnected. Turn on only if you setup connection parameters correctly
The current state of the connection.
You can select the messages you want to publish on this channel. Only publish those that you really need.
Currently supported events:
MQTTv3 server host name only non-SSL is available in v2.1
MQTTv3 server port only non-SSL is available in v2.1
MQTTv3 client id
Configured username
Configured password
Automaticall generated Device Id is not quite human friendly, Hostname can be used as deviceid.
[!IMPORTANT] Hostname must be set
Unique device id
Enables MQTT Integration based integration, events and diagnostics are implemented.
If enabled it sends configuration message to the proper topics
[!TIP] In case of configuration trouble, off-on will reconfigure the HA endpoint
Topic prefix usually homeassistant the default
Plays audio on certain events such as identified touch gestures on in order to provide audio-based feedback.
Autostart NSPanelTools app after device restart
This option reboots the device
Changes the device hostname
Changes log level to debug
Changes log level to verbose
Display app log
Integration based on HA official MQTT module.
[!IMPORTANT] Currently MQTT Support only non SSL connections.
Configured device data:
Device entities are unique thus generated entity name can be renamed anytime.
If an event has not been sent the value is unknown
Sends event when the proximity sensor trigger is occured. Event values:
Sends event when the touch event is triggered.
[!IMPORTANT] Touch events can only be triggered when the screen is off.
Event values:
Sends light sensor triggers is occured. Event values:
Room: Automation for touch events, every room has its own automation
Entrance: Special configuration for home entrance
description: "bedroom nspanel2 automation"
trigger:
- platform: state
entity_id:
- event.nspanel2_touch
attribute: event_type
condition: []
action:
- choose:
- conditions:
- condition: state
entity_id: event.nspanel2_touch
attribute: event_type
state: swipe_up
sequence:
- service: cover.open_cover
target:
entity_id:
- cover.rollershutter_0013
device_id: []
area_id: []
data: {}
- conditions:
- condition: state
entity_id: event.nspanel2_touch
attribute: event_type
state: swipe_down
sequence:
- service: cover.close_cover
target:
entity_id: cover.rollershutter_0013
data: {}
- conditions:
- condition: state
entity_id: event.nspanel2_touch
attribute: event_type
state: swipe_right
sequence:
- service: cover.stop_cover
target:
entity_id: cover.rollershutter_0013
data: {}
mode: single
Switch controls the background activities. Purpose of being able to disable the whole app without uninstall.
Unfortunatelly this AOSP build does not support wakeup device which causes if official app is not running the device will go to deepsleep. Due to the lack of power button, just a hard reset (unplug) can wake up the device.
Wake up on wave and touch feature are implemented in the app btw that was the original purpose of the app.
This feature enables to run an application as a default app such as HomeAsistant.
This feature enables utilization of light sensor.