Aqualisa Smart Digital Shower

I bought an Aqualisa Visage Q Smart Digital Shower. It equipped an ESP32 chip. It connects to Azure IoT hub in the cloud over Wi-Fi using TLS-enabled MQTT. The hub’s address is aqualisa-production-iothub1.azure-devices.net. I did the followings and am managed to report the shower’s status to Home Assistant. However, I am not yet able to control it. Here is what I did.

  1. My Home Assistant and Mosquitto MQTT broker (non-TLS) are running on a Raspberry Pi. I set up a local DNS record on my router which resolves aqualisa-production-iothub1.azure-devices.net as the Pi’s IP address. If your router does not support it, you will have to install a dnsmasq (e.g. using a Home Assistant add-on), add the above DNS record, and set up a dedicated Wi-Fi network to use the dnsmasq as the DNS resolver. Configure your shower to connect to the Wi-Fi network.
  2. Run a second Mosquitto MQTT broker with TLS-enabled listening on TCP port 8883 on the Pi. It will receive the messages from the shower and forward them to the primary MQTT broker. Here is my config file:
listener 8883
cafile /mosquitto/certs/ca.crt
certfile /mosquitto/certs/server.crt
keyfile /mosquitto/certs/server.key
require_certificate false
allow_anonymous true
connection mosquitto1883
address <primary_mqtt_broker_address>:1883
remote_username <username_on_primary_mqtt_broker>
remote_password <password_on_primary_mqtt_broker>
bridge_insecure true
topic devices/# both 1 "" aqualisa/

The last line appends “aqualisa/” to the messages’ topic after forwarding to your primary MQTT broker.

  1. Connect an MQTT Explorer to both brokers, turn on and off the shower for a few seconds, and ensure you see the shower’s messages. On the second broker, you should see the topic “devices/{sn}/messages/events” where {sn} is your shower’s serial number:

Copy the serial number.
On the primary broker, you should see the topic “aqualisa/devices/{sn}/messages/events”.

  1. Paste the following AI prompt to your favorite AI model (I used Google Gemini). Follow the procedure to add the shower to Home Assistant. Replace {sn} below with the serial number you copied above.

In an MQTT broker, there is a topic “aqualisa/devices/{sn}/messages/events/name=value”. It is a digital shower’s status. The value is like this:

{“message_type”:1,“live_on_off”:0,“live_at_temperature”:0,“live_flow”:2,“live_outlet”:1,“live_temperature”:32,“live_timer”:0,“live_time_run”:0,“request_on_off”:0,“request_flow”:2,“request_outlet”:1,“request_temperature”:38,“request_timer”:0,“usage_run_time”:12,“usage_average_temperature”:22,“timestamp”:“2026-11-07T20:55:07Z”}

Provide detailed procedure on how to add an MQTT device on Home Assistant’s graphical user interface. The device shall contain 3 sensors:

  1. a binary sensor to indicate the shower’s on/off state. The attribute is “live_on_off”.

  2. a temperature sensor to indicate the water temperature. The attribute is “live_temperature”.

  3. A usage run time. The attribute is “usage_run_time”.

Then you will have the shower set up in Home Assistant.

If you know how to turn on or off the shower, please share what topic and message should be published.

1 Like

I should not be able to “control” the shower because the command message is HMAC-SHA256 signed. See the echo_string in the following JSON published from the cloud to the shower:

{
  "message_type": 1,
  "live_on_off": 1,
  "live_at_temperature": 1,
  "live_flow": 2,
  "live_outlet": 1,
  "live_temperature": 20,
  "live_timer": 0,
  "live_time_run": 0,
  "request_on_off": 1,
  "request_flow": 2,
  "request_outlet": 1,
  "request_temperature": 38,
  "request_timer": 0,
  "mode_adc": 249,
  "echo_string": "VVXVR6jQZCTvwFR3uqFLdpPo6iTedkjWNt+7HmTPexycTiF7/1ZEbI0g8mK7zKUw1mnR94c/rQETwQPyJpnbPzZq/tMtuI/5JGU2/+7e1Ldu5j0UQs778fTuTTVdAwvqAmo7JU1O63Jf4pW7KMQK/7KNgZnfZoxT8fJjJMkrWXo=",
  "timestamp": "2025-11-09T14:15:54Z"
}

Thanks for this, I got a similar shower last week and have been looking for a way to do this! Just need to set up the second MQTT broker and test it out.

Are you able to set it up with the instructions?

Yes, your instructions were great.

In the end I decided to go down another route. I only wanted to see when the shower first came on in the morning to start my Good Morning routine. So I put a smart plug on the shower which senses when the power spikes and the shower is on!