Yogui79 / IntexPureSpa

Intex® PureSpa remote control for Home Automation
MIT License
61 stars 15 forks source link

Intex® PureSpa remote control for Home Automation

Control your PureSpa over MQTT or MySensors (comming soon) for #28458, #28462, 28457(US), #28461(US) & #28442, #28440. No hardware modification and used with Smart Home (optimized for Jeedom & Home Assistant).

Pictures & Videos

ESP32 to LC12s

Hardware to you need

Software to you need

Pinouts

LC12S ESP32 Arduino
GND GND GND
CS D18 D5
SET D19 D6
TX D16 D2
RX D17 D4
VCC 3.3V 3.3V

ESP32 to LC12s

Channel and Network id detection

The channel and the network id are unique for each spa, specialy the network id. Unfortunately, I am not yet able to read these parameters from the pump controller. But I write some help software for that.

PureSpa Software

Now you can Download the PureSpa code change it to your settings and upload it to your ESP or Arduino

Channel and Network id configuration

Put the Channel and Network id you found previously here (in hexadecimal)

#define USED_NETWORK_ID    0xFFFF
#define USED_CHANNEL       0x48

Choose your PureSpa model

Uncomment one line for your Spa

//#define _28458_28462_
//#define _28442_28440_

MQTT communication protocol

Write your WIFI settings in this lines

const char* Myssid = "YourSSID";
const char* Mypassword = "YourPassword";

Write your MQTT settings in this lines

"YourMQTT-Broker-IP",     // MQTT Broker server ip
"NameMQTTBroker",        // Can be omitted if not needed
"PasswordMQTTBroker",   // Can be omitted if not needed
"IntexSpa",            // Client name that uniquely identif your device. Don't change the name!
 1883                 // The MQTT port, default to 1883. this line can be omitted

MQTT topic & payload

Description Topic String Payload Payload Only Status
Power IntexSpa/Cmd Power on off ON=1 OFF=0 -
Water Filter IntexSpa/Cmd water filter on off ON=1 OFF=0 -
Water Filter Timer IntexSpa/Cmd water filter time hours=2,4,6 - -
Bubble IntexSpa/Cmd bubble on off ON=1 OFF=0 -
Heater IntexSpa/Cmd heater on off ON=1 OFF=0 -
Change Farenheit/Celsius IntexSpa/Cmd Farenheit Celsius F=1 C=0 -
Decrease the Temp. IntexSpa/Cmd decrease UP=1 - -
Increase the Temp. IntexSpa/Cmd increase Down=1 - -
ESP Reset IntexSpa/Cmd Reset ESP reset - -
Command Setpoint of Temp. IntexSpa/Cmd Temperature Setpoint "set a number" - -
Status Communication with pump IntexSpa/Communication with pump Com/OK=1 0=lost connection - Yes
Heater Status IntexSpa/heater state standby=1 & ON=2 OFF=0 Yes
Status Setpoint Temp. IntexSpa/Temperature Setpoint - - Yes
Send °F Temp. IntexSpa/Farenheit Celsius - - Yes
Send Actual Temp. IntexSpa/Actual Temperature - - Yes
Send Error Message IntexSpa/Error Number - - Yes
Status Power on IntexSpa/Power on - - Yes
Status Bubble on IntexSpa/Bubble on - - Yes
Status Heater on IntexSpa/heater on - - Yes
Status Filter on IntexSpa/filter on - - Yes
Status Filter Timer IntexSpa/filter setup time - - Yes

Only for Spa #28458, #28462, #28457(US) #28461(US)

Description Topic String Payload Payload Only Status
Water Jet IntexSpa/Cmd water jet on off ON=1 OFF=0 -
Sanitizer IntexSpa/Cmd sanitizer on off ON=1 OFF=0 -
Status Water Jet IntexSpa/Water jet on - - Yes
Sanitizer Timer IntexSpa/Cmd Sanitizer time hours=3,5,8 - -
Status Sanitizer IntexSpa/Sanitizer on - - Yes
Status Sanitizer Timer IntexSpa/Sanitizer setup time - - Yes

Debugging

You can debug on Arduino IDE with serial print on baud rate: 115200

Options to debug
Uncomment to debug

//#define DEBUG_RECIEVED_DATA
//#define DEBUG_SEARCH_CHANNEL
//#define DEBUG_SEND_COMMAND
//#define DEBUG_PUMP_DATA
//#define DEBUG_CONTROLER_DATA
//#define DEBUG_CONFIG
//#define DEBUG_MQTT
//#define DEBUG_SEND_VALUE_TO_HOME_AUTOMATION_SW

OTA update

You can use OTA update (wireless) via Arduino IDE after the first upload via USB. Screenshot

Changing ID and automatically search

After the correct selection of the model (see point: Choose your PureSpa model) and after the first start, a channel search is performed (slow blinking of the LC12s). After a successful search (fast blinking of the LC12s) the channel is stored in the ESP (EEPROM), this can take up to 10 minutes.

After the next start the memory is read out and checked if the channel is correct.

  1. If yes, then the code is continued.
  2. If no, then a new search is started until a channel is found.

Please note: It can happen from time to time that the channel changes. You can see the channel search in debug (#define DEBUG_SEARCH_CHANNEL).

For more infos regarding the configuration from the LC12s, can you see it in the code comments and manuel of the LC12s

Home Assistant

Is a powerful open source home automation software. www.home-assistant.io

You can use it as you want, I'll show you an example of a part of the files configuration.yaml and automations.yaml

Screenshot & Video:

  1. OFF - Whrilpool Screenshot
  2. ON - Whrilpool Screenshot
  3. Help/Infos/Reset Screenshot
  4. Heat Timer
  5. Push-notification Screenshot
  6. Video - Screen Recording

Config of Home Assistant:

Jeedom

Is a powerful and innovative open source home automation software. www.jeedom.com

Screenshot & Video:

  1. Screenshot dashboard view
  2. Wiring video thanks @Dim
  3. Configuration video comming soon.

Config of Jeedom:

Template for the MQTT topics are available inside the beta version from the jeedom plugin jMQTT

On jeedom Community thread:

you can found some information/help (in french) on the Jeedom Community thread

The official Intex® PureSpa instructions

Articel No. English German
28462, 28458 & 28457, 28561 Download Download
28442, 28440 Download Download

Known issues

Thanks @LEECHER1 for this documentation and all test he do