Skip to main content

Webhooks in

This is the inbound half of the bridge: anything on the network that can send an HTTP request — Home Assistant, Node-RED, IFTTT, a doorbell, a curl one-liner — can set a control's state or fire a Crestron Home event, and therefore a scene.

What a webhook can do

A single HTTP request (GET or POST) to the driver can:

Do thisWith
Set a control's state?element=3&state=on
Set a state without firing events?element=3&display=on
Toggle a control?element=3&toggle=1
Press a control?element=3&press=1
Fire a Crestron Home event — no control involved?event=doorbell
Set a template variable?var=outsideTemp&value=21

The fire-an-event form is the headline capability: any HTTP client can now trigger a Crestron Home event, and a scene bound to that event runs. A doorbell that can send one fixed GET becomes a Crestron Home trigger.

The setup app hands you working URLs

You do not assemble these by hand. On the Webhooks tab the setup app shows:

  • the base URL with the token already in it;
  • a copy-ready example per control — set state, toggle;
  • worked examples for firing an event and setting a variable.

Copy one, paste it into Home Assistant (or whatever is sending), and it works.

The token

Every webhook is authorised by a secret token carried in its URL. It is minted the first time the driver runs and stays the same across reboots, so the URLs you hand out keep working.

Regenerating the token invalidates every URL

The Regenerate button mints a new token and immediately invalidates every webhook URL you have handed out — which is exactly what you want if one leaked, and a footgun if you press it by accident. After regenerating, re-copy and re-distribute the URLs.

Keep the URL private

The token is in the URL, so treat a webhook URL as a secret. Do not put it in anything public.

Example: a Home Assistant automation

To have a Home Assistant automation set control 3 to "on", give it a REST command pointing at the control's Set state URL from the Webhooks tab — it looks like:

http://<processor-ip>/cws/<room>_CHUIDYNAMIC/hook?token=<token>&element=3&state=on

To fire a Crestron Home scene, point it at the fire event URL instead and bind the scene to that event name in Crestron Home programming:

http://<processor-ip>/cws/<room>_CHUIDYNAMIC/hook?token=<token>&event=arrived_home

Did it arrive?

Every inbound webhook is recorded in the Activity tab, in or out, with its outcome — so you can see that a request arrived and what it did, without a processor console. A webhook that changed nothing shows there too, with the reason.

Licensing

Like every action in the driver, a webhook only takes effect when the driver is licensed. An unlicensed driver still answers the request, but does nothing with it.