Crestron - custom component to integrate a Crestron control system via XSIG

I agree with @DR7 that it wouid be a very deep rabbit hole to interface Crestron Home with HA. To make it work with this XSIG interface would require another processor then you would needs to acquire the proprietary software for the XSIG interface. You might be able to do something with the SDK, but you would be in uncharted waters. Ultamation has a Simpl Windows interface for Crestron Home which might be worth looking at but you would need to add another processor to run the Simpl Windows code for that too. It might be doable but it ain’t going to be easy.

This is a good idea. Next time I’m in there I need to change it like this.

Hello everyone! I am a beginner Crestron integrator, and I see tremendous potential in Home Assistant, especially through integration with Apple Home. My request is if someone could create a video demonstrating step-by-step how to control Crestron through Home Assistant?

Hmm… $10000 and we can make it happen.

Just stumbled upon this page and trying to get it to work inside my system.

I’m trying to get one of my HA lights configured to turn it on/off with my Crestron TP. My crestron is having trouble connecting to the HA for communication. I get a connection failed status.

  port: 16384
    - join: a1
      attribute: brightness

after saving the restarting HA, I get this error in the log.

2023-11-12 19:36:13.616 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration crestron which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

2023-11-12 19:36:40.467 WARNING (MainThread) [py.warnings] /config/custom_components/crestron/ RuntimeWarning: coroutine 'Server.serve_forever' was never awaited


2023-11-12 19:36:40.473 WARNING (MainThread) [py.warnings] /config/custom_components/crestron/ RuntimeWarning: coroutine 'async_load_platform' was never awaited

Does anyone have any tips?

Sorry about the late reply. I’m just using a Simpl TCP Client with port set to 16384d. XSIG is using offset 0 and option 1. I’m no longer using this for lighting as I switched over to a native vantage integration which works beautifully! I am still using this for tstats and media player if you want me to try anything for you.

Hi Everyone,

thank you very much for this integration. I want to use it with my Crestron Remote. A simple button-Press and than something in HA should happen.

I could manage to connect the to systems as documented on the HUB.
I can see that the TCP-IP Client is connected

However it’s not yet working and I do not find the problem. Any idea?

Here is what I did on the Crestron Side:

And here is the yaml file on the HA side:

  port: 16384
    - join: d1
        service: switch.turn_on
          entity_id: switch.zirkulations_pumpe

In the Crestron Tools I trigger a manual signal but nothing happens on HA side:
2023-12-07 16_13_00

Thanks for your help


Hi All, Fairly new to Home Assistant and Crestron so excuse me if this is a dumb question. Trying to connect my Home Assistant to my existing Crestron System. I have the CIP which i believe is the port to connect to but do I need anything else to connect? I have the Panel ID as well. Also, do I need to install anything on the Crestron Controller itself? I’m not trying to do anything fancy with the integration. I have some amplifiers that are controlled on the crestron and some lights and it would be nice to have them on my Home Assistant so I can have one spot to control my Sonos and Audio players. Really Appreciate any help to get me started!

did you find the solution because I have the same problem?
Thank you for your feedback.

in addition, the state of the entity is unavailable.
Do you have an idea?

Thanks for your help

I believe that you want that to be from_joins in place of to_joins

I have some Shelly dimmers that don’t have exposed entities for brightness., They can be adjusted via a URL. I have added a rest_command statement to my configuration.yaml file that looks like this:

url: “http://{{ip}}/rpc/Light.Set?id=0&on={{on_true_false}}&brightness={{bright_lvl}}&transition_duration={{duration_sec}}”

I am trying to get the value from the analog join into the bright_lvl parameter, but not having luck. I am very brand new to HA and YAML.

I have this, but it is incorrect:
- join: d1
service: light.toggle
entity_id: light.living_room_lights
- join: a1
service: rest_command.shelly_dimmer
on_true_false: true
bright_lvl: “{{ value|int }}”
duration_sec: 0

In addition to this, I am seeing this in the logs at the server start:

/config/custom_components/crestron/ RuntimeWarning: coroutine ‘async_load_platform’ was never awaited async_load_platform(hass, platform, DOMAIN, {}, config)

6:59:01 PM – (WARNING) Crestron XSIG Integraton (custom integration)

/config/custom_components/crestron/ RuntimeWarning: coroutine ‘Server.serve_forever’ was never awaited server.serve_forever()

6:59:01 PM – (WARNING) Crestron XSIG Integraton (custom integration)


Everything works well. When I go to Entities List under Settigs of HA
all these Crestron entities have “Switch” under “Integration” column name.

It suppose to be “Crestron” instead of “switch” in Integration column.
Generally it take value from manifest.json domain part.

following is manifest.json

  "domain": "crestron",
  "name": "Crestron XSIG Integraton",
  "documentation": "",
  "dependencies": [],
  "codeowners": ["@npope"],
  "requirements": [],
  "version": "0.2.3"

Domain is already crestron, but see screenshot below. It appears as switch only.
How can i resolve this?

How to edit manifest.json
Where can I check the version key?
Detailed format?
Thank you so much