If your hot tub does not have a ACE or Freshwater salt system, you can have the ESP32 emulate a ACE module on your spa remote. It will allow you to control the salt level from 0 to 10, turn on/off the boost mode, press the text button and see a status bar from 0 to 7. When enabled, all these values will be sent to Home Assistant to be used for automations much like the audio module emulation. To enable this feature, add the ace_emulation: true
to the IQ2020
section like this:
iq2020:
uart_id: SpaConnection
ace_emulation: true
Then, add the following in each of the corresponding sections. If you use the audio module emulation, you will already have the buttons
sensor.
sensor:
- platform: iq2020
buttons:
name: Buttons
number:
- platform: iq2020
id: salt_status
name: Salt System Status
datapoint: 6
switch:
- platform: iq2020
name: Salt System Boost
id: salt_system_boost
datapoint: 8
Once done, reflash the ESP32. You will need to reset the hot tub remote to see the new music icon. To do this, press and hold any inactive part of the display for about 15 seconds and the remote will go black and reset. Video demonstration here. The remote takes a few minutes to reboot, it's not a fast device.
The button sensor will show 0 or unknown, but will momenteraly pulse to the following values when a button is pressed:
5 - Test
6 - Boost on
7 - Boost off
The button pressed will show rapidly and so, no need to increase the polling rate to get a quick response. The "Salt System Status" is set by Home Assistant, but read-only on the remote. Other values can be changes on both remote and Home Assistant. The new sensors will look like this.
You will see a new screen on your remote that looks like this.
If you change values from Home Assistant, you will need to move out of the ACE screen and back to see the new values. Otherwise, it's up to you to create your own Home Assistant automations to make this screen do anything you like.