Version 2.3.0

pull/94/head
sf 2023-05-14 17:29:59 -05:00
parent 4159143a74
commit 00b3eaabe5
10 changed files with 0 additions and 4868 deletions

61
ToDo.md
View File

@ -1,61 +0,0 @@
MUST DO BEFORE RELEASE
done - Check serial blocking mode for startup on getting probes.
done - Serialport timeouts / recovery in blockingmode
done - Serialport timeouts / recovery in non blocking mode.
done - Config "read_extra_devices" "read_pentair_packets" change to read_swg / read_pentair_pump / read_jandy_pump
done - Post MQTT status messages. (clean up duplicates and non terminated strings)
done - tcdrain in blocking mode.
done - setpoint+1
done - doesn't look like protocol supports it. RS16 LED States in serialadapter (on/off, check flash & enable)
done - Link Spa Mode & Spa Heater in web UI ?
done - Programming mode, getting message before it expects message. https://github.com/sfeakes/AqualinkD/issues/111
done (CHECK) - SWG enable/on mismatch when in Boost (restarting aqualinkd)
done - Added Boost to homekit
done - Timers.
done - crashed when passing -c but not file
Light mode from this post https://aqualinkd.freeforums.net/thread/109/lights-turning-on-lightmode?page=1&scrollTo=611
Spa reports 0 (not -17.78) on startup.
Set time (add ~5sec to the functions)
Fix Color lights turn on one press if aqualinkd controlled (looks like bug in programmer)
Fix PRESTATE_ONOFF with domoticz
Fix SWG state messages unknonw 0x0b 0x03 (and others)
Timer when Delay ()
Logging for ePump
simulate panel doesn;t turn off simulate_panel
Really remove simulate control panel
SWG "General fault" in panel, different message from SWG "clean cell"
Do I want to use RSSA to test service / timeout modes?
1/2 done - Colored light (dam hit enter), test if better over RS Serial Adapter. (also hit enter on allbutton)
change all send_ack/message to bool types, and no pop off send queue until actually sent correctly. (for readaheadb4write)
Should I change DEBUG_SERIAL to RSSD_LOG ? (in config debug logging would be all masks except RSSD_LOG.)
Startup programmers from A interface starting before B interface. (look into further)
Pump update fails "can't find pump" in iAq when pumps are on during aqualinkd startup. This may be when iAq starts before rsallbutton
Update Wiki PDA section. (can't support it)
core dump on web port blocked in threadded mode
also check MQTT connection error
NICE
serial_logger add options to connect to panel, reply to ID allbutton ID messages.
OTHER
Update homekit to new API
Look at using specific MQTT topics to ocercome multiple requests messages when changing setpoints?
get_aux_information Loops too much over special devices
add ignore_swg_messags from (Allbutton, iAqua, onetou, RSbuss), probably ignore_pent_pump from above as well.

3589
aqua.log

File diff suppressed because it is too large Load Diff

View File

@ -1,138 +0,0 @@
#include <signal.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "aq_serial.h"
#include "utils.h"
#define SLOG_MAX 80
#define PACKET_MAX 10000000000
bool _keepRunning = true;
void intHandler(int dummy) {
_keepRunning = false;
logMessage(LOG_NOTICE, "Stopping!");
}
void printHex(char *pk, int length)
{
int i=0;
for (i=0;i<length;i++)
{
printf("0x%02hhx|",pk[i]);
}
}
void printPacket(unsigned char ID, unsigned char *packet_buffer, int packet_length)
{
if (packet_buffer[PKT_DEST] != 0x00)
printf("\n");
printf("%4.4s 0x%02hhx of type %8.8s", (packet_buffer[PKT_DEST]==0x00?"From":"To"), (packet_buffer[PKT_DEST]==0x00?ID:packet_buffer[PKT_DEST]), get_packet_type(packet_buffer, packet_length));
printf(" | HEX: ");
printHex((char *)packet_buffer, packet_length);
if (packet_buffer[PKT_CMD] == CMD_MSG || packet_buffer[PKT_CMD] == CMD_MSG_LONG) {
printf(" Message : ");
//fwrite(packet_buffer + 4, 1, AQ_MSGLEN+1, stdout);
fwrite(packet_buffer + 4, 1, packet_length-7, stdout);
}
printf("\n");
}
int main(int argc, char *argv[]) {
int rs_fd;
int packet_length;
unsigned char packet_buffer[AQ_MAXPKTLEN];
unsigned char lastID;
int received_packets = 0;
if (getuid() != 0) {
fprintf(stderr, "ERROR %s Can only be run as root\n", argv[0]);
return EXIT_FAILURE;
}
//if (idMode)
setLoggingPrms(LOG_DEBUG, false, false);
//else
// setLoggingPrms(LOG_DEBUG_SERIAL, false, false);
if (argc < 2) {
logMessage(LOG_DEBUG, "ERROR, first param must be serial port, ie:-\n %s /dev/ttyUSB0\n\n", argv[0]);
return 1;
}
rs_fd = init_serial_port(argv[1]);
signal(SIGINT, intHandler);
signal(SIGTERM, intHandler);
while (_keepRunning == true) {
if (rs_fd < 0) {
logMessage(LOG_DEBUG, "ERROR, serial port disconnect\n");
}
packet_length = get_packet(rs_fd, packet_buffer);
received_packets++;
if (packet_length == -1) {
// Unrecoverable read error. Force an attempt to reconnect.
logMessage(LOG_DEBUG, "ERROR, on serial port\n");
_keepRunning = false;
} else if (packet_length == 0) {
// Nothing read
} else if (packet_length > 0) {
if ((packet_buffer[PKT_DEST] == DEV_MASTER && (lastID == 0x50 || lastID == 0x58))
|| packet_buffer[PKT_DEST] == 0x50 || packet_buffer[PKT_DEST] == 0x58)
printPacket(lastID, packet_buffer, packet_length);
else if (packet_buffer[PKT_CMD] == CMD_MSG || packet_buffer[PKT_CMD] == CMD_MSG_LONG) {
printf(" To 0x%02hhx of Type Message | ",packet_buffer[PKT_DEST]);
fwrite(packet_buffer + 4, 1, packet_length-7, stdout);
printf("\n");
} else {
printPacket(lastID, packet_buffer, packet_length);
}
//send_messaged(0, 0x00, "AquaPure");
/*
if (received_packets == 10 || received_packets == 20) {
send_test_cmd(rs_fd, 0x50, 0x11, 0x32, 0x7d);
//send_test_cmd(rs_fd, 0x80, CMD_PROBE, NUL, NUL);
//send_test_cmd(rs_fd, 0x50, 0x11, 0x0a, NUL); // Set salt to 10%
//send_test_cmd(rs_fd, 0x50, 0x14, 0x01, 0x77); // Send initial string AquaPure (0x14 is the comand, others should be NUL)
//0x10|0x02|0x50|0x14|0x01|0x77|0x10|0x03|
//0x10|0x02|0x50|0x14|0x01|0x77|0x10|0x03|
// 10 02 50 11 0a 7d 10 03
// 0x11 is set %
printf(" *** SENT TEST *** \n");
}
*/
lastID = packet_buffer[PKT_DEST];
//received_packets++;
//delay(100);
sleep(1);
}
if (received_packets >= PACKET_MAX) {
_keepRunning = false;
}
}
return 0;
}

Binary file not shown.

View File

@ -1,168 +0,0 @@
# aqualinkd.conf
#
# The directory where the web files are stored
#web_directory=/var/www/aqualinkd/
web_directory=/nas/data/Development/Raspberry/AqualinkD/web
# Log to file, comment out if you do not want to log to file
#log_file=/var/log/aqualinkd.log
# The log level. [DEBUG, INFO, NOTICE, WARNING, ERROR]
# Pick the highest level, and all levels below will be sent to syslog.
# your syslog settings may be set to only display messages above a certian level
# in which case make sure you use the log_file settings to capture everything
# you want when debugging
# so, NOTICE also prints WARNING & ERROR
# DEBUG would print everything possible
#log_level=DEBUG_SERIAL
#log_level=DEBUG_SERIAL
#log_level=DEBUG
log_level=INFO
#log_level=NOTICE
display_warnings_in_web = yes
# The socket port that the daemon listens to
# If you change this from 80, remember to update aqualink.service.avahi
socket_port=88
# The serial port the daemon access to read the Aqualink RS8
serial_port=/dev/ttyUSB0
override_freeze_protect = no
# mqtt stuff
mqtt_address = trident:1883
#mqtt_user = someusername
#mqtt_passwd = somepassword
#mqtt_dz_pub_topic = domoticz/in
#mqtt_dz_sub_topic = domoticz/out
mqtt_aq_topic = aqualinkd-pda
# The id of the Aqualink terminal device. Devices probed by RS8 master are:
# 08-0b, 10-13, 18-1b, 20-23, 28-2b, 30-33, 38-3b, 40-43
#
# Working RS 0x0a 0x0b 0x09 0x08
panel_type = PD-6 Combo
#device_id=0x09
#device_id=0x00
#device_id=0x40
#rs_panel_size = 8
# PDA is 0x60
device_id=0x60
#pda_mode = yes
pda_sleep_mode = yes
#use_PDA_auxiliary = yes
read_pentair_packets = no
read_all_devices = yes
convert_mqtt_temp_to_c = yes
convert_dz_temp_to_c = yes
force_SWG = yes
# by default use pool temp as spa temp when spa is off, enable below to report 0 as spa temp when off.
report_zero_spa_temp = yes
# Button inxed light probramming button is assigned to. (look at your button labels below)
light_programming_button = 6
# Light probramming mode. 0=safe mode, but slow.
# any number greater is seconds to wait between button presses.
# 0.4 seems to be the minimum. (workd for light modes below 10 presses)
# 0.6 seems to work about 95% of the time, but above 20 presses can be hit or miss.
# 0 will simply wait for the controler to send the response back before sending the next, so is equivelent to about 1.2
light_programming_mode=0
# Light programming assumes light needs to be on before sending pulse (above setting)
# If the light is off when request is made to change "light show", then the below value are used
light_programming_initial_on=15
# Turn the light off for below time before start programmig puleses.
light_programming_initial_off=12
# Try to use labels from Control Panel.
#use_panel_aux_labels=no
use_panel_aux_labels=yes
# If you have a SWG, set this to yes. AqualinkD can only detect a SWG if it's on, so after a restart
# you will not see/access a SWG until the the next time the pump is on.
#force_SWG = yes
# Domoticz ID's for temps.
air_temp_dzidx=13
pool_water_temp_dzidx=14
spa_water_temp_dzidx=15
#SWG_percent_dzidx=998
#SWG_PPM_dzidx=999
SWG_percent_dzidx=153
SWG_PPM_dzidx=152
SWG_Status_dzidx=157
#
# Pentair pump ID's
# 0x60 to 0x6F (0x60, 0x61 0x61, 0x62, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F)
# Jandy pump ID's
# 0x78, 0x79, 0x7A, 0x7B
# Labels for standard butons (shown in web UI), and domoticz idx's
button_01_label=Filter Pump
#button_01_dzidx=37
#button_01_pumpID=0x60
#button_01_PDA_label=FILTER PUMP
button_02_label=Spa Mode
#button_02_dzidx=38
#button_02_PDA_label=SPA
button_03_label=Cleaner
#button_03_dzidx=39
#button_03_PDA_label=CLEANER
button_04_label=Waterfall
#button_04_dzidx=40
#button_04_pumpID=0x78
#button_04_PDA_label=WATERFALL
button_05_label=Spa Blower
#button_05_dzidx=41
#button_05_PDA_label=Pool Light
button_06_label=Light
#button_06_dzidx=42
#button_06_PDA_label=LIGHT
button_07_label=AUX5
#button_07_label=NONE
#button_07_dzidx=43
#button_07_PDA_label=AUX5
#button_08_label=NONE
#button_08_dzidx=NONE
#button_08_PDA_label=NONE
#button_09_label=NONE
#button_09_dzidx=NONE
#button_09_PDA_label=NONE
button_10_label=Pool Heat
#button_10_dzidx=44
#button_10_PDA_label=POOL HEAT
button_11_label=Spa Heat
#button_11_dzidx=56
#button_11_PDA_label=SPA HEAT
button_12_label=EXTRA AUX
#button_12_label=Solar Heater
#button_12_dzidx=NONE
#button_12_PDA_label=EXTRA AUX

View File

@ -1,175 +0,0 @@
# aqualinkd.conf
#
# The directory where the web files are stored
web_directory=/nas/data/Development/Raspberry/AqualinkD/web/
# Log to file, comment out if you do not want to log to file
#log_file=/var/log/aqualinkd.log
# The log level. [DEBUG_DERIAL, DEBUG, INFO, NOTICE, WARNING, ERROR]
# Pick the highest level, and all levels below will be sent to syslog.
# your syslog settings may be set to only display messages above a certian level
# in which case make sure you use the log_file settings to capture everything
# you want when debugging
# so, NOTICE also prints WARNING & ERROR
# DEBUG_SERIAL would print everything possible
#log_level=DEBUG_SERIAL
log_level=DEBUG
#log_level=INFO
#log_level=NOTICE
swg_zero_ignore_count = 50
display_warnings_in_web = no
# The socket port that the daemon listens to
# If you change this from 80, remember to update aqualink.service.avahi
socket_port=88
# The serial port the daemon access to read the Aqualink RS8
#serial_port=/dev/ttyUSB0
#serial_port=./scratch/logs/raw.log
#serial_port=./scratch/player.log
serial_port=./scratch/logs/RS485-debug2.raw
#serial_port=./tmp.tmp
read_pentair_packets=yes
# If equiptment is in freeze protect mode some commands like pump_off / spa_on are
# ignored. You can force these to work by setting the below.
override_freeze_protect = no
# Confert Deg F to Deg C when posting to Domoticz or MQTT.
convert_mqtt_temp_to_c = yes
convert_dz_temp_to_c = yes
# default is to use pool water temp as spa water temp when spa is off (and there for not able to report water temp)
# enable below to report 0 as the spa temp when spa is off.
# This is for MQTT cnnections only, WEB socket and WEB API always report TEMP_UNKNOWN (-999) allowing the consumer to
# decide how to report.
report_zero_spa_temp = no
# default is to not report changes to pool temp when the filter pump is off or in spa mode
# enable below to report 0 as the pool temp when the filter pump is off or when in spa mode.
# This is for MQTT cnnections only, WEB socket and WEB API always report TEMP_UNKNOWN (-999) allowing the consumer to
# decide how to report.
report_zero_pool_temp = no
# mqtt stuff
mqtt_address = trident:1883
#mqtt_user = someusername
#mqtt_passwd = somepassword
#mqtt_dz_pub_topic = domoticz/in
#mqtt_dz_sub_topic = domoticz/out
mqtt_aq_topic = aqualinkd-play
# The id of the Aqualink terminal device. Devices probed by RS8 master are:
# 08-0b, 10-13, 18-1b, 20-23, 28-2b, 30-33, 38-3b, 40-43
# Working RS ID's are 0x0a 0x0b 0x09 0x08 <- 0x08 is usually taken
device_id=0x0a
# Please see forum for this, only set to yes when logging information to support
# new devices. Inflrmation will be written to /tmp/RS485.log
#debug_RSProtocol_packets = no
#Only for PDA mode
# set PDA mode
#pda_mode = yes
#
# Put AqualinkD to sleep when in PDA mode after inactivity.
# If you have Jandy PDA then this MUST be set to yes as the controller can only support one PDA.
# If you don't have a Jandy PDA leave this at no as AqualinkD will be a lot quicker.
# Sleep timer is around 2 mins of inactivity, then wake after 2 mins of sleep.
#pda_sleep_mode = yes
# Read status information from other devices on the RS485 bus.
# At the moment just Salt Water Generators are supported.
read_all_devices = yes
# If you have a SWG connected to the control panel, set this to yes.
# AqualinkD can only detect a SWG if it's on, so after a restart you will not see/access a SWG until the the next time the pump is on.
force_SWG = no
# Button inxed light probramming button is assigned to. (look at your button labels below)
light_programming_button_pool = 6
# Light probramming mode. 0=safe mode, but slow.
# any number greater is seconds to wait between button presses.
# 0.4 seems to be the minimum. (workd for light modes below 10 presses)
# 0.6 seems to work about 95% of the time, but above 20 presses can be hit or miss.
# 0 will simply wait for the controler to send the response back before sending the next, so is equivelent to about 1.2
light_programming_mode=0
# Light programming assumes light needs to be on before sending pulse (above setting)
# If the light is off when request is made to change "light show", then the below value are used
light_programming_initial_on=15
# Turn the light off for below time before start programmig puleses.
light_programming_initial_off=12
# Everything below here, if it ends with dzidx, then that's the ID for domoticz,
# so not needed if you are not suing dooticz.
# Domoticz ID's for temps.
air_temp_dzidx=0
pool_water_temp_dzidx=0
spa_water_temp_dzidx=0
SWG_percent_dzidx=0
SWG_PPM_dzidx=0
# Try to use labels from Control Panel.
use_panel_aux_labels=yes
# Labels for standard butons (shown in web UI), and domoticz idx's
button_01_label=Filter Pump
#button_01_dzidx=37
#button_01_PDA_label=FILTER PUMP
button_01_pumpID=0x60
button_02_label=Spa Mode
#button_02_dzidx=38
#button_02_PDA_label=SPA
button_03_label=Cleaner
#button_03_dzidx=39
#button_03_PDA_label=AUX1
button_04_label=Waterfall
#button_04_dzidx=40
#button_04_PDA_label=AUX2
button_04_pumpID=0x61
button_05_label=Spa Blower
#button_05_dzidx=41
#button_05_PDA_label=AUX3
button_06_label=Pool Light
#button_06_dzidx=42
#button_06_PDA_label=AUX4
button_07_label=Spa Light
#button_07_dzidx=43
#button_07_PDA_label=AUX5
button_08_label=NONE
#button_08_dzidx=NONE
#button_08_PDA_label=AUX6
button_09_label=NONE
#button_09_dzidx=NONE
#button_09_PDA_label=AUX7
button_10_label=Pool Heater
#button_10_dzidx=44
#button_09_PDA_label=POOL HEAT
button_11_label=Spa Heater
#button_11_dzidx=56
#button_09_PDA_label=SPA HEAT
button_12_label=Solar Heater
#button_12_dzidx=NONE
#button_09_PDA_label=EXTRA AUX

View File

@ -1,287 +0,0 @@
# aqualinkd.conf
#
# The directory where the web files are stored
crap_test = error
#web_directory=/var/www/aqualinkd/
web_directory=/nas/data/Development/Raspberry/AqualinkD/web
# Log to file, comment out if you do not want to log to file
#log_file=/var/log/aqualinkd.log
# The log level. [DEBUG, INFO, NOTICE, WARNING, ERROR]
# Pick the highest level, and all levels below will be sent to syslog.
# your syslog settings may be set to only display messages above a certian level
# in which case make sure you use the log_file settings to capture everything
# you want when debugging
# so, NOTICE also prints WARNING & ERROR
# DEBUG would print everything possible
#log_level=DEBUG_SERIAL
#log_level=DEBUG
#log_level=INFO
log_level=NOTICE
# AQUA_LOG 1
# NET_LOG 2
# AQRS_LOG 4
# ONET_LOG 8
# IAQT_LOG 16
# PDA_LOG 32
# RSSA_LOG 64
# DJAN_LOG 128
# DPEN_LOG 256
# RSSD_LOG 512
# PROG_LOG 1024
# DBGT_LOG 2048 // Only used when compiled aqdebug
# TIMR_LOG 4096
#debug_log_mask = 1
#debug_log_mask = 2
#debug_log_mask = 4
#debug_log_mask = 8
#debug_log_mask = 16
#debug_log_mask = 32
#debug_log_mask = 64
#debug_log_mask = 256
#debug_log_mask = 512
#debug_log_mask = 1024
#debug_log_mask = 2048
#debug_log_mask = 4096
display_warnings_in_web = yes
# The socket port that the daemon listens to
# If you change this from 80, remember to update aqualink.service.avahi
socket_port = 80
# The serial port the daemon access to read the Aqualink RS8
serial_port=/dev/ttyUSB0
#serial_port=/dev/ttyUSB1
#serial_port=/dev/null
override_freeze_protect = no
# mqtt stuff
mqtt_address = trident:1883
#mqtt_user = someusername
#mqtt_passwd = somepassword
#mqtt_dz_pub_topic = domoticz/in
#mqtt_dz_sub_topic = domoticz/out
mqtt_aq_topic = aqualinkd-test
# The id of the Aqualink terminal device. Devices probed by RS8 master are:
# 08-0b, 10-13, 18-1b, 20-23, 28-2b, 30-33, 38-3b, 40-43
#
# Working RS 0x0a 0x0b 0x09 0x08
device_id=0x0a
#device_id=0xFF # For testing one touch, don't use kaypad
#device_id=0x00
#device_id=0x60
#rssa_device_id=0x48
# The ID for extended settings, These are ONE TOUCH MACROS & VARIABLE SPEED PUMP RPM
# Do not enable this if you don't use either, you'll just waste memory and cpu cycles
# 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
# 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 = no
# Not documented
# Negative poll speed will use serial port in blocking mode,
# 0 or positive will use serialport in non blocking mode, and value will be wait time between reads in ms
# readahead is check serial clear before writing
# thread_net is exactly that.
#serial_readahead_b4_write = yes
#mqtt_timed_update = no
thread_netservices = yes
#rs_poll_speed = -1
rs_poll_speed = 0
# Your RS panel size. ie 4, 6, 8, 12 or 16 relates to RS4, RS6, RS8, RS12 or RS16.
# VERY important that you select 12 or 16, if you have either of those size panels.
# Also don't think setting a 12 when you have a 8 will give you 4 more accessories to control, it won't the
# panel information is needed as different panels use different bits within the RS protocol for status and key
# presses.
#rs_panel_size = 12
#panel_type = RS-2/6 Dual
#panel_type = RS-4 Only
#panel_type = RS-4 Combo
#panel_type = RS-6 Only
panel_type = RS-8 Combo
#panel_type = PD-8 Combo
#panel_type = RS-16 Combo
#panel_type = RS-2/14 Dual
#panel_type = RS-8 Only
#panel_type_size = 8
#panel_type_combo = yes
#panel_type_dual = no
#panel_type_pda = no
#panel_type_rs = yes
#network_poll_speed = 1
keep_paneltime_synced = yes
#pda_mode = yes
#use_PDA_auxiliary = yes
# Read information from these devices directly from the RS485 bus as well as control panel.
#read_RS485_swg = yes
#read_RS485_ePump = no
#read_RS485_vsfPump = no
# F to C conversions
convert_mqtt_temp_to_c = yes
convert_dz_temp_to_c = yes
# by default use pool temp as spa temp when spa is off, enable below to report 0 as spa temp when off.
report_zero_spa_temp = yes
report_zero_pool_temp = no
# Light probramming mode. 0=safe mode, but slow.
# any number greater is seconds to wait between button presses.
# 0.4 seems to be the minimum. (workd for light modes below 10 presses)
# 0.6 seems to work about 95% of the time, but above 20 presses can be hit or miss.
# 0 will simply wait for the controler to send the response back before sending the next, so is equivelent to about 1.2
light_programming_mode=0
# Light programming assumes light needs to be on before sending pulse (above setting)
# If the light is off when request is made to change "light show", then the below value are used
light_programming_initial_on=15
# Turn the light off for below time before start programmig puleses.
light_programming_initial_off=12
# Try to use labels from Control Panel.
#use_panel_aux_labels=yes
# If you have a SWG, set this to yes. AqualinkD can only detect a SWG if it's on, so after a restart
# you will not see/access a SWG until the the next time the pump is on.
force_SWG = yes
# Please see forum for this, only set to yes when logging information to support
# new devices. Inflrmation will be written to /tmp/RS485.log & /tmp/RS485_raw.log respectively
debug_RSProtocol_packets = no
debug_RSProtocol_bytes = no
# Domoticz ID's for temps.
#air_temp_dzidx=13
#pool_water_temp_dzidx=14
#spa_water_temp_dzidx=15
#SWG_percent_dzidx=998
#SWG_PPM_dzidx=999
#SWG_percent_dzidx=153
#SWG_PPM_dzidx=152
#SWG_Status_dzidx=157
#
# | RS-6 Combo | RS-6 Only | RS-8 Combo | RS-2/6 Dual | RS-2/10 Dual | RS-16 Combo |
# --------------------------------------------------------------------------------------------
# Button_01 | Filter Pump | Filter Pump | Filter Pump | Filter Pump | Filter Pump | Filter Pump |
# Button_02 | Spa | Aux_1 | Spa | Spa | Spa | Spa |
# Button_03 | Aux 1 | Aux 2 | Aux 1 | Aux 1 | Aux 1 | Aux 1 |
# Button_04 | Aux 2 | Aux 3 | Aux 2 | Aux 2 | Aux 2 | Aux 2 |
# Button_05 | Aux 3 | Aux 4 | Aux 3 | Aux 3 | Aux 3 | Aux 3 |
# Button_06 | Aux 4 | Aux 5 | Aux 4 | Aux 4 | Aux 4 | Aux 4 |
# Button_07 | Aux 5 | Temp 1 | Aux 5 | Aux 5 | Aux 5 | Aux 5 |
# Button_08 | Pool Heater | Temp 2 | Aux 6 | Aux 6 | Aux 6 | Aux 6 |
# Button_09 | Spa Heater | Solar Heater | Aux 7 | Pool Heater | Aux B1 | Aux 7 |
# Button_10 | Solar Heater | | Pool Heater | Spa Heater | Aux B2 | Aux B1 |
# Button_11 | | | Spa Heater | Solar Heater | Aux B3 | Aux B2 |
# Button_12 | | | Solar Heater | | Aux B4 | Aux B3 |
# Button_13 | | | | | Pool Heater | Aux B4 |
# Button_14 | | | | | Spa Heater | Aux B5 |
# Button_15 | | | | | Solar Heater | Aux B6 |
# Button_16 | | | | | | Aux B7 |
# Button_17 | | | | | | Aux B8 |
# Button_18 | | | | | | Pool Heater |
# Button_19 | | | | | | Spa Heater |
# Button_20 | | | | | | Solar Heater |
#
# Pentair pump ID's
# 0x60 to 0x6F (0x60, 0x61 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F)
# Jandy pump ID's
# 0x78, 0x79, 0x7A, 0x7B
# button_xx_lightMode = (0=Aqualink program, 1=Jandy, 2=Jandy LED, 3=SAm/SAL, 4=Color Logic, 5=Intellibrite)
# Labels for standard butons (shown in web UI), and domoticz idx's
button_01_label=Filter Pump
#button_01_dzidx=37
button_01_pumpID=0x78
#button_01_PDA_label=FILTER PUMP
button_01_pumpIndex=1
button_02_label=Spa
#button_02_dzidx=38
#button_02_pumpID= 0x78
#button_02_pumpIndex=3
#button_02_PDA_label=SPA
button_03_label=Cleaner
#button_03_dzidx=39
button_03_pumpID=0x61
button_03_pumpIndex=3
#button_04_label=Waterfall
#button_04_dzidx=40
button_04_pumpID=0x60
button_04_pumpIndex=2
button_05_label=Light
#button_05_dzidx=41
button_05_lightMode=0
#button_06_label=Aux Pump
#button_06_dzidx=42
#button_06_lightMode=1
#button_06_pumpIndex=4
#button_07_label=Air Blower
#button_07_label=NONE
#button_07_dzidx=43
#button_07_lightMode=0
#button_08_label=Chemical Feed
#button_09_label=Fountain
#button_10_label=Pool Heater
#button_10_dzidx=44
#button_11_label=Spa Heater
#button_11_dzidx=56
#button_12_label=Solar Heater
#button_12_label=Solar Heater
#button_12_dzidx=NONE
# RS-8 & RS-6 STOP HERE
# This is for RS-12 & RS-16 only.
#button_12_label=Aux B1
#button_13_label=
#button_14_label=
#button_15_label=
#button_16_label=
#button_17_label=Pool Heater
#button_18_label=Spa Heater
#button_19_label=Solar Heater

View File

@ -1,47 +0,0 @@
#!/bin/bash
#SELF=${0##*/}
SELF=${0}
ME=`whoami`
CWD=`pwd`
GIT_HOST="tiger"
echo -n "Did you remember to 'make' and 'make slog' ? :"
read answer
if [ "$answer" = "n" ]; then
exit 0
fi
if ! [ "$HOSTNAME" = "$GIT_HOST" ]; then
ssh $ME@$GIT_HOST 'cd '"$CWD"'; '"$SELF"';'
else
command -v git >/dev/null 2>&1 || { echo >&2 "GIT is not installed. Aborting."; exit 1; }
VER=$(cat version.h | grep AQUALINKD_VERSION | cut -d\" -f2)
git tag v$VER
echo "Version set to $VER"
echo -n "Upload to github ? (y or n):"
read answer
if [ "$answer" = "y" ]; then
git add --all
if [ $? -ne 0 ]; then
echo "Error from running 'git add --all'"
exit 1
fi
git commit -m "Version $VER"
if [ $? -ne 0 ]; then
echo "Error from running 'git commit -m \"Version $VER\"'"
exit 1
fi
git push
fi
fi

View File

@ -1,233 +0,0 @@
# aqualinkd.conf
#
# The directory where the web files are stored
crap_test = error
#web_directory=/var/www/aqualinkd/
web_directory=/nas/data/Development/Raspberry/AqualinkD/web
# Log to file, comment out if you do not want to log to file
#log_file=/var/log/aqualinkd.log
# The log level. [DEBUG, INFO, NOTICE, WARNING, ERROR]
# Pick the highest level, and all levels below will be sent to syslog.
# your syslog settings may be set to only display messages above a certian level
# in which case make sure you use the log_file settings to capture everything
# you want when debugging
# so, NOTICE also prints WARNING & ERROR
# DEBUG would print everything possible
#log_level=DEBUG_SERIAL
#log_level=DEBUG
#log_level=INFO
log_level=NOTICE
# AQUA_LOG 1
# NET_LOG 2
# AQRS_LOG 4
# ONET_LOG 8
# IAQT_LOG 16
# PDA_LOG 32
# RSSA_LOG 64
# DJAN_LOG 128
# DPEN_LOG 256
# RSSD_LOG 512
# PROG_LOG 1024
# DBGT_LOG 2048
# TIMR_LOG 4096
debug_log_mask = 1
#debug_log_mask = 2
#debug_log_mask = 4
#debug_log_mask = 8
#debug_log_mask = 16
#debug_log_mask = 64
#debug_log_mask = 256
#debug_log_mask = 128
#debug_log_mask = 512
debug_log_mask = 1024
#debug_log_mask = 2048
#debug_log_mask = 4096
display_warnings_in_web = yes
# The socket port that the daemon listens to
# If you change this from 80, remember to update aqualink.service.avahi
socket_port = 80
# The serial port the daemon access to read the Aqualink RS8
serial_port=/dev/ttyUSB0
#serial_port=/dev/null
override_freeze_protect = no
# mqtt stuff
mqtt_address = trident:1883
#mqtt_user = someusername
#mqtt_passwd = somepassword
mqtt_dz_pub_topic = domoticz/in
mqtt_dz_sub_topic = domoticz/out
mqtt_aq_topic = aqualinkd
mqtt_timed_update = yes
# The id of the Aqualink terminal device. Devices probed by RS8 master are:
# 08-0b, 10-13, 18-1b, 20-23, 28-2b, 30-33, 38-3b, 40-43
#
# Working RS 0x0a 0x0b 0x09 0x08
device_id=0x0a
#device_id=0xFF # For testing one touch, don't use kaypad
#device_id=0x00
#device_id=0x60
rssa_device_id=0x48
# The ID for extended settings to allow for faster programming
# VARIABLE SPEED PUMP are only supported with this option.
# Do not enable this if you don't use either, you'll just waste memory and cpu cycles
# Valid ID's are 0x40, 0x41, 0x42 & 0x43. for ONE Touch
# Valid ID's are 0x30, 0x31, 0x32 & 0x33. for Aqualink Touch
extended_device_id=0x40
##extended_device_id=0x31
# 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 = no
# Your RS panel size. ie 4, 6, 8, 12 or 16 relates to RS4, RS6, RS8, RS12 or RS16.
# VERY important that you select 12 or 16, if you have either of those size panels.
# Also don't think setting a 12 when you have a 8 will give you 4 more accessories to control, it won't the
# panel information is needed as different panels use different bits within the RS protocol for status and key
# presses.
#rs_panel_size = 12
panel_type = RS-6 Combo
#panel_type = PD-8 Combo
#panel_type = RS-16 Combo
#panel_type = RS-2/14 Dual
#panel_type = RS-4 Combo
#panel_type = RS-8 Only
# Read information from these devices directly from the RS485 bus as well as control panel.
read_RS485_swg = yes
#read_RS485_ePump = no
#read_RS485_vsfPump = no
# Not documented
serial_readahead_b4_write = yes
mqtt_timed_update = no
thread_netservices = yes
rs_poll_speed = -1
#pda_mode = yes
keep_paneltime_synced = yes
convert_mqtt_temp_to_c = yes
convert_dz_temp_to_c = yes
# by default use pool temp as spa temp when spa is off, enable below to report 0 as spa temp when off.
report_zero_spa_temp = yes
report_zero_pool_temp = no
# Light probramming mode. 0=safe mode, but slow.
# any number greater is seconds to wait between button presses.
# 0.4 seems to be the minimum. (workd for light modes below 10 presses)
# 0.6 seems to work about 95% of the time, but above 20 presses can be hit or miss.
# 0 will simply wait for the controler to send the response back before sending the next, so is equivelent to about 1.2
light_programming_mode=0
# Light programming assumes light needs to be on before sending pulse (above setting)
# If the light is off when request is made to change "light show", then the below value are used
light_programming_initial_on=15
# Turn the light off for below time before start programmig puleses.
light_programming_initial_off=12
# Try to use labels from Control Panel.
#use_panel_aux_labels=yes
# If you have a SWG, set this to yes. AqualinkD can only detect a SWG if it's on, so after a restart
# you will not see/access a SWG until the the next time the pump is on.
force_SWG = yes
#swg_zero_ignore_count = 10
enable_scheduler = yes
# Domoticz ID's for temps.
air_temp_dzidx=13
pool_water_temp_dzidx=14
spa_water_temp_dzidx=15
SWG_percent_dzidx=153
SWG_PPM_dzidx=152
SWG_Status_dzidx=157
#
# Pentair pump ID's
# 0x60 to 0x6F (0x60, 0x61 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F)
# Jandy pump ID's
# 0x78, 0x79, 0x7A, 0x7B
#
# | RS-6 Combo | RS-6 Only | RS-8 Combo | RS-2/6 Dual | RS-2/10 Dual | RS-16 Combo |
# --------------------------------------------------------------------------------------------
# Button_01 | Filter Pump | Filter Pump | Filter Pump | Filter Pump | Filter Pump | Filter Pump |
# Button_02 | Spa | Aux_1 | Spa | Spa | Spa | Spa |
# Button_03 | Aux 1 | Aux 2 | Aux 1 | Aux 1 | Aux 1 | Aux 1 |
# Button_04 | Aux 2 | Aux 3 | Aux 2 | Aux 2 | Aux 2 | Aux 2 |
# Button_05 | Aux 3 | Aux 4 | Aux 3 | Aux 3 | Aux 3 | Aux 3 |
# Button_06 | Aux 4 | Aux 5 | Aux 4 | Aux 4 | Aux 4 | Aux 4 |
# Button_07 | Aux 5 | Temp 1 | Aux 5 | Aux 5 | Aux 5 | Aux 5 |
# Button_08 | Pool Heater | Temp 2 | Aux 6 | Aux 6 | Aux 6 | Aux 6 |
# Button_09 | Spa Heater | Solar Heater | Aux 7 | Pool Heater | Aux B1 | Aux 7 |
# Button_10 | Solar Heater | | Pool Heater | Spa Heater | Aux B2 | Aux B1 |
# Button_11 | | | Spa Heater | Solar Heater | Aux B3 | Aux B2 |
# Button_12 | | | Solar Heater | | Aux B4 | Aux B3 |
# Button_13 | | | | | Pool Heater | Aux B4 |
# Button_14 | | | | | Spa Heater | Aux B5 |
# Button_15 | | | | | Solar Heater | Aux B6 |
# Button_16 | | | | | | Aux B7 |
# Button_17 | | | | | | Aux B8 |
# Button_18 | | | | | | Pool Heater |
# Button_19 | | | | | | Spa Heater |
# Button_20 | | | | | | Solar Heater |
# button_xx_lightMode = (0=Aqualink program, 1=Jandy, 2=Jandy LED, 3=SAm/SAL, 4=Color Logic, 5=Intellibrite)
# Labels for standard butons (shown in web UI), and domoticz idx's
button_01_label=Filter Pump
button_01_dzidx=37
button_02_label=Spa Mode
button_02_dzidx=38
button_03_label=Cleaner
button_03_dzidx=39
button_04_label=Waterfall
button_04_dzidx=40
button_05_label=Spa Blower
button_05_dzidx=41
button_06_label=Pool Light
button_06_dzidx=42
button_06_lightMode=0
button_07_label=NONE
button_8_label=Pool Heater
button_9_label=Spa Heater
button_10_label=NONE

View File

@ -1,170 +0,0 @@
# aqualinkd.conf
#
# The directory where the web files are stored
#web_directory=/var/www/aqualinkd/
web_directory=/nas/data/Development/Raspberry/AqualinkD/web
# Log to file, comment out if you do not want to log to file
#log_file=/var/log/aqualinkd.log
# The log level. [DEBUG, INFO, NOTICE, WARNING, ERROR]
# Pick the highest level, and all levels below will be sent to syslog.
# your syslog settings may be set to only display messages above a certian level
# in which case make sure you use the log_file settings to capture everything
# you want when debugging
# so, NOTICE also prints WARNING & ERROR
# DEBUG would print everything possible
#log_level=DEBUG_SERIAL
#log_level=DEBUG_SERIAL
#log_level=DEBUG
log_level=INFO
#log_level=NOTICE
#debug_log_mask = 32
display_warnings_in_web = yes
# The socket port that the daemon listens to
# If you change this from 80, remember to update aqualink.service.avahi
socket_port=88
# The serial port the daemon access to read the Aqualink RS8
serial_port=/dev/ttyUSB0
override_freeze_protect = no
# mqtt stuff
mqtt_address = trident:1883
#mqtt_user = someusername
#mqtt_passwd = somepassword
#mqtt_dz_pub_topic = domoticz/in
#mqtt_dz_sub_topic = domoticz/out
mqtt_aq_topic = aqualinkd-pda
# The id of the Aqualink terminal device. Devices probed by RS8 master are:
# 08-0b, 10-13, 18-1b, 20-23, 28-2b, 30-33, 38-3b, 40-43
#
# Working RS 0x0a 0x0b 0x09 0x08
panel_type = PD-6 Combo
#device_id=0x09
#device_id=0x00
#device_id=0x40
#rs_panel_size = 8
# PDA is 0x60
device_id=0x60
#pda_mode = yes
pda_sleep_mode = no
#use_PDA_auxiliary = yes
#read_pentair_packets = no
#read_all_devices = yes
convert_mqtt_temp_to_c = yes
convert_dz_temp_to_c = yes
force_SWG = yes
# by default use pool temp as spa temp when spa is off, enable below to report 0 as spa temp when off.
report_zero_spa_temp = yes
# Button inxed light probramming button is assigned to. (look at your button labels below)
light_programming_button = 6
# Light probramming mode. 0=safe mode, but slow.
# any number greater is seconds to wait between button presses.
# 0.4 seems to be the minimum. (workd for light modes below 10 presses)
# 0.6 seems to work about 95% of the time, but above 20 presses can be hit or miss.
# 0 will simply wait for the controler to send the response back before sending the next, so is equivelent to about 1.2
light_programming_mode=0
# Light programming assumes light needs to be on before sending pulse (above setting)
# If the light is off when request is made to change "light show", then the below value are used
light_programming_initial_on=15
# Turn the light off for below time before start programmig puleses.
light_programming_initial_off=12
# Try to use labels from Control Panel.
#use_panel_aux_labels=no
use_panel_aux_labels=yes
keep_paneltime_synced = yes
# If you have a SWG, set this to yes. AqualinkD can only detect a SWG if it's on, so after a restart
# you will not see/access a SWG until the the next time the pump is on.
#force_SWG = yes
# Domoticz ID's for temps.
air_temp_dzidx=13
pool_water_temp_dzidx=14
spa_water_temp_dzidx=15
#SWG_percent_dzidx=998
#SWG_PPM_dzidx=999
SWG_percent_dzidx=153
SWG_PPM_dzidx=152
SWG_Status_dzidx=157
#
# Pentair pump ID's
# 0x60 to 0x6F (0x60, 0x61 0x61, 0x62, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F)
# Jandy pump ID's
# 0x78, 0x79, 0x7A, 0x7B
# Labels for standard butons (shown in web UI), and domoticz idx's
button_01_label=Filter Pump
#button_01_dzidx=37
#button_01_pumpID=0x60
#button_01_PDA_label=FILTER PUMP
button_02_label=Spa
#button_02_dzidx=38
#button_02_PDA_label=SPA
button_03_label=Cleaner
#button_03_dzidx=39
#button_03_PDA_label=CLEANER
button_04_label=Waterfall
#button_04_dzidx=40
#button_04_pumpID=0x78
#button_04_PDA_label=WATERFALL
button_05_label=Spa Blower
#button_05_dzidx=41
#button_05_PDA_label=Pool Light
button_06_label=Light
#button_06_dzidx=42
#button_06_PDA_label=LIGHT
button_07_label=AUX5
#button_07_label=NONE
#button_07_dzidx=43
#button_07_PDA_label=AUX5
#button_08_label=NONE
#button_08_dzidx=NONE
#button_08_PDA_label=NONE
#button_09_label=NONE
#button_09_dzidx=NONE
#button_09_PDA_label=NONE
button_10_label=Pool Heat
#button_10_dzidx=44
#button_10_PDA_label=POOL HEAT
button_11_label=Spa Heat
#button_11_dzidx=56
#button_11_PDA_label=SPA HEAT
button_12_label=EXTRA AUX
#button_12_label=Solar Heater
#button_12_dzidx=NONE
#button_12_PDA_label=EXTRA AUX