Neptune Apex - Probe Data

Ok I have an aquarium controller that will send back the below XML info when called. How would I take this info and turn it into a sensor? Trying to show Temp and PH readings.

<?xml version="1.0"?>
<status software="4.53_4D19" hardware="1.0">
<hostname>apex</hostname>
<serial>AC4:25400</serial>
<timezone>-6.00</timezone>
<date>02/22/2021 15:43:30</date>
<power><failed>02/07/2021 17:12:43</failed>
<restored>none</restored></power>
<probes>
<probe>
 <name>Tmp</name> <value>76.1 </value>
 <type>Temp</type></probe><probe>
 <name>pH</name> <value>8.00 </value>
 <type>pH</type></probe><probe>
 <name>CXph</name> <value>6.57 </value>
 <type>pH</type></probe><probe>
 <name>Amp_3</name> <value>1.2  </value>
 <type>Amps</type></probe><probe>
 <name>Tmpx4</name> <value>22.3 </value>
 <type>Temp</type></probe><probe>
 <name>Condx4</name> <value>33.6 </value>
 <type>Cond</type></probe></probes>
<outlets>
<outlet>
 <name>VarSpd1_I1</name>
 <outputID>0</outputID>
 <state>PF1</state>
 <deviceID>base_Var1</deviceID>
</outlet>
<outlet>
 <name>VarSpd2_I2</name>
 <outputID>1</outputID>
 <state>PF2</state>
 <deviceID>base_Var2</deviceID>
</outlet>
<outlet>
 <name>VarSpd3_I3</name>
 <outputID>2</outputID>
 <state>PF3</state>
 <deviceID>base_Var3</deviceID>
</outlet>
<outlet>
 <name>VarSpd4_I4</name>
 <outputID>3</outputID>
 <state>PF4</state>
 <deviceID>base_Var4</deviceID>
</outlet>
<outlet>
 <name>SndAlm_I6</name>
 <outputID>4</outputID>
 <state>AOF</state>
 <deviceID>base_Alarm</deviceID>
</outlet>
<outlet>
 <name>SndWrn_I7</name>
 <outputID>5</outputID>
 <state>AOF</state>
 <deviceID>base_Warn</deviceID>
</outlet>
<outlet>
 <name>EmailAlm_I5</name>
 <outputID>6</outputID>
 <state>AOF</state>
 <deviceID>base_email</deviceID>
</outlet>
<outlet>
 <name>MP40S_1</name>
 <outputID>7</outputID>
 <state>AON</state>
 <deviceID>3_1</deviceID>
</outlet>
<outlet>
 <name>HeatHigh</name>
 <outputID>8</outputID>
 <state>AOF</state>
 <deviceID>Cntl_A1</deviceID>
</outlet>
<outlet>
 <name>HeatLow</name>
 <outputID>9</outputID>
 <state>AOF</state>
 <deviceID>Cntl_A2</deviceID>
</outlet>
<outlet>
 <name>HeatMid</name>
 <outputID>10</outputID>
 <state>AOF</state>
 <deviceID>Cntl_A3</deviceID>
</outlet>
<outlet>
 <name>Pump2_A4</name>
 <outputID>11</outputID>
 <state>AOF</state>
 <deviceID>Cntl_A4</deviceID>
</outlet>
<outlet>
 <name>Heater_A5</name>
 <outputID>12</outputID>
 <state>ON</state>
 <deviceID>Cntl_A5</deviceID>
</outlet>
<outlet>
 <name>Chiller_A6</name>
 <outputID>13</outputID>
 <state>AOF</state>
 <deviceID>Cntl_A6</deviceID>
</outlet>
<outlet>
 <name>CO2_A7</name>
 <outputID>14</outputID>
 <state>AON</state>
 <deviceID>Cntl_A7</deviceID>
</outlet>
<outlet>
 <name>Ozone_A8</name>
 <outputID>15</outputID>
 <state>AOF</state>
 <deviceID>Cntl_A8</deviceID>
</outlet>
<outlet>
 <name>Heater3_2</name>
 <outputID>16</outputID>
 <state>AOF</state>
 <deviceID>3_2</deviceID>
</outlet>
<outlet>
 <name>Skimmer_3</name>
 <outputID>17</outputID>
 <state>AON</state>
 <deviceID>3_3</deviceID>
</outlet>
<outlet>
 <name>RTpump_4</name>
 <outputID>18</outputID>
 <state>AON</state>
 <deviceID>3_4</deviceID>
</outlet>
<outlet>
 <name>CxRx-5</name>
 <outputID>19</outputID>
 <state>AON</state>
 <deviceID>3_5</deviceID>
</outlet>
<outlet>
 <name>SumpLight</name>
 <outputID>20</outputID>
 <state>AON</state>
 <deviceID>3_6</deviceID>
</outlet>
<outlet>
 <name>ATO-Fill7</name>
 <outputID>21</outputID>
 <state>AOF</state>
 <deviceID>3_7</deviceID>
</outlet>
<outlet>
 <name>Algea_Scrub8</name>
 <outputID>22</outputID>
 <state>AON</state>
 <deviceID>3_8</deviceID>
</outlet>
<outlet>
 <name>DOS_5_NSW</name>
 <outputID>23</outputID>
 <state>TBL</state>
 <deviceID>5_1</deviceID>
</outlet>
<outlet>
 <name>DOS_5_OSW</name>
 <outputID>24</outputID>
 <state>TBL</state>
 <deviceID>5_2</deviceID>
</outlet>
</outlets></status>

I figured it out. For anyone using Apex Fusion to control your reef tank, this is what worked for me to view my prob info on my dashboard. You will have to inspect the XML file to find your probes location, and I assume they will move if you add or remove devices from the Apex. Update the IP address to your APEX. Below is the default username and password for the APEX.

sensor:
  - platform: rest
    name: Aquarium Temperature
    resource: http://192.168.1.XXX:80/cgi-bin/status.xml
    value_template: "{{ value_json.status.probes.probe[0].value }}"
    unit_of_measurement: "°F"
    username: admin
    password: 1234
    force_update: true

This was helpful. Thanks! How would I create another sensor for the pH?

Depending how far you want to go with Integration you can pull all of the objects from the provided json or xml files and store them each as metrics in HA.

If you simply want to copy the sensor but change it to PH then you just need to determine what probe ID you want to pull for PH ( the built in one for PH is normally 1 , Salinity is 2, )

When you have the ID update this line of their sensor value_template: “{{ value_json.status.probes.probe[0].value }}” and replace the 0 within probe with the value you want to get.

You then want to get rid of the unit of measurement addition

A word of warning, do not over-poll your apex with a bunch of Rest sensors that constantly run like the one in the example. You are FAR better polling it the apex once and pulling it’s JSON file then allowing HA do the work rather than having 20 separate sensors all making Rest calls at once.

I’ve been tossing up writing an integration as I think it would be a fairly simple one for someone wanting to learn how to build integrations but I’m very time poor for side projects atm and my solution more than suits my needs already

I would be super interested in a full Neptune APEX integration into HA.