[Proof of concept] Google Hub as Stream Deck

Hi everyone, I want to show what I made to test if that could work or not.

Spoiler alert, this did work but need some love to make that user friendly.

So long story short I found this post some days ago about using a Google Hub as stream deck alternative. My first intention was not to do a great UI just see if this work or not.After few hours I was able to do this video: https://www.youtube.com/watch?v=X9_dJioTIhk

So this is working to change scenes on OBS Studio by pressing a button on the hub. How I made that ?

I used all theses things: Home Assistant for the UI Node-Red for the brain node-red-contrib-obs-ws and obs-websockets to communicate between Node-Red and OBS Cast Home Assistant to display a Home Assistant view on the Google Hub This blueprint to auto cast on the Google Hub : https://community.home-assistant.io/t/cast-and-re-cast-a-lovelace-view-to-a-google-hub/259631

On the Node-Red part I just made a little graph to update the buttons and send commands to the websocket.

[{"id":"e2e2f05c.92a1e","type":"tab","label":"OBS","disabled":false,"info":""},{"id":"4d4b38ce.cecc18","type":"obs-event","z":"e2e2f05c.92a1e","name":"","event":"SwitchScenes","obsInstance":"20c0feed.28ffb2","x":120,"y":80,"wires":[["25ec5f08.5c7e2","f7d309a1.2f22c8"]]},{"id":"25ec5f08.5c7e2","type":"debug","z":"e2e2f05c.92a1e","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":330,"y":80,"wires":[]},{"id":"797fc185.37372","type":"SetCurrentScene","z":"e2e2f05c.92a1e","name":"","scene":"Zelda Alttp","sceneType":"str","obsInstance":"20c0feed.28ffb2","x":730,"y":220,"wires":[["b3069d87.d188d"]]},{"id":"2fa9b0c8.03704","type":"ha-entity","z":"e2e2f05c.92a1e","name":"Scene A","server":"c03d9ed9.46ddc","version":1,"debugenabled":false,"outputs":2,"entityType":"switch","config":[{"property":"name","value":""},{"property":"device_class","value":""},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""}],"state":"payload","stateType":"msg","attributes":[],"resend":true,"outputLocation":"","outputLocationType":"none","inputOverride":"allow","outputOnStateChange":true,"outputPayload":"$entity().state ? \"on\": \"off\"","outputPayloadType":"jsonata","x":480,"y":260,"wires":[["797fc185.37372"],["5d664983.eacdf8"]]},{"id":"5d664983.eacdf8","type":"SetCurrentScene","z":"e2e2f05c.92a1e","name":"","scene":"Jeu plein écran","sceneType":"str","obsInstance":"20c0feed.28ffb2","x":730,"y":300,"wires":[["f8be38c3.4ad8e8"]]},{"id":"f8be38c3.4ad8e8","type":"debug","z":"e2e2f05c.92a1e","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":930,"y":300,"wires":[]},{"id":"b3069d87.d188d","type":"debug","z":"e2e2f05c.92a1e","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":930,"y":220,"wires":[]},{"id":"cd0b2c50.4657c","type":"inject","z":"e2e2f05c.92a1e","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":480,"y":180,"wires":[["797fc185.37372"]]},{"id":"be65c24b.173d6","type":"inject","z":"e2e2f05c.92a1e","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":480,"y":340,"wires":[["5d664983.eacdf8"]]},{"id":"f7d309a1.2f22c8","type":"switch","z":"e2e2f05c.92a1e","name":"Is Scene Switch Event","property":"payload.updateType","propertyType":"msg","rules":[{"t":"eq","v":"SwitchScenes","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":140,"y":160,"wires":[["effade02.d6c8"]]},{"id":"effade02.d6c8","type":"switch","z":"e2e2f05c.92a1e","name":"Scene ?","property":"payload.sceneName","propertyType":"msg","rules":[{"t":"eq","v":"Zelda Alttp","vt":"str"},{"t":"eq","v":"Jeu plein écran","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":140,"y":260,"wires":[["b619789d.d547f8"],["90ad2546.d4a448"]]},{"id":"b619789d.d547f8","type":"change","z":"e2e2f05c.92a1e","name":"On","rules":[{"t":"set","p":"enable","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":220,"wires":[["2fa9b0c8.03704"]]},{"id":"90ad2546.d4a448","type":"change","z":"e2e2f05c.92a1e","name":"Off","rules":[{"t":"set","p":"enable","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":300,"wires":[["2fa9b0c8.03704"]]},{"id":"20c0feed.28ffb2","type":"obs-instance","name":"PC-Fixe","host":"192.168.1.10","port":"1234"},{"id":"c03d9ed9.46ddc","type":"server","name":"Home Assistant","version":1,"legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true}]

Flow Info

Created 4 years, 2 months ago
Rating: not yet rated

Owner

Actions

Rate:

Node Types

Core
  • change (x2)
  • debug (x3)
  • inject (x2)
  • switch (x2)
Other
  • SetCurrentScene (x2)
  • ha-entity (x1)
  • obs-event (x1)
  • obs-instance (x1)
  • server (x1)
  • tab (x1)

Tags

Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option