evgolsh / homebridge-crestron-home

Homebridge plugin for Crestron Home
Apache License 2.0
5 stars 2 forks source link

Quick Actions #1

Open gordonxman opened 1 year ago

gordonxman commented 1 year ago

Appreciate the work you have done here and it works like a charm. Whilst I see you have support for scenes, Crestron creates three scenes for each room which you cannot delete so you are swamped in scenes. I was thinking that adding support for quickactions would solve this problem and then you could have Siri effectively trigger scenes via a quickaction. Cheers

evgolsh commented 1 year ago

Thank you. Yes, I know. "All On", "All open" and "Circadian" scenes are killing me too. Unfortunately Crestron doesn't provide Quick Actions toggle API, which would definitely solve the problem. They give only read APIs for Quick actions. According to their support, it is not planned for the future.

What would you expect in this case? Is a configuration flags of what scenes and scene type to exclude would make it any better?

gordonxman commented 1 year ago

I was thinking what is best given the limitations of the CWS. Some options in regards to scenes are:

My use case is to have Homekit trigger "entry" and "exit" scenes in Crestron when you arrive/leave home. Crestron doesn't seem to have the concept of presence which homekit does.

Thanks again for your work - it was so easy to setup and Siri works like a charm.

evgolsh commented 1 year ago

CWS has two main limitations that I'm aware of:

  1. It does really bad job with shades, it doesn't have API to send stop command to a shade. As a result, Homekit has only open/close functionality, no tilt up/down or bring a shade to a certain position (it ignores any other position value other than max up/down).
  2. No API to recall quick actions as I mentioned.

Crestron support is saying that the CWS server is developed by Crestron Labs, but they closed public registration and Crestron doesn't help with an invite, so it is impossible to get their feedback.

I have the same use case as you. I replicated all the Crestron scenes in Homekit and almost fully abandoned the Crestron Home app. In your case I would use Apple Home automations to call "All Off" and "All Close" automatic scenes in Crestron. In fact, this is what I did. When I leave home, Homekit powers off all the lights, closes all shades and powers off air conditioners. I have CoolMaster that has its own Homebridge plugin, so I didn't implement the termostats support for Crestron, not sure if anyone needs it.

I'll add an ability to filter out scenes by type or by room, not sure yet how to make it simple.

gordonxman commented 1 year ago

In regards to scenes I have them off. Too many in crestron which all have the same names.

Which coolmaster plug so you use to connect to HomeKit?

gordonxman commented 1 year ago

I should add that scene filters would be welcome even if it’s not elegant in the UI as it’s a do once feature and will make HomeKit use case way better.

Btw the CP4-R documentation says it’s a HomeKit bridge with Qrcode. I have asked support for clarification.

evgolsh commented 1 year ago

I'm using Coolmaster Telnet plugin https://github.com/thebeastxdxd/homebridge-coolmaster#readme

Crestron Homekit integration allows you to control your Apple TV with Crestron Remote. Never understood who needs this thing and what is wrong with Apple TV remote ;)

evgolsh commented 1 year ago

In regards to scenes I have them off. Too many in crestron which all have the same names.

The plugin creates switches with room_name_device_name. If you create in HomeKit rooms with exact name as rooms in Crestron before adding the bridge, it will assign all switches in a correct room. Then you just remove them from favorites in the Apple Home.

gordonxman commented 1 year ago

Thanks. In my perfect world a Siri ‘all off’ does one specific scene (whole house off) rather than room specific. Having Siri support via your plug is amazing when you scream across the room to shut the curtains and magic happens. 🙏🏼👍

sharwell commented 1 year ago

it ignores any other position value other than max up/down

After working on a local app to control a Crestron PYNG-HUB (for which the mobile apps no longer work at all), I was pretty worried when I saw this mentioned. However, in local testing it seems the SetState command recognizes values in between the limits. The device I'm using is much older than this thread, so not sure where that discrepancy came into play.

Do you know if there is any documentation available for the APIs under cws/api/? So far I've just been building off examples I found randomly, but I don't see a way to discover other APIs that haven't been used somewhere in a public project.

to send stop command to a shade

I was planning to simulate this by reading the current shade position, and then sending a Shades/SetState command to set the state to the current position. If bouncing is a problem due to the latency between read/write, I could always adjust the value to be slightly ahead of whatever direction it's currently moving in.

evgolsh commented 1 year ago

I believe the documentation is available at https://sdkcon78221.crestron.com/ site, registration might be needed.

I tried the approach you are mentioning but it didn't work with my MC4-R Crestron Home device. You can simply send API commands with Postman or curl. If it does, I would be very happy for a pull request.

sharwell commented 1 year ago

Weird. Here's how my page moves one shade down a nudge. First I request the current position:

image image

Then I tell it to move to a slightly lower position:

image image image