How to Use Multiple Temperature Probes with the Apollo Automation TEMP-1
The Apollo Automation TEMP-1 Temperature Sensor is a pretty cool device. It’s ESPHome-based and uses sensor probes to measure temperature. It integrates very well with Home Assistant. It only has a port for a single sensor probe, though, and I have two use cases where I want a single device with multiple sensor probes:
- I want to monitor the temperature in my freezer and fridge. Instead of buying two TEMP-1 sensor devices, I want to buy a single device with two probes. One will go into the freezer, and one will go into the fridge.
- I have three aquariums in my office, and I want to monitor the temperature in each aquarium. Again, I’d like to use a single TEMP-1 device but with three probes attached, one for each aquarium.
Brandon at Apollo Automation responded to a support email I submitted and told me this was possible by using Dallas indexing. Ha! These are the steps I used to get my TEMP-1 sensor working with three long temperature probes.
Hardware
Here is the hardware I’m using to make this work:
- Apollo Automation TEMP-1 Temperature Sensor. Duh.
- As many long temperature probes as you need for your use case. For my aquariums, I need three.
- 3.5mm Stereo Audio Splitter Cable. I’m unsure of the exact specs required here, as there are apparently different types. Brandon from Apollo Automation sent me an example, and I based my selection on that. I paid particular attention to the size (3.5mm), the male-to-female type, and whether it was TRS or TRRS. Brandon’s example said TRS, so that’s the one I got.
Discover Sensor Probe Addresses
Each probe has its own 64-bit hardware address, and in order to use the splitter, we must specify the hardware addresses of our devices. To discover the hardware address, we set up a temporary sensor device in the configuration YAML for the TEMP-1 sensor, reboot the sensor, and the address is reported during boot.
Note: These steps assume the TEMP-1 sensor has already been set up and added to Home Assistant and the ESPHome Builder add-on.
Add Temporary Discovery Sensor
To start, add a temporary sensor to use for discovery.
-
In Home Assistant, access the ESPHome Builder add-on.
-
Find the device and click Edit.
-
Add the following YAML code and install it onto your TEMP-1 device.
Note: You may already have a logger level defined. If so, you can just change it to
DEBUGinstead of adding another line.
sensor:
- platform: dallas_temp
one_wire_id: one_wire_bus
name: "Probe discovery"
update_interval: 10s
logger:
level: DEBUG
- If you’ve not already done so, plug the first sensor probe directly (don’t use the splitter yet) into the TEMP-1 and reboot your device. I did this by simply unplugging the power, waiting a couple of seconds, then plugging it back in.
- Download the log file and look for something like this:
[17:25:25][C][dallas.temp.sensor:034]: Address: 0xa200001073615f28 (DS18B20)
- Record this address.
- Power down your TEMP-1 device, switch the sensor probe, and go back to step 4. Repeat this process until you have recorded the address for each probe.
Configure the Probes
With the addresses recorded, configure the devices like so:
- In Home Assistant, access the ESPHome Builder add-on.
- Find the device and click Edit.
- Replace the Probe discovery sensor with the following entries:
sensor:
- platform: dallas_temp
one_wire_id: one_wire_bus
address: 0xa200001073615f28
name: "Probe 1"
update_interval: 10s
- platform: dallas_temp
one_wire_id: one_wire_bus
address: 0xc800001073434228
name: "Probe 2"
update_interval: 10s
- platform: dallas_temp
one_wire_id: one_wire_bus
address: 0x9300001073ccf928
name: "Probe 3"
update_interval: 10s
logger:
level: INFO
- Add the splitter and connect all the temperature sensor probes.
- Reboot the TEMP-1 device.
- There are now new entries reported on the TEMP-1 device in Home Assistant.
Here is the full YAML file for my device.
substitutions:
name: apollo-temp-1-r2-95d518
friendly_name: Tech Cave Apollo TEMP-1
packages:
Apollo.TEMP-1_R2: github://ApolloAutomation/TEMP-1/Integrations/ESPHome/TEMP-1_Minimal_R2.yaml
esphome:
name: ${name}
name_add_mac_suffix: false
friendly_name: ${friendly_name}
api:
encryption:
key: ***
sensor:
- platform: dallas_temp
one_wire_id: one_wire_bus
address: 0xa200001073615f28
name: "Probe 1"
update_interval: 10s
- platform: dallas_temp
one_wire_id: one_wire_bus
address: 0xc800001073434228
name: "Probe 2"
update_interval: 10s
- platform: dallas_temp
one_wire_id: one_wire_bus
address: 0x9300001073ccf928
name: "Probe 3"
update_interval: 10s
logger:
level: INFO
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
Conclusion
And that’s it! If you’re not future me reading these words, I do enjoy hearing when people find things I’ve written interesting. If you find a mistake or something isn’t clear enough, just shout it out, and I’ll do my best to improve it.