Announcement

Collapse
No announcement yet.

Autelis with Jandy - no Aquapure device or Pump speed - now available!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Autelis with Jandy - no Aquapure device or Pump speed - now available!

    Hi @Spud,

    Just getting ready to migrate from Vera to HS3 and testing the plugins i need to buy so i can migrate this weekend. The Autelis plugin seems to be working well, but i do not get an Aquapure salt water chlorinator device in HS3 or the Pump speed info showing up. Also seeing an error in the hs3 log (not sure if related). Running 1.6.10 of the autelis firmware on a Jandy iAqualink 2 system.

    Here is the HS3 log:

    J
    Code:
    un-01 8:36:46 PM	 	Autelis	ERROR System.InvalidOperationException: There is an error in XML document (0, 0). ---> System.Xml.XmlException: Root element is missing. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.ParseDocumentContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XmlTextReader.Read() at System.Xml.XmlReader.MoveToContent() at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderJandyStatusResponse.Read6_response() --- End of inner exception stack trace --- at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader) at HSPI_Autelis.JandyController.GetStatusCmd() at HSPI_Autelis.AutelisApp.OnPollTimerEvent(Object sender, ElapsedEventArgs e)
    Jun-01 8:29:07 PM	 	Plug-In	Finished initializing plug-in Autelis
    Jun-01 8:29:07 PM	 	Info	Plugin Autelis has connected. IP:127.0.0.1:57670
    Jun-01 8:29:05 PM	 	Plug-In	Interface Autelis is running as a trial, 18 days remaining.
    Jun-01 8:28:22 PM	 	Plug-In	Found plug-in: Autelis, version: 3.0.0.15
    Then I enabled debug logging in the plugin:

    Code:
    Jun-01 8:43:02 PM	 	Autelis	DEBUG 8 6520 00000000 0 615 0 1.6.10 1496374983 1 0 0 0 0 0 0 0 0 0 0 0 ~aux(61) ~aux(62) ~aux(63) ~aux(64) ~aux(65) ~aux(66) 86 60 102 74 0 62 0 F
    Jun-01 8:43:02 PM	 	Autelis	INFO CMD SENT: http://192.168.1.35:80/status.xml?
    Jun-01 8:42:01 PM	 	Autelis	DEBUG 8 6520 00000000 0 615 0 1.6.10 1496374922 1 0 0 0 0 0 0 0 0 0 0 0 ~aux(61) ~aux(62) ~aux(63) ~aux(64) ~aux(65) ~aux(66) 86 60 102 74 0 62 0 F
    Jun-01 8:42:01 PM	 	Autelis	INFO CMD SENT: http://192.168.1.35:80/status.xml?
    Jun-01 8:41:01 PM	 	Autelis	DEBUG 8 6520 00000000 0 615 0 1.6.10 1496374862 1 0 0 0 0 0 0 0 0 0 0 0 ~aux(61) ~aux(62) ~aux(63) ~aux(64) ~aux(65) ~aux(66) 86 60 102 74 0 62 0 F
    Jun-01 8:41:01 PM	 	Autelis	INFO CMD SENT: http://192.168.1.35:80/status.xml?
    Jun-01 8:40:01 PM	 	Autelis	DEBUG 8 6520 00000000 0 615 0 1.6.10 1496374801 1 0 0 0 0 0 0 0 0 0 0 0 ~aux(61) ~aux(62) ~aux(63) ~aux(64) ~aux(65) ~aux(66) 86 60 102 74 0 62 0 F
    Jun-01 8:40:00 PM	 	Autelis	INFO CMD SENT: http://192.168.1.35:80/status.xml?
    my Autelis chem.xml looks like this:

    Code:
    <response>
    	<chem>
    		<avail>9</avail>
    		<chlrp>20</chlrp>
    		<saltp>96</saltp>
    		<chlrs>5</chlrs>
    		<salts>96</salts>
    		<orp1>0</orp1>
    		<orp2>0</orp2>
    		<ph1>0</ph1>
    		<ph2>0</ph2>
    		<orpfd1>0</orpfd1>
    		<orpfd2>0</orpfd2>
    		<phfd1>0</phfd1>
    		<phfd2>0</phfd2>
    	</chem>
    </response>
    and pumps.xml looks like this:

    Code:
    <response>
    	<pumps>
    		<vsp1>1</vsp1>
    		<vsp2></vsp2>
    		<vsp3></vsp3>
    		<vsp4></vsp4>
    	</pumps>
    </response>
    pump setup (psetup.htm) looks like this:


    Code:
    <!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>
    <div><label>Pump Number:</label>
    <select id="pnum" onfocus="chgPump(this.selectedIndex)" onchange="selectPump(this.selectedIndex)"><option>1</option><option>2</option><option>3</option><option>4</option></select></div>
    <div><label>Speed 1 Label:</label>
    <input maxlength=15 type="text" id="splabel1"/></div>
    <div><label>Speed 2 Label:</label>
    <input maxlength=15 type="text" id="splabel2"/></div>
    <div><label>Speed 3 Label:</label>
    <input maxlength=15 type="text" id="splabel3"/></div>
    <div><label>Speed 4 Label:</label>
    <input maxlength=15 type="text" id="splabel4"/></div>
    <div><label>Speed 5 Label:</label>
    <input maxlength=15 type="text" id="splabel5"/></div>
    <div><label>Speed 6 Label:</label>
    <input maxlength=15 type="text" id="splabel6"/></div>
    <div><label>Speed 7 Label:</label>
    <input maxlength=15 type="text" id="splabel7"/></div>
    <div><label>Speed 8 Label:</label>
    <input maxlength=15 type="text" id="splabel8"/></div>
    <br><br>
    <div class="ct"><button id="bsave" onClick="saveNames()">Save</button></div>
    </fieldset>
    <form method="post" action="/psetup.htm" id="hform">
    </div>
    <script type="text/javascript">
    <!--
    var pspeeds = [ "Pool","Spa","Deck Jets","Speed4","Pool Heat","Spa Heat","Speed7","In Floor","","","","","","","","","","","","","","","","","","","","","","","","" ];
    
    function chgPump(num){
    	for(var i=0;i<8;i++)
    		pspeeds[(num * 8) + i] = document.getElementById("splabel" + (i+1)).value;
    }
    function selectPump(num){
    	for(var i=0;i<8;i++)
    		document.getElementById("splabel" + (i+1)).value = pspeeds[(num * 8) + i];
    }
    function saveNames() {
    chgPump(document.getElementById("pnum").selectedIndex);
    var hform = document.getElementById("hform");
    for (var j=0;j<pspeeds.length;j++)
    {
    	newelement = document.createElement("input");
    	newelement.setAttribute("type", "hidden");
    	newelement.setAttribute("name", "splabel" + j );
    	newelement.value=pspeeds[j];
    	if(newelement.value.length>0)
    		hform.appendChild(newelement);
    }
    hform.submit();
    }
    selectPump(0);
    //-->
    </script>
    
    
    </div></div></div></div></div>
    <div id="footer">Copyright &copy; 2013 Autelis, LLC</div>
    </body>
    </html>
    I have attached a few screen shots for reference as well. If you are able/willing to add add these, i would appreciate it. I will buy the plug-in either way when I am back home this weekend.

    Thanks!

    -Michael


    HS3 info:

    Current Date/Time: 6/1/2017 8:44:18 PM
    HomeSeer Version: HS3 Pro Edition 3.0.0.318
    Operating System: Microsoft Windows 7 Enterprise - Work Station
    System Uptime: 0 Days 0 Hours 15 Minutes 58 Seconds
    IP Address: 192.168.1.141
    Number of Devices: 298
    Number of Events: 21
    Available Threads: 200

    Enabled Plug-Ins
    3.0.0.15: Autelis
    2.0.47.0: BLBackup
    2.0.33.0: BLGData
    2.0.35.0: BLLAN
    1.1.2.0: Device History
    3.0.0.18: Ecobee
    5.0.0.58: Global Cache Pro
    3.6.5.0: Harmony Hub
    3.0.0.104: HSTouch Server
    1.0.17123.357: MyQ
    3.1.0.20: Sonos
    3.0.6104.19146: UltraRachio3
    3.0.0.63: weatherXML
    3.0.1.124: Z-Wave
    Attached Files

    #2
    The current version of the plugin does not parse chem.xml nor pumps.xml for Jandy controllers. I have added this to my TODO list.

    regarding the error, do you get it everytime you start the plug-in? if so please set the log level to debug, then capture the start of the plug-in. Thanks

    Comment


      #3
      Originally posted by spud View Post
      The current version of the plugin does not parse chem.xml nor pumps.xml for Jandy controllers. I have added this to my TODO list.

      regarding the error, do you get it everytime you start the plug-in? if so please set the log level to debug, then capture the start of the plug-in. Thanks
      I have not seen that error again (since I have had debugging on) but got a new error on HS3 startup today (just once in perhaps 20 startups) and had debugging on.

      Code:
      6/11/2017 11:18:04 AM ~!~Plug-In~!~Found plug-in: Autelis, version: 3.0.0.15
      6/11/2017 11:18:34 AM ~!~Info~!~Plugin Autelis has connected. IP:127.0.0.1:49239
      [COLOR="Red"]6/11/2017 11:18:34 AM ~!~Error~!~Initializing plug-in(1): Autelis Instance::System.NullReferenceException: Object reference not set to an instance of an object.   at HSPI_Autelis.Logger.Init()   at HSPI_Autelis.AutelisApp.Init()[/COLOR]
      6/11/2017 11:18:34 AM ~!~Info~!~Plugin Autelis with instance:  has disconnected
      6/11/2017 11:18:37 AM ~!~Plug-In~!~Finished initializing plug-in Autelis
      Disabling it and re-enabling it started it back up without the error. My Autelis is online and seems fully responsive (i checked when the error happened) and the pool pump is running. Thanks.

      Comment


        #4
        Originally posted by spud View Post
        The current version of the plugin does not parse chem.xml nor pumps.xml for Jandy controllers. I have added this to my TODO list.
        @Spud, Autelis just added pump RPM and Watts, and Aquapure status/errors to Autelis firmware 1.6.12 for Jandy http://autelis.com/forum/viewtopic.p...0&p=2663#p2663

        Here is the new pumps.xml:

        Code:
        <response>
        <pumps>
        <vsp1>1</vsp1>
        <vsp1rpm>2500</vsp1rpm>
        <vsp1watts>735</vsp1watts>
        <vsp2/>
        <vsp2rpm/>
        <vsp2watts/>
        <vsp3/>
        <vsp3rpm/>
        <vsp3watts/>
        <vsp4/>
        <vsp4rpm/>
        <vsp4watts/>
        </pumps>
        </response>


        And here is the new chem.xml:

        Code:
        <response>
        <chem>
        <avail>9</avail>
        <chlrp>30</chlrp>
        <saltp>94</saltp>
        <chlrs>5</chlrs>
        <salts>94</salts>
        <chlrerr>1</chlrerr>
        <orp1>0</orp1>
        <orp2>0</orp2>
        <ph1>0</ph1>
        <ph2>0</ph2>
        <orpfd1>0</orpfd1>
        <orpfd2>0</orpfd2>
        <phfd1>0</phfd1>
        <phfd2>0</phfd2>
        </chem>
        </response>

        This is showing a "Check Flow/PCB" error. Here is the error text lookup from their /chem.htm

        Code:
        var statusStrings = [ "Check Flow/PCB","Low Salt","High Salt","General Fault","?","?","?","?","OK" ];
        if(err > 0)
        {
        	for(i=7;i>0;i--)
        		if((parseInt(err)>>i) & 1)
        			break;
        	var txt = statusStrings[i];
        }
        else 
        	txt = statusStrings[8];
        return txt;		
        }
        When you add parsing /pumps.xml and /chem.xml, if you could please expose <chlrerr> from /chem.xml and <vsp1rpm> and <vsp1watts> from /pumps.xml as triggers/conditions, it would then be possible to send alerts on chlorinator errors (before discovering the pool has no chlorine after days of issues -- yes, that was my last weekend unfortunately) and also alert when the pump needs to be cleaned based on the change in wattage for the same RPM.

        Thanks!

        Comment


          #5
          Autelis with Jandy - no Aquapure device or Pump speed

          Originally posted by mda View Post
          @Spud, Autelis just added pump RPM and Watts, and Aquapure status/errors to Autelis firmware 1.6.12 for Jandy http://autelis.com/forum/viewtopic.p...0&p=2663#p2663


          No need anymore on my end, I was able to sort it out with Jon00's DataScraper script

          Comment


            #6
            in version 3.0.0.17 available here, I have added support for chemistry information (chlorinator setpoint, salt level, ph, ORP, etc...) for Jandy controllers

            Comment


              #7
              Originally posted by spud View Post
              in version 3.0.0.17 available here, I have added support for chemistry information (chlorinator setpoint, salt level, ph, ORP, etc...) for Jandy controllers
              Hi @spud, does .17 also handle Aquapure error status and Jandy Variable Speed Pump RPM and wattage?

              (just checking before I update and set out to redo what I have working with the webscraper)

              Thanks!

              Comment


                #8
                Originally posted by mda View Post
                Hi @spud, does .17 also handle Aquapure error status and Jandy Variable Speed Pump RPM and wattage?

                (just checking before I update and set out to redo what I have working with the webscraper)

                Thanks!
                yes for Aquapure error
                not yet for Speed pump RPM and wattage

                Comment


                  #9
                  Originally posted by spud View Post
                  yes for Aquapure error

                  not yet for Speed pump RPM and wattage


                  Thanks. I will hold off updating until you get pump speed and rpm too I think, so I can swap out all of my scraped devices at once. No rush!

                  Comment


                    #10
                    I added the pump information in version 3.0.0.18 available here: https://forums.homeseer.com/showthre...83#post1153183

                    Comment


                      #11
                      Originally posted by spud View Post
                      I added the pump information in version 3.0.0.18 available here: https://forums.homeseer.com/showthre...83#post1153183
                      Thanks!

                      Comment


                        #12
                        Originally posted by spud View Post
                        I added the pump information in version 3.0.0.18 available here: https://forums.homeseer.com/showthre...83#post1153183
                        Hi @Spud i think i ran into a bug with the way status is reporting on the Aquapure. I am not sure if it is in the plugin (.18) or the version of the autelis firmware (1.6.12) i am running.

                        the other day, my pool person accidentally disconnected my Aquapure from my Jandy control system RS422 bus, but the plugin kept reporting status on the Aquapure as OK even though the Jandy (iAqalink app and local keypads) no longer showed the Aquapure as being connected to the system.

                        I was not in town so I do not know what the Autelis was reporting to HS3 (and my log file does not have the info anymore, sorry), but it would either have been not returning the /chem.xml page at all or showing <avail>0</avail> (instead of the normal <avail>9</avail> in the /chem.xml page response)

                        So, that makes me wonder if the plugin is taking either of those conditions into account when returning OK as status for the Aquapure device or only returning an error if the <chlrerr> attribute on the last response for /chem.xml is not 0 ?

                        If it is not taking those two conditions into account, would it be possible for it to please check for the conditions where /chem.xml does not return or the <avail> attribute is not 9 -- and when that happens change the Value/Status of the HS3 Aquapure device to some value other than 0 (OK)? (perhaps something like 100 or -1 that Autelis will not return in the <chlrerr> attribute so we can use this as a trigger to alert that the Aquaure is no longer connected to the Jandy system?

                        If you are already taking this into account, please accept my apology for the bother and would you mind letting me know what Value/Status the Aquapure device will show when the Aquapure is not connected?

                        I will also ask Autelis to confirm that their firmware is reporting the condition correctly with <avail> attribute of 0 when the Aquapure is not connected. (i would recreate the condition to check this, but it requires taking apart my pool control system so it would be quite difficult right now).

                        Thanks!

                        Comment


                          #13
                          Originally posted by mda View Post
                          Hi @Spud i think i ran into a bug with the way status is reporting on the Aquapure. I am not sure if it is in the plugin (.18) or the version of the autelis firmware (1.6.12) i am running.

                          the other day, my pool person accidentally disconnected my Aquapure from my Jandy control system RS422 bus, but the plugin kept reporting status on the Aquapure as OK even though the Jandy (iAqalink app and local keypads) no longer showed the Aquapure as being connected to the system.

                          I was not in town so I do not know what the Autelis was reporting to HS3 (and my log file does not have the info anymore, sorry), but it would either have been not returning the /chem.xml page at all or showing <avail>0</avail> (instead of the normal <avail>9</avail> in the /chem.xml page response)

                          So, that makes me wonder if the plugin is taking either of those conditions into account when returning OK as status for the Aquapure device or only returning an error if the <chlrerr> attribute on the last response for /chem.xml is not 0 ?

                          If it is not taking those two conditions into account, would it be possible for it to please check for the conditions where /chem.xml does not return or the <avail> attribute is not 9 -- and when that happens change the Value/Status of the HS3 Aquapure device to some value other than 0 (OK)? (perhaps something like 100 or -1 that Autelis will not return in the <chlrerr> attribute so we can use this as a trigger to alert that the Aquaure is no longer connected to the Jandy system?

                          If you are already taking this into account, please accept my apology for the bother and would you mind letting me know what Value/Status the Aquapure device will show when the Aquapure is not connected?

                          I will also ask Autelis to confirm that their firmware is reporting the condition correctly with <avail> attribute of 0 when the Aquapure is not connected. (i would recreate the condition to check this, but it requires taking apart my pool control system so it would be quite difficult right now).

                          Thanks!
                          In version 3.0.0.20 available here, the "Chlorination error" device is now set to GeneralFault if<avail> is 0 or if the request to get chem.xml fails

                          Comment


                            #14
                            Originally posted by spud View Post
                            In version 3.0.0.20 available here, the "Chlorination error" device is now set to GeneralFault if<avail> is 0 or if the request to get chem.xml fails
                            Thanks! I have installed it and will keep an eye on it.

                            Comment


                              #15
                              Originally posted by spud View Post
                              In version 3.0.0.20 available here, the "Chlorination error" device is now set to GeneralFault if<avail> is 0 or if the request to get chem.xml fails
                              Originally posted by mda View Post
                              I will also ask Autelis to confirm that their firmware is reporting the condition correctly...
                              @Spud

                              Autelis sent me an updated firmware for their box (version PC100JZ-ADV-1.6.16.jar)

                              Due to the way things work on their end, it will now report <avail>8</avail> in /chem.xml when the chlorinator is not connected (rather than 0).

                              Would it be possible for you to adjust the plug-in to handle <avail>8</avail> as this error condition? Thanks!

                              Comment

                              Working...
                              X