mirror of https://github.com/sfeakes/AqualinkD.git
Simulator Updates
parent
4c917bbc72
commit
64ae9da1b4
|
@ -78,6 +78,7 @@ int get_aq_cmd_length()
|
|||
{
|
||||
return _stack_place;
|
||||
}
|
||||
|
||||
unsigned char pop_aq_cmd(struct aqualinkdata *aq_data)
|
||||
{
|
||||
unsigned char cmd = NUL;
|
||||
|
@ -118,7 +119,6 @@ void aq_programmer(program_type type, char *args, struct aqualinkdata *aq_data)
|
|||
struct programmingThreadCtrl *programmingthread = malloc(sizeof(struct programmingThreadCtrl));
|
||||
|
||||
programmingthread->aq_data = aq_data;
|
||||
|
||||
//programmingthread->thread_args = args;
|
||||
if (args != NULL && type != AQ_SEND_CMD)
|
||||
strncpy(programmingthread->thread_args, args, sizeof(programmingthread->thread_args)-1);
|
||||
|
|
|
@ -36,8 +36,10 @@ static struct termios _oldtio;
|
|||
|
||||
void log_packet(char *init_str, unsigned char* packet, int length)
|
||||
{
|
||||
if ( getLogLevel() < LOG_DEBUG_SERIAL)
|
||||
if ( getLogLevel() < LOG_DEBUG_SERIAL) {
|
||||
//logMessage(LOG_DEBUG, "Send '0x%02hhx' to controller\n", packet[6]);
|
||||
return;
|
||||
}
|
||||
|
||||
int cnt;
|
||||
int i;
|
||||
|
@ -69,7 +71,7 @@ void log_packet(char *init_str, unsigned char* packet, int length)
|
|||
*/
|
||||
}
|
||||
|
||||
const char* get_packet_type(unsigned char* packet, int length)
|
||||
const char* get_packet_type(unsigned char* packet , int length)
|
||||
{
|
||||
static char buf[15];
|
||||
|
||||
|
@ -283,7 +285,7 @@ void send_command(int fd, unsigned char destination, unsigned char b1, unsigned
|
|||
|
||||
if ( getLogLevel() >= LOG_DEBUG_SERIAL) {
|
||||
char buf[30];
|
||||
sprintf(buf, "Sent %8.8s ", get_packet_type(ackPacket+1, length));
|
||||
sprintf(buf, "Sent %8.8s ", get_packet_type(ackPacket+1 , length));
|
||||
log_packet(buf, ackPacket, length);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -144,7 +144,7 @@ int get_packet(int file_descriptor, unsigned char* packet);
|
|||
//void close_serial_port(int file_descriptor, struct termios* oldtio);
|
||||
//void process_status(void const * const ptr);
|
||||
void process_status(unsigned char* ptr);
|
||||
const char* get_packet_type(unsigned char* packet, int length);
|
||||
const char* get_packet_type(unsigned char* packet , int length);
|
||||
void send_test_cmd(int fd, unsigned char destination, unsigned char b1, unsigned char b2, unsigned char b3);
|
||||
void send_command(int fd, unsigned char destination, unsigned char b1, unsigned char b2, unsigned char b3);
|
||||
void send_messaged(int fd, unsigned char destination, char *message);
|
||||
|
|
18
aqualinkd.c
18
aqualinkd.c
|
@ -729,6 +729,7 @@ void main_loop() {
|
|||
int packet_length;
|
||||
unsigned char packet_buffer[AQ_MAXPKTLEN];
|
||||
bool interestedInNextAck;
|
||||
int delayAckCnt = 0;
|
||||
|
||||
// NSF need to find a better place to init this.
|
||||
//_aqualink_data.aq_command = 0x00;
|
||||
|
@ -795,7 +796,7 @@ void main_loop() {
|
|||
_aqualink_data.aq_command = NUL;
|
||||
*/
|
||||
if (getLogLevel() >= LOG_DEBUG)
|
||||
logMessage(LOG_DEBUG, "RS received packet of type %s length %d\n", get_packet_type(packet_buffer, packet_length), packet_length);
|
||||
logMessage(LOG_DEBUG, "RS received packet of type %s length %d\n", get_packet_type(packet_buffer , packet_length), packet_length);
|
||||
|
||||
// **** NSF (Taken out while playing with Panel Simulator, put back in. ************)
|
||||
//send_ack(rs_fd, pop_aq_cmd(&_aqualink_data));
|
||||
|
@ -806,8 +807,21 @@ void main_loop() {
|
|||
broadcast_aqualinkstate(mgr.active_connections);
|
||||
}
|
||||
|
||||
//if (! _aqualink_data.simulate_panel || stristr(_aqualink_data.last_display_message, "SELECT") == NULL || get_aq_cmd_length() > 0)
|
||||
//send_ack(rs_fd, pop_aq_cmd(&_aqualink_data));
|
||||
// NSF Not 100% yet but better. Still a mess. Delete if and go back to above is problems with messages, this is only
|
||||
// Necessary for simulator mode.
|
||||
if (! _aqualink_data.simulate_panel ||
|
||||
_aqualink_data.active_thread.thread_id != 0 ||
|
||||
strncasecmp(_aqualink_data.last_display_message, "SELECT", 6) != 0 ||
|
||||
get_aq_cmd_length() > 0 ||
|
||||
delayAckCnt > 5) {
|
||||
send_ack(rs_fd, pop_aq_cmd(&_aqualink_data));
|
||||
delayAckCnt = 0;
|
||||
} else {
|
||||
logMessage(LOG_NOTICE, "Delaying ACK due to Simulator mode \n");
|
||||
delayAckCnt++;
|
||||
}
|
||||
|
||||
|
||||
} else if (packet_length > 0) {
|
||||
// printf("packet not for us %02x\n",packet_buffer[PKT_DEST]);
|
||||
|
|
|
@ -0,0 +1,196 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset=utf-8 />
|
||||
<title>Feakes Inc, Aqualink RS control daemon</title>
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
|
||||
<!--<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />-->
|
||||
<!--<meta name="viewport" content="width=device-width, user-scalable=yes, width=800"/>-->
|
||||
<!--<meta name="viewport" content="width=device-width, user-scalable=yes"/>-->
|
||||
<meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1.0"/>
|
||||
<!--<link href="aqualinkd.png" rel="apple-touch-icon" sizes="180x180" />-->
|
||||
<!--<link href="aqualinkd.png" rel="icon" sizes="128x128" />-->
|
||||
<link href="aqualinkd.png" rel="apple-touch-icon">
|
||||
<link href="aqualinkd.png" rel="icon">
|
||||
<link rel="stylesheet" href="css/small_ff.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body ontouchmove="BlockMove(event);" style="background-color:black;">
|
||||
|
||||
<div id="main_div">
|
||||
|
||||
<div id="header_div" class='bgimg'>
|
||||
<div id="line1">
|
||||
<div id="title_div">Aqualink RS8</div>
|
||||
<div id="air_temp_title_div">Air Temp:</div>
|
||||
<div id="air_temp">000 F</div>
|
||||
<div id="battery_ok_div" class="battery_image_div"><img id="battery_ok" src="" style="visibility:hidden"></div>
|
||||
<div id="battery_low_div" class="battery_image_div"><img id="battery_low" src="" style="visibility:hidden"></div>
|
||||
<div id="battery_blank_div" class="battery_image_div"><img id="battery_blank" src=""></div>
|
||||
</div>
|
||||
<div id="line2">
|
||||
<div id="net_off_div" class="net_activity_div"><img id="net_off" src="" style="visibility:visible"></div>
|
||||
<div id="net_green_div" class="net_activity_div"><img id="net_green" src="" style="visibility:hidden"></div>
|
||||
<div id="net_yellow_div" class="net_activity_div"><img id="net_yellow" src="" style="visibility:hidden"></div>
|
||||
<div id="net_red_div" class="net_activity_div"><img id="net_red" src="" style="visibility:hidden"></div>
|
||||
<div id="messages_div" align="center"></div>
|
||||
<div id="date_time">00:00 PM 00/00/00 DDD</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="body_div" class="bgimg_body">
|
||||
<div id="pool_temp_div" class="body_sub_div">
|
||||
<div id="pool_temp_title" class="temp_title_div">Pool:</div>
|
||||
<div id="pool_temp" class="temp_val_div">000 F</div>
|
||||
<div class="control_button_div">
|
||||
<div class="led_button_div" id="filter_pump">
|
||||
<div class="led_div"><img id="Filter_Pump_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Filter_Pump_on_status" src="" style="visibility:hidden"></div>
|
||||
<div class="led_div"><img id="Filter_Pump_en_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Filter_Pump" class='button black button_div' type="button" onclick="queue_command('Filter_Pump')">Filter Pump</div>
|
||||
</div>
|
||||
<div class="led_button_div" id="pool_htr">
|
||||
<div class="led_div"><img id="Pool_Heater_on_status" src="" style="visibility:hidden"></div>
|
||||
<div class="led_div"><img id="Pool_Heater_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Pool_Heater_en_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Pool_Heater" class='button black button_div' type="button" onclick="queue_command('Pool_Heater')">Heater</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pool_htr_set_pnt" class="set_pnt_val_div">000 F</div>
|
||||
<div class="set_pnt_button_div">
|
||||
<div class='button medium black set_pnt_button' type="button" onclick="incr_pool_htr('+')">+</div>
|
||||
<div class='button medium black set_pnt_button' type="button" onclick="incr_pool_htr('-')">-</div>
|
||||
</div>
|
||||
<div class="set_button_div"><div class='button black' type="button" onclick="set_temperature('POOL_HTR')">Set</div></div>
|
||||
</div>
|
||||
<div id="spa_temp_div" class="body_sub_div">
|
||||
<div id="spa_temp_title" class="temp_title_div">Spa:</div>
|
||||
<div id="spa_temp" class="temp_val_div">000 F</div>
|
||||
<div class="control_button_div">
|
||||
<div class="led_button_div" id="spa_mode">
|
||||
<div class="led_div"><img id="Spa_Mode_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Spa_Mode_on_status" src="" style="visibility:hidden"></div>
|
||||
<div class="led_div"><img id="Spa_Mode_en_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Spa_Mode" class="button black button_div" type="button" onclick="queue_command('Spa_Mode')">Spa Mode</div>
|
||||
</div>
|
||||
<!--
|
||||
<div class="led_button_div" id="aux2">
|
||||
<div class="led_div"><img id="aux2_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="aux2_on_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Aux_2" class="button black button_div" type="button" onclick="queue_command('Aux_3')">Aux 2</div>
|
||||
</div>
|
||||
-->
|
||||
<div class="led_button_div" id="aux3">
|
||||
<div class="led_div"><img id="Aux_3_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Aux_3_on_status" src="" style="visibility:hidden"></div>
|
||||
<div class="led_div"><img id="Aux_3_en_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Aux_3" class="button black button_div" type="button" onclick="queue_command('Aux_3')">Aux 3</div>
|
||||
</div>
|
||||
<div class="led_button_div" id="pool_htr">
|
||||
<div class="led_div"><img id="Spa_Heater_on_status" src="" style="visibility:hidden"></div>
|
||||
<div class="led_div"><img id="Spa_Heater_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Spa_Heater_en_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Spa_Heater" class="button black button_div" type="button" onclick="queue_command('Spa_Heater')">Heater</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="spa_htr_set_pnt" class="set_pnt_val_div">000 F</div>
|
||||
<div class="set_pnt_button_div">
|
||||
<div class='button medium black set_pnt_button' type="button" onclick="incr_spa_htr('+')">+</div>
|
||||
<div class='button medium black set_pnt_button' type="button" onclick="incr_spa_htr('-')">-</div>
|
||||
</div>
|
||||
<div class="set_button_div"><div class='button black' type="button" onclick="set_temperature('SPA_HTR')">Set</div></div>
|
||||
</div>
|
||||
|
||||
<div id="solar_htr_div" class="body_sub_div">
|
||||
<!--
|
||||
<div class="solar_led_div"><img id="Solar_Heater_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="solar_led_div"><img id="Solar_Heater_on_status" src="" style="visibility:hidden"></div>
|
||||
<div class="solar_led_div"><img id="Solar_Heater_en_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Solar_Heater" onclick="queue_command('Solar_Heater')" class="button black" type="button">Solar Heater</div>
|
||||
-->
|
||||
<div class="select_pl_div">
|
||||
<select id="Light_Mode" class="select_pl_dd button black" onchange="set_light_mode(this.options[this.selectedIndex].value)">
|
||||
<option value="0">Pool Light Program</option>
|
||||
<option value="1">Voodoo Lounge - Show</option>
|
||||
<option value="2">Blue Sea</option>
|
||||
<option value="3">Royal Blue</option>
|
||||
<option value="4">Afternoon Skies</option>
|
||||
<option value="5">Aqua Green</option>
|
||||
<option value="6">Emerald</option>
|
||||
<option value="7">Cloud White</option>
|
||||
<option value="8">Warm Red</option>
|
||||
<option value="9">Flamingo</option>
|
||||
<option value="10">Vivid Violet</option>
|
||||
<option value="11">Sangria</option>
|
||||
<option value="12">Twilight - Show</option>
|
||||
<option value="13">Tranquility - Show</option>
|
||||
<option value="14">Gemstone - Show</option>
|
||||
<option value="15">USA - Show</option>
|
||||
<option value="16">Mardi Gras - Show</option>
|
||||
<option value="17">Cool Cabaret - Show</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="frz_protect_div" class="body_sub_div">
|
||||
<div id="frz_protect_title_div">Freeze Protection:</div>
|
||||
<div id="frz_protect_set_pnt">000 F</div>
|
||||
<div id="fp_set_pnt_button_div">
|
||||
<div class='button medium black set_pnt_button' type="button" onclick="incr_frz_protect('+')">+</div>
|
||||
<div class='button medium black set_pnt_button' type="button" onclick="incr_frz_protect('-')">-</div>
|
||||
</div>
|
||||
<div id="fp_set_button_div"><div class='button black' type="button" onclick="set_temperature('FRZ_PROTECT')">Set</div></div>
|
||||
</div>
|
||||
<div id="leds_div" class="body_sub_div">
|
||||
<div id="accessory_title" class="temp_title_div">Accessories:</div>
|
||||
<div class="control_button_div">
|
||||
<div class="led_button_div" id="aux1">
|
||||
<div class="led_div"><img id="Aux_1_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Aux_1_on_status" src="" style="visibility:hidden"></div>
|
||||
<div class="led_div"><img id="Aux_1_en_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Aux_1" class="button black button_div" type="button" onclick="queue_command('Aux_1')">Aux 1</div>
|
||||
</div>
|
||||
<div class="led_button_div" id="aux2">
|
||||
<div class="led_div"><img id="Aux_2_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Aux_2_on_status" src="" style="visibility:hidden"></div>
|
||||
<div class="led_div"><img id="Aux_2_en_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Aux_2" class="button black button_div" type="button" onclick="queue_command('Aux_2')">Aux 2</div>
|
||||
</div>
|
||||
<div class="led_button_div" id="aux4">
|
||||
<div class="led_div"><img id="Aux_4_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Aux_4_on_status" src="" style="visibility:hidden"></div>
|
||||
<div class="led_div"><img id="Aux_4_en_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Aux_4" class="button black button_div" type="button" onclick="queue_command('Aux_4')">Aux 4</div>
|
||||
</div>
|
||||
<div class="led_button_div" id="aux5">
|
||||
<div class="led_div"><img id="Aux_5_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Aux_5_on_status" src="" style="visibility:hidden"></div>
|
||||
<div class="led_div"><img id="Aux_5_en_status" src="" style="visibility:hidden"></div>
|
||||
<div id="Aux_5" class="button black button_div" type="button" onclick="queue_command('Aux_5')">Aux 5</div>
|
||||
</div>
|
||||
<!--
|
||||
<div class="led_button_div" id="aux6">
|
||||
<div class="led_div"><img id="Aux_6_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Aux_6_on_status" src="" style="visibility:hidden"></div>
|
||||
<div id="aux6_button" class="button black button_div" type="button" onclick="queue_command('KEY_AUX6')">Aux 6</div>
|
||||
</div>
|
||||
<div class="led_button_div" id="aux7">
|
||||
<div class="led_div"><img id="Aux_7_off_status" src="" style="visibility:visible"></div>
|
||||
<div class="led_div"><img id="Aux_7_on_status" src="" style="visibility:hidden"></div>
|
||||
<div id="aux7_button" class="button black button_div" type="button" onclick="queue_command('KEY_AUX7')">Aux 7</div>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer_div" class="bgimg">
|
||||
</div><!-- /footer -->
|
||||
|
||||
</div><!-- /page -->
|
||||
|
||||
<script src="js/aqualink.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
|
@ -367,57 +367,68 @@ void mqtt_broadcast_aqualinkstate(struct mg_connection *nc)
|
|||
switch (_aqualink_data->ar_swg_status) {
|
||||
// Level = (0=gray, 1=green, 2=yellow, 3=orange, 4=red)
|
||||
case 0x00:
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure ON");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure ON");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 1, "GENERATING CHLORINE");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_ON);
|
||||
break;
|
||||
case 0x01:
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure No Flow");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure No Flow");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 2, "NO FLOW");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_OFF);
|
||||
break;
|
||||
case 0x02:
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Low Salt");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Low Salt");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 2, "LOW SALT");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_ON);
|
||||
break;
|
||||
case 0x04:
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Very No flow");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Very No flow");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 3, "VERY LOW SALT");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_OFF);
|
||||
break;
|
||||
case 0x08:
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure High Current");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure High Current");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 4, "HIGH CURRENT");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_ON);
|
||||
break;
|
||||
case 0x09:
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Turning Off");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Turning Off");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 0, "TURNING OFF");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_OFF);
|
||||
break;
|
||||
case 0x10:
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Clean Cell");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Clean Cell");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 2, "CLEAN CELL");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_ON);
|
||||
break;
|
||||
case 0x20:
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Low Voltage");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Low Voltage");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 3, "LOW VOLTAGE");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_ON);
|
||||
break;
|
||||
case 0x40:
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Water Temp Low");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Water Temp Low");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 2, "WATER TEMP LOW");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_OFF);
|
||||
break;
|
||||
case 0x80:
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Check PCB");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure Check PCB");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 4, "CHECK PCB");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_OFF);
|
||||
break;
|
||||
case SWG_STATUS_OFF: // THIS IS OUR OFF STATUS, NOT AQUAPURE
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure OFF");
|
||||
if (!_aqualink_data->simulate_panel)
|
||||
sprintf(_aqualink_data->last_display_message, "AquaPure OFF");
|
||||
send_domoticz_mqtt_status_message(nc, _aqualink_config->dzidx_swg_status, 0, "OFF");
|
||||
send_mqtt_int_msg(nc, SWG_TOPIC, SWG_OFF);
|
||||
break;
|
||||
|
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
Binary file not shown.
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 56 KiB |
|
@ -381,8 +381,10 @@ function update_status(data) {
|
|||
|
||||
if (aqualink_data.status == "Ready") {
|
||||
document.getElementById('messages_div').innerHTML = "";
|
||||
} else {
|
||||
} else if (aqualink_data.status == "Programming") {
|
||||
document.getElementById('messages_div').innerHTML = aqualink_data.status+" (please wait!)";
|
||||
} else {
|
||||
document.getElementById('messages_div').innerHTML = aqualink_data.status;
|
||||
}
|
||||
|
||||
update_temp("air_temp");
|
||||
|
|
|
@ -58,8 +58,8 @@
|
|||
<meta name='apple-mobile-web-app-capable' content='yes'>
|
||||
<meta name='apple-mobile-web-app-status-bar-style' content='black'>
|
||||
<meta name='apple-mobile-web-app-status-bar-style' content='black'>
|
||||
<link href="aqualinkd.png" rel="apple-touch-icon">
|
||||
<link href="aqualinkd.png" rel="icon">
|
||||
<link href="aqualinkd-white.png" rel="apple-touch-icon">
|
||||
<link href="aqualinkd-white.png" rel="icon">
|
||||
<style>
|
||||
:root {
|
||||
--diameter: 30px;
|
||||
|
|
|
@ -26,9 +26,11 @@
|
|||
background-color: rgb(221, 221, 221);
|
||||
padding: 10px;
|
||||
}
|
||||
th{
|
||||
|
||||
th {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
input[type=button],
|
||||
input[type=submit],
|
||||
input[type=reset] {
|
||||
|
@ -134,12 +136,19 @@
|
|||
send_command(cmd);
|
||||
}
|
||||
|
||||
|
||||
function update_status(data) {
|
||||
document.getElementById("status").innerHTML = data.status;
|
||||
|
||||
if (document.getElementById("status").getAttribute("raw") != data.status) {
|
||||
document.getElementById("status_three").innerHTML = document.getElementById("status_two").innerHTML;
|
||||
document.getElementById("status_two").innerHTML = document.getElementById("status").innerHTML;
|
||||
document.getElementById("status").innerHTML = data.status;
|
||||
document.getElementById("status").setAttribute("raw", data.status);
|
||||
}
|
||||
|
||||
for (var obj in data.leds) {
|
||||
if ((led = document.getElementById(obj.toString() + "_led")) == null) {
|
||||
console.log("Error " + obj.toString() + " LED not found");
|
||||
//console.log("Error " + obj.toString() + " LED not found");
|
||||
return;
|
||||
}
|
||||
if (data.leds[obj] == "on") {
|
||||
|
@ -155,7 +164,7 @@
|
|||
|
||||
function set_labels(data) {
|
||||
for (var obj in data) {
|
||||
if ( (button = document.getElementById(obj + "_button")) != null && data[obj] != "NONE") {
|
||||
if ((button = document.getElementById(obj + "_button")) != null && data[obj] != "NONE") {
|
||||
button.value = data[obj];
|
||||
}
|
||||
}
|
||||
|
@ -247,15 +256,23 @@
|
|||
<div class="wrapper">
|
||||
|
||||
<table border='0' id="deviceList">
|
||||
|
||||
<tr>
|
||||
<th colspan="12" id="status">AqualinkD</th>
|
||||
<td colspan="12" align="center"><label id="status_three"> </label></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="12" align="center"><label id="status_two"> </label></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th colspan="12"><label id="status">AqualinkD</label></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
<div id="Filter_Pump_led" class="led off"></div>
|
||||
</td>
|
||||
<td align="left">
|
||||
<input id="Filter_Pump_button" type="button" onclick="send(this);" value="Filter Pump">
|
||||
<input id="Filter_Pump_button" type="button" onclick="send(this);" value="Filter Pump">
|
||||
</td>
|
||||
<td align="right">
|
||||
<div id="Spa_Mode_led" class="led off"></div>
|
||||
|
@ -267,13 +284,13 @@
|
|||
<div id="Aux_1_led" class="led off"></div>
|
||||
</td>
|
||||
<td align="left">
|
||||
<input id="Aux_1_button" type="button" onclick="send(this);" value="AUX1">
|
||||
<input id="Aux_1_button" type="button" onclick="send(this);" value="AUX1">
|
||||
</td>
|
||||
<td align="right">
|
||||
<div id="Aux_2_led" class="led off"></div>
|
||||
</td>
|
||||
<td align="left">
|
||||
<input id="Aux_2_button" type="button" onclick="send(this);" value="AUX2">
|
||||
<input id="Aux_2_button" type="button" onclick="send(this);" value="AUX2">
|
||||
</td>
|
||||
<td align="right">
|
||||
<div id="Aux_3_led" class="led off"></div>
|
||||
|
@ -285,7 +302,7 @@
|
|||
<div id="Aux_4_led" class="led off"></div>
|
||||
</td>
|
||||
<td align="left">
|
||||
<input id="Aux_4_button" type="button" onclick="send(this);" value="AUX4">
|
||||
<input id="Aux_4_button" type="button" onclick="send(this);" value="AUX4">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -299,7 +316,7 @@
|
|||
<div id="Aux_6_led" class="led off"></div>
|
||||
</td>
|
||||
<td align="left">
|
||||
<input id="Aux_6_button" type="button" onclick="send(this);" value="AUX6">
|
||||
<input id="Aux_6_button" type="button" onclick="send(this);" value="AUX6">
|
||||
</td>
|
||||
<td align="right">
|
||||
<div id="Aux_7_led" class="led off"></div>
|
||||
|
@ -317,13 +334,13 @@
|
|||
<div id="Spa_Heater_led" class="led off"></div>
|
||||
</td>
|
||||
<td align="left">
|
||||
<input id="Spa_Heater_button" type="button" onclick="send(this);" value="Spa Heater">
|
||||
<input id="Spa_Heater_button" type="button" onclick="send(this);" value="Spa Heater">
|
||||
</td>
|
||||
<td align="right">
|
||||
<div id="Solar_Heater_led" class="led off"></div>
|
||||
</td>
|
||||
<td align="left">
|
||||
<input id="Solar_Heater_button" type="button" onclick="send(this);" value="Solar Heater">
|
||||
<input id="Solar_Heater_button" type="button" onclick="send(this);" value="Solar Heater">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
Loading…
Reference in New Issue