You have two options, and in my opinion either is acceptable:
Option A. Use the InkBird as the primary controller for the heater, and use the Apex as the emergency backup in case the InkBird fails to turn off the heater if the temperature gets too high:
1. Set the InkBird to the temperature you want to maintain. In your case, 78F.
2. Program the Apex EnergyBar output where the InkBird is plugged in:
Fallback ON
Set ON
If Temp > 80 Then OFF
This will allow the InkBird to turn on and off the heater as needed, but if the Apex ever detects the temperature is above 80F it will turn off the power to the InkBird, which will stop the heater. However, the InkBird has a wider temperature range so your water will fluctuate a degree or more.
Option B. Use the Apex as the primary controller for the heater, but set the InkBird as the emergency backup:
1. Set the InkBird to a higher than normal temperature, such as 80F.
2. Program the Apex EnergyBar output where the InkBird is plugged in:
Fallback ON
If Temp < 77.5 Then ON
If Temp > 78.0 Then OFF
This allows the Apex to turn on and off the heater directly, and it can maintain a tighter temperature range than the Inkbird is capable of. But if the Apex fails to turn it off when the temperature is too high, the InkBird will turn it off.
The potential drawback to option B is that the EnergyBar output will turn on and off more frequently, and some people worry that will cause the EnergyBar to eventually fail. I don't know the official duty cycle of the EnergyBar outputs, but I've been running mine this way for nearly 3 years now with no problem.
For each option, make sure the heater output's slider on your dashboard is set to AUTO in order for the programming to control it.
See my Apex Programming tutorial series for more tips:
www.reef2reef.com