Guide: How to control Neptune Apex using Google Home

robbyg

Valuable Member
View Badges
Joined
Sep 8, 2019
Messages
2,303
Reaction score
2,859
Rating - 0%
0   0   0
Given the media attention on unwanted outside hacks of these kinds of devices I would suspect that security has not only gone up but is going to continue to evolve and therefore make legitimate home projects like this harder and harder to implement.
 

RobB'z Reef

2500 Club Member
View Badges
Joined
Apr 23, 2020
Messages
2,783
Reaction score
5,773
Location
Eau Claire
Rating - 0%
0   0   0
Given the media attention on unwanted outside hacks of these kinds of devices I would suspect that security has not only gone up but is going to continue to evolve and therefore make legitimate home projects like this harder and harder to implement.
That's the tough thing about chasing unsupported features lol. Yes you can hack your way through it but in the end your always left surprised and reinventing the wheel to keep it working. Still this was a very fun read! Accidentally ran across this thread when I was googling Apex API's.
 

Saltyanimals

Valuable Member
View Badges
Joined
Jun 4, 2016
Messages
1,001
Reaction score
455
Rating - 0%
0   0   0
Does this still work in 2023 to be work chasing?
I am controlling my Reef Tank using an APEX and often have to turn off something when working on the tank.

This can be a pain as wet hands and touch screen phones don't work well together. I thought. Wouldn't it be awesome if you could use google home to control your tank? For example, when you start doing a water change and the ATO starts screaming you could say "OK Google.. Turn off tank ATO".

I searched around and there didn't seem to be a way to do it. Then, I realised the APEX Android app uses HTTP to communicate with your local APEX Web Server.

After firing up Wire shark I found that you can control your apex by sending simple HTTP POST commands to the APEX. For example to turn off your ATO you can issue the following command on your local network:

Code:
curl -X POST --user admin:PASSWORD http://APEX_LOCAL_IP:APEX_PORT/status.sht?ATO_state=1&Update=Update

The state is a enumeration where 0 = AUTO, 1 = OFF and 2 = ON.

Now I can issue commands to the APEX. But how do you hook it up with Google Home? This is where the following combination of tools does the magic:
Google Home + IFTTT + Home Assistant + Command Line Curl

Here is a demo with my Neptune Apex Controlled Reef Tank:


Step 1: Install Home Assistant

Home Assistant (https://home-assistant.io) is a home automation server that you run on your local network. Home Assistant allows you to centralise command and control of multiple home automation devices in one location. Once a device is connected to home assistant you can control those devices remotely via a REST web API.

Install Home Assistant by following the guides on the website and ensure you enable port forwarding to your home assistant server.

Important: Ensure you setup home assistant with a password, dynamic dns and enable SSL by following the guides. You are about to open a public interface to your Reef Tank!

Step 2: Add a command line switch for each Apex Connected Device

Home automation has many modules (platforms) to control devices. An extremely useful and flexible platform is the "command_line" platform (https://home-assistant.io/components/switch.command_line/). Using the command_line platform we can program a switch that runs a curl command to interact with your APEX as described above.

Add the following to your configuration.yaml file:

Code:
switch:
  - platform: command_line
    switches:
      fish_tank_ato:
        command_on: curl -X POST --user admin:PASSWORD http://APEX_LOCAL_IP:APEX_PORT/status.sht?ATO_state=0&Update=Update
        command_off: curl -X POST --user admin:PASSWORD http://APEX_LOCAL_IP:APEX_PORT/status.sht?ATO_state=1&Update=Update

Restart your home assistant and you should now see a switch on the Home assistant UI:
35706927793_cfc86fc32c_n.jpg%22


Step 3: Test the Home Assistant Switch

Switches in home assistant can be called via a REST API (https://home-assistant.io/developers/rest_api/). The REST API requires you to POST the name of the switch in JSON and your home assistant password in the url request.

Here is an example in curl:
Code:
curl -X POST -H "Content-Type: application/json" -d '{"entity_id" : "switch.fish_tank_ato"}' https://YOUR_DYNAMIC_DNS_HOSTNAME:HOME_ASSISTANT_PORT_ON_ROUTER/api/services/script/turn_on?api_password=HOME_ASSISTANT_PASSWORD

Step 4: Connect everything using IFTTT (If This Than That)

IFFT (https://ifttt.com/discover) allows you to connect input from one device (If This) to an action (Than That). We will be using IFTTT to make Google Assistant (This) perform web request to home assistant (Than That).

Sign up to IFTTT and setup a new Applet. For the (This) select Google Assistant
35706927673_11e0dc387c_n.jpg


Select the "Say a simple phrase" option and enter in the phrase to activate the command. For example "turn off tank ato".

For the "That" select the "Web Hooks" service.
36515570045_5bfc0833ac_n.jpg


Enter the URL to trigger the home assistant switch and set the action to POST.
35706927213_fe6ec80489_n.jpg


Set the content type to "application/json " and paste in the JSON that specifies the home assistant switch to trigger.
36515569865_a1a19d77ee_n.jpg


Step 5: Test it out

Say "OK Google.." and your phrase and enjoy your new Reef Tank Assistant!



Does this still work in 2023 to be work chasing? I stuck an NFC sticker on my cabinet that allows me to tap my iphone to quickly open to my Apex app. Would love to do something similar where I can NFC tap a "feed sticker" and skip a step.
 

High pressure shells: Do you look for signs of stress in the invertebrates in your reef tank?

  • I regularly look for signs of invertebrate stress in my reef tank.

    Votes: 42 31.3%
  • I occasionally look for signs of invertebrate stress in my reef tank.

    Votes: 31 23.1%
  • I rarely look for signs of invertebrate stress in my reef tank.

    Votes: 27 20.1%
  • I never look for signs of invertebrate stress in my reef tank.

    Votes: 34 25.4%
  • Other.

    Votes: 0 0.0%
Back
Top