Author Topic: Autelis Control?  (Read 13260 times)

Offline mda

  • Sr. Member
  • ****
  • Posts: 464
  • Karma: +9/-0
Re: Autelis Control?
« Reply #30 on: August 14, 2016, 11:19:31 pm »
@mda

Thanks, now can I get you to go to the screen where you set the setpoints for your AquaPure and do the same thing?

Looking good! Here is the source from that page and a screen shot of it for reference. Thanks.


Code: [Select]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Autelis Pool Control</title>
<link href="autelis.css" rel="stylesheet" type="text/css" />
<script src="ajax.js" type="text/javascript"></script>
<meta name="format-detection" content="telephone=no">
</head>

<body>
<div id="shadow-one"><div id="shadow-two"><div id="shadow-three"><div id="shadow-four">
<div id="page">

<div style="padding:0 0 5px 5px"><img src="autelis.png" alt="Autelis" /></div>

<div id="menu">
<a href="systeminfo.htm">System Information</a>
<a href="equipment.htm">Equipment Control</a>
<a href="temperature.htm">Temperature Control</a>
<a href="reminders.htm">Reminders</a>
<a href="isy.htm">ISY Settings</a>
<a href="keypad.htm">Keypad</a>
<a href="macros.htm">Macros</a>
<a href="pumps.htm">Pumps</a>
<a href="chem.htm">Chemistry</a>
<a href="settings.htm">Setup</a>
</div>


<div id="content">
<div class="item gray" style="display:none" id="chlor" name="chlor" style="display:none">
Pool Salt Level: <label id="saltp"></label> PPM
</div>
<div class="item gray" id="chlor" name="chlor" style="display:none">
<div class="subitem one"></div>
<div class="subitem two">Pool Chlorination: <select id="chlrp" onfocus="this.name='selectactive'" onblur="this.name=''" onchange="this.blur();setChem(this.id ,this.selectedIndex);"></select></div>
<div class="subitem three"></div>
</div>
<div class="item gray" style="display:none" id="chlor" name="chlor" style="display:none">
Spa Salt Level: <label id="salts"></label> PPM
</div>
<div class="item gray" id="chlor" name="chlor" style="display:none">
<div class="subitem one"></div>
<div class="subitem two">Spa Chlorination: <select id="chlrs" onfocus="this.name='selectactive'" onblur="this.name=''" onchange="this.blur();setChem(this.id,this.selectedIndex);"></select></div>
<div class="subitem three"></div>
</div>
<div class="item gray" id="chem1" name="chem1" style="display:none">
<div class="subitem one"></div>
<div class="subitem two">ORP: <select id="orp1" onfocus="this.name='selectactive'" onblur="this.name=''" onchange="this.blur();setChem(this.id,this.selectedIndex);"></select></div>
<div class="subitem three"></div>
</div>
<div class="item gray" id="chem1" name="chem1" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=orpfd1&value=0');">OFF</button></div>
<div class="subitem two" align="center">ORP Feed: <label id="orpfd1">OFF</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=orpfd1&value=1');">ON</button></div>
</div>
<div class="item gray" id="chem1" name="chem1" style="display:none">
<div class="subitem one"></div>
<div class="subitem two">PH: <select id="ph1" onfocus="this.name='selectactive'" onblur="this.name=''" onchange="this.blur();setChem(this.id,this.selectedIndex);"></select></div>
<div class="subitem three"></div>
</div>
<div class="item gray" id="chem1" name="chem1" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=phfd1&value=0');">OFF</button></div>
<div class="subitem two" align="center">PH Feed: <label id="phfd1">OFF</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=phfd1&value=1');">ON</button></div>
</div>
<div class="item gray" id="chem2" name="chem2" style="display:none">
<div class="subitem one"></div>
<div class="subitem two">ORP 2: <select id="orp2" onfocus="this.name='selectactive'" onblur="this.name=''" onchange="this.blur();setChem(this.id,this.selectedIndex);"></select></div>
<div class="subitem three"></div>
</div>
<div class="item gray" id="chem2" name="chem2" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=orpfd2&value=0');">OFF</button></div>
<div class="subitem two" align="center">ORP 2 Feed: <label id="orpfd2">OFF</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=orpfd2&value=1');">ON</button></div>
</div>
<div class="item gray" id="chem2" name="chem2" style="display:none">
<div class="subitem one"></div>
<div class="subitem two">PH 2: <select id="ph2" onfocus="this.name='selectactive'" onblur="this.name=''" onchange="this.blur();setChem(this.id,this.selectedIndex);"></select></div>
<div class="subitem three"></div>
</div>
<div class="item gray" id="chem2" name="chem2" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=phfd2&value=0');">OFF</button></div>
<div class="subitem two" align="center">PH 2 Feed: <label id="phfd2">OFF</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=phfd2&value=1');">ON</button></div>
</div>
</div>
<div class="spacer">&nbsp;</div>
<script type="text/javascript">
<!--
if(!String.prototype.trim) { 
  String.prototype.trim = function () { 
    return this.replace(/^\s+|\s+$/g,''); 
  }; 
}
function updateStatus(xmlData) {
// Check if a timeout occurred
if(!xmlData)
return;

// Loop over chlor info
var temp = xmlData.getElementsByTagName('chem')[0];
if (temp == null)
return;
for (var i=0; i < temp.childNodes.length; i++)
{
var item = document.getElementById(temp.childNodes[i].tagName);
//if(item)
{
var test = temp.childNodes[i].firstChild;
if (test != null)
{
test=test.nodeValue;
switch(temp.childNodes[i].tagName)
{
case 'avail':
var cnames = [ "chlor", "chem1", "chem2" ]
for(var j=0;j<cnames.length;j++)
{
if((parseInt(test)>>j) & 1)
{
var cont = document.getElementsByName(cnames[j]);
for(var n=0;n<cont.length;n++)
cont[n].style.display = 'block';
}
}
break;

case 'saltp':
case 'salts':
if(item)
item.innerHTML = test * 50;
break;

case 'chlrp':
case 'chlrs':
case 'orp1':
case 'orp2':
case 'ph1':
case 'ph2':
if (!item) break;
test = parseInt(test);
if(temp.childNodes[i].tagName.indexOf("orp") == 0)
test -= 20;
else if(temp.childNodes[i].tagName.indexOf("ph") == 0)
test -= 70;
if(item.childNodes[test]!=null && item.selectedIndex != test && item.name!='selectactive')
item.selectedIndex=test;
else if((temp.childNodes[i].tagName.indexOf("chlr") == 0) && (test & 128))
item.selectedIndex = item.length - 1;
break;
case 'phfd1':
case 'phfd2':
case 'orpfd1':
case 'orpfd2':
item.innerHTML = ((test>0)?"ON":"OFF");
break;
}

}
}
}
setTimeout("newAJAXCommand('/chem.xml', updateStatus)",5000);
}

function printOptions(name,min,max,step) {
var el = document.getElementById(name);
if(el != null)
{
for (var j=min;j<=max;j+=step)
{
var newop = document.createElement('option');
if(max == 101)
{
if(j == 101)
newop.text = "Boost";
else
newop.text = j + "%";
}
else if(max == 900)
{
newop.text=j;
}
else if(max == 80)
{
newop.text = (parseFloat(j)/10).toFixed(1);
}
el.add(newop,null);
}
}
}


function setChem(name,sp) {
if(name.indexOf("orp") == 0)
sp = sp + 20;
else if(name.indexOf("ph") == 0)
sp = sp*10 + 70;
clrTimeouts();
newAJAXCommand('set.cgi?name=' + name + '&chem=' + sp);
setTimeout("newAJAXCommand('/chem.xml', updateStatus)",2000);
}
printOptions("chlrp",0,101,1);
printOptions("chlrs",0,101,1);
printOptions("orp1",200,900,10);
printOptions("orp2",200,900,10);
printOptions("ph1",70,80,1);
printOptions("ph2",70,80,1);
newAJAXCommand('/chem.xml', updateStatus);
//-->
</script>

</div></div></div></div></div>
<div id="footer">Copyright &copy; 2013 Autelis, LLC</div>
</body>
</html>

Also, the Jandy color LED lights have a limited number of colors, as i understand it. Attached are some screen shots from iAqualink showing the choice of colors and the message while it is changing colors and the message when you click off. I believe the color IDs are in accordance with this note on this page http://www.autelis.com/wiki/index.php?title=Pool_Control_Universal_Devices_ISY_2-Way_Integration

Code: [Select]
NOTE: Color lights will report a value between 129-142 representing the selected color (advanced firmware only). Subtract 128 to get the actual color index.
Also here is the source from the Lights Setup page on Autelis and a couple screen shots for reference.

Code: [Select]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Autelis Pool Control</title>
<link href="autelis.css" rel="stylesheet" type="text/css" />
<script src="ajax.js" type="text/javascript"></script>
</head>

<body>
<div id="shadow-one"><div id="shadow-two"><div id="shadow-three"><div id="shadow-four">
<div id="page">

<div style="padding:0 0 5px 5px"><img src="autelis.png" alt="Autelis" /></div>

<div id="menu">
<a href="settings.htm">Settings</a>
<a href="alerts.htm">Alerts</a>
<a href="lsetup.htm">Lights</a>
<a href="psetup.htm">Pumps</a>
<a href="msetup.htm">Macros</a>
<a href="http://autelis.com/wiki/index.php?title=Pool_Control_for_Jandy/Zodiac#Equipment_Setup" target="_blank">Help</a>
<a href="systeminfo.htm">Exit</a>
</div>

<div id="content">
<fieldset>
<br></br>
<div>&nbsp;&nbsp;Color Lights</div>
<div><label>Booster Pump:</label>
<select id="aux1"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div><label>Spa Light:</label>
<select id="aux2"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div><label>Pool Light:</label>
<select id="aux3"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div><label>Air Blower:</label>
<select id="aux4"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>Deck Jets:</label>
<select id="aux5"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>AUX6:</label>
<select id="aux6"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>AUX7:</label>
<select id="aux7"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>AUX8:</label>
<select id="aux8"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>AUX9:</label>
<select id="aux9"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>AUX10:</label>
<select id="aux10"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>AUX11:</label>
<select id="aux11"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>AUX12:</label>
<select id="aux12"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>AUX13:</label>
<select id="aux13"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>AUX14:</label>
<select id="aux14"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div>
<div style="display:none"><label>AUX15:</label>
<select id="aux15"><option>None</option><option>Jandy Colors</option><option>Jandy LED</option><option>SAM/SAL</option><option>Color Logic</option><option>Intellibrite</option></select></div><br></br>
<div class="ct"><button id="bsave" onClick="saveLights()">Save</button></div>
</fieldset>
<form method="post" action="/lsetup.htm" id="hform">
</div>
<script type="text/javascript">
<!--
var clights = [ 0,2,2,0,0,0,0 ];
for(var i=0;i<Math.min(15,clights.length);i++)
{
var el=document.getElementById("aux" + (i+1));
el.selectedIndex = clights[i];
el.parentNode.style.display = "block";
}
function saveLights() {
var hform = document.getElementById("hform");
for(var i=1; i<=Math.min(15,clights.length); i++)
{
newelement = document.createElement("input");
newelement.setAttribute("type", "hidden");
newelement.setAttribute("name", "clight" + i );
newelement.value=document.getElementById("aux" + i).selectedIndex;
hform.appendChild(newelement);
}
hform.submit();
}
//-->
</script>

</div></div></div></div></div>
<div id="footer">Copyright &copy; 2013 Autelis, LLC</div>
</body>
</html>

Offline Sammy2

  • Sr. Member
  • ****
  • Posts: 348
  • Karma: +1/-2
Re: Autelis Control?
« Reply #31 on: August 15, 2016, 11:34:52 am »
Awesome!  Once you get it hooked up run the following urls.  These will give me a listing of what the xml response will be.  Some of these may return nothing and that is telling in itself.

Code: [Select]
http://<autelis ip>/names.xml
http://<autelis ip>/status.xml
http://<autelis ip>/pumps.xml
http://<autelis ip>/chem.xml

After you type the url into a browser if you right click and choose View Source you should be able to save it.  If it throws an error on these then this is telling as well.

I must apologize but this past weekend ended up being a wash on getting the Autelis set up. I had some issues taking an old Netgear router and putting it into Bridge or AP mode. It started working like a managed switch but would not extend the signal wirelessly to the location of my pool equipment. I have a new bridge on order and should be able to get this thing set up during this week. I will keep you posted but can one directly connect to the Autelis with a laptop and not even use their local network to pull the data you need?

Thanks.

Offline rstrouse

  • Hero Member
  • *****
  • Posts: 753
  • Karma: +25/-6
Re: Autelis Control?
« Reply #32 on: August 15, 2016, 12:06:34 pm »
No worries Sammy.  Nothing I hate more than tinkering with network crap!  You can connect to the Autelis unit directly with your laptop.  However, that is just more tinkering.  Get your network woes hammered out then get the files to me.  I still need to compare the two systems to see the differences based upon installed equipment.

Good Luck!
1xVera3 1.7.619, 4xLinear WT00Z, 3xLinear WS15Z, 1xLeviton VRCZ4, 10xCooper RF9540, 1xLeviton VRFI10, 1xLeviton VP00R, 2xLinear GD00Z-4, 1xGE/Jasco 45612, 1xGE/Jasco 45610,  4xGE/Jasco 45605, 2xYale YRD220-ZW-619, 1xCaddx NX584, Autelis Intellitouch Pool Control, OpenSprinkler

Offline rstrouse

  • Hero Member
  • *****
  • Posts: 753
  • Karma: +25/-6
Re: Autelis Control?
« Reply #33 on: August 15, 2016, 12:12:05 pm »
@mda,

I guess what I am trying to figure out is the mapping.  Pretty sure the Alpine White is 128 or 1 but is Sky Blue 129 or is it Caribbean Blue?

Is there a screen in Autelis where you can change the color of a light or group of lights?  Also, it appears as if this applies to all Jandy LED lights attached to the controller not one at time.  Do you have more than one LED light on different circuits?
1xVera3 1.7.619, 4xLinear WT00Z, 3xLinear WS15Z, 1xLeviton VRCZ4, 10xCooper RF9540, 1xLeviton VRFI10, 1xLeviton VP00R, 2xLinear GD00Z-4, 1xGE/Jasco 45612, 1xGE/Jasco 45610,  4xGE/Jasco 45605, 2xYale YRD220-ZW-619, 1xCaddx NX584, Autelis Intellitouch Pool Control, OpenSprinkler

Offline mda

  • Sr. Member
  • ****
  • Posts: 464
  • Karma: +9/-0
Re: Autelis Control?
« Reply #34 on: August 15, 2016, 01:58:08 pm »
@mda,

I guess what I am trying to figure out is the mapping.  Pretty sure the Alpine White is 128 or 1 but is Sky Blue 129 or is it Caribbean Blue?

My vera device updated by the Autelis shows these numbers corresponding to colors:

  • Caribbean blue: 19
  • Sky blue: 18
  • Emerald rose: 23
  • Off: 0

Quote
Is there a screen in Autelis where you can change the color of a light or group of lights?  Also, it appears as if this applies to all Jandy LED lights attached to the controller not one at time.  Do you have more than one LED light on different circuits?

The /equipment.htm page shows a menu for color when i turn on a light (see attached screen shots). I can turn each light (spa, pool) on/off separately and select its color seperately. source for that page is:

Code: [Select]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Autelis Pool Control</title>
<link href="autelis.css" rel="stylesheet" type="text/css" />
<script src="ajax.js" type="text/javascript"></script>
<meta name="format-detection" content="telephone=no">
</head>

<body>
<div id="shadow-one"><div id="shadow-two"><div id="shadow-three"><div id="shadow-four">
<div id="page">

<div style="padding:0 0 5px 5px"><img src="autelis.png" alt="Autelis" /></div>

<div id="menu">
<a href="systeminfo.htm">System Information</a>
<a href="equipment.htm">Equipment Control</a>
<a href="temperature.htm">Temperature Control</a>
<a href="reminders.htm">Reminders</a>
<a href="isy.htm">ISY Settings</a>
<a href="keypad.htm">Keypad</a>
<a href="macros.htm">Macros</a>
<a href="pumps.htm">Pumps</a>
<a href="chem.htm">Chemistry</a>
<a href="settings.htm">Setup</a>
</div>


<div id="content">
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=pump&value=0');">OFF</button></div>
<div class="subitem two" align="center">Filter Pump: <label id="pump">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=pump&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=pumplo&value=0');">OFF</button></div>
<div class="subitem two" align="center">Pump Low Speed: <label id="pumplo">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=pumplo&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=spa&value=0');">OFF</button></div>
<div class="subitem two" align="center">Spa: <label id="spa">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=spa&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=waterfall&value=0');">OFF</button></div>
<div class="subitem two" align="center">Spillway: <label id="waterfall">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=waterfall&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=cleaner&value=0');">OFF</button></div>
<div class="subitem two" align="center">Cleaner: <label id="cleaner">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=cleaner&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux1&value=0');">OFF</button></div>
<div class="subitem two" align="center">Booster Pump: <label id="aux1">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux1&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux2&value=0');">OFF</button></div>
<div class="subitem two" align="center">Spa Light: <label id="aux2">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux2&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux3&value=0');">OFF</button></div>
<div class="subitem two" align="center">Pool Light: <label id="aux3">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux3&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux4&value=0');">OFF</button></div>
<div class="subitem two" align="center">Air Blower: <label id="aux4">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux4&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux5&value=0');">OFF</button></div>
<div class="subitem two" align="center">Deck Jets: <label id="aux5">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux5&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux6&value=0');">OFF</button></div>
<div class="subitem two" align="center">AUX6: <label id="aux6">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux6&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux7&value=0');">OFF</button></div>
<div class="subitem two" align="center">AUX7: <label id="aux7">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux7&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux8&value=0');">OFF</button></div>
<div class="subitem two" align="center">AUX8: <label id="aux8">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux8&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux9&value=0');">OFF</button></div>
<div class="subitem two" align="center">AUX9: <label id="aux9">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux9&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux10&value=0');">OFF</button></div>
<div class="subitem two" align="center">AUX10: <label id="aux10">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux10&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux11&value=0');">OFF</button></div>
<div class="subitem two" align="center">AUX11: <label id="aux11">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux11&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux12&value=0');">OFF</button></div>
<div class="subitem two" align="center">AUX12: <label id="aux12">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux12&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux13&value=0');">OFF</button></div>
<div class="subitem two" align="center">AUX13: <label id="aux13">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux13&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux14&value=0');">OFF</button></div>
<div class="subitem two" align="center">AUX14: <label id="aux14">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux14&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux15&value=0');">OFF</button></div>
<div class="subitem two" align="center">AUX15: <label id="aux15">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux15&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux16&value=0');">OFF</button></div>
<div class="subitem two" align="center">: <label id="aux16">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux16&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux17&value=0');">OFF</button></div>
<div class="subitem two" align="center">: <label id="aux17">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux17&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux18&value=0');">OFF</button></div>
<div class="subitem two" align="center">: <label id="aux18">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux18&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux19&value=0');">OFF</button></div>
<div class="subitem two" align="center">: <label id="aux19">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux19&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux20&value=0');">OFF</button></div>
<div class="subitem two" align="center">: <label id="aux20">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux20&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux21&value=0');">OFF</button></div>
<div class="subitem two" align="center">: <label id="aux21">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux21&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux22&value=0');">OFF</button></div>
<div class="subitem two" align="center">: <label id="aux22">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux22&value=1');">ON</button></div>
</div>
<div class="item green" style="display:none">
<div class="subitem one"><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux23&value=0');">OFF</button></div>
<div class="subitem two" align="center">: <label id="aux23">ON</label></div>
<div class="subitem three" ><button class="sm" onClick="newAJAXCommand('set.cgi?name=aux23&value=1');">ON</button></div>
</div>
</div>

<div class="spacer">&nbsp;</div>

<script type="text/javascript">
<!--
var clights = [ 0,2,2,0,0,0,0 ];
// Parses the xmlResponse from status.xml and updates the status
function updateStatus(xmlData) {
// Check if a timeout occurred
if(!xmlData)
return;

// Loop over all the equipment
// Update status & color
var equip = xmlData.getElementsByTagName('equipment')[0];
if (equip == null)
return;
for (var i=0; i < equip.childNodes.length; i++)
{
var item = document.getElementById(equip.childNodes[i].tagName);
if(item)
{
var test = equip.childNodes[i].firstChild;
if (test != null)
{
test = test.nodeValue;
switch(test)
{
case '0':
item.innerHTML = 'OFF';
break;
case '1':
item.innerHTML = 'ON';
break;
case '25':
case '50':
case '75':
case '100':
if (getDimmer(item)==null)
item.innerHTML = '<select class="dimmer" onfocus="this.name=\'selectactive\'" onblur="this.name=\'\'" onchange="this.blur();newAJAXCommand(\'set.cgi?wait=1&name=' + item.id + '&value=\' + this.options[this.selectedIndex].value.replace(\'%\', \'\'));"><option>25%</option><option>50%</option><option>75%</option><option>100%</option></select>';
var dimlevel;
switch(test)
{
case '25':
var dimlevel=0;
break;
case '50':
var dimlevel=1;
break;
case '75':
var dimlevel=2;
break;
case '100':
var dimlevel=3;
break;
}
var dimopt=getDimmer(item);
if(dimopt.selectedIndex != dimlevel && dimopt.name != "selectactive")
dimopt.selectedIndex = dimlevel;
break;
default:
if(test > 0x80 && test < 0x8F)
{
setColor(item,test);
}
else
{
item.parentNode.parentNode.style.display ='none';
continue;
}
}
item.parentNode.parentNode.setAttribute("class", (test == '0') ? 'item red' : 'item green');
item.parentNode.parentNode.setAttribute("class", (test == '0') ? 'item red' : 'item green');
item.parentNode.parentNode.style.display ='block';
}
else item.parentNode.parentNode.style.display ='none';
}
}
}
function getDimmer(it) {
var retnode = null;
for (var i = 0; i < it.childNodes.length; i++)
if(it.childNodes[i].className == "dimmer")
{
retnode=it.childNodes[i];
break;
}
return retnode;
}
function setColor(it,clr) {
var colors = [ [ "Alpine White", "Sky Blue", "Cobalt Blue", "Caribbean Blue", "Spring Green", "Emerald Green", "Emerald Rose", "Magenta", "Garnet Red", "Violet", "Color Splash" ], [ "Alpine White", "Sky Blue", "Cobalt Blue", "Caribbean Blue", "Spring Green", "Emerald Green", "Emerald Rose", "Magenta", "Violet", "Slow Splash", "Fast Splash", "USA!!!", "Fat Tuesday", "Disco Tech" ], [ "White", "Light Green", "Green", "Cyan", "Blue", "Lavender", "Magenta", "Light Magenta", "Color Splash" ], [ "Voodoo Lounge", "Deep Blue Sea", "Afternoon Skies", "Emerald", "Sangria", "Cloud White", "Twilight", "Tranquility", "Gemstone", "USA!", "Mardi Gras", "Cool Caberet" ], [ "SAM", "Party", "Romance", "Caribbean", "American", "Cal Sunset", "Royal", "Blue", "Green", "Red", "White", "Magenta", "Hold", "Recall" ] ];
var cs = null;
for (var i = 0; i < it.childNodes.length; i++)
if(it.childNodes[i].className == "color")
{
cs = it.childNodes[i];
break;
}
if(cs == null)
{
var sel = document.createElement("select");
sel.setAttribute("class", "color");
sel.setAttribute("onfocus", "this.name='selectactive'");
sel.setAttribute("onblur", "this.name=''");
sel.setAttribute("onchange", "this.blur();newAJAXCommand('set.cgi?wait=1&name=" + it.id + "&value=' + (this.selectedIndex+1));");
var cidx = clights[it.id.substring(3)-1];
cidx = ((cidx>0)?cidx-1:0);
for(var j = 0; j < colors[cidx].length; j++)
{
var op = document.createElement("option");
op.text = colors[cidx][j];
sel.appendChild(op);
}
it.innerHTML = "";
cs = it.appendChild(sel);
}
if(cs.getAttribute("name") != "selectactive")
cs.selectedIndex = (clr & 0x0F)-1;
}
newAJAXCommand('/status.xml', updateStatus, true);
//-->
</script>

</div></div></div></div></div>
<div id="footer">Copyright &copy; 2013 Autelis, LLC</div>
</body>
</html>

Offline Sammy2

  • Sr. Member
  • ****
  • Posts: 348
  • Karma: +1/-2
Re: Autelis Control?
« Reply #35 on: August 15, 2016, 05:32:00 pm »
@mda

Thanks, now can I get you to go to the screen where you set the setpoints for your AquaPure and do the same thing?

Edit: Later that same day

I'm getting close.  There are several items that I need to figure out but Autelis sent me a message and they are trying to make the pump RPM and Wattage available for VS pumps.  If they do it similar to the Pentair version it will also make VF pumps as well so I have coded accordingly.
  • I realize you are on UI5 and I have coded what I assume will work on UI5 but I am not sure since I do not have that platform... we'll see
  • The WaterColors interface will be interesting.  I think I want to use the colorpicker control but I think that is UI7 only maybe this is another branch.
  • Below are some progress pics

@Sammy,  How's the install of your Autelis going?

I didn't notice this but responded to an earlier post. After seeing those screen grabs for the app in Vera, I'm getting real excited about the prospects here! I will try to get this up and running as soon as possible. I know that I need to count valve actuators and give you which valves they operate as well.

I think that I may have an extra AUX or two in the Jandy that I'd like to be able to control yard lighting with in addition to the pool pumps and lights.

Offline rstrouse

  • Hero Member
  • *****
  • Posts: 753
  • Karma: +25/-6
Re: Autelis Control?
« Reply #36 on: August 16, 2016, 04:35:43 pm »
Ok so I have the plugin running in Simulation mode and all indication say that it should run when connected to an actual Autelis unit so here it is although my dog says its "rough."

Things that should be working
  • Configuration... all of it
  • Standard Circuits
  • Aux Circuits
  • Heaters: Spa, Pool1, and Pool2
  • Jandy Water Colors
  • AquaPure Chlorinator

Things that are probably not perfect
  • Solar Only pool heating -- I got some clarification from Autelis regarding how this works as it relates to the solar installation.  Currently there will be no way to set the setpoint in this scenario
  • Macros -- Still need to make a macro execution panel.  Not sure if these will be scenes or not since the mobile app has trouble showing custom interfaces.

To install:
  • Unzip the package to a directory on your computer
  • Go to Apps --> Develop Apps --> Luup files
  • Upload all the files in the package to your Vera
  • Choose Create Device from the menu on the left
  • Enter Jandy Pool Control in the Description
  • Enter D_AutelisJandy.xml in the Upnp Device Filename field... Make sure you enter this exactly with no spaces before or after.
  • Reload the Luup engine

To Configure the Plugin:
  • Go to the control panel for the newly created device and choose the Configure tab
  • Enter the IP Address, user name, and password for your Autelis device
  • Press Save Changes
  • Exit the control panel to ensure the status changes to Connected and Ready
  • Re-enter the control panel and select the options for your pool saving the changes after each category of equipment.  Note heaters are under the Configure tab

To Configure Your Autelis:
  • Open the Autelis Web Interface and go to the ISY/Vera Setup.  If the options do not exist you do not have the correct firmware on your Autelis and will need to update it.
  • Check the Vera Enabled checkbox
  • Enter 3480 in the Port
  • Enter the device Id of the Jandy Pool Control device in the Dev Num field.  You can find this at the top on the control panel Advanced tab for this device on your Vera.

That should be it.  Take note of the changes on your Vera these should be pretty instantaneous when something is turned on/off on the AquaLink.  If they are not then the bidirectional interface is not working and let me know.  We will troubleshoot in the log.

Fingers and toes crossed!
1xVera3 1.7.619, 4xLinear WT00Z, 3xLinear WS15Z, 1xLeviton VRCZ4, 10xCooper RF9540, 1xLeviton VRFI10, 1xLeviton VP00R, 2xLinear GD00Z-4, 1xGE/Jasco 45612, 1xGE/Jasco 45610,  4xGE/Jasco 45605, 2xYale YRD220-ZW-619, 1xCaddx NX584, Autelis Intellitouch Pool Control, OpenSprinkler

Offline Sammy2

  • Sr. Member
  • ****
  • Posts: 348
  • Karma: +1/-2
Re: Autelis Control?
« Reply #37 on: August 16, 2016, 04:46:07 pm »
My bridge shows up tomorrow but I may go connect my laptop directly to the Autelis tonight to test this out.. We'll see if I have enough time before the sun goes down to do it or not..

Offline Sammy2

  • Sr. Member
  • ****
  • Posts: 348
  • Karma: +1/-2
Re: Autelis Control?
« Reply #38 on: August 17, 2016, 11:34:53 pm »
Awesome!  Once you get it hooked up run the following urls.  These will give me a listing of what the xml response will be.  Some of these may return nothing and that is telling in itself.

Code: [Select]
http://<autelis ip>/names.xml
http://<autelis ip>/status.xml
http://<autelis ip>/pumps.xml
http://<autelis ip>/chem.xml

After you type the url into a browser if you right click and choose View Source you should be able to save it.  If it throws an error on these then this is telling as well.

I just got it hooked up and it is running in Night Mode right now and here's the results:


Names:
Code: [Select]
404: File not found
Status:
Code: [Select]
<response>
<system>
<runstate>8</runstate>
<model>6520</model>
<dip>00000000</dip>
<opmode>0</opmode>
<vbat>561</vbat>
<lowbat>0</lowbat>
<version>1.5.5</version>
<time>1471490665</time>
</system>
<equipment>
<pump>0</pump>
<pumplo/>
<spa>1</spa>
<waterfall/>
<cleaner/>
<poolht2/>
<poolht>0</poolht>
<spaht>0</spaht>
<solarht>0</solarht>
<aux1>0</aux1>
<aux2>0</aux2>
<aux3>1</aux3>
<aux4>1</aux4>
<aux5>1</aux5>
<aux6>1</aux6>
<aux7>1</aux7>
<aux8/>
<aux9/>
<aux10/>
<aux11/>
<aux12/>
<aux13/>
<aux14/>
<aux15/>
<aux16/>
<aux17/>
<aux18/>
<aux19/>
<aux20/>
<aux21/>
<aux22/>
<aux23/>
</equipment>
<temp>
<poolsp>86</poolsp>
<poolsp2>60</poolsp2>
<spasp>97</spasp>
<pooltemp>0</pooltemp>
<spatemp>81</spatemp>
<airtemp>87</airtemp>
<solartemp>0</solartemp>
<tempunits>F</tempunits>
</temp>
</response>

Pumps:
Code: [Select]
404: File not found

Chem:
Code: [Select]
404: File not found

Offline rstrouse

  • Hero Member
  • *****
  • Posts: 753
  • Karma: +25/-6
Re: Autelis Control?
« Reply #39 on: August 18, 2016, 02:08:29 am »
@Sammy2,

Hmmmm...  No ISY Settings?  Is this the most recent firmware for your Autelis or do you still need to upgrade?  mda has 1.6.8 and the Autelis folks are making some additions as well.
1xVera3 1.7.619, 4xLinear WT00Z, 3xLinear WS15Z, 1xLeviton VRCZ4, 10xCooper RF9540, 1xLeviton VRFI10, 1xLeviton VP00R, 2xLinear GD00Z-4, 1xGE/Jasco 45612, 1xGE/Jasco 45610,  4xGE/Jasco 45605, 2xYale YRD220-ZW-619, 1xCaddx NX584, Autelis Intellitouch Pool Control, OpenSprinkler

Offline Sammy2

  • Sr. Member
  • ****
  • Posts: 348
  • Karma: +1/-2
Re: Autelis Control?
« Reply #40 on: August 18, 2016, 10:18:36 am »
@Sammy2,

Hmmmm...  No ISY Settings?  Is this the most recent firmware for your Autelis or do you still need to upgrade?  mda has 1.6.8 and the Autelis folks are making some additions as well.

I'm updated to 1.6.9 last night while finishing the set up. That was the initial settings. There's ISA/Vera control now.

In my haste I had to connect the Autelis via a wired connection out the window of the office to the rear patio and had to also run a long 4-wire speaker cable to the Jandy board. In connecting this, some of the One-Touch and Spa Link wires became disconnected. This morning I was working on setting up a TP-Link AP and couldn't get the dam thing to connect to my laptop via ethernet.  ??? :-[ :-\ >:( :( So that issue remain to be resolved. I don't have a whole lot of time to fuss with it and it should just work but it isn't just working!

At any rate, to keep the WAF high, I spent half an hour this morning disconnecting everything and returning the pool back to the One-Touch control because the nieces and nephews are coming over for the last Thursday pool party of the Summer before School Starts and the pool has to work.

But after a couple of failed attempts I did get the Vera connected to the Autelis and I was successful last night. My wife was out of town with her mom for her mom's birthday and it was already getting late (I'm up at 4 am to get to work as I have a 2-hour commute, which explains my limited tinkering time) and she came home so I had to then drop what I was doing and visit with her about her adventures so I have nothing to report back today. The next chance I'll have to tinker with this is probably Saturday Morning..

EDIT:

As far as pumps go, there's three; I'm thinking Pool, Spa and Booster or Cleaner.

I also have only two valves that are connected to the Jandy via relays. I'm thinking Shear Decent and Spa Flow Control as when the spa is on, the cascading water spilling from the raised spa into the pool stops and all circulation is in the Spa only.
« Last Edit: August 18, 2016, 03:57:32 pm by Sammy2 »

Offline mda

  • Sr. Member
  • ****
  • Posts: 464
  • Karma: +9/-0
Re: Autelis Control?
« Reply #41 on: August 18, 2016, 11:14:35 am »
@Sammy2,

Hmmmm...  No ISY Settings?  Is this the most recent firmware for your Autelis or do you still need to upgrade?  mda has 1.6.8 and the Autelis folks are making some additions as well.

@rstrouse please let me know when the newest Aurelia firmware is available for Jandy. I will update to it and make sure my current Vera integration still works, as a baseline, then I will install the plug in and report back. I believe my other stability issues are now resolved so I can test. Thanks!

Offline rstrouse

  • Hero Member
  • *****
  • Posts: 753
  • Karma: +25/-6
Re: Autelis Control?
« Reply #42 on: August 18, 2016, 03:35:08 pm »
@Sammy,

Now that you upgraded to 1.6.9 can you redo the xml queries?
1xVera3 1.7.619, 4xLinear WT00Z, 3xLinear WS15Z, 1xLeviton VRCZ4, 10xCooper RF9540, 1xLeviton VRFI10, 1xLeviton VP00R, 2xLinear GD00Z-4, 1xGE/Jasco 45612, 1xGE/Jasco 45610,  4xGE/Jasco 45605, 2xYale YRD220-ZW-619, 1xCaddx NX584, Autelis Intellitouch Pool Control, OpenSprinkler

Offline Sammy2

  • Sr. Member
  • ****
  • Posts: 348
  • Karma: +1/-2
Re: Autelis Control?
« Reply #43 on: August 18, 2016, 03:38:02 pm »
@Sammy,

Now that you upgraded to 1.6.9 can you redo the xml queries?

Yes but not until tomorrow or probably Saturday. Sorry.

I didn't realize until later, following the installation instructions for your plug in that I was on (very) old f/w for a NIB item. I mean it was 1.5.x.. I guess it isn't worth Autelis' time to update it before shipping because I can do that but usually stuff is just a f/w version or two behind current..

Offline rstrouse

  • Hero Member
  • *****
  • Posts: 753
  • Karma: +25/-6
Re: Autelis Control?
« Reply #44 on: August 18, 2016, 07:57:48 pm »
@mda,

I believe 1.6.9 is new and contains the new names.xml.  If you upgrade to this could you run a names.xml?  You probably do not need to remove your integration as it should coexist with the exception of the device # in the ISY settings.  The plugin does both where it listens to the variables as well as polls the xml.

1xVera3 1.7.619, 4xLinear WT00Z, 3xLinear WS15Z, 1xLeviton VRCZ4, 10xCooper RF9540, 1xLeviton VRFI10, 1xLeviton VP00R, 2xLinear GD00Z-4, 1xGE/Jasco 45612, 1xGE/Jasco 45610,  4xGE/Jasco 45605, 2xYale YRD220-ZW-619, 1xCaddx NX584, Autelis Intellitouch Pool Control, OpenSprinkler