The AmpliPi wallpanel is an in-wall touch interface for controlling an AmpliPi Zone or Group of Zones in your house. It uses the NSPanel by Sonoff with custom controller firmware and display UI. Since it uses the NSPanel, the firmware can be loaded on an existing panel by following these steps. Preloaded wall panels can be purchased at the MicroNova web store.
After installation, the wallpanel needs to be connected to the same Wi-Fi that the AmpliPi is connected to. To do this, go to settings, connection, then select an SSID from the drop-down and enter the password. Press connect then return to settings to select a zone or group. Going back to the home page, the device should now be operational. If not, then you may need to specify the AmpliPi's IP manually in the connection settings.
Built on a MicroPython runtime and runs on an ESP32. It can adjust zone and group volumes using AmpliPi's API.
The two physical buttons can control two low-powered light circuits, see the NSPanel specifications for full details. We are planning on exposing the physical buttons via MQTT in the future.
The NSPanel uses a Nextion display for the touch panel display that communicates directly with the controller. The UI has been completely customized for controlling an AmpliPi Zone or Group.
The ESP32 controls the touch panel by sending and receiving Nextion instructions over UART to the display's STM32.
The panel uses GitHub releases to provide firmware and UI updates. New releases available will be indicated by a red exclamation point next to the settings icon.
If you have your own NSPanel, you can flash this software to the device using esptool. You will need a USB to UART converter. Unclip the panel from the base, remove four screws and lift the plastic cover. The five pins, 3V3, RX, TX, GPIO0 and GND are needed, with GPIO0 connected to GND to put the esp32 into bootloader mode.
Once you have this wired up to your flasher, you can download 0.1.22.bin and flash it using the command "esptool.py -p COM3 -b 460800 write_flash 0x0 0.1.22.bin", where COM3 is your flasher's port.
After this flashes, you can reassemble and install the device into a wall socket. The esp32 should start flashing the nextion display automatically shortly after powering on. Since this bin is likely not the latest version, after setup, you can go into settings->update and update to the latest verison.
Set up an MQTT broker with Home Assistant if you haven't already. It's recommended to use the Mosquitto MQTT broker addon with Home Assistant, you can install it by following the steps here.
Open your configuration.yaml (if you don't know how to do this follow the steps under editing configuration.yaml here) and add the following lines replacing {Room Name}
with the name of the room you placed your wall panel in and the {Switch Name}
's with what you want the respective switches to appear as in Home Assistant.
mqtt:
switch:
- unique_id: switch_1_name
name: "{Switch 1 Name}"
state_topic: "home/{Room Name}/wp/relay1/status"
command_topic: "home/{Room Name}/wp/relay1/cmd"
payload_on: "on"
payload_off: "off"
state_on: "on"
state_off: "off"
optimistic: false
retain: true
- uniqwe_id: switch_2_name
name: "{Switch 2 Name}"
state_topic: "home/{Room Name}/wp/relay2/status"
command_topic: "home/{Room Name}/wp/relay2/cmd"
payload_on: "on"
payload_off: "off"
state_on: "on"
state_off: "off"
optimistic: false
retain: true
For the above changes to take effect you must restart Home Assistant, but you can continue with the final step while it reboots!
Firstly, make sure your Wallpanel is updated to at least version 0.2.0.
On your wallpanel navigate to MQTT settings. (gear icon->advanced->MQTT) and enter the your MQTT broker's ip address, a room name, and if necessary, a username and password for your broker.
At this point your wallpanel should work with Home Assistant, you can test this by simply turning the switches on and off in Home Assistant and on the panel while watching to see if it's state changes on the other.