Settings in 0.9.9
These are the settings on the Configure page of version 0.9.9, in the order the app shows them. Settings marked Advanced are hidden while the page is set to Basic.
Identity
Section titled “Identity”Panel ID
Basic · panel_id
Stable id used in entity IDs and MQTT topics (lowercase, digits, underscores; 63 characters maximum).
Friendly name
Basic · friendly_name
HA device display name.
This is the name shown:
- on the panel’s device card in Home Assistant, whether the panel is connected through Panel Assistant or through MQTT;
- for this panel in other panels’ header switcher.
Left blank, it uses the Android device name, which is also what the Home Assistant Companion app uses by default, and falls back to the model when the device has no name. Unlike Panel ID it is only a label, so you can rename it at any time without affecting entity IDs. It is never copied when settings are applied to another panel.
Manufacturer
Advanced · manufacturer
HA device-card manufacturer override (blank = profile/auto).
Model
Advanced · model
HA device-card model override (blank = profile/auto).
Area in Home Assistant
Basic · ha_area
Where this panel lives, by Home Assistant area name. This can only be changed in ha-paneld if your HA user has admin permissions, otherwise change it on your device in HA.
Broker URL
Advanced · mqtt_broker
Blank auto-discovers HA over mDNS.
Left blank, the panel looks for Home Assistant on the local network over mDNS and connects to tcp://<address>:1883 on the Home Assistant instance that has that port open, which suits the Mosquitto add-on. Enter a URL when your broker runs elsewhere or on another port.
| Scheme | Connection | Port when none is given |
|---|---|---|
tcp://, mqtt://, or no scheme |
unencrypted | 1883 |
ssl://, mqtts://, tls:// |
TLS | 8883 |
Examples: homeassistant.local, mqtts://192.168.x.x, tcp://[fd00::10]:1883 (IPv6 addresses go in square brackets).
WebSocket brokers, paths and user names inside the URL are not accepted; put credentials in Username and Password. How the host name is resolved is set by address family.
Related: Move a panel from MQTT
Username
Advanced · mqtt_user
Credential for this panel.
The user name the panel gives the broker, together with Password. With the Mosquitto add-on this is usually a Home Assistant user you created for the panel.
- Clearing the user name also clears the stored password, so the panel connects without credentials.
- If the broker rejects the pair, the panel status shows that authentication was rejected.
The value is treated as specific to this panel and is not copied to other panels by default.
Related: Move a panel from MQTT
Password
Advanced · mqtt_password
Blank on save keeps the current password.
The password for Username. The form never shows the stored password, so the field is empty each time you open it.
| When you save with | The stored password |
|---|---|
| the field empty | is kept |
| a new password | is replaced |
| the user name cleared | is cleared as well |
| a changed broker URL and the field empty, in Hardened security mode | is discarded |
Like the user name, it is not copied to other panels by default.
Related: Move a panel from MQTT
MQTT + Home Assistant WebSocket address family
Advanced · mqtt_address_family
Applies to the MQTT broker connection and the panel's Home Assistant WebSocket connections; plain HTTPS reads always try every published address. Automatic learns a working route and falls back between IPv6 and IPv4. Prefer IPv4 keeps IPv6 as a fallback; Force IPv4 rejects endpoints with no IPv4 address.
Behaviour
Section titled “Behaviour”Auto-sleep activity source
Basic · auto_sleep_source
Use the panel’s calibrated proximity sensor, Home Assistant Area devices, or touch inactivity.
- Presence modes pause if their source is unavailable.
- Touch inactivity needs no presence setup.
Touch inactivity delay (seconds)
Basic · Default 30 · 5 to 86 · auto_sleep_touch_delay_seconds
When Touch inactivity is selected, switch the screen fully off after this many seconds without a touch.
Auto sleep
Basic · Default off · Home Assistant switch · auto_sleep
Switch the screen off after the selected presence mode’s learned delay or the chosen touch inactivity delay. Manual screen control remains separate.
Navbar mode
Basic · Home Assistant select · navbar_mode
Soft on-screen navigation bar for panels with no native navbar. **Native** leaves navigation to the panel's own Android bar and draws nothing.
Hiding the Android system bars, from the built-in renderer’s fullscreen setting or the Android dashboard lock, still hides a native bar.
Wake on wave
Basic · Default off · Home Assistant switch · wake_on_wave
Wake after a calibrated clear-to-near-to-clear wave. Set up proximity on the panel; touch-to-wake remains available.
Lock Android to dashboard (experimental)
Advanced · Default off · Home Assistant switch · kiosk_lock
Root-only casual-use lock. Hides Android system bars and returns to the selected dashboard within about 3 seconds when another app or Recents opens. It does not hide Home Assistant navigation.
Release it:
- here, or from Home Assistant
- through adb
- with 7 rapid top-left taps
- during the 60-second unlocked window after reboot
App watchdog
Advanced · Default off · watchdog_enabled
Self-heal the dashboard app: relaunch if it dies, return if backgrounded too long.
When the watchdog is on, Panel Assistant checks the dashboard app every 30 seconds and acts on two situations. It never acts while the dashboard is in front.
| Situation | What the watchdog does |
|---|---|
| The app’s process is dead on two checks in a row | Starts the app again |
| The app is running but has not been in front for five minutes, for example because someone opened Settings and walked away | Brings the dashboard back to the front |
| The app keeps crashing as soon as it starts | Backs off instead of relaunching over and over, and shows a health warning; this clears when the dashboard comes back to the front |
The watchdog needs root or the Panel Assistant helper to see the dashboard’s state, and does nothing on panels with neither.
Apps the lock allows
Advanced · kiosk_companion_packages
Android package names, separated by commas, that the dashboard lock leaves in front instead of returning to the dashboard. Use it to reach a companion app's own screens. Needs root.
Touch sound
Basic · Default on · Home Assistant switch · touch_sound
Audible tap feedback (system touch sounds).
The dashboard runs in a web view, which does not play Android’s touch sounds, so Panel Assistant plays its own short click when the screen is tapped, and also turns Android’s system touch sounds on or off for the panel’s native screens. The click plays at the panel’s media volume, so it follows that volume rather than the ringer or notification volume.
The setting changes immediately and is also a switch on the panel’s device in Home Assistant, which makes it easy to silence taps at night from an automation. It does not affect the on-screen keyboard’s own key sounds.
Silence boot chime
Basic · silence_boot_chime
Mute the firmware startup chime.
Some panel firmware plays a chime at startup through the ring and notification volumes. Turning this on records those volumes, then silences them, so the panel restarts quietly. It is on by default. Turning it off restores exactly the volumes recorded when it was turned on. If there is no recorded volume, for example after upgrading from an older version that did not record one, the panel stays silent rather than guessing a level.
Because the chime and ring or notification sounds share the same volume on these panels, leave this on unless you need those sounds from the panel.
Prevent idle dim
Basic · Default on · prevent_idle_dim
Stop the vendor firmware dimming the backlight at the screen-off timeout.
Some panel firmware turns the backlight right down when Android’s screen-off timeout passes, even while the screen is meant to stay on, so the panel goes very dim some time after the last touch.
| State | What Panel Assistant does |
|---|---|
| On (default) | Saves the current screen-off timeout once and sets it to never; the built-in renderer also keeps the screen on while it is showing |
| Off | Puts back the saved timeout, or 60 seconds if none was saved |
It should normally stay on for a mains-powered panel. Screen sleep that you want is better handled by Auto sleep.
Related: Security mode
Keep panel responsive
Advanced · Default on · keep_awake
Keep the network and background services running while the screen is off.
With this on, Panel Assistant holds two Android locks:
- one that stops the processor from going into deep sleep;
- one that stops the Wi-Fi radio from going into power saving.
Without them, a panel with its screen off can stop answering on the network, drop its connection to Home Assistant or miss commands. The screen can still turn off as normal.
It is on by default because wall panels run on mains power. Turn it off only on a battery-powered device where standby time matters more than staying reachable.
Related: Security mode
Display
Section titled “Display”Dark mode
Basic · Default on · dark_mode
Themes ha-paneld's own screens and sets the dashboard's default colour scheme on panels without a system dark-mode setting (Android 9 and older).
A theme picked inside Home Assistant overrides the dashboard default; this web UI always follows the viewing browser’s own preference.
Ambient light source
Advanced · auto_brightness_ha_entity
Blank uses the panel light sensor. Select a Home Assistant illuminance sensor when the panel has no suitable sensor.
Show network warning on dashboard
Advanced · Default on · dashboard_network_warning
Show the network connection warning on this panel's dashboard. Network checks and status remain available when this is off.
Auto-brightness
Basic · Default off · Home Assistant switch · auto_brightness
On-panel engine maps a lux stream to the backlight (off = HA drives the screen).
Minimum level
Advanced · auto_brightness_minimum_percent
Lowest automatic screen level as a percentage. Proposals scale between the minimum and maximum; manual brightness can still go lower.
Maximum level
Advanced · Default 100 · auto_brightness_maximum_percent
Highest automatic screen level as a percentage. Proposals scale between the minimum and maximum; manual brightness can still go higher.
Sensitivity
Advanced · Default 50 · 0 to 100 · auto_brightness_response_percent
How much of the difference from the learned ambient-light pattern is applied to the screen, once the engine has decided a change is real.
- Lower values keep the screen closer to its learned daily pattern.
- While the pattern is still being learned the screen follows the measured light directly.
System
Section titled “System”CPU profile
Advanced · Home Assistant select · cpu_governor
Live CPU scaling profile until reboot; Auto = the SoC's dynamic governor.
Zigbee router
Advanced · Default off · zigbee_router
Run the on-board Zigbee gateway as a router/repeater (NSPanel Pro).
This setting appears only on a panel with a built-in Zigbee gateway, such as the Sonoff NSPanel Pro. Turning it on starts the vendor gateway if it is not already running and switches it to the Repeater role, so the panel can extend an existing Zigbee network run by your own coordinator. To join it to that network:
- Turn this switch on and save.
- Open permit-join on your coordinator.
- Use Request join in the Join Zigbee network row that appears under the switch. The button stays disabled once the router has joined.
Turning it off stops the gateway and frees the radio. Stock firmware often starts the gateway at boot by itself, and Panel Assistant only stops it when you have set this switch explicitly, so a gateway you already rely on is left alone by default.
While the router is on, Panel Assistant samples the gateway once a minute. After a 15-minute start-up grace period it treats the gateway as a runaway if either of these happens:
- it restarts three or more times within ten minutes;
- it stays unjoined while using more than half a CPU core for five consecutive samples.
A runaway gateway is stopped and this setting is turned off, to protect the panel’s responsiveness.
Related: Performance, Sonoff NSPanel Pro
Interface language
Basic · ui_language
Language used by ha-paneld's own interface.
Automatic uses an explicit page override first. Configure setting labels and help can then follow the connected Home Assistant user’s language; browser, device and English are the remaining fallbacks.
Launcher app
Advanced · launcher_package
App the Launcher button brings forward. Blank auto-picks an app. Selecting Panel admin (ha-paneld) also makes and keeps ha-paneld the Android Home app.
Network ADB
Advanced · Default off · Home Assistant switch · network_adb
**Security risk:** keeps classic ADB listening on TCP port 5555 across boots and reconnects.
Enable only during active maintenance on a trusted network. If ADB was enabled outside ha-paneld, it must also be disabled there.
Camera
Section titled “Camera”Camera
Basic · Default off · camera_enabled
Off by default. Serves RTSP video with room audio where a microphone is available and permitted, and JPEG snapshots for Home Assistant. Capture starts only when a client requests media, and the panel shows a red light while the camera is open.
Resolution
Basic · camera_resolution
What a stream gets when its URL does not ask for something else. A stream URL can override it with ?res=, in either direction.
Frame rate
Advanced · Default 15 · 1 to 30 · camera_fps
What a stream gets when its URL does not ask for something else. A stream URL can override it with ?fps=, in either direction.
Bitrate (kbps)
Advanced · Default 2000 · 250 to 8000 · camera_kbps
What a stream gets when its URL does not ask for something else. A stream URL can override it with ?kbps=, in either direction.
Exposure
Advanced · Default 0 · -2 to 2 · camera_exposure
Exposure bias in stops, for a camera that reads a room darker or brighter than it looks. 0 leaves the camera's own automatic exposure alone; the panel clamps this to whatever range the sensor actually supports.
Dashboard
Section titled “Dashboard”Dashboard app
Advanced · dashboard_package
App used for the dashboard. Blank uses ha-paneld's built-in renderer.
This chooses which app draws the dashboard on the panel. The list always starts with Auto and Built-in renderer, followed by any supported Home Assistant Companion app installed on the panel. Using the Companion app as the dashboard is retired: it is listed only so a panel already set up that way keeps working, and Panel Assistant never removes it for you. Other launchable apps are not offered. If the panel is already set to an app the list does not recognise, that choice stays in the list rather than being dropped silently.
| Choice | Stored value | What happens | When to pick it |
|---|---|---|---|
| Auto | blank | Uses Panel Assistant’s own renderer. | The usual choice. |
| Built-in renderer | builtin |
Uses Panel Assistant’s own renderer, named explicitly. | When you want the choice spelled out in a backup or script. |
| A Companion app | its Android package name | Hands the dashboard to that app. | Retired as a panel dashboard. A panel already using it keeps working; switch to Auto once the panel is in Panel Assistant. |
A change takes effect immediately: the panel launches the newly selected app as soon as the setting is saved. Selecting the built-in renderer needs a working Home Assistant connection first, so connect with Browser sign-in before choosing it.
Related: The built-in renderer
Entity filtering
Basic · Default off · dashboard_entity_learning
Built-in renderer: limit Home Assistant's state stream to dashboard-used entities and learn runtime dependencies. Manage sources and pins in Entities.
Home dashboard
Basic · home_dashboard
Dashboard used by reload and idle return.
- Auto lets Home Assistant choose.
- Custom accepts a specific view, e.g.
/dashboard-name/tab-name.
Dashboard theme
Basic · dashboard_theme
Built-in renderer only.
- Follow Home Assistant leaves the dashboard’s light/dark choice to Home Assistant, which is what the Dark mode setting supplies a default for.
- Dark and Light choose it on this panel when Home Assistant is set to Auto, for a kiosk dashboard with no sidebar to reach the Home Assistant profile page from.
- Ambient chooses Dark or Light from the room’s light as the auto-brightness model sees it, and changes only after the room has stayed darker or lighter for a minute; it needs Auto-brightness on, and follows Home Assistant until it has a reading.
An explicit Light or Dark choice in Home Assistant still wins; use Auto or a separate panel user. Returning to Follow Home Assistant hands the choice back exactly as it was found.
Hide Android system bars
Advanced · Default on · dashboard_fullscreen
Built-in renderer only. Hides Android's status and navigation bars while the dashboard is in front; swipe from an edge to reveal them temporarily.
It does not lock the panel or hide Home Assistant navigation.
Hide Home Assistant navigation (native)
Advanced · Default on · dashboard_native_kiosk
Built-in renderer only. After Home Assistant 2026.4.2+ connects, asks its native frontend to hide its navigation.
On by default; an unsupported or failed request leaves the dashboard unchanged. It does not lock Android or inject CSS into the dashboard.
Idle return to home (min)
Basic · Default 0 · 0 to 1440 · dashboard_idle_return_min
Built-in renderer: return to Home dashboard after this many idle minutes. 0 = off.
Idle means nobody has touched the screen. The panel checks once a minute, so the return happens up to a minute after the time you set. It returns only when all of these hold:
- the screen is on;
- the dashboard is connected to Home Assistant;
- the dashboard is not already showing the home view.
The return swaps the view in place, without reloading the page.
The destination is Home dashboard, including a specific tab if you set one. With Home dashboard on Auto, the panel waits until Home Assistant has told it which dashboard is the account’s default.
| Value | Effect |
|---|---|
0 (default) |
Off. The panel stays wherever it was left. |
1 to 1440 |
Returns home after that many idle minutes; 1440 is one day. A value such as 5 suits a shared panel where people wander into other views. |
Related: The built-in renderer
Home Assistant URL
Basic · ha_url
Built-in renderer: Home Assistant base URL, e.g. http://homeassistant.local:8123. Blank disables it.
Long-lived access token
Advanced · ha_token
Use browser sign-in when possible. This fallback can be created in your Home Assistant user profile.
Zoom (%)
Advanced · Default 100 · 50 to 300 · dashboard_zoom
Browser zoom.
Voice assistant
Basic · Default off · voice_enabled
Run the on-panel wake-word listener and send recognised speech to Home Assistant Assist.
Wake words
Basic · voice_wake_words
The wake words to listen for: the bundled Okay Nabu, Hey Jarvis, Hey Mycroft and Alexa, and any you import below.
Wake word pipelines
Advanced · voice_pipelines
Which Home Assistant Assist pipeline each wake word runs. A wake word left on the preferred pipeline follows whichever pipeline Home Assistant prefers.
Audio source
Advanced · voice_audio_source
Android audio source the wake-word listener records from.
Wake sensitivity
Advanced · voice_sensitivity
Wake-word detector threshold, applied as an offset to the model's cutoff score.
- Low requires a clearer match: fewer false wakes, more likely to miss a quiet or distant call.
- Normal applies no offset.
- High matches more readily: faster to wake, more false triggers.
Microphone gain (dB)
Advanced · Default 0 · voice_mic_gain_db
Amplifies the audio sent to Home Assistant for transcription.
These panels expose no platform noise suppression or automatic gain control, so a panel heard from across the room may wake reliably and still transcribe poorly: wake-word detection adapts to a quiet signal on its own and speech-to-text does not.
Raise this if commands are missed or mistranscribed while the wake word works. Wake-word detection is deliberately left on the unamplified signal.
Logging
Section titled “Logging”Ship logs
Advanced · Default off · log_ship_enabled
Forward ha-paneld's own process log — not the full system log — to a central sink (LAN-only, tokens and passwords redacted).
Ship system logs
Advanced · Default off · log_ship_system_enabled
Forward Android system logs to the same sink when Ship logs is on.
- Off by default.
- Requires TCP or HTTP, and root or the installed helper.
- Entries are redacted; high-volume output may be dropped.
Sink host
Advanced · log_ship_host
Log-collector host; blank keeps shipping inert. A scheme or :port here is honoured (udp://collector, collector:1514).
Sink port
Advanced · Default 514 · 1 to 65535 · log_ship_port
Protocol
Advanced · log_ship_protocol
TCP is the default because it reports a sink that is refusing or unreachable; UDP cannot, so a wrong setting there fails silently. Port 514 serves both.
Sensors
Section titled “Sensors”Screen brightness
Basic · Home Assistant light · screen
Current screen state and brightness. Home Assistant presents the light's native 0–255 brightness as a percentage.
Panel volume
Advanced · Home Assistant number · volume
Current panel media volume reported on its native 0–100 percent scale.
Ambient light
Basic · Home Assistant sensor · illuminance
Ambient illuminance measured by the panel light sensor.
This row has no value to edit. Its switch decides whether the ambient light level is reported to Home Assistant as an illuminance sensor in lux, which is on by default. The row appears only on a panel whose light sensor actually delivers readings; a sensor that is declared by the hardware but never reports is treated as absent.
Readings are not retained between connections, because a fresh one follows shortly. The same sensor can drive Adaptive brightness, and that works whether or not this entity is exposed.
Related: Adaptive brightness
Proximity
Basic · Home Assistant binary sensor · proximity
Learned near/far occupancy from a supported proximity source.
This row has no value to edit. Its switch decides whether the panel reports near or far as an occupancy binary sensor in Home Assistant, which is on by default. The value comes from a calibration the panel learns from its own proximity signal, so the raw sensor value never reaches Home Assistant.
The row appears only on panels with a proximity source Panel Assistant can learn from. While the panel does not yet have enough evidence, or the sensor stops responding, the entity is unavailable rather than showing a guess. Proximity level gives the same reading as a percentage, and Wake on wave uses the same source to wake the screen.
Related: Adaptive proximity and wake on wave
Proximity level
Basic · Home Assistant sensor · proximity_level
Normalized learned proximity level from 0 to 100 percent; binary sources report 0 or 100.
Auto-sleep activity
Advanced · Home Assistant binary sensor · auto_sleep_activity
Whether the auto-sleep policy is currently holding the panel awake. The Home Assistant entity provides the activity history timeline.
Temperature
Basic · Home Assistant sensor · temperature
Environmental temperature reported by Android's panel sensor.
This row has no value to edit. Its switch decides whether the reading from Android’s ambient temperature sensor is reported to Home Assistant in °C, which is on by default. It appears only on a panel that has such a sensor. Values are rounded to one decimal place, and changes smaller than 0.1 °C are not published.
Humidity
Basic · Home Assistant sensor · humidity
Relative humidity reported by Android's panel sensor.
This row has no value to edit. Its switch decides whether the reading from Android’s relative humidity sensor is reported to Home Assistant as a whole percentage, which is on by default. It appears only on a panel that has such a sensor, and changes smaller than one percentage point are not published.
Panels with a dedicated room climate sensor report Room humidity instead, and this entity is withdrawn there so Home Assistant does not show two humidity sensors for one panel.
Room temperature
Advanced · Home Assistant sensor · room_temp
Room air temperature from the panel's supported climate sensor (calibration offset applied).
Room humidity
Advanced · Home Assistant sensor · room_humidity
Relative humidity from the panel's supported climate sensor.
This row has no value to edit. Its switch decides whether the relative humidity from the panel’s built-in climate sensor is reported to Home Assistant as a whole percentage, which is on by default. It appears only on panel models whose profile lists that sensor, such as the Tuya TPA10, and it is read through the same route as Room temperature.
The reading is refreshed about once a minute, and changes smaller than one percentage point are not published. No offset is applied to humidity.
Related: Tuya TPA10
Room temperature offset
Advanced · Default 0 · -20 to 20 · room_temp_offset
Correction (°C) added to the reported room temperature — usually negative, since panel self-heating reads high. Per-panel (depends on mounting), so not cloned by a fleet push.
Diagnostics
Section titled “Diagnostics”IP address
Basic · Home Assistant sensor · diag_ip
This panel's LAN IPv4 address as a sensor.
This row has no value to edit. Its switch adds a diagnostic sensor in Home Assistant that shows the panel’s current IPv4 address on the local network. It is off by default, like every sensor on this card, so the panel adds nothing to Home Assistant until you turn one on.
It is useful for opening the panel’s Configure page from a Home Assistant dashboard, or for spotting that the panel moved to a new address after a router change. The sensor updates when the address changes.
CPU usage
Basic · Home Assistant sensor · diag_cpu
Overall CPU busy percentage (root/su panels; unavailable on sandbox-walled panels).
Memory usage
Basic · Home Assistant sensor · diag_memory
Used RAM as a percentage.
This row has no value to edit. Its switch adds a diagnostic sensor in Home Assistant with the share of the panel’s RAM in use. It is off by default. It works on every panel because the source is always readable, and changes smaller than 3 percentage points are not published.
Android keeps memory in use for caches, so a high value on its own is normal. A value that climbs steadily over days is the pattern worth noticing.
Related: Performance
SoC temperature
Basic · Home Assistant sensor · diag_soc_temp
System-on-chip temperature (root/su panels; unavailable on sandbox-walled panels).
Last boot time
Advanced · Home Assistant sensor · diag_boot
When the panel last booted (a timestamp — HA shows the elapsed uptime).
Wi-Fi network
Advanced · Home Assistant sensor · diag_wifi_ssid
Current Wi-Fi network name while Wi-Fi is the active connection. This can identify a location and enters HA history when exposed; Android may hide it unless network-information permission is available.
Wi-Fi signal strength
Advanced · diag_wifi_rssi
Current Wi-Fi received signal strength in dBm while Wi-Fi is the active connection.
Wi-Fi outages (24 h)
Advanced · diag_wifi_outages_24h
Short Wi-Fi dropouts in the rolling last 24 hours. Counts loss of the panel's active Wi-Fi connection only — Home Assistant or broker outages are never counted. If the panel had to cap what it stores, the sensor's is_lower_bound attribute says the value is a floor.
We Home Assistant and everything the Open Home Foundation does.
Comments
Comments are kept in this page's discussion on GitHub, so loading them connects your browser to GitHub. This browser remembers the choice and loads comments on other pages when you scroll down to them.
Comment without a GitHub account