mirror of https://github.com/sfeakes/AqualinkD.git
1238 lines
52 KiB
C
1238 lines
52 KiB
C
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdbool.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "aq_serial.h"
|
|
#include "aqualink.h"
|
|
#include "serialadapter.h"
|
|
#include "packetLogger.h"
|
|
|
|
#define RSSA_QLEN 20
|
|
|
|
unsigned char _rssa_queue[RSSA_QLEN][4];
|
|
int _rssa_q_length = 0;
|
|
bool _rssa_last_was_queue = false;
|
|
//int _rssa_position = 0;
|
|
|
|
unsigned char probe_reply[] = {0x00,0x01,0x00,0x05};
|
|
unsigned char rssa_null[] = {0x00,0x01,0x00,0x00};
|
|
|
|
unsigned char getUnits[] = {0x00,0x01,RS_SA_UNITS,0x05};
|
|
unsigned char getPoolSP[] = {0x00,0x01,RS_SA_POOLSP,0x05};
|
|
unsigned char getPoolSP2[] = {0x00,0x01,RS_SA_POOLSP2,0x05};
|
|
unsigned char getSpaSP[] = {0x00,0x01,RS_SA_SPASP,0x05};
|
|
//unsigned char getModel[] = {0x00,0x01,RS_SA_MODEL,0x05};
|
|
|
|
#ifdef AQ_RS16
|
|
unsigned char getAux12[] = {0x00,0x01,0x00,RS_SA_AUX12};
|
|
unsigned char getAux13[] = {0x00,0x01,0x00,RS_SA_AUX13};
|
|
unsigned char getAux14[] = {0x00,0x01,0x00,RS_SA_AUX14};
|
|
unsigned char getAux15[] = {0x00,0x01,0x00,RS_SA_AUX15};
|
|
#endif
|
|
|
|
bool push_rssa_cmd(unsigned char *cmd) {
|
|
|
|
if (_rssa_q_length >= RSSA_QLEN ) {
|
|
LOG(RSSA_LOG,LOG_ERR, "Queue overflow, last command ignored!\n");
|
|
return false;
|
|
}
|
|
|
|
memcpy(_rssa_queue[_rssa_q_length++], cmd, 4);
|
|
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Added to message queue, position %d 0x%02hhx|0x%02hhx|0x%02hhx|0x%02hhx\n",_rssa_q_length-1,_rssa_queue[_rssa_q_length-1][0],_rssa_queue[_rssa_q_length-1][1],_rssa_queue[_rssa_q_length-1][2],_rssa_queue[_rssa_q_length-1][3]);
|
|
return true;
|
|
}
|
|
|
|
unsigned char *get_rssa_cmd(unsigned char source_message_type) {
|
|
|
|
_rssa_last_was_queue = false;
|
|
|
|
//startInlineSerialDebug();
|
|
|
|
// NSF Need to check for error on reply message //0x013|0x02 (I believe)
|
|
// Maybe put it in main loop process_rssadapter_packet()
|
|
|
|
if ( source_message_type == 0x07 )
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Replying to 2nd command sequence\n");
|
|
|
|
if (source_message_type == CMD_PROBE)
|
|
return probe_reply;
|
|
else if (source_message_type != CMD_STATUS && source_message_type != 0x07) // 0x07 is second part of set message
|
|
return rssa_null; // Only send command on status messages.
|
|
else {
|
|
if (_rssa_q_length > 0) {
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Pull from message queue, length %d 0x%02hhx|0x%02hhx|0x%02hhx|0x%02hhx\n",_rssa_q_length,_rssa_queue[0][0],_rssa_queue[0][1],_rssa_queue[0][2],_rssa_queue[0][3]);
|
|
_rssa_last_was_queue = true;
|
|
return _rssa_queue[0];
|
|
}
|
|
}
|
|
|
|
return rssa_null;
|
|
}
|
|
|
|
void remove_rssa_cmd() {
|
|
|
|
//stopInlineDebug();
|
|
|
|
if (_rssa_q_length > 0 && _rssa_last_was_queue == true) {
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Remove from message queue, length %d\n",_rssa_q_length-1);
|
|
memmove(&_rssa_queue[0], &_rssa_queue[1], (sizeof(unsigned char) * 4) * _rssa_q_length);
|
|
_rssa_q_length--;
|
|
}
|
|
}
|
|
|
|
void queue_aqualink_rssadapter_setpoint(unsigned char typeID, int val) {
|
|
unsigned char readySP[] = {0x00,0x01,typeID,0x35};
|
|
unsigned char setSP[] = {0x00,0x01,0x00,(unsigned char)val};
|
|
|
|
push_rssa_cmd(readySP);
|
|
push_rssa_cmd(setSP);
|
|
}
|
|
|
|
unsigned char devID(int bIndex) {
|
|
// pool = 0; spa = 1; aux1 = 2 etc
|
|
// rssa pool / spa are different. aux1 = 21 (0x15) then goes up from their in order.
|
|
|
|
if (bIndex==0)
|
|
return RS_SA_PUMP;
|
|
else if (bIndex==1)
|
|
return RS_SA_SPA;
|
|
else if (bIndex >= 2 && bIndex <= 16) {
|
|
// aux1 = index 2 & aux1 = 0x15. So add inxed to 0x13
|
|
return (unsigned char)0x13 + bIndex;
|
|
}
|
|
|
|
return 0x00;
|
|
}
|
|
|
|
void rssadapter_device_state(unsigned char devID, unsigned char state) {
|
|
unsigned char setDev[] = {0x00,0x01,state,devID};
|
|
push_rssa_cmd(setDev);
|
|
}
|
|
/*
|
|
void rssadapter_device_off(unsigned char devID) {
|
|
unsigned char setDev[] = {0x00,0x01,0x80,devID};
|
|
push_rssa_cmd(setDev);
|
|
}
|
|
*/
|
|
void set_aqualink_rssadapter_aux_state(int buttonIndex, bool turnOn)
|
|
{
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Turning button %d %s\n",buttonIndex,(turnOn?"On":"Off"));
|
|
|
|
rssadapter_device_state( devID(buttonIndex), (turnOn?0x81:0x80) );
|
|
}
|
|
|
|
void increase_aqualink_rssadapter_pool_setpoint(char *args, struct aqualinkdata *aqdata) {
|
|
int val = atoi(args);
|
|
val = setpoint_check(POOL_HTR_SETOINT, aqdata->pool_htr_set_point + val, aqdata);
|
|
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Increasing pool heater from %d to %d\n",aqdata->pool_htr_set_point,val);
|
|
|
|
queue_aqualink_rssadapter_setpoint(RS_SA_POOLSP, val);
|
|
}
|
|
|
|
void increase_aqualink_rssadapter_spa_setpoint(char *args, struct aqualinkdata *aqdata) {
|
|
int val = atoi(args);
|
|
|
|
val = setpoint_check(SPA_HTR_SETOINT, aqdata->spa_htr_set_point + val, aqdata);
|
|
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Increasing spa heater from %d to %d\n",aqdata->spa_htr_set_point,val);
|
|
|
|
queue_aqualink_rssadapter_setpoint( (isSINGLE_DEV_PANEL?RS_SA_POOLSP2:RS_SA_SPASP), val);
|
|
}
|
|
|
|
void set_aqualink_rssadapter_pool_setpoint(char *args, struct aqualinkdata *aqdata) {
|
|
int val = atoi(args);
|
|
val = setpoint_check(POOL_HTR_SETOINT, val, aqdata);
|
|
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Setting pool heater to %d\n",val);
|
|
|
|
queue_aqualink_rssadapter_setpoint(RS_SA_POOLSP, val);
|
|
/*
|
|
unsigned char readyPoolSP[] = {0x00,0x01,RS_SA_POOLSP,0x35};
|
|
unsigned char setPoolSP[] = {0x00,0x01,0x00,(unsigned char)val};
|
|
|
|
push_rssa_cmd(readyPoolSP);
|
|
push_rssa_cmd(setPoolSP);
|
|
*/
|
|
}
|
|
|
|
void set_aqualink_rssadapter_spa_setpoint(char *args, struct aqualinkdata *aqdata) {
|
|
int val = atoi(args);
|
|
|
|
val = setpoint_check(SPA_HTR_SETOINT, val, aqdata);
|
|
|
|
queue_aqualink_rssadapter_setpoint( (isSINGLE_DEV_PANEL?RS_SA_POOLSP2:RS_SA_SPASP), val);
|
|
/*
|
|
if (isSINGLE_DEV_PANEL) {
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Setting pool2 heater to %d\n",val);
|
|
unsigned char readySpaSP[] = {0x00,0x01,RS_SA_POOLSP2,0x35};
|
|
push_rssa_cmd(readySpaSP);
|
|
} else {
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Setting spa heater to %d\n",val);
|
|
unsigned char readySpaSP[] = {0x00,0x01,RS_SA_SPASP,0x35};
|
|
push_rssa_cmd(readySpaSP);
|
|
}
|
|
|
|
unsigned char setSpaSP[] = {0x00,0x01,0x00,(unsigned char)val};
|
|
push_rssa_cmd(setSpaSP);
|
|
*/
|
|
}
|
|
|
|
void get_aqualink_rssadapter_setpoints() {
|
|
//push_rssa_cmd(getModel);
|
|
push_rssa_cmd(getUnits);
|
|
push_rssa_cmd(getPoolSP);
|
|
if (!isSINGLE_DEV_PANEL)
|
|
push_rssa_cmd(getSpaSP);
|
|
else
|
|
push_rssa_cmd(getPoolSP2);
|
|
}
|
|
|
|
void setLEDstate( aqled *led, unsigned char state, struct aqualinkdata *aq_data)
|
|
{
|
|
if (state == 0x00) {
|
|
if (led->state != OFF) {
|
|
led->state = OFF;
|
|
aq_data->updated = true;
|
|
}
|
|
} else if (state == 0x01) {
|
|
if (led->state != ON) {
|
|
led->state = ON;
|
|
aq_data->updated = true;
|
|
}
|
|
}
|
|
// Should also add FLASH and ENABLE.
|
|
|
|
//_aqualink_data.aqbuttons[13].led->state = OFF;
|
|
//
|
|
}
|
|
|
|
bool process_rssadapter_packet(unsigned char *packet, int length, struct aqualinkdata *aq_data) {
|
|
//RSSA_LOG
|
|
bool rtn = false;
|
|
static int cnt=-5;
|
|
cnt++;
|
|
//char buff[1024];
|
|
//LOG(RSSA_LOG,LOG_DEBUG, " Received message\n");
|
|
|
|
if (cnt == 0 || cnt >= 250) {
|
|
LOG(RSSA_LOG,LOG_INFO, "Queue device update requests\n");
|
|
if (cnt == 0) {
|
|
queueGetProgramData(RSSADAPTER, aq_data);
|
|
} else {
|
|
push_rssa_cmd(getPoolSP);
|
|
|
|
if (!isSINGLE_DEV_PANEL)
|
|
push_rssa_cmd(getSpaSP);
|
|
else
|
|
push_rssa_cmd(getPoolSP2);
|
|
#ifdef AQ_RS16 // No status LED's for these, so get them on a poll cycle
|
|
if ( PANEL_SIZE() >= 16 ) {
|
|
push_rssa_cmd(getAux12);
|
|
push_rssa_cmd(getAux13);
|
|
push_rssa_cmd(getAux14);
|
|
push_rssa_cmd(getAux15);
|
|
}
|
|
#endif
|
|
}
|
|
cnt = 0;
|
|
}
|
|
|
|
if (packet[PKT_CMD] == CMD_PROBE) {
|
|
LOG(RSSA_LOG,LOG_DEBUG, "Probe received, will queue device update shortly\n");
|
|
//queueGetProgramData(RSSADAPTER, aq_data);
|
|
cnt=-5; // Connection reset, so queue the status update
|
|
}
|
|
if (packet[PKT_CMD] == 0x13) {
|
|
//beautifyPacket(buff, packet, length);
|
|
//LOG(RSSA_LOG,LOG_DEBUG, "%s", buff);
|
|
//LOG(RSSA_LOG,LOG_DEBUG," Command 0x%02hhx = |0x%02hhx|0x%02hhx|0x%02hhx %d|%d|%d\n", packet[4], packet[5], packet[6], packet[7], packet[5], packet[6], packet[7]);
|
|
|
|
|
|
// This is a failuer reply to setpoint 0x10|0x02|0x48|0x13|0x02|0x00|0x10|0x00|0x7f|0x10|0x03|
|
|
// Rather than check all, just check 0x02 and checksum sin't I'm not sure 0x10 means faiure without 0x00 around it.
|
|
if (packet[4] == 0x02 && packet[8] == 0x7f) {
|
|
LOG(RSSA_LOG,LOG_ERR,"Last command failed\n");
|
|
}
|
|
if (packet[4] == RS_SA_MODEL) {
|
|
LOG(RSSA_LOG,LOG_INFO,"Panel Model 0x%02hhx|0x%02hhx|0x%02hhx\n",packet[5],packet[6],packet[7]);
|
|
} else if (packet[4] == RS_SA_UNITS) {
|
|
if (packet[6] == 0x01) {
|
|
LOG(RSSA_LOG,LOG_INFO,"Units are Deg C\n");
|
|
aq_data->temp_units = CELSIUS;
|
|
} else if (packet[6] == 0x00) {
|
|
LOG(RSSA_LOG,LOG_INFO,"Units are Deg F\n");
|
|
aq_data->temp_units = FAHRENHEIT;
|
|
} else {
|
|
LOG(RSSA_LOG,LOG_ERR,"Units are Unknown\n");
|
|
}
|
|
} else if (packet[4] == RS_SA_POOLSP) {
|
|
LOG(RSSA_LOG,LOG_INFO,"Pool SP %d\n", packet[6]);
|
|
aq_data->pool_htr_set_point = (int) packet[6];
|
|
} else if (packet[4] == RS_SA_SPASP) {
|
|
LOG(RSSA_LOG,LOG_INFO,"Spa SP %d\n", packet[6]);
|
|
aq_data->spa_htr_set_point = (int) packet[6];
|
|
} else if (packet[4] == RS_SA_POOLSP2) {
|
|
LOG(RSSA_LOG,LOG_INFO,"Spa SP %d\n", packet[6]);
|
|
aq_data->spa_htr_set_point = (int) packet[6];
|
|
} else if (packet[4] == 0x03) {
|
|
// These are device status messages
|
|
#ifdef AQ_RS16
|
|
if (packet[7] == RS_SA_AUX12) {
|
|
LOG(RSSA_LOG,LOG_INFO,"AUX12 %d\n", packet[6]);
|
|
setLEDstate(aq_data->aqbuttons[13].led, packet[6], aq_data);
|
|
//_aqualink_data.aqbuttons[13].led->state = OFF;
|
|
} else if (packet[7] == RS_SA_AUX13) {
|
|
LOG(RSSA_LOG,LOG_INFO,"AUX13 %d\n", packet[6]);
|
|
setLEDstate(aq_data->aqbuttons[14].led, packet[6], aq_data);
|
|
} else if (packet[7] == RS_SA_AUX14) {
|
|
LOG(RSSA_LOG,LOG_INFO,"AUX14 %d\n", packet[6]);
|
|
setLEDstate(aq_data->aqbuttons[15].led, packet[6], aq_data);
|
|
} else if (packet[7] == RS_SA_AUX15) {
|
|
LOG(RSSA_LOG,LOG_INFO,"AUX15 %d\n", packet[6]);
|
|
setLEDstate(aq_data->aqbuttons[16].led, packet[6], aq_data);
|
|
}
|
|
#endif
|
|
}
|
|
}
|
|
|
|
if (rtn == true)
|
|
aq_data->updated = true;
|
|
|
|
return rtn;
|
|
}
|
|
|
|
#ifdef DO_NOT_COMPILE
|
|
|
|
// Notes on protocol for Serial Adapter.
|
|
|
|
/*
|
|
Message is reply ACK as below
|
|
--------- Send ACK -----------
|
|
0x10|0x02|0x00|0x01|DeviceID|What|0xXX|0x10|0x03|
|
|
DeviceID = Below
|
|
What = 0x05 Query Value | 0x35 Set Value on next command.
|
|
--------- Reply Msg -------------
|
|
0x10|0x02|0x48|ReplyType|DeviceID|????|Value|0x00|0xXX|0x10|0x03|
|
|
ReplyType 0x13=status, 0x07=set value next message
|
|
DeviceID
|
|
???? Not sure 0x00 modst of the time, 0x02 for (not set or vbat return)
|
|
Value What it's set to, except VBAT. or 0x07 set on next command
|
|
--------- Send reply to above if 0x07 ---------
|
|
0x10|0x02|0x00|0x01|0x00|Value|0x4f|0x10|0x03|
|
|
Value to be set
|
|
--------- Send received from above ---------
|
|
0x10|0x02|0x48|ReplyType|DeviceID|????|Value|0x00|0xXX|0x10|0x03|
|
|
Same as previous reply.
|
|
|
|
*/
|
|
// Setpoints changes are in this group./
|
|
#define RS_SA_MODEL 0x00
|
|
#define RS_SA_OPTIONS 0x01
|
|
#define RS_SA_POOLSP 0x05
|
|
#define RS_SA_POOLSP2 0x06
|
|
#define RS_SA_SPASP 0x07
|
|
#define RS_SA_POOLTMP 0x08
|
|
#define RS_SA_AIRTMP 0x09
|
|
#define RS_SA_UNITS 0x0a
|
|
#define RS_SA_SPATMP 0x0b
|
|
#define RS_SA_SOLTMP 0x0c
|
|
#define RS_SA_OPMODE 0x0d
|
|
#define RS_SA_VBAT 0x0e
|
|
#define RS_SA_WFALL 0x0f
|
|
|
|
|
|
/*
|
|
// Set & Query options
|
|
Query or Change simple on/off
|
|
--------- Send ACK --------------
|
|
0x10|0x02|0x00|0x01|What|DeviceID|0xXX|0x10|0x03|
|
|
What - Byte 4 = What (0x00 Query | 0x81 On | 0x80 off )
|
|
DeviceID - Byte 5 = (ID's below)
|
|
|
|
--------- Reply Msg -------------
|
|
In return
|
|
0x10|0x02|0x48|0x13 |0x02 |0x00 |0x0d|0x10|0x8c|0x10|0x03|
|
|
0x10|0x02|0x48|MsgType|Status1|Status2|0x0e|DeviceID|0xXX|0x10|0x03|
|
|
MsgType - Byte 3 = 0x13 (some state message)??
|
|
StatType - Byte 4 = 0x02 or 0x03 (not sure meaning) Status Type ????
|
|
Status1 - Byte 5 = 0x00 0x01 (???) if Byte4 is 0x02 then this is state 0x00=off 0x01=on /
|
|
Status2 - Byte 6 = 0x00 0x01 0x0e(option switch set can't change???) if byte4 is 0x03, this this looks to be state
|
|
DeviceID - Byte 7 = Should match request.
|
|
*/
|
|
// These are duplicate for some above, so be careful
|
|
#define RS_SA_PUMP 0x0c
|
|
#define RS_SA_PUMPLO 0x0d
|
|
#define RS_SA_SPA 0x0e
|
|
// Unique again
|
|
#define RS_SA_CLEANR 0x10
|
|
#define RS_SA_POOLHT 0x11
|
|
#define RS_SA_POOLHT2 0x12
|
|
#define RS_SA_SPAHT 0x13
|
|
#define RS_SA_SOLHT 0x14
|
|
#define RS_SA_AUX1 0x15
|
|
#define RS_SA_AUX2 0x16
|
|
#define RS_SA_AUX3 0x17
|
|
#define RS_SA_AUX4 0x18
|
|
#define RS_SA_AUX5 0x19
|
|
#define RS_SA_AUX6 0x1a
|
|
#define RS_SA_AUX7 0x1b
|
|
#define RS_SA_AUX8 0x1c
|
|
#define RS_SA_AUX9 0x1d
|
|
#define RS_SA_AUX10 0x1e
|
|
#define RS_SA_AUX11 0x1f
|
|
|
|
#define RS_SA_AUX12 0x20
|
|
#define RS_SA_AUX13 0x21
|
|
#define RS_SA_AUX14 0x22
|
|
#define RS_SA_AUX15 0x23
|
|
|
|
|
|
|
|
/*
|
|
|
|
#POOLSP=60
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x11|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x05|0x35|0x4d|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x05|0x66|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x3c|0x4f|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x05|0x00|0x3c|0x00|0xae|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
|
|
*/
|
|
|
|
/*
|
|
GET UNITS (SET TO F)
|
|
Debug: RS Serial: Serial write 9 bytes
|
|
Debug: RS Serial: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x0a|0x05|0x22|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x0a|0x00|0x00|0x00|0x77|0x10|0x03|
|
|
Command 0x0a = |0x00|0x00|0x00 0|0|0
|
|
|
|
GET UNITS (SET TO C)
|
|
Debug: RS Serial: Serial write 9 bytes
|
|
Debug: RS Serial: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x0a|0x05|0x22|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x0a|0x00|0x01|0x00|0x78|0x10|0x03|
|
|
Command 0x0a = |0x00|0x01|0x00 0|1|0
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
Debug: AqualinkD: To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
|
|
Debug: RS Serial: Serial write 9 bytes
|
|
Debug: RS Serial: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x05|0x18|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x00|0x1c|0x2f|0x00|0xb8|0x10|0x03|
|
|
|
|
|
|
|
|
Debug: AqualinkD: To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x05|0x18|0x10|0x03|
|
|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x79|0x01|0x00|0x10|0x03|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x79|0x01|0x00|0x10|0x03|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
|
|
|
|
|
|
Startup.
|
|
|
|
Jandy To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x05|0x18|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x78|0x00|0xfe|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x0f|0x35|0x57|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x0f|0x70|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x01|0x14|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x0f|0x00|0x00|0x00|0x7c|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x51 of type Probe | HEX: 0x10|0x02|0x51|0x00|0x63|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x52 of type Probe | HEX: 0x10|0x02|0x52|0x00|0x64|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x53 of type Probe | HEX: 0x10|0x02|0x53|0x00|0x65|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x80 of type Probe | HEX: 0x10|0x02|0x80|0x00|0x92|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Probe | HEX: 0x10|0x02|0x58|0x00|0x6a|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Probe | HEX: 0x10|0x02|0x58|0x00|0x6a|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Message | HEX: 0x10|0x02|0x58|0x03|0x01|0x52|0x45|0x56|0x20|0x54|0x2e|0x30|0x2e|0x31|0x00|0x61|0x74|0x00|0x38|0x33|0x00|0xcc|0x10|0x03| Message : REV T.0.1at83
|
|
|
|
Jandy To 0x68 of type Probe | HEX: 0x10|0x02|0x68|0x00|0x7a|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Probe | HEX: 0x10|0x02|0x58|0x00|0x6a|0x10|0x03|
|
|
|
|
Jandy To 0x69 of type Probe | HEX: 0x10|0x02|0x69|0x00|0x7b|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Message | HEX: 0x10|0x02|0x58|0x03|0x02|0x52|0x53|0x2d|0x38|0x20|0x43|0x6f|0x6d|0x62|0x6f|0x00|0x74|0x00|0x38|0x33|0x00|0x68|0x10|0x03| Message : RS-8 Combot83
|
|
|
|
Jandy To 0x6a of type Probe | HEX: 0x10|0x02|0x6a|0x00|0x7c|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Probe | HEX: 0x10|0x02|0x58|0x00|0x6a|0x10|0x03|
|
|
|
|
Jandy To 0x6b of type Probe | HEX: 0x10|0x02|0x6b|0x00|0x7d|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Probe | HEX: 0x10|0x02|0x58|0x00|0x6a|0x10|0x03|
|
|
|
|
Jandy To 0x70 of type Probe | HEX: 0x10|0x02|0x70|0x00|0x82|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x81 of type Probe | HEX: 0x10|0x02|0x81|0x00|0x93|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Probe | HEX: 0x10|0x02|0x58|0x00|0x6a|0x10|0x03|
|
|
|
|
Jandy To 0x71 of type Probe | HEX: 0x10|0x02|0x71|0x00|0x83|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Probe | HEX: 0x10|0x02|0x58|0x00|0x6a|0x10|0x03|
|
|
|
|
Jandy To 0x72 of type Probe | HEX: 0x10|0x02|0x72|0x00|0x84|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Probe | HEX: 0x10|0x02|0x58|0x00|0x6a|0x10|0x03|
|
|
|
|
Jandy To 0x73 of type Probe | HEX: 0x10|0x02|0x73|0x00|0x85|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Probe | HEX: 0x10|0x02|0x58|0x00|0x6a|0x10|0x03|
|
|
|
|
Jandy To 0x88 of type Probe | HEX: 0x10|0x02|0x88|0x00|0x9a|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x08|0x05|0x20|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x08|0x02|0x00|0x00|0x77|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x58 of type Probe | HEX: 0x10|0x02|0x58|0x00|0x6a|0x10|0x03|
|
|
|
|
Jandy To 0x89 of type Probe | HEX: 0x10|0x02|0x89|0x00|0x9b|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x08 of type Probe | HEX: 0x10|0x02|0x08|0x00|0x1a|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x80 of type Probe | HEX: 0x10|0x02|0x80|0x00|0x92|0x10|0x03|
|
|
|
|
Jandy To 0x09 of type Probe | HEX: 0x10|0x02|0x09|0x00|0x1b|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x0a of type Probe | HEX: 0x10|0x02|0x0a|0x00|0x1c|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x0b of type Probe | HEX: 0x10|0x02|0x0b|0x00|0x1d|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x40 of type Probe | HEX: 0x10|0x02|0x40|0x00|0x52|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x41 of type Probe | HEX: 0x10|0x02|0x41|0x00|0x53|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x10|0x01|0x00|0x00|0x00|0x6d|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
|
|
*/
|
|
|
|
/*
|
|
|
|
|
|
#POOLSP?
|
|
byte 4 is command 0x05
|
|
byte 5 is query or set (0x05 query, 0x35 set)
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x05|0x05|0x1d|0x10|0x03|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x05|0x00|0x53|0x00|0xc5|0x10|0x03|
|
|
!00 POOLSP = 83 F
|
|
byte 4 is return command
|
|
byte 6 is 83 = 0x53
|
|
|
|
|
|
#POOLSP=45
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x05|0x35|0x4d|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x05|0x66|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x2d|0x40|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x05|0x00|0x2d|0x00|0x9f|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
!00 POOLSP=45
|
|
|
|
#POOLTMP?
|
|
byte 4 is command 0x08
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x08|0x05|0x20|0x10|0x03|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x08|0x00|0x41|0x00|0xb6|0x10|0x03|
|
|
!00 POOLTMP = 65 F
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x08|0x05|0x20|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x08|0x00|0x41|0x00|0xb6|0x10|0x03|
|
|
|
|
|
|
#UNITS?
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x0a|0x05|0x22|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x0a|0x00|0x00|0x00|0x77|0x10|0x03|
|
|
!00 UNITS = F
|
|
|
|
#SPASP?
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x07|0x05|0x1f|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x07|0x00|0x66|0x00|0xda|0x10|0x03|
|
|
|
|
|
|
|
|
#MODEL?
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x05|0x18|0x10|0x03|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x79|0x00|0xff|0x10|0x03| // 23 121
|
|
!00 MODEL = 6521 -RS 6 Combo
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x78|0x00|0xfe|0x10|0x03| // 23 120
|
|
!00 MODEL = 6520 -RS 8 Combo
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x7a|0x00|0x00|0x10|0x03| // 23 122
|
|
!00 MODEL = 6522 - RS 4 Combo
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x7b|0x00|0x01|0x10|0x03| // 23 123
|
|
!00 MODEL = 6523 - RS 8 Only
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x7c|0x00|0x02|0x10|0x03| // 23 124
|
|
!00 MODEL = 6524 - RS 6 only
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x7d|0x00|0x03|0x10|0x03| // 23 125
|
|
!00 MODEL = 6525 - RS 4 only
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x7e|0x01|0x05|0x10|0x03| // 23 126 1
|
|
!00 MODEL = 6526 - dual 6/2
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x1c|0x21|0x00|0xaa|0x10|0x03| // 28 33
|
|
!00 MODEL = 7201 - 12 Combo
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x1c|0x22|0x00|0xab|0x10|0x03| // 28 34
|
|
!00 MODEL = 7202 - 16 combo
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x1c|0x2e|0x00|0xb7|0x10|0x03| // 28 46
|
|
!00 MODEL = 7214 - 12 only
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x1c|0x2f|0x00|0xb8|0x10|0x03| // 28 47
|
|
!00 MODEL = 7215 - 16 only
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x1c|0x30|0x01|0xba|0x10|0x03| // 28 30 1
|
|
!00 MODEL = 7216 - dual 2/10
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x1c|0x31|0x01|0xbb|0x10|0x03| // 28 49 1
|
|
!00 MODEL = 7217 - dual 2/14
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x88|0x00|0x0e|0x10|0x03| // 23 136
|
|
!00 MODEL = 6536 - PD8 Combo
|
|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x89|0x00|0x0f|0x10|0x03| // 23 137
|
|
!00 MODEL = 6537 - PD8 only
|
|
|
|
#OPMODE?
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x0d|0x05|0x25|0x10|0x03|
|
|
(One of 3 replys)
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x0d|0x00|0x00|0x00|0x7a|0x10|0x03|
|
|
!00 OPMODE = AUTO
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x0d|0x00|0x01|0x00|0x7b|0x10|0x03|
|
|
!00 OPMODE = SERVICE
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x0d|0x00|0x02|0x00|0x7c|0x10|0x03|
|
|
!00 OPMODE = TIMEOUT
|
|
|
|
#OPTIONS?
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x01|0x05|0x19|0x10|0x03|
|
|
Jandy To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x01|0x00|0x00|0x00|0x6e|0x10|0x03|
|
|
!00 OPTIONS = 0
|
|
|
|
|
|
#SPASP=101
|
|
SPA|SET = 0x07|0x35
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x07|0x35|0x4f|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x07|0x68|0x10|0x03|
|
|
(second part)
|
|
100 = 0x64
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x64|0x77|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x07|0x00|0x65|0x00|0xd9|0x10|0x03|
|
|
|
|
#SPASP=102
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x07|0x35|0x4f|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x07|0x68|0x10|0x03|
|
|
(second part)
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x78|0x8b|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x07|0x00|0x62|0x00|0xd6|0x10|0x03|
|
|
|
|
#SPASP=90
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x07|0x35|0x4f|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x07|0x68|0x10|0x03|
|
|
(second part)
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x5a|0x6d|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x07|0x00|0x61|0x00|0xd5|0x10|0x03|
|
|
|
|
#POOLSP=97
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x05|0x35|0x4d|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x05|0x66|0x10|0x03|
|
|
(second)
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x61|0x74|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x05|0x00|0x4f|0x00|0xc1|0x10|0x03|
|
|
|
|
#VBAT?
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x0e|0x05|0x26|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x0e|0x02|0x67|0x00|0xe4|0x10|0x03|
|
|
!00 VBAT = 900
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#POOLSP+
|
|
?08 SETPT OPERATION FAILED
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x05|0x35|0x4d|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x05|0x66|0x10|0x03|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x80|0x00|0x93|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x10|0x00|0x7f|0x10|0x03|
|
|
|
|
#POOLSP+
|
|
?08 SETPT OPERATION FAILED
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x05|0x35|0x4d|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x05|0x66|0x10|0x03|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x80|0x00|0x93|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x10|0x00|0x7f|0x10|0x03|
|
|
|
|
#POOLSP+
|
|
?08 SETPT OPERATION FAILED
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x05|0x35|0x4d|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x05|0x66|0x10|0x03|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x80|0x00|0x93|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x10|0x00|0x7f|0x10|0x03|
|
|
|
|
#POOLSP-
|
|
!00 POOLSP = 64 F
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x40|0x00|0x53|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x05|0x00|0x40|0x00|0xb2|0x10|0x03|
|
|
Debug: AqualinkD: To 0x31 of type Probe | HEX: 0x10|0x02|0x31|0x00|0x43|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x05|0x00|0x40|0x00|0xb2|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x05|0x35|0x4d|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x07|0x05|0x66|0x10|0x03|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x40|0x00|0x53|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x05|0x00|0x40|0x00|0xb2|0x10|0x03|
|
|
|
|
|
|
#AUX5=on
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x81|0x19|0xad|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x02|0x01|0x00|0x19|0x89|0x10|0x03|
|
|
Command 0x02 = |0x01|0x00|0x19 1|0|25
|
|
|
|
#AUX5=off
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x80|0x19|0xac|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x00|0x19|0x88|0x10|0x03|
|
|
Command 0x02 = |0x00|0x00|0x19 0|0|25
|
|
|
|
|
|
#AUX4 = 1 100%
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0xcc|0x18|0xf7|0x10|0x03|
|
|
Jandy To 0x48 of type RSSA Cmd Error | HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x0c|0x18|0x93|0x10|0x03|
|
|
?21 AUX NOT ASSIGNED
|
|
|
|
#AUX3 = 1 75%
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0xaf|0x17|0xd9|0x10|0x03|
|
|
Jandy To 0x48 of type RSSA Cmd Error | HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x0c|0x17|0x92|0x10|0x03|
|
|
?21 AUX NOT ASSIGNED
|
|
|
|
#AUX3 = 1 50%
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x96|0x17|0xc0|0x10|0x03|
|
|
Jandy To 0x48 of type RSSA Cmd Error | HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x0c|0x17|0x92|0x10|0x03|
|
|
?21 AUX NOT ASSIGNED
|
|
|
|
#AUX3 = 1 25%
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0xfd|0x17|0x27|0x10|0x03|
|
|
Jandy To 0x48 of type RSSA Cmd Error | HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x0c|0x17|0x92|0x10|0x03|
|
|
?21 AUX NOT ASSIGNED
|
|
|
|
*/
|
|
|
|
|
|
/*
|
|
Return for all
|
|
Byte | Description
|
|
3 | 0x13 = Some Status
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 | ID of device/setting
|
|
|
|
Query or Change simple on/off
|
|
Byte 4 What (0x00 Query | 0x81 On | 0x80 off )
|
|
Byte 5 Device (pict from List)
|
|
|
|
In return
|
|
Byte 3 = 0x13 (some state message)??
|
|
Byye 4 = 0x02 or 0x03 (not sure meaning)
|
|
Byte 5 = 0x00 0x01 (???) if Byte4 is 0x02 then this is state 0x00=off 0x01=on /
|
|
Byte 6 = 0x00 0x01 0x0e(option switch set can't change???) if byte4 is 0x03, this this looks to be state
|
|
Byte 7 = DeviceID. Should match request.
|
|
|
|
|
|
#AUX1? 0x10|0x02|0x00|0x01|0x00|0x15|0x28|0x10|0x03| Return 0x10|0x02|0x48|0x13|0x03|0x00|0x00|0x15|0x85|0x10|0x03|
|
|
#AUX1=on 0x10|0x02|0x00|0x01|0x81|0x15|0xa9|0x10|0x03| Return 0x10|0x02|0x48|0x13|0x02|0x01|0x00|0x15|0x85|0x10|0x03|
|
|
#AUX1=off 0x10|0x02|0x00|0x01|0x80|0x15|0xa8|0x10|0x03| Return 0x10|0x02|0x48|0x13|0x02|0x00|0x00|0x15|0x84|0x10|0x03|
|
|
|
|
#AUX1? When OPTION SWITCH IS SET (something to do with cleaner mode)
|
|
#AUX1? 0x10|0x02|0x00|0x01|0x00|0x15|0x28|0x10|0x03| HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x0e|0x15|0x92|0x10|0x03|
|
|
#AUX2? Normal
|
|
#AUX2? 0x10|0x02|0x00|0x01|0x00|0x16|0x29|0x10|0x03| | HEX: 0x10|0x02|0x48|0x13|0x03|0x00|0x00|0x16|0x86|0x10|0x03|
|
|
#AUX2=on 0x10|0x02|0x00|0x01|0x81|0x16|0xaa|0x10|0x03| 0x10|0x02|0x48|0x13|0x02|0x01|0x00|0x16|0x86|0x10|0x03|
|
|
#AUX2? (when on) 0x10|0x02|0x48|0x13|0x03|0x00|0x01|0x16|0x87|0x10|0x03|
|
|
#AUX2=off 0x10|0x02|0x00|0x01|0x80|0x16|0xa9|0x10|0x03| HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x00|0x16|0x85|0x10|0x03|
|
|
(when already off)
|
|
#AUX2=off 0x10|0x02|0x00|0x01|0x80|0x16|0xa9|0x10|0x03| HEX: 0x10|0x02|0x48|0x13|0x02|0x00|0x00|0x16|0x85|0x10|0x03|
|
|
#POOLSP=45
|
|
Jandy 0x10|0x02|0x00|0x01|0x05|0x35|0x4d|0x10|0x03|
|
|
Jandy return HEX: 0x10|0x02|0x48|0x07|0x05|0x66|0x10|0x03|
|
|
Jandy 0x10|0x02|0x00|0x01|0x00|0x2d|0x40|0x10|0x03|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
// Query only options, work as below.
|
|
Byte 4 Device ID
|
|
Byte 5 (0x05) Looks to be fixed
|
|
// Return
|
|
Byte 4 Device ID (should match request)
|
|
Byte 5 0x00 some OK ./
|
|
Byte 6 value
|
|
|
|
// More Complex examples, 2 messages when setting a value
|
|
// first request
|
|
Byte 4 = DeviceID
|
|
Byte 4 = 0x35 (I want to change something????)
|
|
// first reply
|
|
Byte 3 = 0x07
|
|
Byte 4 = DeviceID
|
|
|
|
// Second request
|
|
Byte 4 = 0x00
|
|
Byte 6 = value
|
|
// Second reply
|
|
Byte 3 = 0x13
|
|
Byte 4 = DeviceID
|
|
Byte 5 = 0x00 (??????)
|
|
Byte 6 = (Value)
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
// Query only options.
|
|
Byte 4 Device ID
|
|
Byte 5 (0x05) Looks to be fixed
|
|
// Return
|
|
Byte 4 Device ID (should match request)
|
|
Byte 5 0x00 some OK ./
|
|
Byte 6 value
|
|
*/
|
|
/*
|
|
|
|
#AIRTMP 0x09 0x10|0x02|0x00|0x01|0x09|0x05|0x21|0x10|0x03| 94 F | HEX: 0x10|0x02|0x48|0x13|0x09|0x00|0x5e|0x00|0xd4|0x10|0x03|
|
|
#POOLTMP 0x08 0x10|0x02|0x00|0x01|0x08|0x05|0x20|0x10|0x03| 85 F 0x10|0x02|0x48|0x13|0x08|0x00|0x55|0x00|0xca|0x10|0x03|
|
|
#SPATMP 0x0b 0x10|0x02|0x00|0x01|0x0b|0x05|0x23|0x10|0x03| //?18 SPA TEMP VALUE IS UNAVAILABLE = 0x10|0x02|0x48|0x13|0x0b|0x02|0x00|0x00|0x7a|0x10|0x03|
|
|
#SOLTMP 0x0c 0x10|0x02|0x00|0x01|0x0c|0x05|0x24|0x10|0x03| // !00 SOLTMP = 60 F = 0x10|0x02|0x48|0x13|0x0c|0x00|0x3c|0x00|0xb5|0x10|0x03|
|
|
#OPMODE 0x0d 0x10|0x02|0x00|0x01|0x0d|0x05|0x25|0x10|0x03| !00 OPMODE = AUTO 0x10|0x02|0x48|0x13|0x0d|0x00|0x00|0x00|0x7a|0x10|0x03|
|
|
#OPTIONS 0x01 0x10|0x02|0x00|0x01|0x01|0x05|0x19|0x10|0x03| 00 OPTIONS = 1 0x10|0x02|0x48|0x13|0x01|0x00|0x01|0x00|0x6f|0x10|0x03|
|
|
#UNITS 0x0a 0x10|0x02|0x00|0x01|0x0a|0x05|0x22|0x10|0x03| // !00 UNITS = F 0x10|0x02|0x48|0x13|0x0a|0x00|0x00|0x00|0x77|0x10|0x03|
|
|
#VBAT 0x0e 0x10|0x02|0x00|0x01|0x0e|0x05|0x26|0x10|0x03| // !00 VBAT = 900 0x10|0x02|0x48|0x13|0x0e|0x02|0x67|0x00|0xe4|0x10|0x03|
|
|
|
|
#AUX1 0x15 0x10|0x02|0x00|0x01|0x00|0x15|0x28|0x10|0x03| OPTION SWITCH IS SET 0x10|0x02|0x48|0x13|0x02|0x00|0x0e|0x15|0x92|0x10|0x03|
|
|
#AUX2 0x16 0x10|0x02|0x00|0x01|0x00|0x16|0x29|0x10|0x03| 0x10|0x02|0x48|0x13|0x03|0x00|0x00|0x16|0x86|0x10|0x03|
|
|
#AUX3 0x17 0x10|0x02|0x00|0x01|0x00|0x17|0x2a|0x10|0x03| 0x10|0x02|0x48|0x13|0x03|0x00|0x00|0x17|0x87|0x10|0x03|
|
|
#AUX4 0x18 0x10|0x02|0x00|0x01|0x00|0x18|0x2b|0x10|0x03| AUX4 = 0 0x10|0x02|0x48|0x13|0x03|0x00|0x00|0x18|0x88|0x10|0x03|
|
|
#AUX5 0x19 0x10|0x02|0x00|0x01|0x00|0x19|0x2c|0x10|0x03| AUX5 = 0 0x10|0x02|0x48|0x13|0x03|0x00|0x00|0x19|0x89|0x10|0x03|
|
|
#AUX6 0x1a
|
|
#AUX7 0x1b
|
|
#AUX8 0x1c
|
|
#AUX9 0x1d
|
|
#AUX10 0x1e
|
|
#AUX11 0x1f
|
|
#AUX12 0x20
|
|
#AUX13 0x21
|
|
#AUX14 0x22
|
|
#AUX15 0x23
|
|
#CLEANR 0x10 0x10|0x02|0x00|0x01|0x00|0x10|0x23|0x10|0x03| ?23 OPTION SWITCH NOT SET 0x10|0x02|0x48|0x13|0x02|0x00|0x0d|0x10|0x8c|0x10|0x03|
|
|
#CMDCHR
|
|
#DIAG
|
|
#ECHO
|
|
#ERRCHR
|
|
#LEDS
|
|
#MODEL 0x00 0x10|0x02|0x00|0x01|0x00|0x05|0x18|0x10|0x03| 6521 0x10|0x02|0x48|0x13|0x00|0x19|0x79|0x01|0x00|0x10|0x03|
|
|
#NRMCHR
|
|
|
|
#POOLHT 0x11 0x10|0x02|0x00|0x01|0x00|0x11|0x24|0x10|0x03| / Byte 5 ?????
|
|
#POOLHT2 0x12 0x10|0x02|0x00|0x01|0x00|0x12|0x25|0x10|0x03| 0x10|0x02|0x48|0x13|0x03|0x00|0x00|0x12|0x82|0x10|0x03|
|
|
#SOLHT 0x14 0x10|0x02|0x00|0x01|0x00|0x14|0x27|0x10|0x03|
|
|
#SPAHT 0x13 0x10|0x02|0x00|0x01|0x00|0x13|0x26|0x10|0x03|
|
|
|
|
#SPA 0x0e 0x10|0x02|0x00|0x01|0x00|0x0e|0x21|0x10|0x03| SPA=0 0x10|0x02|0x48|0x13|0x03|0x00|0x00|0x0e|0x7e|0x10|0x03|
|
|
#SPA=1 0x10|0x02|0x00|0x01|0x81|0x0e|0xa2|0x10|0x03| SPA=1 0x10|0x02|0x48|0x13|0x02|0x01|0x00|0x0e|0x7e|0x10|0x03|
|
|
#SPA=0 0x10|0x02|0x00|0x01|0x80|0x0e|0xa1|0x10|0x03| SPA=0 0x10|0x02|0x48|0x13|0x02|0x00|0x00|0x0e|0x7d|0x10|0x03|
|
|
|
|
#WFALL 0x0f 0x10|0x02|0x00|0x01|0x00|0x0f|0x22|0x10|0x03| // ?23 OPTION SWITCH NOT SET 0x10|0x02|0x48|0x13|0x02|0x00|0x0d|0x0f|0x8b|0x10|0x03|
|
|
|
|
// More Complex examples, 2 messages when setting a value
|
|
// first request
|
|
Byte 4 = DeviceID
|
|
Byte 4 = 0x35 (I want to change something????)
|
|
// first reply
|
|
Byte 3 = 0x07
|
|
Byte 4 = DeviceID
|
|
|
|
// Second request
|
|
Byte 4 = 0x00
|
|
Byte 6 = value
|
|
// Second reply
|
|
Byte 3 = 0x13
|
|
Byte 4 = DeviceID
|
|
Byte 5 = 0x00 (??????)
|
|
Byte 6 = (Value)
|
|
|
|
#POOLSP 0x05 0x10|0x02|0x00|0x01|0x05|0x05|0x1d|0x10|0x03| 60 F 0x10|0x02|0x48|0x13|0x05|0x00|0x3c|0x00|0xae|0x10|0x03|
|
|
#POOLSP=60 0x10|0x02|0x00|0x01|0x05|0x35|0x4d|0x10|0x03| 0x10|0x02|0x48|0x07|0x05|0x66|0x10|0x03|
|
|
(Second messsage)0x10|0x02|0x00|0x01|0x00|0x3c|0x4f|0x10|0x03| 60 F 0x10|0x02|0x48|0x13|0x05|0x00|0x3c|0x00|0xae|0x10|0x03|
|
|
|
|
#POOLSP2? 0x06 0x10|0x02|0x00|0x01|0x06|0x05|0x1e|0x10|0x03| 60 f 0x10|0x02|0x48|0x13|0x06|0x00|0x3c|0x00|0xaf|0x10|0x03|
|
|
#POOLSP2=70 0x10|0x02|0x00|0x01|0x06|0x35|0x4e|0x10|0x03| 60 f 0x10|0x02|0x48|0x13|0x06|0x00|0x3c|0x00|0xaf|0x10|0x03|
|
|
|
|
#SPASP 0x07 0x10|0x02|0x00|0x01|0x07|0x05|0x1f|0x10|0x03| 102 F = 0x10|0x02|0x48|0x13|0x07|0x00|0x66|0x00|0xda|0x10|0x03|
|
|
#SPASP=99 0x10|0x02|0x00|0x01|0x07|0x35|0x4f|0x10|0x03| = 0x10|0x02|0x48|0x07|0x07|0x68|0x10|0x03|
|
|
(Second messsage)0x10|0x02|0x00|0x01|0x00|0x63|0x76|0x10|0x03| 99 = 0x10|0x02|0x48|0x13|0x07|0x00|0x63|0x00|0xd7|0x10|0x03|
|
|
|
|
#PUMP 0x0c 0x10|0x02|0x00|0x01|0x00|0x0c|0x1f|0x10|0x03|
|
|
#PUMPLO 0x10|0x02|0x00|0x01|0x0d|0x34|0x54|0x10|0x03|
|
|
#RSPFMT
|
|
#RST
|
|
#S1
|
|
|
|
|
|
#VERS
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
Startup against real panel
|
|
|
|
Debug: RS Serial: Openeded serial port /dev/ttyUSB0
|
|
Debug: RS Serial: Set serial port /dev/ttyUSB0 to blocking mode
|
|
Debug: RS Serial: Set serial port /dev/ttyUSB0 io attributes
|
|
Debug: AqualinkD: To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x08 of type Status | HEX: 0x10|0x02|0x08|0x02|0x00|0x00|0x00|0x00|0x00|0x1c|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x08 of type Status | HEX: 0x10|0x02|0x08|0x02|0x00|0x00|0x00|0x00|0x00|0x1c|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x08 of type Status | HEX: 0x10|0x02|0x08|0x02|0x00|0x00|0x00|0x00|0x00|0x1c|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x08 of type Status | HEX: 0x10|0x02|0x08|0x02|0x00|0x00|0x00|0x00|0x00|0x1c|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x08 of type Status | HEX: 0x10|0x02|0x08|0x02|0x00|0x00|0x00|0x00|0x00|0x1c|0x10|0x03|
|
|
Warning: RS Serial: BAD PACKET To 0x21 of type Unknown | HEX: 0x10|0x02|0x21|0x3e|0x33|0x10|0x02|0x22|0x00|0x34|0x10|0x03|
|
|
Warning: RS Serial: Serial read bad Jandy checksum, ignoring
|
|
Warning: RS Serial: BAD PACKET To 0xfb of type PDA Hlig | HEX: 0x10|0x02|0xfb|0x10|0x02|0x08|0x02|0x00|0x00|0x00|0x00|0x00|0x1c|0x10|0x03|
|
|
Warning: RS Serial: Serial read bad Jandy checksum, ignoring
|
|
Debug: AqualinkD: To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x08 of type Status | HEX: 0x10|0x02|0x08|0x02|0x00|0x00|0x00|0x00|0x00|0x1c|0x10|0x03|
|
|
Warning: RS Serial: BAD PACKET To 0x08 of type Message | HEX: 0x10|0x02|0x08|0x03|0x00|0x20|0x41|0x49|0x52|0x20|0x54|0x45|0xfd|0x10|0x02|0x08|0x03|0x00|0x20|0x41|0x49|0x52|0x20|0x54|0x45|0x4d|0x50|0x20|0x39|0x35|0xdf|0x46|0x20|0x20|0x62|0x10|0x03|
|
|
Warning: RS Serial: Serial read bad Jandy checksum, ignoring
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Debug: AqualinkD: To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x05|0x18|0x10|0x03|
|
|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x79|0x01|0x00|0x10|0x03|
|
|
Command 0x00 = |0x19|0x79|0x01 25|121|1
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Warning: RS Serial: BAD PACKET To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x82|0x20|0x40|0x40|0x80|0x80|0x5c|0x10|0x03|
|
|
Warning: RS Serial: Serial read bad Jandy checksum, ignoring
|
|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x50 of type Probe | HEX: 0x10|0x02|0x50|0x00|0x62|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x60 of type Probe | HEX: 0x10|0x02|0x60|0x00|0x72|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x05|0x18|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x79|0x01|0x00|0x10|0x03|
|
|
Command 0x00 = |0x19|0x79|0x01 25|121|1
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
Debug: AqualinkD: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
Debug: AqualinkD: To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x00|0x00|0x00|0x00|0x00|0x5c|0x10|0x03|
|
|
|
|
|
|
|
|
STARTUP
|
|
|
|
Jandy To 0x48 of type Probe | HEX: 0x10|0x02|0x48|0x00|0x5a|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x05|0x18|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Unknown | HEX: 0x10|0x02|0x48|0x13|0x00|0x19|0x79|0x00|0xff|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x40|0x11|0x00|0x00|0x00|0xad|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x40|0x11|0x00|0x00|0x00|0xad|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x40|0x11|0x00|0x00|0x00|0xad|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x40|0x11|0x00|0x00|0x00|0xad|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x40|0x11|0x00|0x00|0x00|0xad|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x40|0x11|0x00|0x00|0x00|0xad|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
Jandy To 0x48 of type Status | HEX: 0x10|0x02|0x48|0x02|0x40|0x11|0x00|0x00|0x00|0xad|0x10|0x03|
|
|
Jandy From 0x48 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x00|0x13|0x10|0x03|
|
|
|
|
|
|
|
|
Pump ON return
|
|
Debug: RS Serial: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x0c|0x1f|0x10|0x03|
|
|
Debug: RS Serial: To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x03|0x00|0x01|0x0c|0x7d|0x10|0x03|
|
|
|
|
Pump OFF
|
|
Debug: RS Serial: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x0c|0x1f|0x10|0x03|
|
|
Debug: RS Serial: To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x03|0x00|0x00|0x0c|0x7c|0x10|0x03|
|
|
|
|
Pump Flash
|
|
Debug: RS Serial: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x0c|0x1f|0x10|0x03|
|
|
Debug: RS Serial: To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x03|0x00|0x01|0x0c|0x7d|0x10|0x03|
|
|
|
|
|
|
Pool Heat Enabeled
|
|
Debug: RS Serial: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x11|0x24|0x10|0x03|
|
|
Debug: RS Serial: To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x03|0x00|0x02|0x11|0x83|0x10|0x03|
|
|
|
|
Spa HEat On
|
|
Debug: RS Serial: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x13|0x26|0x10|0x03|
|
|
Debug: RS Serial: To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x03|0x00|0x02|0x13|0x85|0x10|0x03|
|
|
|
|
Solar Heat Off
|
|
Debug: RS Serial: To 0x00 of type Ack | HEX: 0x10|0x02|0x00|0x01|0x00|0x12|0x25|0x10|0x03|
|
|
Debug: RS Serial: To 0x48 of type RSSA DevStatus | HEX: 0x10|0x02|0x48|0x13|0x03|0x00|0x00|0x12|0x82|0x10|0x03|
|
|
|
|
*/
|
|
|
|
#endif |