Not sure how I can help, I’m not a coder. But I would be very interested to get this further. Please let me …
Hi,
can anybody try to send
{"data":"","sid":"1654467840319","type":3}
with telnet on port 8990.
This is send by android app during device setup.
Mine spa responds with
{"sid":"1654467840319","data":"{\"ip\":\"192.168.x.x\",\"uid\":\"0K040210272020102000008062\",\"dtype\":\"spa\"}","result":"ok","type":3}
And it gets “Product name of " Bubble SPA V28062”
Hi,
Tested with:
{“data”:"",“sid”:“1654467840319”,“type”:3} on telnet port 8990
Spa responds with:
{“sid”:“1654467840319”,“data”:{“ip”:“192.168.#.#”,“uid”:“0K04######################”,“dtype”:“spa”}",“result”:“ok”,“type”:3}’
tested with:
{“data”:"",“sid”:"",“type”:3} on telnet port 8990
Spa responds with:
{“sid”:"",“data”:{“ip”:“192.168.#.#”,“uid”:“0K04######################”,“dtype”:“spa”}",“result”:“ok”,“type”:3}’
Product name Bubble SPA2448 (Intex purespa greywood 6 pers)
Hi,
Did some research about how to change the preset temperature.
To change the set temperature we need to send :
command = {"data": "8888050F0CWWXX", "sid": "", "type": 1}
WW: (desired_temp) in hex
XX: (206- desired_temp) in hex
examples:
desired_temp = 10°C
WW: 0A
XX: C4 (206-10 = 196)
command = {"data": "8888050F0C0AC4", "sid": "", "type": 1}
desired_temp = 20°C
WW: 14
XX: B4 (206-20= 186)
command = {"data": "8888050F0C14BA", "sid": "", "type": 1}
Tested with the following temperatures:
# 10°C --> data= "8888050F0C0AC4" 196
# 11°C --> data= "8888050F0C0BC3" 195
# 12°C --> data= "8888050F0C0CC2" 194
# 13°C --> data= "8888050F0C0DC1" 193
# 20°C --> data= "8888050F0C14BA" 186
# 30°C --> data= "8888050F0C1EB0" 176
# 40°C --> data= "8888050F0C28A6" 166
Hi,
can you please share uid from your reply? Or at least show the end of it?
Mine 2000008062
might map to V28062
i have in product name.
SID is just a time stamp + 3 digits (thousands of second ?), you get the same SID in replay that you sent in request
Hi,
Reply with uid:
{“sid”:"",“data”:"{“ip”:“192.168.1.2”,“uid”:“0K04############2000002448”,“dtype”:“spa”}",“result”:“ok”,“type”:3}
Hi,
There is also a broadcast search possible:
send “spa_request” to 255.255.255.255 on port 10549
Responds with:
{“ip”:“192.168.1.2”,“uid”:“0K04############2000002448” “dtype”:“spa”} on port 10500
Hi, , so the last four digits are model, “Bubble SPA V2” vs. “Bubble SPA” is not derived from this part 200000
.
Thanks for tip for broadcast, i will save it somewhere, it could probably be used for autodiscovery later (i don’t have HA in same network as my wifi devices, so it won’t work for me)
Hello guys how can I send these commands from windows? Sorry for dumb question. Would like to know my response… thanks and regards M.
You can install internal telnet client or use putty
Thank you Libor will try it at home once back from work… what should I paste in command line once telnet session is open? I tried something yesterday and it did not work for me. Unknown command or just no response…
Looks good, this should help me, at least the low level stuff will be done properly ;). Thanks for the link!
Hi, I am currently working on a python library for intex-spa, which is already able to retrieve and set main parameters for the spa: https://github.com/mathieu-mp/intex-spa
I am also actively working on a home assistant integration, I’m not fast but I work at it about 2h a week.
Hi everybody,
I’m also interested in an integration and contribution.
I’ve just bought a SPA but it has a defect, so I can’t do anything yet.
I tried to decompile the android app with jadx-gui and found out that code wasn’t obfuscated, so it may be interesting to have a look to find information.
for example the command types :
public static class CommandType {
public static final int BubbleOnOff = 3;
public static final int FilterOnOff = 5;
public static final int HeatOnOff = 4;
public static final int JetOnOff = 2;
public static final int PowerOnOff = 1;
public static final int Refresh = 0;
public static final int SanitizerOnOff = 6;
public static final int TempSet = 7;
public static final int TempSwitch = 8;
}
the com.quest.questspaandroid.socketclient.TcpSocketClient shows an heartbeat request.
DeviceSPAActivity shows some byte decoding :
Log.e(TAG, "Device led status byte 3,4 = " + str.substring(6, 10));
deviceIconShowBySNData(Integer.toBinaryString(Integer.valueOf(str.substring(6, 10), 16).intValue()));
Log.e(TAG, "device show status byte 1,2 = " + str.substring(2, 6));
and for the fun, there’s a default hardcoded AES key somewhere
Thank’s for your work , i introduce some new python script to change the Temperature cible using helper and slider and other to obtain the model . My lovelace card is like this :
Mathieu-mp , your library works like a charm , very fast , i will convert my scripts to use it.
Status:
Initializing IntexSpa instance
{‘power’: True, ‘filter’: False, ‘heater’: False, ‘jets’: False, ‘bubbles’: True, ‘sanitizer’: False, ‘unit’: ‘°C’, ‘current_temp’: 31, ‘preset_temp’: 31}
Thanks
Your library is great, i have managed to populate my first sensor - current temperature using yout library
I will continue with my integration, but only because i want to learn a little of python and hass internals. Looking forward for you integration. I can help you with housekeeping and testing after you release it.
How do you plan to present the temperature? As climate control with posibility to turn on the heater?
It actually works, wow. I have to connect it to water, so i can test all the switches, i just tested the “power”