Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Is not possible anymore... ? status.sht always getting a <HTML><HEAD><TITLE>401 Unauthorized</TITLE></HEAD><BODY>401 Unauthorized</BODY></HTML> with curlbump for updates
Nevermind I got it.. had to wrap the url in single quotes & also add the credentials inside of the url for some reason (example http://user:pass@ip in single quotes on Homebridge for macOSIs not possible anymore... ? status.sht always getting a <HTML><HEAD><TITLE>401 Unauthorized</TITLE></HEAD><BODY>401 Unauthorized</BODY></HTML> with curl
{"platform": "Cmd4",
"name": "Cmd4",
"debug": "true",
"Cmd4_Mode": "Polled",
"accessories": [
{
"Type": "TemperatureSensor",
"CurrentTemperature": 22.2,
"StatusActive": "TRUE",
"StatusFault": "NO_FAULT",
"StatusTampered": "NOT_TAMPERED",
"StatusLowBattery": "BATTERY_LEVEL_NORMAL",
"Name": "ReefTemp",
"Manufacturer": "Apex",
"Model": "Neptune",
"SerialNumber": "12345",
"StateChangeResponseTime": 3,
"Polling": [
{
"Characteristic": "CurrentTemperature",
"Interval": 50,
"Timeout": 8000
}
],
"State_cmd": "/homebridge/apextemp.sh"
},
curl --fail --silent --show-error --user YOUR_APEX_LOGIN:YOUR_APEX_PASSWORD http://YOUR_APEX_IP_ADDRESS:YOUR_APEX_PORT_ADDRESS/cgi-bin/status.xml | grep -i '<name>YOUR_TEMP_SENSOR_NAME</name>' | grep '<value>' | cut -f4 -d'>'| cut -f1 -d ' '
{
"Type": "LightSensor",
"DisplayName": "ORP",
"CurrentAmbientLightLevel": 1,
"StatusActive": "TRUE",
"StatusFault": "NO_FAULT",
"StatusTampered": "NOT_TAMPERED",
"StatusLowBattery": "BATTERY_LEVEL_NORMAL",
"Name": "ORP",
"Manufacturer": "Apex",
"Model": "Neptune",
"SerialNumber": "12345",
"StateChangeResponseTime": 3,
"State_cmd": "/homebridge/apexorp.sh",
"Polling": [
{
"Characteristic": "CurrentAmbientLightLevel",
"Interval": 50,
"Timeout": 8000
}
]
},
curl --fail --silent --show-error --user YOUR_APEX_LOGIN:YOUR_APEX_PASSWORD http://YOUR_APEX_IP_ADDRESS:YOUR_APEX_PORT_ADDRESS/cgi-bin/status.xml | grep -i '<name>YOUR_SENSOR_NAME</name>' | grep '<value>' | cut -f4 -d'>'| cut -f1 -d ' '
curl --fail --silent --show-error --user YOUR_APEX_LOGIN:YOUR_APEX_PASSWORD http://YOUR_APEX_IP_ADDRESS/cgi-bin/status.xml | grep -i '<name>YOUR_SENSOR_NAME</name>' | grep '<value>' | cut -f4 -d'>'| sed 's/[^0-9]*//g'
{
"platform": "Cmd4",
"name": "Cmd4",
"debug": "true",
"Cmd4_Mode": "Polled",
"accessories": [
{
"Type": "TemperatureSensor",
"CurrentTemperature": 22.2,
"StatusActive": "TRUE",
"StatusFault": "NO_FAULT",
"StatusTampered": "NOT_TAMPERED",
"StatusLowBattery": "BATTERY_LEVEL_NORMAL",
"Name": "ReefTemp",
"Manufacturer": "Apex",
"Model": "Neptune",
"SerialNumber": "12345",
"StateChangeResponseTime": 3,
"Polling": [
{
"Characteristic": "CurrentTemperature",
"Interval": 50,
"Timeout": 8000
}
],
"State_cmd": "/homebridge/apextemp.sh"
},
{
"Type": "LightSensor",
"DisplayName": "ORP",
"CurrentAmbientLightLevel": 1,
"StatusActive": "TRUE",
"StatusFault": "NO_FAULT",
"StatusTampered": "NOT_TAMPERED",
"StatusLowBattery": "BATTERY_LEVEL_NORMAL",
"Name": "ORP",
"Manufacturer": "Apex",
"Model": "Neptune",
"SerialNumber": "12345",
"StateChangeResponseTime": 3,
"State_cmd": "/homebridge/apexorp.sh",
"Polling": [
{
"Characteristic": "CurrentAmbientLightLevel",
"Interval": 50,
"Timeout": 8000
}
]
},
{
"Type": "LightSensor",
"DisplayName": "Salinity",
"CurrentAmbientLightLevel": 1,
"StatusActive": "TRUE",
"StatusFault": "NO_FAULT",
"StatusTampered": "NOT_TAMPERED",
"StatusLowBattery": "BATTERY_LEVEL_NORMAL",
"Name": "Salinity",
"Manufacturer": "Apex",
"Model": "Neptune",
"SerialNumber": "12345",
"StateChangeResponseTime": 3,
"State_cmd": "/homebridge/apexsalinity.sh",
"Polling": [
{
"Characteristic": "CurrentAmbientLightLevel",
"Interval": 50,
"Timeout": 8000
}
]
},
{
"Type": "LightSensor",
"DisplayName": "pH",
"CurrentAmbientLightLevel": 1,
"StatusActive": "TRUE",
"StatusFault": "NO_FAULT",
"StatusTampered": "NOT_TAMPERED",
"StatusLowBattery": "BATTERY_LEVEL_NORMAL",
"Name": "pH",
"Manufacturer": "Apex",
"Model": "Neptune",
"SerialNumber": "12345",
"StateChangeResponseTime": 3,
"State_cmd": "/homebridge/apexph.sh",
"Polling": [
{
"Characteristic": "CurrentAmbientLightLevel",
"Interval": 50,
"Timeout": 8000
}
]
},
{
"Type": "LightSensor",
"DisplayName": "ALK",
"CurrentAmbientLightLevel": 1,
"StatusActive": "TRUE",
"StatusFault": "NO_FAULT",
"StatusTampered": "NOT_TAMPERED",
"StatusLowBattery": "BATTERY_LEVEL_NORMAL",
"Name": "ALK",
"Manufacturer": "Apex",
"Model": "Neptune",
"SerialNumber": "12345",
"StateChangeResponseTime": 3,
"State_cmd": "/homebridge/apexalk.sh",
"Polling": [
{
"Characteristic": "CurrentAmbientLightLevel",
"Interval": 50,
"Timeout": 8000
}
]
},
{
"Type": "LightSensor",
"DisplayName": "CA",
"CurrentAmbientLightLevel": 1,
"StatusActive": "TRUE",
"StatusFault": "NO_FAULT",
"StatusTampered": "NOT_TAMPERED",
"StatusLowBattery": "BATTERY_LEVEL_NORMAL",
"Name": "CA",
"Manufacturer": "Apex",
"Model": "Neptune",
"SerialNumber": "12345",
"StateChangeResponseTime": 3,
"State_cmd": "/homebridge/apexca.sh",
"Polling": [
{
"Characteristic": "CurrentAmbientLightLevel",
"Interval": 50,
"Timeout": 8000
}
]
},
{
"Type": "LightSensor",
"DisplayName": "MG",
"CurrentAmbientLightLevel": 1,
"StatusActive": "TRUE",
"StatusFault": "NO_FAULT",
"StatusTampered": "NOT_TAMPERED",
"StatusLowBattery": "BATTERY_LEVEL_NORMAL",
"Name": "MG",
"Manufacturer": "Apex",
"Model": "Neptune",
"SerialNumber": "12345",
"StateChangeResponseTime": 3,
"State_cmd": "/homebridge/apexmg.sh",
"Polling": [
{
"Characteristic": "CurrentAmbientLightLevel",
"Interval": 50,
"Timeout": 8000
}
]
}
],
"_bridge": {
"username": "0E:D5:C9:C9:5D:2D",
"port": 47821
}
}
Hi all,
Thanks to a free framework called Homebridge I've been able to control my tank with Siri voice commands.
I find this useful for when my hands are wet and the touch screen on my tablet won't work to turn things on and off via my Apex. Now I just say "Hey Siri, turn off the skimmer" or "Hey Siri, turn off the aquarium alarm".
Homebridge is an open source framework that allows us to add none HomeKit devices to HomeKit and this allow Siri control of those devices.
First thing you need to do is install Homebridge, it's free and instructions are here: https://github.com/nfarina/homebridge
In the Mac terminal: npm install -g homebridge
I used to run it on my Mac but nowadays have it running on a Raspberry Pi - works well on either platform. It also works on Windows machines although I have never tried that.
Next install a Homebridge plug-in called cmdSwitch2 with npm install -g homebridge-cmdswitch2
Now you have to edit your Homebridge config file (config.json) to add the control params for your Apex.
The Apex can be controlled by simple HTTP POST commands and we're going to use them. Your cmdswitch2 entries in your Homebridge config file should look something like this:
"platform": "cmdSwitch2",
"name": "CMD Switch",
"switches": [
{
"name" : "Skimmer",
"on_cmd": "/usr/bin/curl -X POST --user admin:<adminPassword> http://<apexIPaddress>:<apexPortNumber>/status.sht?Skimmer_state=2&Update=Update",
"off_cmd": "/usr/bin/curl -X POST --user admin:<adminPassword> http://<apexIPaddress>:<apexPortNumber>/status.sht?Skimmer_state=1&Update=Update",
}
The state (apexDevice_state) is 0 for Auto, 1 for OFF, and 2 for ON.
And thats it!
Thanks to this thread for the HTTP POST info: https://www.reef2reef.com/threads/guide-how-to-control-neptune-apex-using-google-home.319864/
I may spend sometime to get Siri to be able to report the current state of devices and probes and possibly write a dedicate Apex Homebridge plug-in if time permits.
Hi! I know this is a super old post! But did you ever write an official plug-in? I can’t get it to workHi all,
Thanks to a free framework called Homebridge I've been able to control my tank with Siri voice commands.
I find this useful for when my hands are wet and the touch screen on my tablet won't work to turn things on and off via my Apex. Now I just say "Hey Siri, turn off the skimmer" or "Hey Siri, turn off the aquarium alarm".
Homebridge is an open source framework that allows us to add none HomeKit devices to HomeKit and this allow Siri control of those devices.
First thing you need to do is install Homebridge, it's free and instructions are here: https://github.com/nfarina/homebridge
In the Mac terminal: npm install -g homebridge
I used to run it on my Mac but nowadays have it running on a Raspberry Pi - works well on either platform. It also works on Windows machines although I have never tried that.
Next install a Homebridge plug-in called cmdSwitch2 with npm install -g homebridge-cmdswitch2
Now you have to edit your Homebridge config file (config.json) to add the control params for your Apex.
The Apex can be controlled by simple HTTP POST commands and we're going to use them. Your cmdswitch2 entries in your Homebridge config file should look something like this:
"platform": "cmdSwitch2",
"name": "CMD Switch",
"switches": [
{
"name" : "Skimmer",
"on_cmd": "/usr/bin/curl -X POST --user admin:<adminPassword> http://<apexIPaddress>:<apexPortNumber>/status.sht?Skimmer_state=2&Update=Update",
"off_cmd": "/usr/bin/curl -X POST --user admin:<adminPassword> http://<apexIPaddress>:<apexPortNumber>/status.sht?Skimmer_state=1&Update=Update",
}
The state (apexDevice_state) is 0 for Auto, 1 for OFF, and 2 for ON.
And thats it!
Thanks to this thread for the HTTP POST info: https://www.reef2reef.com/threads/guide-how-to-control-neptune-apex-using-google-home.319864/
I may spend sometime to get Siri to be able to report the current state of devices and probes and possibly write a dedicate Apex Homebridge plug-in if time permits.
+1 would like to see a plugin!Hi! I know this is a super old post! But did you ever write an official plug-in? I can’t get it to work