The driver can be installed using the community Hubitat Package Manager app or manually as a Bundle archive from GitHub.
No Home Assistant Needed: Direct WiFi connection to your Hubitat hub
No YAML Files to Edit: Simple IP address configuration - that's it!
No Cloud Dependencies: Everything runs locally on your network
Easy Setup: Install this driver package from HPM (Hubitat Package Manager), connect the device to your WiFi network, configure the IP address in the driver - done.
Zero Configuration: All device features work out-of-the-box
Native Hubitat Integration: Full support for Hubitat automations, dashboards, and apps
Technical Specifications (click to expand)
Microcontroller: ESP32 with WiFi and Bluetooth
Power: USB 5V or CR123A or 16340 rechargeable battery
Battery Life: Up to 6 months with optimized sleep settings
Temperature Accuracy: ±0.5°C (probes), ±2°C (onboard sensor)
Humidity Accuracy: ±2% RH
Operating Range: -40°C to +85°C (-40°F to +185°F)
Connectivity: WiFi 802.11 b/g/n, Bluetooth 4.2
Dimensions: Compact 3D-printed enclosure
Mounting: Optional magnetic mount available
Use Cases (click to expand)
The Apollo Automation TEMP-1B is ideal for:
Kitchen Monitoring: Food temperature during cooking and baking
Refrigeration: Freezer and refrigerator temperature monitoring
Aquarium Management: Water temperature monitoring
Pool/Spa Monitoring: Water temperature tracking
Greenhouse Monitoring: Air and soil temperature monitoring
HVAC Monitoring: Room temperature and humidity tracking
Server Room Monitoring: Environmental condition monitoring
Apollo Automation TEMP-1B
Apollo TMP-1(B) Features: • ESP32-based platform with WiFi and Bluetooth connectivity • Battery-powered operation (CR123A or 16340 rechargeable battery) • Temperature Range: -40°C to +85°C (-40°F to +185°F) • Humidity Range: 0-100% RH with ±2% accuracy • Onboard AHT20-F temperature and humidity sensor • RGB LED indicator with customizable colors • Buzzer for temperature alerts • 3.5mm jack for external probes • Up to 6 months battery life with sleep mode
Temperature Probe Features: • DS18B20 waterproof temperature sensor • Available in 20cm (~8in) and 1.5m (~5ft) lengths • Flat cable design prevents interference with fridge seals • Submersible and waterproof construction • Temperature Range: -55°C to +85°C (-67°F to +185°F) • ±0.5°C accuracy • Ideal for freezer, fridge, aquarium, and pool monitoring
Food Probe Features: • 1m (~3ft) stainless steel food-safe probe • NTC temperature sensor • Temperature Range: -40°C to +204°C (-40°F to +400°F) • Food-safe stainless steel construction • Perfect for grilling, baking, and cooking • Not dishwasher safe • Real-time temperature monitoring for perfect cooking results
Apollo Automation is a local tech startup building advanced hardware and software in Lexington, KY.
Apollo Automation devices come pre-flashed with ESPHome firmware - just connect your TEMP-1B to your WiFi network and add the device IP address in the Preferences tab of this driver. No additional software, bridges, or complex configurations required.
Driver Description
Major Attributes
The Apollo Automation TEMP-1B driver provides comprehensive monitoring and control capabilities with a dozen of available attributes. For everyday use, the driver displays only the essential attributes by default, keeping your device interface clean and focused. Advanced users can enable additional diagnostic attributes through the preferences when needed.
Main Attributes
temperature: Primary temperature reading based on selected probe preference
humidity: Relative humidity from onboard AHT20-F sensor (0-100% RH)
networkStatus: Connection status ['connecting', 'online', 'offline']
rgbLight: RGB LED control ['on', 'off']
Advanced Attributes
These advanced attributes, disabled by default, provide additional insights and control for power users seeking enhanced functionality.
Complete Attribute List (click to expand)
Attribute
Type
Description
temperature
number
Primary temperature reading (°C/°F)
humidity
number
Relative humidity percentage
networkStatus
enum
Device connection status
rgbLight
enum
RGB LED control
battery
number
Battery charge level (0-100%)
batteryVoltage
number
Battery voltage measurement
boardTemperature
number
Internal board temperature
boardTemperatureOffset
number
Board temperature calibration offset
boardHumidityOffset
number
Board humidity calibration offset
espTemperature
number
ESP32 chip temperature
temperatureProbe
number
External temperature probe reading
tempProbeOffset
number
Temperature probe calibration offset
foodProbe
number
Food probe temperature reading
foodProbeOffset
number
Food probe calibration offset
uptime
string
Device uptime since last restart
rssi
number
WiFi signal strength (dBm)
alarmOutsideTempRange
enum
Temperature range alarm status
notifyOnlyOutsideTempDifference
enum
Temperature difference notification
preventSleep
enum
Sleep prevention control
selectedProbe
string
Active temperature probe selection
sleepDuration
number
Sleep duration in hours
probeTempDifferenceThreshold
number
Temperature difference threshold
minProbeTemp
number
Minimum probe temperature threshold
maxProbeTemp
number
Maximum probe temperature threshold
Commands
initialize()
Establishes connection to the device and starts monitoring. Automatically called during device setup or manually from device commands.
refresh()
Refreshes device information and clears cached data. Manually refresh device status and request updated information from the device.
setRgbLight()
Purpose: Control the RGB LED indicator
Parameters: value: LED state ['off', 'on']
Usage: setRgbLight('on') or setRgbLight('off')
Preferences
Basic Settings
Setting
Default
Description
logEnable
false
Enable debug logging for troubleshooting
txtEnable
true
Enable descriptive text logging
ipAddress
(required)
Device IP address for ESPHome API connection
selectedProbe
'Temperature'
Select primary temperature sensor ['Temperature', 'Food']
boardHumidityOffset
0.0
Board humidity calibration offset (-50% to +50%)
Advanced Options
Setting
Default
Description
password
(optional)
Device password if required
diagnosticsReporting
false
Enable reporting of diagnostic attributes
logWarnEnable
true
Enable warning and info logging
More info on this driver
Driver Features & Technical Details (click to expand)
The driver is a work in progress. uses an intelligent entity management system that:
Automatically discovers all available ESPHome entities
Maps entities to appropriate Hubitat attributes
Handles missing entities gracefully (device variants may not have all sensors)
Provides diagnostic control - technical attributes can be hidden from main device view
Supports calibration - offset values sync between Hubitat preferences and ESPHome
Temperature Handling
The driver provides flexible temperature management:
Dual Temperature Sources: Choose between Temperature Probe and Food Probe
Automatic Unit Conversion: Converts between Celsius and Fahrenheit based on hub settings
Calibration Support: Individual offset adjustments for each temperature sensor
Sleep Mode Compatibility: Optimized for battery-powered operation with sleep cycles
Thank you for making this available. I recently purchased the TEMP-1 probe to monitor my freezer. I have it installed with a temperature probe and it works fine, as long as I activate advanced settings and then Enable Diagnostic Attributes. If I do NOT enable the diagnostic attributes, I only receive humidity reports. While it works when they are enabled, I am also receiving lots of reports I don't need. Is there a way to get the probe temperature without enabling diagnostic attributes? In all cases, the unit says it is sending temperature probe data (looking at the log it displays on it's web interface page).
I spent the last several days trying to get the temperature to report with Diagnostic Attributes not enabled. Of course, shortly after posting my question above, I found that changing line 106 in the ESPHome Apollo TEMP-1(B) driver from:
Hate to dredge up an old thread, but felt it was better than starting a new one. I've just gotten my Temp1 and I got it connected to wifi. I used HPM to install the ESPHome Apollo driver. My device logs show that the driver configuration has been updated to 1.0.2 09/28/2025 9:14 AM (C-8 2.4.3.164). But I'm not getting any temp readings and the events show it is constantly connecting and then timing out. Forgive me, I'm not very well versed with this stuff and may be overlooking something completely obvious. Thanks for your help
well I thought I had the IP address in correctly, but I guess not. I wasn't able to log into the device web page like you suggested so I knew it wasn't. I was able to find it in the list of devices on my router and updated and now its working! I just had the wrong IP. Do I need to make a DHCP IP reservation so it doesn't change in the future.
Thank you for your help
I've been using this driver with an Apollo TEMP-1 in my Chest Freezer with great results! Thanks for creating it!
I just received a second TEMP-1 sensor which I plan on using to monitor my Refrigerator/Freezer (I have two probes for it--one for the refrigerator compartment and one for the freezer). However, I am having difficulty getting it into Hubitat (I can use my browser to go to the sensor's IP, which is reserved, and see all values fine). However, Hubitat doesn't read it properly. It gets some data, but not all and has many errors in the logs (see below).
First, did I include it properly? In order to get a second instance of the driver, I selected "Add Device", then "Virtual Device" (since the other options were Zigbee, Z-Wave, and MAtter), then selected the ESPHome Apollo TEMP-1(B) driver. I then went in to the preferences of the device and entered the correct IP.
Hi @rewilson42 , I've reviewed the code and found a problem in the refresh() method. Will post the fix tomorrow, when I will have the chance to test the changes. Do not click on the Refresh() button for now ....
Will the device work if you click on the Initialize() button? Also, does it respond to Ping() commands?
When I access the device via it's address from my browser, the status window says the HE connects, but then disconnects about 30 seconds later with an error:
07:33:51
[D]
[api:161]
Accept 192.168.xx.xx
07:33:51
[D]
[binary_sensor:041]
'Online': New state is ON
07:33:52
[D]
[api.connection:1386]
Hubitat Wilson Hub (192.168.xx.xx) connected
07:33:57
[W]
[Apollo:031]
Preventing Deep Sleep Due To OTA Or Switch
07:34:10
[D]
[sensor:133]
'Board Temperature': Sending state 26.09863 °C with 2 decimals of accuracy
07:34:10
[D]
[sensor:133]
'Board Humidity': Sending state 27.90222 % with 2 decimals of accuracy
07:34:11
[D]
[sensor:133]
'Uptime': Sending state 44402.78906 s with 0 decimals of accuracy
07:34:11
[D]
[sensor:133]
'ESP Temperature': Sending state 30.10000 °C with 1 decimals of accuracy
07:34:11
[D]
[dallas.temp.sensor:054]
'Temperature Probe 2': Got Temperature=-16.4°C
07:34:11
[D]
[sensor:133]
'Temperature Probe 2': Sending state -16.43750 °C with 1 decimals of accuracy
07:34:13
[D]
[dallas.temp.sensor:054]
'Temperature Probe': Got Temperature=6.9°C
07:34:13
[D]
[sensor:133]
'Temperature Probe': Sending state 6.87500 °C with 1 decimals of accuracy
07:34:14
[D]
[sensor:133]
'RSSI': Sending state -47.00000 dBm with 0 decimals of accuracy
07:34:22
[D]
[api.connection:256]
Hubitat Wilson Hub (192.168.xx.xx) disconnected
07:34:22
[W]
[api.connection:1889]
Hubitat Wilson Hub (192.168.xx.xx): Reading failed CONNECTION_CLOSED errno=128
However, it did populate the Current States section on the Commands page. The State Variables section remains mostly empty. It appears that it is not properly querying the device capabilities.
Also, when it did load some data, I only received one Temperature probe value. I have two probes attached. How do I get the second one?
I've updated the driver to 1.0.4. I'm still seeing the " Reading failed CONNECTION_CLOSED errno=128" message on the device web page with HE disconnecting about 30 seconds after connecting). Ever since I did the ping earlier, I am getting temperatures periodically, but not consistently. I'm only getting the first probe. I can send logs, but they're large. Any actions you want me to take first (then send the logs that result)?
As far as probes, I have two temp probes (one short and one long--NOT the food probe). They are attached to the splitter from Apollo Automations (it allows for up to four probes). The temp I do get periodically is the probe in the refrigerator compartment, not the one in the freezer compartment (which is the more important one for me!).
Again, let me know what you need and I'll try to get it to you. Also, thank you for your efforts!
The connection problem is most probably related to this change in ESPHOME API - your device has API version 1.13, while mine has version 1.10 .... and I don't know how to update mine... (yet).
I have an idea what to do next (my copy of espHomeApiHelper library needs to be updated), will notify you when done (hopefully will have the time during the weekend).
I added two lines to your driver and was able to access Temperature Probe 2.
I added after line 59:
attribute 'temperatureProbe2', 'number' // Add this line
and after original line 112 (line 113 after adding the above):
'temperature_probe_2': [attr: 'temperatureProbe2', isDiag: false, type: 'temperature', description: 'Secondary external temperature probe reading'],
This is letting me access both probes and act on them. However, I am still getting the:
ESPHome sending message type #3 (x retries left)
and
ESPHome message type #3 retry count exceeded
messages in the HE logs for the device.
I also con't to see:
|21:35:00|[W]|[api.connection:1889]|Hubitat Wilson Hub (192.168.xx.xx): Reading failed CONNECTION_CLOSED errno=128|
messages in the device web page.
I don't see any of those messages for my other TEMP-1 unit, just this new one.
However, at least I am getting temp readings for both probes now.