mirror of https://github.com/sfeakes/AqualinkD.git
parent
1333597ce1
commit
44ecda1de0
39
README.md
39
README.md
|
|
@ -115,31 +115,6 @@ Designed to mimic AqualinkRS devices, used to fully configure the master control
|
|||
* The only Jandy devices I have not decoded yet are LX heater & Chemical Feeder. If you have either of these devices and are willing to post some logs, please let me know, or post in the [Discussions area](https://github.com/aqualinkd/AqualinkD/discussions)
|
||||
|
||||
|
||||
<!--
|
||||
NEED TO FIX FOR THIS RELEASE.
|
||||
* check panel version reported against config.
|
||||
* pickup speed faster on iaqualinktouch after change
|
||||
* with iaqualink2 no need to poll iaqtouch devices as frequently
|
||||
* update documentation on how vbutton / vpump / pump_max & min / enable_iauqalink2
|
||||
* check rs serial adapter is active if light color mode 11 is used.
|
||||
|
||||
* Check SWG messages like "#1 TruClear", see log in this post https://github.com/aqualinkd/AqualinkD/discussions/388
|
||||
|
||||
* Heat Pump / Chiller for OneTouch
|
||||
|
||||
* Update Mongoose
|
||||
|
||||
* PDA Crap.
|
||||
* pda_aq_programmer line 702/703 color light.
|
||||
* pda_aq_programmer line 782 back menu testing in pda_init
|
||||
|
||||
* FIX Panel name in config to accept output from panel actual name
|
||||
|
||||
* Move all programming threads over to using struct programmerArgs.
|
||||
* Use set_allbutton_light_dimmer for all lights (ie color lights)
|
||||
|
||||
-->
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
|
|
@ -153,6 +128,20 @@ AqualinkD will be moving over to github hosted runners for compiling, currently
|
|||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
<!--
|
||||
NEED TO FIX NEXT THIS RELEASE.
|
||||
|
||||
DONE - web config using wrong ID for "extra_aux" "Solar_Heater". should probably delete solah_heater
|
||||
Fix space after " - show " needed in config for show to work.
|
||||
DONE. - SWG comes up enabled with there isn't one
|
||||
-->
|
||||
|
||||
# Updates in 3.0.2
|
||||
* Fixed bug with SWG being enabled if one is not present.
|
||||
* Fixed bug with light_programs ending in 'show' aqualinkd.conf
|
||||
|
||||
|
||||
# Updates in 3.0.1
|
||||
* UI Update for web config.
|
||||
* UI Now support for themes. (auto, dark, light -or- custom)
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -259,12 +259,13 @@ void _processMessage(char *message, struct aqualinkdata *aqdata, bool reset)
|
|||
// Removed aqdata->swg_led_state check from below if, so SWG can be found if read_SWG_rs584 is off.
|
||||
// May want to add options like (isIAQT_ENABLED == false && isONET_ENABLED == false && READ_RSDEV_SWG == false )
|
||||
// Then remove the aqdata->swg_led_state check
|
||||
if ( ((msg_loop & MSG_SWG_DEVICE) != MSG_SWG_DEVICE) /*&& aqdata->swg_led_state != LED_S_UNKNOWN*/) {
|
||||
if ( ((msg_loop & MSG_SWG_DEVICE) != MSG_SWG_DEVICE) && aqdata->swg_led_state != LED_S_UNKNOWN) {
|
||||
// No Additional SWG devices messages like "no flow"
|
||||
if ((msg_loop & MSG_SWG) != MSG_SWG && aqdata->aqbuttons[PUMP_INDEX].led->state == OFF )
|
||||
if ((msg_loop & MSG_SWG) != MSG_SWG && aqdata->aqbuttons[PUMP_INDEX].led->state == OFF ) {
|
||||
setSWGdeviceStatus(aqdata, ALLBUTTON, SWG_STATUS_OFF);
|
||||
else
|
||||
} else {
|
||||
setSWGdeviceStatus(aqdata, ALLBUTTON, SWG_STATUS_ON);
|
||||
}
|
||||
}
|
||||
|
||||
// If no AQUAPURE message, either (no SWG, it's set 0, or it's off).
|
||||
|
|
@ -504,6 +505,11 @@ void _processMessage(char *message, struct aqualinkdata *aqdata, bool reset)
|
|||
}
|
||||
else if (strncasecmp(msg, MSG_SWG_PPM, MSG_SWG_PPM_LEN) == 0)
|
||||
{
|
||||
// if we see PPM message, we must have a SWG, so set the status to on, if it's unknown.
|
||||
// This will enable SWG without read_rs485_swg set
|
||||
if (aqdata->swg_led_state == LED_S_UNKNOWN) {
|
||||
setSWGdeviceStatus(aqdata, ALLBUTTON, SWG_STATUS_ON);
|
||||
}
|
||||
SET_IF_CHANGED( aqdata->swg_ppm, atoi(msg + MSG_SWG_PPM_LEN), aqdata->is_dirty);
|
||||
msg_loop |= MSG_SWG;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -156,6 +156,10 @@ char *_color_light_options[NUMBER_LIGHT_COLOR_TYPES][LIGHT_COLOR_OPTIONS] =
|
|||
// DON'T FORGET TO CHANGE #define DIMMER_LIGHT_INDEX 10 in color_lights.h
|
||||
|
||||
|
||||
int _custom_shows = 0;
|
||||
char *_color_light_custom_show_names[LIGHT_COLOR_OPTIONS];
|
||||
|
||||
|
||||
|
||||
/*
|
||||
void deleteLightOption(int type, int index)
|
||||
|
|
@ -210,6 +214,9 @@ void clear_aqualinkd_light_modes()
|
|||
//_color_light_options[0][i] = i;
|
||||
//_color_light_options[0][i] = _aqualinkd_custom_colors[i];
|
||||
}
|
||||
|
||||
// Reset the show list
|
||||
_custom_shows = 0;
|
||||
}
|
||||
|
||||
int get_num_light_modes(int index)
|
||||
|
|
@ -240,6 +247,15 @@ bool set_aqualinkd_light_mode_name(char *name, int index, bool isShow)
|
|||
// TODO NSF check isShow and add a custom one if needed
|
||||
_color_light_options[0][index] = name;
|
||||
|
||||
if (isShow) {
|
||||
//printf ("ADDED Show %s and index %d\n",name,_custom_shows);
|
||||
if (_custom_shows < LIGHT_COLOR_OPTIONS ) {
|
||||
_color_light_custom_show_names[_custom_shows++] = name;
|
||||
} else {
|
||||
LOG(AQUA_LOG,LOG_WARNING, "Config error, max custom light mode shows is %d \n",LIGHT_COLOR_OPTIONS);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -337,6 +353,15 @@ bool isShowMode(const char *mode)
|
|||
if (mode == NULL)
|
||||
return false;
|
||||
|
||||
for (int i=0; i < _custom_shows; i++) {
|
||||
// We could probably simplify this by simply checking the pointers and not using strcmp
|
||||
// if ( _color_light_custom_show_names[i] == mode )
|
||||
if (_color_light_custom_show_names[i] != NULL &&
|
||||
strcmp(mode, _color_light_custom_show_names[i]) == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (strcmp(mode, "Color Splash") == 0 ||
|
||||
strcmp(mode, "Slow Splash") == 0 ||
|
||||
strcmp(mode, "Fast Splash") == 0 ||
|
||||
|
|
|
|||
|
|
@ -1055,13 +1055,25 @@ if (strlen(cleanwhitespace(value)) <= 0) {
|
|||
}
|
||||
char *name = cleanalloc(value);
|
||||
int len = strlen(name);
|
||||
char *end = NULL;
|
||||
if (len > 0) {
|
||||
//printf("%s\n",name);
|
||||
if ((end = strstr(name, " - show")) != NULL) {
|
||||
name[end-name] = '\0';
|
||||
set_aqualinkd_light_mode_name(name,num,true);
|
||||
//printf("Index Added SHOW '%s'\n",name);
|
||||
} else {
|
||||
set_aqualinkd_light_mode_name(name,num,false);
|
||||
//printf("Added light '%s'\n",name);
|
||||
}
|
||||
/*
|
||||
if ( strncasecmp(name+len-7, " - show", 7) == 0 ) {
|
||||
name[len-7] = '\0';
|
||||
set_aqualinkd_light_mode_name(name,num,true);
|
||||
} else {
|
||||
set_aqualinkd_light_mode_name(name,num,false);
|
||||
}
|
||||
*/
|
||||
rtn=true;
|
||||
} else {
|
||||
LOG(AQUA_LOG,LOG_WARNING, "Config error, light_program_%d is blank\n",num);
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@
|
|||
#define AQUALINKD_SHORT_NAME "AqualinkD"
|
||||
|
||||
// Use Magor . Minor . Patch
|
||||
#define AQUALINKD_VERSION "3.0.1"
|
||||
#define AQUALINKD_VERSION "3.0.2"
|
||||
|
||||
|
|
@ -152,9 +152,6 @@
|
|||
"CHEM/ORP": {
|
||||
"display": "true"
|
||||
},
|
||||
"Solar_Heater": {
|
||||
"display": "true"
|
||||
},
|
||||
"Extra_Aux": {
|
||||
"display": "true"
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue