Home Assistant integration
Install the official HACS custom integration for automatic entities, or wire manually below.
Product page: probeharbor.dev/integrations/home-assistant
ProbeHarbor works with Home Assistant via HTTPS push ingest (recommended), the MQTT-over-HTTP bridge, share-link polling, or inbound webhooks for automations.
Official HACS integration
- Add custom repo in HACS:
https://github.com/doodersrage/thermaltrace-home-assistant - Install ProbeHarbor
- Create a live share link under Dashboard → Share (Free includes one family live link; Pro adds history/metrics scopes)
- Add integration in HA and paste the share token
Creates sensors and binary sensors automatically; optional inbound webhook + push ingest keys enable services (Pro).
REST sensor (manual)
If you publish a share link, expose readings as a REST sensor:
sensor:
- platform: rest
resource: https://probeharbor.dev/api/share/YOUR_TOKEN/latest
name: Garage temperature
value_template: "{{ value_json.readings[0].value_num | float(0) }}"
unit_of_measurement: "°F"
scan_interval: 300Adjust the template for your probe keys. Share links are read-only and safe to poll from HA.
Push from ESPHome or HA → ProbeHarbor
Point ESPHome http_request or an HA rest_command at your device ingest URL, and call it on a schedule. Flat keys like temp1 are read as °F, so convert °C sensors in the template:
rest_command:
probeharbor_push:
url: "https://probeharbor.dev/api/ingest/YOUR_DEVICE_KEY"
method: POST
content_type: "application/json"
payload: >-
{% set t = states('sensor.garage_temperature') | float(none) %}
{% if t is not none and state_attr('sensor.garage_temperature', 'unit_of_measurement') == '°C' %}
{% set t = t * 9 / 5 + 32 %}
{% endif %}
{"temp1": {{ t | tojson }}, "humidity1": {{ states('sensor.garage_humidity') | float(none) | tojson }}}
automation:
- alias: Send garage readings to ProbeHarbor
triggers:
- trigger: time_pattern
minutes: "/5"
actions:
- action: rest_command.probeharbor_pushOn Dashboard → Devices → Setup, choose Home Assistant: it creates the device and shows this snippet with your key filled in.
MQTT bridge (keep Mosquitto local)
If probes already publish to Mosquitto, mirror selected topics over HTTPS:
curl -X POST https://probeharbor.dev/api/ingest/mqtt \
-H "X-Ingest-Key: YOUR_DEVICE_KEY" \
-H "Content-Type: application/json" \
-d '{"topic":"garage/temp","payload":"42.5"}'See MQTT bridge recipe and the downloadable Node-RED flow.
Inbound webhooks (snooze, vacation, status)
Pro plans can call signed inbound webhooks from HA automations:
automation:
- alias: Snooze ProbeHarbor freeze alerts during door work
trigger:
- platform: state
entity_id: cover.garage_door
to: "open"
action:
- service: rest_command.probeharbor_snoozeRegister the webhook URL and secret under Dashboard → Alerts. Full action list: POST /api/webhooks/inbound in openapi.yaml.
Polling schedule
Pull feeds on ProbeHarbor are polled every 15 minutes (:00, :15, :30, :45 UTC). Push ingest updates live readings immediately. For near-real-time HA dashboards, push from HA or ESPHome rather than relying on pull.