← All articles
Developer API, MCP and webhooks·

Set up Getwello with Hubitat

Local hub, Maker API, virtual sensor. About 20 minutes for the first wire-up.

Hubitat exposes the Maker API for external integrations. This guide creates a virtual contact sensor, exposes it, and toggles it from a Getwello webhook.

What you need

  • A Hubitat hub.
  • A Getwello Coordinator account with active subscription.
  • 20 minutes.

Step 1: Enable Maker API

  1. On the Hubitat web UI: Apps → Add Built-In App → Maker API.
  2. Configure: pick which devices to expose, generate an access token, note the App ID.
  3. Allow Cloud access if you want to reach the hub from our servers.

Step 2: Create a virtual contact sensor

  1. Devices → Add Virtual Device.
  2. Type: Virtual Contact Sensor. Name: “Mum's check-in”.
  3. Add it to the Maker API exposed device list.

Step 3: Build a relay

Tiny Cloudflare Worker that toggles the sensor on our webhook:

export default {
  async fetch(req, env) {
    const HUB = `${env.HUB_URL}/apps/api/${env.APP_ID}`;
    const TOKEN = env.MAKER_TOKEN;
    const SENSOR = env.SENSOR_ID;
    await fetch(`${HUB}/devices/${SENSOR}/open?access_token=${TOKEN}`);
    await new Promise(r => setTimeout(r, 2000));
    await fetch(`${HUB}/devices/${SENSOR}/close?access_token=${TOKEN}`);
    return new Response('ok');
  }
};

Step 4: Create the Getwello webhook subscription

Settings → Developer API → Webhooks. URL is your relay. Tick check_in.created.

Step 5: Build a Rule Machine rule

Apps → Add Built-In App → Rule Machine → Create rule. Trigger: contact sensor closes. Action: whatever you want (lights, speakers, TTS).

Troubleshooting

Relay can't reach the hub: use Hubitat's Cloud API endpoint, not the local IP, when calling from the internet.

Rule doesn't fire: check the contact sensor actually changed state (Maker API shows current values). If not, the relay isn't reaching the hub.

More on developer api, mcp and webhooks

Didn't answer your question?

Email hello@getwello.co.uk