PDA-Update
sfeakes 2024-04-24 08:30:26 -05:00
parent a033fc3fbf
commit df0c529261
12 changed files with 38 additions and 11 deletions

View File

@ -84,6 +84,10 @@ Designed to mimic AqualinkRS devices, used to fully configure the master control
* Update AqualinkD Management console to manage configuration
* Create iAqualink Touch Simulator
# Update in Release 2.3.5
* Added iAqualinkTouch support for PDA only panels that can use that protocol.
* This makes the PDA only panels quicker and less error prone.
# Update in Release 2.3.4
* Changes for Docker
* Updated simulator code base and added new simulators for AllButton, OneTouch & PDA.

View File

@ -747,9 +747,16 @@ void _aq_programmer(program_type r_type, char *args, struct aqualinkdata *aq_dat
}
}
#endif
#ifdef AQ_PDA
// Check we are doing something valid request
if (isPDA_PANEL) {
if (isPDA_PANEL
#ifdef AQ_IAQTOUCH
&& _aqconfig_.extended_device_id_programming == false && _aqconfig_.extended_device_id == 0x00
#endif
) {
pda_reset_sleep();
if (type != AQ_PDA_INIT &&
type != AQ_PDA_WAKE_INIT &&

View File

@ -140,6 +140,9 @@ const char* get_packet_type(unsigned char* packet , int length)
case CMD_IAQ_STARTUP:
return "iAq init";
break;
case CMD_IAQ_TITLE_MESSAGE:
return "iAq ProductName";
break;
case RSSA_DEV_STATUS:
// This is a fail reply 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.

View File

@ -337,7 +337,7 @@ SPILLOVER IS DISABLED WHILE SPA IS ON
#define CMD_IAQ_POLL 0x30 // Poll message or ready to receive command
#define CMD_IAQ_CTRL_READY 0x31 // Get this when we can send big control command
#define CMD_IAQ_PAGE_CONTINUE 0x40 // Seems we get this on AUX device page when there is another page, keeps circuling through pages.
#define CMD_IAQ_TITLE_MESSAGE 0x2d // This is what the product name is set to (Jandy RS) usually
//#define CMD_IAQ_VSP_ERROR 0x2c // Error when setting speed too high
#define CMD_IAQ_MSG_LONG 0x2c // This this is display popup message. Next 2 bytes 0x00|0x01 = wait and then 0x00|0x00 clear
/*

View File

@ -1578,7 +1578,7 @@ void main_loop()
#ifdef AQ_PDA
if (isPDA_PANEL) {
init_pda(&_aqualink_data);
if (_aqconfig_.extended_device_id != 0x00)
if (_aqconfig_.extended_device_id != 0x00 && _aqconfig_.extended_device_id != 0x33)
{
LOG(AQUA_LOG,LOG_ERR, "Aqualink daemon can't use extended_device_id in PDA mode, ignoring value '0x%02hhx' from cfg\n",_aqconfig_.extended_device_id);
_aqconfig_.extended_device_id = 0x00;

View File

@ -537,6 +537,12 @@ bool process_iaqtouch_packet(unsigned char *packet, int length, struct aqualinkd
if (gotStatus == false)
gotStatus = true;
//[IAQ_STATUS_PAGE_LINES][AQ_MSGLEN+1];
if (isPDA_PANEL && !in_iaqt_programming_mode(aq_data) ) {
printf("********* NEXT PAGE **********\n");
iaqt_queue_cmd(KEY_IAQTCH_NEXT_PAGE);
}
} else if (packet[PKT_CMD] == CMD_IAQ_PAGE_END) {
set_iaq_cansend(true);
LOG(IAQT_LOG,LOG_DEBUG, "Turning IAQ SEND on\n");

View File

@ -98,6 +98,12 @@ void waitfor_iaqt_queue2empty()
delay(PROGRAMMING_POLL_DELAY_TIME);
}
// Initial startup can take some time, _cansend should be false during this time.
// If we start programming before we receive the first status page, nothing works, this forces that wait
while(_cansend == false) {
delay(PROGRAMMING_POLL_DELAY_TIME * 2);
}
if (_iaqt_pgm_command != NUL) {
// Wait for longer interval
while ( (_iaqt_pgm_command != NUL) && ( i++ < PROGRAMMING_POLL_COUNTER * 2 ) ) {

Binary file not shown.

View File

@ -77,7 +77,7 @@ device_id=0x0a
# If you have extended_device_id set, then you can also use that ID for programming some features.
# This means that you can turn things on/off while AqualinkD is programming certian features.
# If you are using Aqualink Touch protocol for extended_device_id then this is highly recomended
# as it will speed up programming substantially. if One Touch it's 50/50.
# as it will speed up programming substantially. if One Touch it's 50/50.
#extended_device_id_programming = yes
# Read information from these devices directly from the RS485 bus as well as control panel.

View File

@ -18,8 +18,8 @@ web_directory=/nas/data/Development/Raspberry/AqualinkD/web
#log_level=DEBUG_SERIAL
#log_level=DEBUG
log_level=INFO
#log_level=NOTICE
#log_level=INFO
log_level=NOTICE
# AQUA_LOG 1
# NET_LOG 2
@ -39,8 +39,8 @@ log_level=INFO
#debug_log_mask = 1
#debug_log_mask = 2
#debug_log_mask = 4
#debug_log_mask = 8
#debug_log_mask = 16
debug_log_mask = 8
debug_log_mask = 16
#debug_log_mask = 32
#debug_log_mask = 64
#debug_log_mask = 256
@ -89,12 +89,12 @@ device_id=0x60
# Valid ID's are 0x40, 0x41, 0x42 & 0x43.
# If you have a one touch remote do not use Ox40
#extended_device_id=0x43
#extended_device_id=0x31
extended_device_id=0x33
# If you have extended_device_id set, then you can also use that ID for programming some features.
# This means that you can turn things on/off while AqualinkD is programming certian features.
# At the moment only heater setpoints & swg boost is on the extended device programming
#extended_device_id_programming = yes
extended_device_id_programming = yes
#extended_device_id_programming = no
# Not documented

Binary file not shown.

View File

@ -421,13 +421,14 @@ console.log("SIM LOAD");
status.classList.remove("error");
}
}
function update_status(data) {
// Some form of error if PDA only panel.
if (data.panel_type.startsWith("PDA")) {
//document.getElementById("status").innerHTML = ' !!! PDA only panels are not Supported !!! '
//document.getElementById("status").classList.add("error");
update_status_message("PDA only panels are not Supported", true);
update_status_message("Some PDA panels do not support OneTouch", true);
}
const versionlabel = document.getElementById("version");