Roku Remote

This flow controls my Roku and provides for a simple remote control. You'll need to update the IP to reflect your Roku's IP.

[{"id":"5fed5dca.adb674","type":"tab","label":"Roku Control"},{"id":"770ad7f8.939e58","type":"inject","z":"5fed5dca.adb674","name":"Installed Apps","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":270,"y":180,"wires":[["77c3dd4e.77be64"]]},{"id":"77c3dd4e.77be64","type":"http request","z":"5fed5dca.adb674","name":"","method":"GET","ret":"txt","url":"http://192.168.80.4:8060/query/apps","tls":"","x":470,"y":180,"wires":[["292625f1.f51b1a"]]},{"id":"292625f1.f51b1a","type":"debug","z":"5fed5dca.adb674","name":"","active":true,"console":"false","complete":"payload","x":670,"y":180,"wires":[]},{"id":"fe4d3a8c.63a108","type":"inject","z":"5fed5dca.adb674","name":"Active App","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":260,"y":280,"wires":[["cf0839f2.672328"]]},{"id":"cf0839f2.672328","type":"http request","z":"5fed5dca.adb674","name":"","method":"GET","ret":"txt","url":"http://192.168.80.4:8060/query/active-app","tls":"","x":470,"y":280,"wires":[["e612c5e3.eae498"]]},{"id":"e612c5e3.eae498","type":"debug","z":"5fed5dca.adb674","name":"","active":true,"console":"false","complete":"false","x":670,"y":280,"wires":[]},{"id":"8d2df9f5.9e94c8","type":"debug","z":"5fed5dca.adb674","name":"","active":true,"console":"false","complete":"false","x":670,"y":400,"wires":[]},{"id":"1defb617.c0427a","type":"ui_template","z":"5fed5dca.adb674","group":"b571a780.1b3c38","name":"Roku","order":0,"width":0,"height":0,"format":"<div>\n    <section layout=\"row\" layout-align=\"center\">\n\t    <span class=\"md-subhead\">Navigation</span>\n\t</section>\n\t<section layout=\"row\" layout-align=\"center\">\n        <md-button class=\"md-fab\" aria-label=\"Back\" ng-click=\"send({url: 'http://192.168.80.4:8060//keypress/Back'})\">\n            <md-icon md-font-icon=\"fa-arrow-left\" class=\"fa fa-lg\"></md-icon>\n            <md-tooltip>Back</md-tooltip>\n        </md-button>\n\t\t<md-button class=\"md-fab\"  aria-label=\"Home\" ng-click=\"send({url: 'http://192.168.80.4:8060//keypress/Home'})\">\n            <md-icon md-font-icon=\"fa-home\" class=\"fa fa-lg\"></md-icon>\n            <md-tooltip>Home</md-tooltip>\n        </md-button>\n    </section>\n    <md-card-actions layout=\"row\" layout-align=\"center\">\n\t    <span class=\"md-subhead\">Controls</span>\n    </md-card-actions>\n    <md-card-actions layout=\"row\" layout-align=\"center\">\n        <md-button class=\"md-fab\" aria-label=\"Up\" ng-click=\"send({url: 'http://192.168.80.4:8060//keypress/Up'})\">\n            <md-icon md-font-icon=\"fa-chevron-up\" class=\"fa fa-lg\"></md-icon>\n            <md-tooltip>Back</md-tooltip>\n        </md-button>\n    </md-card-actions>\n    <md-card-actions layout=\"row\" layout-align=\"center\">\n        <md-button class=\"md-fab\" aria-label=\"Left\" ng-click=\"send({url: 'http://192.168.80.4:8060//keypress/Left'})\">\n            <md-icon md-font-icon=\"fa-chevron-left\" class=\"fa fa-lg\"></md-icon>\n            <md-tooltip>Left</md-tooltip>\n        </md-button>\n        <md-button class=\"md-fab\" aria-label=\"Select\" ng-click=\"send({url: 'http://192.168.80.4:8060//keypress/Select'})\">\n            <md-icon md-font-icon=\"fa-circle-o\" class=\"fa fa-lg\"></md-icon>\n            <md-tooltip>Select</md-tooltip>\n        </md-button>\n        <md-button class=\"md-fab\" aria-label=\"Right\" ng-click=\"send({url: 'http://192.168.80.4:8060//keypress/Right'})\">\n            <md-icon md-font-icon=\"fa-chevron-right\" class=\"fa fa-lg\"></md-icon>\n            <md-tooltip>Right</md-tooltip>\n        </md-button>\n    </md-card-actions>\n    <md-card-actions layout=\"row\" layout-align=\"center\">\n        <md-button class=\"md-fab\" aria-label=\"Down\" ng-click=\"send({url: 'http://192.168.80.4:8060//keypress/Down'})\">\n            <md-icon md-font-icon=\"fa-chevron-down\" class=\"fa fa-lg\"></md-icon>\n            <md-tooltip>Down</md-tooltip>\n        </md-button>\n    </md-card-actions>\n   <md-card-actions layout=\"row\" layout-align=\"center\">\n\t    <span class=\"md-subhead\">Transport</span>\n    </md-card-actions>\n    <md-card-actions layout=\"row\" layout-align=\"center\">\n        <md-button class=\"md-fab\" aria-label=\"Rewind\" ng-click=\"send({url: 'http://192.168.80.4:8060//keypress/Rev'})\">\n            <md-icon md-font-icon=\"fa-backward\" class=\"fa fa-lg\"></md-icon>\n            <md-tooltip>Rewind</md-tooltip>\n        </md-button>\n        <md-button class=\"md-fab\" aria-label=\"Play/Pause\" ng-click=\"send({url: 'http://192.168.80.4:8060//keypress/Play'})\">\n            <md-icon md-font-icon=\"fa-play\" class=\"fa fa-lg\"></md-icon>\n            <md-tooltip>Play/Pause</md-tooltip>\n        </md-button>\n        <md-button class=\"md-fab\" aria-label=\"Forward\" ng-click=\"send({url: 'http://192.168.80.4:8060//keypress/Fwd'})\">\n            <md-icon md-font-icon=\"fa-forward\" class=\"fa fa-lg\"></md-icon>\n            <md-tooltip>Forward</md-tooltip>\n        </md-button>\n    </md-card-actions>\n   <md-card-actions layout=\"row\" layout-align=\"center\">\n\t    <span class=\"md-subhead\">Favorites</span>\n    </md-card-actions>\n<md-card-actions layout=\"row\" layout-align=\"center\">\n        <md-button class=\"md-raised\" aria-label=\"Netflix\" ng-click=\"send({url: 'http://192.168.80.4:8060/launch/12'})\">Netflix\n\t\t<md-tooltip>Netflix</md-tooltip>\n\t\t</md-button>\n    </md-card-actions>\n    <md-card-actions layout=\"row\" layout-align=\"center\">\n        <md-button class=\"md-raised\" aria-label=\"Amazon\" ng-click=\"send({url: 'http://192.168.80.4:8060/launch/13'})\">Amazon\n\t\t<md-tooltip>Amazon</md-tooltip>\n\t\t</md-button>\n    </md-card-actions>\n<md-card-actions layout=\"row\" layout-align=\"center\">\n        <md-button class=\"md-raised\" aria-label=\"YouTube\" ng-click=\"send({url: 'http://192.168.80.4:8060/launch/837'})\">YouTube\n\t\t<md-tooltip>YouTube</md-tooltip>\n\t\t</md-button>\n    </md-card-actions>\n</div>","storeOutMessages":true,"fwdInMessages":true,"x":230,"y":400,"wires":[["9e5fc271.0b36f"]]},{"id":"9e5fc271.0b36f","type":"http request","z":"5fed5dca.adb674","name":"","method":"POST","ret":"txt","url":"","tls":"","x":470,"y":400,"wires":[["8d2df9f5.9e94c8"]]},{"id":"b571a780.1b3c38","type":"ui_group","z":"","name":"Roku","tab":"5d0fdfc3.3f428","disp":true,"width":"6"},{"id":"5d0fdfc3.3f428","type":"ui_tab","z":"","name":"Roku","icon":"dashboard","order":2}]
android-page

Flow Info

created 2 weeks, 5 days ago

Node Types

Core
  • debug (x3)
  • http request (x3)
  • inject (x2)
Other
  • tab (x1)
  • ui_group (x1)
  • ui_tab (x1)
  • ui_template (x1)

Tags

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