This setup controls my loungeroom with a basic CEC-controlled TV, PlayStation 5, Crestron DMPS3-4K-50, and Crestron TSW-1060.
My lounge room features a basic CEC-controlled TV and a PlayStation 5™. I wanted a simple control system to handle automation for all devices. I used this project to practice and learn CH5 UI development.
For automation, I designed the system so that anything can initiate a power-on sequence. For example: turning the TV on with its remote, powering on the PlayStation™ with its controller, or touching the UI's Power button. There is a single source of truth for the system's "on" state, but multiple ways to switch it on or off.
This is the first time I've used CEC in any extensive manner. I've implemented custom CEC codes through various paths, either read from existing drivers or manually injected via a Serial I/O.
Thanks to CEC-O-Matic for invaluable assistance with CEC Codes. It's an incredible resource.
The shutdown feature waits until both the PlayStation™ and TV have reported "Off" before allowing the system to be switched on again. I intend to add feedback to the screen for warm-up/cool-down periods, but this feature is not yet finished.
ch5_ui/
directory:cd .\ui\home-loungeroom-ui
npm install
# or
yarn install
npm run archive
This will generate the CH5 UI files in the ch5_ui/dist
directory and compile them into ch5-svelte.ch5z
.package.json
file for deployment.ch5-cli deploy -p -t touchscreen -H TouchpanelHostnameOrIP ./ch5-svelte.ch5z -vvv
once. The -p
flag will prompt for username and password credentials and store them in your environment variables for future use.npm run deploy
or npm run oneclick
.npm run oneclick
will execute the build, archive, and deploy functions in a single command.Simple, but effective and very useful.
MIT - Have it. Modify it. Let me know if you use it and do something interesting with it. It's great to see more and more Crestron Developers doing so lately. ♥ to the Community.