The Apex System is an aquarium controller that allows you to monitor your aquarium to maximize your aquarium’s success and long-term health. It has Wi-Fi built-in and includes temp, pH, ORP, and salinity monitoring with many useful and tank-saving features. Combined with the free Apex Fusion cloud service, you can check in on your aquarium from virtually anywhere in the world.
Why use the Neptune Apex Telegraf Plugin for monitoring your aquarium?
Owning and managing an aquarium, especially a salt-water based one, can be daunting. Maintaining the appropriate environment for your marine life is more than just adding water. Monitoring and maintaining the correct temperature, saline and pH levels is mission-critical for aquatic life support. Neptune offers a number of controllers that collect sensor data to help with your monitoring needs. Use the Neptune Apex Telegraf Input Plugin to collect all the metrics from your aquariums. For instance, you may want to look at the pH trend in your tank to identify a drop in alkalinity that might require you to test it and adjust your dosing schedule. Or, if you are monitoring ORP, you could identify feeding sessions throughout the week or even a potential die off in the tank.
How to monitor Neptune Apex using the Telegraf plugin
The Neptune Apex Input Plugin collects real-time data from the Apex
status.xml page. The Neptune Apex controller family allows an aquarium hobbyist to monitor and control their tanks based on various probes. The data is taken directly from the
/cgi-bin/status.xml at the interval specified in the
telegraf.conf configuration file.
Key Neptune Apex Metrics to use for monitoring
No manipulation is done on any of the fields to ensure that future changes to the status.xml do not introduce conversion bugs to this plugin. When reasonable and predictable, some tags are derived to make graphing easier and without front-end programming. These tags are clearly marked in the list below and should be considered a convenience rather than authoritative. Some of the important Neptune Apex metrics that you should proactively monitor include:
neptune_apex(All metrics have this measurement name)
host(mandatory, string) is the host on which telegraf runs.
source(mandatory, string) contains the hostname of the apex device. This can be used to differentiate between different units. By using the source instead of the serial number, replacement units won't disturb graphs.
type(mandatory, string) maps to the different types of data. Values can be "controller" (the Apex controller itself), "probe" for the different input probes, or "output" for any physical or virtual outputs. The Watt and Amp probes attached to the physical 120V outlets are aggregated under the output type.
hardware(mandatory, string) controller hardware version
software(mandatory, string) software version
probe_type(optional, string) contains the probe type as reported by the Apex.
name(optional, string) contains the name of the probe or output.
output_id(optional, string) represents the internal unique output ID. This is different from the
device_id(optional, string) maps to either the aquabus address or the internal reference.
output_type(optional, string) categorizes the output into different categories. This tag is DERIVED from the
device_id. Possible values are: "variable" for the 0-10V signal ports, "outlet" for physical 120V sockets, "alert" for alarms (email, sound), "virtual" for user-defined outputs, and "unknown" for everything else.
value(float, various unit) represents the probe reading.
state(string) represents the output state as defined by the Apex. Examples include "AOF" for Auto (OFF), "TBL" for operating according to a table, and "PF*" for different programs.
amp(float, Ampere) is the amount of current flowing through the 120V outlet.
watt(float, Watt) represents the amount of energy flowing through the 120V outlet.
xstatus(string) indicates the xstatus of an outlet. Found on wireless Vortech devices.
power_failed(int64, Unix epoch in ns) when the controller last lost power. Omitted if the apex reports it as "none".
power_restored(int64, Unix epoch in ns) when the controller last powered on. Omitted if the apex reports it as "none".
serial(string, serial number)
- The time used for the metric is parsed from the status.xml page. This helps when cross-referencing events with the local system of Apex Fusion. Since the Apex uses NTP, this should not matter in most scenarios.