diff --git a/README.md b/README.md index e885e2c..191246d 100644 --- a/README.md +++ b/README.md @@ -1805,6 +1805,97 @@ type: custom:generic-remote-control-card +
+ Roku Premiere using mqtt call to smart IR blaster (Design and codes by stain3565): (Click to expand!) + + An example of a Roku Premiere remote that sends an mqtt ir code to (in my case) a ZS-06 / Zigbee IR Remote Control / TS1201. + I use Zigbee2MQTT in Home Assistant to learn the appropriate ir codes for the remote. + + For flexibilty, this calls a generic script that allows an input_text to be passed, containing the ir code value. + This allows simple reuse for other remotes. + I have also ensured these ir codes are in the secrets.yaml + Example yaml entries are in the yaml folder. + + My example overlays the four generic app buttons with images representing my specific remote buttons. + + + +``` +type: custom:generic-remote-control-card +name: Roku Premiere Remote +remote_template: rokupremiere +buttons: + leftarrow: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_leftarrow_text") }}' + home: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_home_text") }}' + up: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_up_text") }}' + down: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_down_text") }}' + left: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_left_text") }}' + right: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_right_text") }}' + ok: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_ok_text") }}' + replay: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_replay_text") }}' + asterisk: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_asterisk_text") }}' + rewind: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_rewind_text") }}' + playpause: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_playpause_text") }}' + forward: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_forward_text") }}' + netflix: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_netflix_text") }}' + googleplay: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_googleplay_text") }}' + rakuten: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_rakuten_text") }}' + spotify: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_spotify_text") }}' + + +``` + +
+ + # Contribution if you want to add your own remote template, you can do it in a new folder near the 'simple' and 'lg' remotes and diff --git a/dist/remotes/rokupremiere/README (suggested entry) b/dist/remotes/rokupremiere/README (suggested entry) new file mode 100644 index 0000000..0de4fb8 --- /dev/null +++ b/dist/remotes/rokupremiere/README (suggested entry) @@ -0,0 +1,90 @@ +
+ Roku Premiere using mqtt call to smart IR blaster (Design and codes by stain3565): (Click to expand!) + + An example of a Roku Premiere remote that sends an mqtt ir code to (in my case) a ZS-06 / Zigbee IR Remote Control / TS1201. + I use Zigbee2MQTT in Home Assistant to learn the appropriate ir codes for the remote. + + For flexibilty, this calls a generic script that allows an input_text to be passed, containing the ir code value. + This allows simple reuse for other remotes. + I have also ensured these ir codes are in the secrets.yaml + Example yaml entries are in the yaml folder. + + My example overlays the four generic app buttons with images representing my specific remote buttons. + + + +``` +type: custom:generic-remote-control-card +name: Roku Premiere Remote +remote_template: rokupremiere +buttons: + leftarrow: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_leftarrow_text") }}' + home: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_home_text") }}' + up: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_up_text") }}' + down: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_down_text") }}' + left: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_left_text") }}' + right: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_right_text") }}' + ok: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_ok_text") }}' + replay: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_replay_text") }}' + asterisk: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_asterisk_text") }}' + rewind: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_rewind_text") }}' + playpause: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_playpause_text") }}' + forward: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_forward_text") }}' + netflix: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_netflix_text") }}' + googleplay: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_googleplay_text") }}' + rakuten: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_rakuten_text") }}' + spotify: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_spotify_text") }}' + + +``` + +
+ diff --git a/dist/remotes/rokupremiere/asterisk.png b/dist/remotes/rokupremiere/asterisk.png new file mode 100644 index 0000000..1f4f6c9 Binary files /dev/null and b/dist/remotes/rokupremiere/asterisk.png differ diff --git a/dist/remotes/rokupremiere/asterisk_over.png b/dist/remotes/rokupremiere/asterisk_over.png new file mode 100644 index 0000000..ebdec10 Binary files /dev/null and b/dist/remotes/rokupremiere/asterisk_over.png differ diff --git a/dist/remotes/rokupremiere/card.txt b/dist/remotes/rokupremiere/card.txt new file mode 100644 index 0000000..1b5178f --- /dev/null +++ b/dist/remotes/rokupremiere/card.txt @@ -0,0 +1,68 @@ +type: custom:generic-remote-control-card +name: Roku Premiere Remote +remote_template: rokupremiere +buttons: + leftarrow: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_leftarrow_text") }}' + home: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_home_text") }}' + up: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_up_text") }}' + down: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_down_text") }}' + left: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_left_text") }}' + right: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_right_text") }}' + ok: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_ok_text") }}' + replay: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_replay_text") }}' + asterisk: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_asterisk_text") }}' + rewind: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_rewind_text") }}' + playpause: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_playpause_text") }}' + forward: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_forward_text") }}' + netflix: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_netflix_text") }}' + googleplay: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_googleplay_text") }}' + rakuten: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_rakuten_text") }}' + spotify: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_spotify_text") }}' diff --git a/dist/remotes/rokupremiere/down.png b/dist/remotes/rokupremiere/down.png new file mode 100644 index 0000000..d1852a6 Binary files /dev/null and b/dist/remotes/rokupremiere/down.png differ diff --git a/dist/remotes/rokupremiere/down_over.png b/dist/remotes/rokupremiere/down_over.png new file mode 100644 index 0000000..810b107 Binary files /dev/null and b/dist/remotes/rokupremiere/down_over.png differ diff --git a/dist/remotes/rokupremiere/forward.png b/dist/remotes/rokupremiere/forward.png new file mode 100644 index 0000000..6ae5d0f Binary files /dev/null and b/dist/remotes/rokupremiere/forward.png differ diff --git a/dist/remotes/rokupremiere/forward_over.png b/dist/remotes/rokupremiere/forward_over.png new file mode 100644 index 0000000..b5ba94b Binary files /dev/null and b/dist/remotes/rokupremiere/forward_over.png differ diff --git a/dist/remotes/rokupremiere/googleplay.png b/dist/remotes/rokupremiere/googleplay.png new file mode 100644 index 0000000..0d7cde6 Binary files /dev/null and b/dist/remotes/rokupremiere/googleplay.png differ diff --git a/dist/remotes/rokupremiere/googleplay_over.png b/dist/remotes/rokupremiere/googleplay_over.png new file mode 100644 index 0000000..8ca48d5 Binary files /dev/null and b/dist/remotes/rokupremiere/googleplay_over.png differ diff --git a/dist/remotes/rokupremiere/home.png b/dist/remotes/rokupremiere/home.png new file mode 100644 index 0000000..91a8a47 Binary files /dev/null and b/dist/remotes/rokupremiere/home.png differ diff --git a/dist/remotes/rokupremiere/home_over.png b/dist/remotes/rokupremiere/home_over.png new file mode 100644 index 0000000..ffb21b5 Binary files /dev/null and b/dist/remotes/rokupremiere/home_over.png differ diff --git a/dist/remotes/rokupremiere/left.png b/dist/remotes/rokupremiere/left.png new file mode 100644 index 0000000..dd6e40c Binary files /dev/null and b/dist/remotes/rokupremiere/left.png differ diff --git a/dist/remotes/rokupremiere/left_over.png b/dist/remotes/rokupremiere/left_over.png new file mode 100644 index 0000000..a464c2d Binary files /dev/null and b/dist/remotes/rokupremiere/left_over.png differ diff --git a/dist/remotes/rokupremiere/leftarrow.png b/dist/remotes/rokupremiere/leftarrow.png new file mode 100644 index 0000000..af24495 Binary files /dev/null and b/dist/remotes/rokupremiere/leftarrow.png differ diff --git a/dist/remotes/rokupremiere/leftarrow_over.png b/dist/remotes/rokupremiere/leftarrow_over.png new file mode 100644 index 0000000..5f44c63 Binary files /dev/null and b/dist/remotes/rokupremiere/leftarrow_over.png differ diff --git a/dist/remotes/rokupremiere/netflix.png b/dist/remotes/rokupremiere/netflix.png new file mode 100644 index 0000000..71d3475 Binary files /dev/null and b/dist/remotes/rokupremiere/netflix.png differ diff --git a/dist/remotes/rokupremiere/netflix_over.png b/dist/remotes/rokupremiere/netflix_over.png new file mode 100644 index 0000000..b39fb42 Binary files /dev/null and b/dist/remotes/rokupremiere/netflix_over.png differ diff --git a/dist/remotes/rokupremiere/ok.png b/dist/remotes/rokupremiere/ok.png new file mode 100644 index 0000000..8fa302d Binary files /dev/null and b/dist/remotes/rokupremiere/ok.png differ diff --git a/dist/remotes/rokupremiere/ok_over.png b/dist/remotes/rokupremiere/ok_over.png new file mode 100644 index 0000000..e62fbf0 Binary files /dev/null and b/dist/remotes/rokupremiere/ok_over.png differ diff --git a/dist/remotes/rokupremiere/playpause.png b/dist/remotes/rokupremiere/playpause.png new file mode 100644 index 0000000..c75f22f Binary files /dev/null and b/dist/remotes/rokupremiere/playpause.png differ diff --git a/dist/remotes/rokupremiere/playpause_over.png b/dist/remotes/rokupremiere/playpause_over.png new file mode 100644 index 0000000..4dd7b07 Binary files /dev/null and b/dist/remotes/rokupremiere/playpause_over.png differ diff --git a/dist/remotes/rokupremiere/rakuten.png b/dist/remotes/rokupremiere/rakuten.png new file mode 100644 index 0000000..f2bc6b3 Binary files /dev/null and b/dist/remotes/rokupremiere/rakuten.png differ diff --git a/dist/remotes/rokupremiere/rakuten_over.png b/dist/remotes/rokupremiere/rakuten_over.png new file mode 100644 index 0000000..57ed773 Binary files /dev/null and b/dist/remotes/rokupremiere/rakuten_over.png differ diff --git a/dist/remotes/rokupremiere/remote-html.js b/dist/remotes/rokupremiere/remote-html.js new file mode 100644 index 0000000..decf41b --- /dev/null +++ b/dist/remotes/rokupremiere/remote-html.js @@ -0,0 +1,288 @@ +function getRemoteStyle_rokupremiere(config) { + const template = config.remote_template; + const base_url = `/hacsfiles/generic-remote-control-card/remotes/${template}`; + + return ` + ha-card{ + background-color:transparent; + box-shadow:var(--paper-material-elevation-0_-_box-shadow); + } + body { + margin: 0; + padding: 0px; + font-family: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif +} + +.container { + width: 242px; + margin: 0 auto +} + +#remote-control-rokupremiere { + position: relative; + background: url(${base_url}/rokupremiere.png?1) no-repeat; + width: 242px; + height: 720px +} + +#remote-control-rokupremiere ul { + margin: 0; + padding: 0; + list-style-type: none +} + +#forward a, +#rewind a, +#playpause a, +#left a, +#right a, +#up a, +#down a, +#ok a, +#asterisk a, +#rakuten a, +#spotify a, +#text a, +#googleplay a, +#netflix a, +#leftarrow a, +#home a, +#replay a { + position: absolute; + display: block +} + +#remote-control-rokupremiere li#rewind a { + left: 54px; + top: 369px; + width: 30px; + height: 18px; + background: url(${base_url}/rewind.png?1) no-repeat +} + +#remote-control-rokupremiere li#forward a { + left: 157px; + top: 369px; + width: 30px; + height: 18px; + background: url(${base_url}/forward.png?1) no-repeat +} + +#remote-control-rokupremiere li#playpause a { + left: 109px; + top: 370px; + width: 24px; + height: 18px; + background: url(${base_url}/playpause.png?1) no-repeat +} + +#remote-control-rokupremiere li#left a { + left: 54px; + top: 207px; + width: 24px; + height: 27px; + background: url(${base_url}/left.png?1) no-repeat +} + +#remote-control-rokupremiere li#right a { + left: 157px; + top: 207px; + width: 24px; + height: 27px; + background: url(${base_url}/right.png?1) no-repeat +} + +#remote-control-rokupremiere li#up a { + left: 102px; + top: 162px; + width: 37px; + height: 18px; + background: url(${base_url}/up.png?1) no-repeat +} + +#remote-control-rokupremiere li#down a { + left: 102px; + top: 261px; + width: 37px; + height: 18px; + background: url(${base_url}/down.png?1) no-repeat +} + +#remote-control-rokupremiere li#ok a { + left: 102px; + top: 207px; + width: 37px; + height: 27px; + background: url(${base_url}/ok.png?1) no-repeat +} + +#remote-control-rokupremiere li#asterisk a { + left: 145px; + top: 315px; + width: 30px; + height: 27px; + background: url(${base_url}/asterisk.png?1) no-repeat +} + +#remote-control-rokupremiere li#rakuten a { + left: 48px; + top: 483px; + width: 64px; + height: 33px; + background: url(${base_url}/rakuten.png?1) no-repeat +} + +#remote-control-rokupremiere li#spotify a { + left: 127px; + top: 483px; + width: 64px; + height: 32px; + background: url(${base_url}/spotify.png?1) no-repeat +} + +#remote-control-rokupremiere li#googleplay a { + left: 127px; + top: 434px; + width: 65px; + height: 34px; + background: url(${base_url}/googleplay.png?1) no-repeat 0 0px +} + +#remote-control-rokupremiere li#netflix a { + left: 48px; + top: 434px; + width: 64px; + height: 34px; + background: url(${base_url}/netflix.png?1) no-repeat 0 0px +} + +#remote-control-rokupremiere li#leftarrow a { + left: 66px; + top: 99px; + width: 30px; + height: 27px; + background: url(${base_url}/leftarrow.png?1) no-repeat +} + +#remote-control-rokupremiere li#home a { + left: 145px; + top: 99px; + width: 30px; + height: 27px; + background: url(${base_url}/home.png?1) no-repeat +} + +#remote-control-rokupremiere li#replay a { + left: 67px; + top: 315px; + width: 30px; + height: 27px; + background: url(${base_url}/replay.png?1) no-repeat +} + + + +#remote-control-rokupremiere li#playpause a:hover { + background: url(${base_url}/playpause_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#rewind a:hover { + background: url(${base_url}/rewind_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#forward a:hover { + background: url(${base_url}/forward_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#left a:hover { + background: url(${base_url}/left_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#right a:hover { + background: url(${base_url}/right_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#up a:hover { + background: url(${base_url}/up_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#down a:hover { + background: url(${base_url}/down_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#ok a:hover { + background: url(${base_url}/ok_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#asterisk a:hover { + background: url(${base_url}/asterisk_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#rakuten a:hover { + background: url(${base_url}/rakuten_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#spotify a:hover { + background: url(${base_url}/spotify_over.png?1) no-repeat 0px 0px +} + +#remote-control-rokupremiere li#googleplay a:hover { + background: url(${base_url}/googleplay_over.png?1) no-repeat 0 0px +} + +#remote-control-rokupremiere li#netflix a:hover { + background: url(${base_url}/netflix_over.png?1) no-repeat 0 0px +} + +#remote-control-rokupremiere li#leftarrow a:hover { + background: url(${base_url}/leftarrow_over.png?1) no-repeat 0 0px +} + +#remote-control-rokupremiere li#home a:hover { + background: url(${base_url}/home_over.png?1) no-repeat 0 0px +} + +#remote-control-rokupremiere li#replay a:hover { + background: url(${base_url}/replay_over.png?1) no-repeat 0 0px +} + +#remote-control-rokupremiere li#tv a:hover { + background: url(${base_url}/tv_over.png?1) no-repeat 0px 0px +} + `; + +} + +function getRemoteHtml_rokupremiere(config){ + const template = config.remote_template; + return ` + +
+
+

${config.name}

+
+
+ +
+
+ +`; +} diff --git a/dist/remotes/rokupremiere/replay.png b/dist/remotes/rokupremiere/replay.png new file mode 100644 index 0000000..e76b040 Binary files /dev/null and b/dist/remotes/rokupremiere/replay.png differ diff --git a/dist/remotes/rokupremiere/replay_over.png b/dist/remotes/rokupremiere/replay_over.png new file mode 100644 index 0000000..0d8784e Binary files /dev/null and b/dist/remotes/rokupremiere/replay_over.png differ diff --git a/dist/remotes/rokupremiere/rewind.png b/dist/remotes/rokupremiere/rewind.png new file mode 100644 index 0000000..f666c11 Binary files /dev/null and b/dist/remotes/rokupremiere/rewind.png differ diff --git a/dist/remotes/rokupremiere/rewind_over.png b/dist/remotes/rokupremiere/rewind_over.png new file mode 100644 index 0000000..105eb1f Binary files /dev/null and b/dist/remotes/rokupremiere/rewind_over.png differ diff --git a/dist/remotes/rokupremiere/right.png b/dist/remotes/rokupremiere/right.png new file mode 100644 index 0000000..5d58164 Binary files /dev/null and b/dist/remotes/rokupremiere/right.png differ diff --git a/dist/remotes/rokupremiere/right_over.png b/dist/remotes/rokupremiere/right_over.png new file mode 100644 index 0000000..35d51d8 Binary files /dev/null and b/dist/remotes/rokupremiere/right_over.png differ diff --git a/dist/remotes/rokupremiere/rokupremiere.png b/dist/remotes/rokupremiere/rokupremiere.png new file mode 100644 index 0000000..303b012 Binary files /dev/null and b/dist/remotes/rokupremiere/rokupremiere.png differ diff --git a/dist/remotes/rokupremiere/spotify.png b/dist/remotes/rokupremiere/spotify.png new file mode 100644 index 0000000..dac5ac8 Binary files /dev/null and b/dist/remotes/rokupremiere/spotify.png differ diff --git a/dist/remotes/rokupremiere/spotify_over.png b/dist/remotes/rokupremiere/spotify_over.png new file mode 100644 index 0000000..7d11491 Binary files /dev/null and b/dist/remotes/rokupremiere/spotify_over.png differ diff --git a/dist/remotes/rokupremiere/up.png b/dist/remotes/rokupremiere/up.png new file mode 100644 index 0000000..1679dbe Binary files /dev/null and b/dist/remotes/rokupremiere/up.png differ diff --git a/dist/remotes/rokupremiere/up_over.png b/dist/remotes/rokupremiere/up_over.png new file mode 100644 index 0000000..5494d9c Binary files /dev/null and b/dist/remotes/rokupremiere/up_over.png differ diff --git a/dist/remotes/rokupremiere/yaml/Living Room Ir Button.yaml b/dist/remotes/rokupremiere/yaml/Living Room Ir Button.yaml new file mode 100644 index 0000000..8e38fca --- /dev/null +++ b/dist/remotes/rokupremiere/yaml/Living Room Ir Button.yaml @@ -0,0 +1,8 @@ +living_room_ir_button: + sequence: + - service: mqtt.publish + data: + topic: zigbee2mqtt/Living Room Zigbee IR Remote Control/set + payload_template: '{ "ir_code_to_send": "{{ button_pressed }}" }' + alias: Living Room Ir Button + mode: single diff --git a/dist/remotes/rokupremiere/yaml/card.yaml b/dist/remotes/rokupremiere/yaml/card.yaml new file mode 100644 index 0000000..1b5178f --- /dev/null +++ b/dist/remotes/rokupremiere/yaml/card.yaml @@ -0,0 +1,68 @@ +type: custom:generic-remote-control-card +name: Roku Premiere Remote +remote_template: rokupremiere +buttons: + leftarrow: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_leftarrow_text") }}' + home: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_home_text") }}' + up: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_up_text") }}' + down: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_down_text") }}' + left: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_left_text") }}' + right: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_right_text") }}' + ok: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_ok_text") }}' + replay: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_replay_text") }}' + asterisk: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_asterisk_text") }}' + rewind: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_rewind_text") }}' + playpause: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_playpause_text") }}' + forward: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_forward_text") }}' + netflix: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_netflix_text") }}' + googleplay: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_googleplay_text") }}' + rakuten: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_rakuten_text") }}' + spotify: + call: script.living_room_ir_button + data: + button_pressed: '{{ states("input_text.rokupremiere_spotify_text") }}' diff --git a/dist/remotes/rokupremiere/yaml/input_texts.yaml b/dist/remotes/rokupremiere/yaml/input_texts.yaml new file mode 100644 index 0000000..a45c3f7 --- /dev/null +++ b/dist/remotes/rokupremiere/yaml/input_texts.yaml @@ -0,0 +1,66 @@ +# roku ir codes +rokupremiere_leftarrow_text: + initial: !secret rokupremiere_leftarrow + min: 0 + max: 255 +rokupremiere_home_text: + initial: !secret rokupremiere_home + min: 0 + max: 255 +rokupremiere_up_text: + initial: !secret rokupremiere_up + min: 0 + max: 255 +rokupremiere_down_text: + initial: !secret rokupremiere_down + min: 0 + max: 255 +rokupremiere_left_text: + initial: !secret rokupremiere_left + min: 0 + max: 255 +rokupremiere_right_text: + initial: !secret rokupremiere_right + min: 0 + max: 255 +rokupremiere_ok_text: + initial: !secret rokupremiere_ok + min: 0 + max: 255 +rokupremiere_replay_text: + initial: !secret rokupremiere_replay + min: 0 + max: 255 +rokupremiere_asterisk_text: + initial: !secret rokupremiere_asterisk + min: 0 + max: 255 +rokupremiere_rewind_text: + initial: !secret rokupremiere_rewind + min: 0 + max: 255 +rokupremiere_playpause_text: + initial: !secret rokupremiere_playpause + min: 0 + max: 255 +rokupremiere_forward_text: + initial: !secret rokupremiere_forward + min: 0 + max: 255 +rokupremiere_netflix_text: + initial: !secret rokupremiere_netflix + min: 0 + max: 255 +rokupremiere_googleplay_text: + initial: !secret rokupremiere_googleplay + min: 0 + max: 255 +rokupremiere_rakuten_text: + initial: !secret rokupremiere_rakuten + min: 0 + max: 255 +rokupremiere_spotify_text: + initial: !secret rokupremiere_spotify + min: 0 + max: 255 + diff --git a/dist/remotes/rokupremiere/yaml/secrets.yaml b/dist/remotes/rokupremiere/yaml/secrets.yaml new file mode 100644 index 0000000..08c2175 --- /dev/null +++ b/dist/remotes/rokupremiere/yaml/secrets.yaml @@ -0,0 +1,17 @@ +# roku premiere +rokupremiere_leftarrow: BWojthE3AkABA5wGNwJAAeADB0ALQANAAcAH4AMBQBNAA0ABQAdAA8ABQAtAA0ABwAdAAUALQAMLNwI3AjcCNwKcBjcC +rokupremiere_home: BXYjuhE6AkABA5IGOgJAAeADB0ALQANAAcAH4AMBQBPgAwPgFwHgAyvgAwsBg57gWYdAb8ABQAvgBwMDOgI6Ag== +rokupremiere_up: DkYjnxEWAhYCWQJnBlkCFiABgAcBWQJAB8ADwA9AB+ADA4AfABZgBwEWAkADBBYCZwZZYAMAFmABQAeAA+ABFwFZAkADwA9ABwGknUCHAVkCwBfgBwdAI0AD4AMXQAvAA0AbwAPgBxPgAw9AC+AQJwICWQI= +rokupremiere_down: DXcjWRFvAvgBbwJPBm8C4AcHQBNAA+ADF0ALwANAG+ADA+AHF8APwAfAK+AHDwGKneBZh0B74Ad34AMPA/gBbwI= +rokupremiere_left: BXcjvxE4AkABA5cGOAJAAeADB0ALQANAAcAH4AMBQBNAA0ABQAfgAwPgAwFAF+AHAUATwAMBfp7gWYfAa+AHAQuXBjgClwY4AjgCOAI= +rokupremiere_right: BZgjpBE/AkABA34GPwJAAeADB0ALQAMDPwJfAoAH4AUBQBPAA0AB4AcL4AMBQBvAAQR+Bl8CPyABAX4GgAMBeZ7AhwFfAkATQAHgAQeAE0AHAD8gAQN+Bj8C4AcBQBPAAwM/Al8C4AELAT8CQAtAAeAHB0AB4AQTAgI/Ag== +rokupremiere_ok: BXAjwxE4AkABA5gGOAJAAeADB0ALQANAAcAH4AMBQBNAA0AB4A8HQAHgDxtAF0ADAZue4FmHQGdAA0AB4AwHAgI4Ag== +rokupremiere_replay: BXMjxhE7AkABA5AGOwJAAeADB0ALQANAAcAH4AMBQBNAA+ADAUAP4AMDQAHgBw/gAwFAGwGmnuBZh0Bn4AMD4AgBAgI7Ag== +rokupremiere_asterisk: BVwjuxE4AkABA5MGOAJAAeADB0ALQANAAcAHBDgCXwI4oAFAE8AD4AcB4AcXwA/AB8ABQA8Bg57gO4cFXwKTBjgC4AEBAl8COCABQBPAA0ABwAvABws4AjgCOAI4AjgCOAI= +rokupremiere_rewind: BW8jzRE4AkABA5cGOAJAAeADB0ALQANAAcAH4AMBQBNAA8ABwAtAB0ADwAFAC0ADQAHAB0ABQAtAAwGRnuBZh0BnwANAAUALwAEHlwY4AjgCOAI= +rokupremiere_playpause: BYEjpxE8AkABA4kGPAJAAeADB0ALQANAAQSJBmECPOAGAQGJBoADwAGAD+ABJwOJBjwCQAFAB0ADwAFAC0ADQAFABwGSnuBLhwE8AsABQAvgAwPAAYAT4AGv4CWHATwC4AcBQBNAA8ABQAtAA8ABQAvgAwPAAcATBzwCPAI8AjwC +rokupremiere_forward: DXUjqRFiAjsCYgKMBjsCQAHgAwdAC0ADQAHAB+ADAUATwANAAUALATsC4AlLQAGAGwE7AuALBwGFnkCHATsCQAHgCx9AE0ADQAHAB+ADAUATwANAAUALQAHgAwfgAwtAAeAHDwM7AjsC +rokupremiere_netflix: BZAjmhE6AkABA5IGOgJAAeADB0ALQANAAcAH4AMBQBPgAwNAAUAPwAHgAwtAAcAPQAdAA0ABQAcBh57gWYdAZ8ABwAtABwuSBjoCOgI6AjoCOgI= +rokupremiere_googleplay: DU8jkhFiAgoCYgJjBmIC4AcHQBNAA+ADF0ALwANAG8ADwBPgAwdAG8APQAvgBwNAG0ATAZud4AOHAQoCQAEHYwZiAgoCYgJABwJjBgogAwViAgoCYgLAB0ALwAMCYwYKIANABwNiAgoC4AkDQBdAA0AbQAfgAQMACmALBwoCYgIKAmIC +rokupremiere_rakuten: DZUjjBFZAiUCWQJ9BlkC4AcHQBNAA+ABF0ABgA9AB0Ab4AcDQBdAA8AXQAvgAwPgBxdADwF7nuAnhwFZAoADQAEEWQJ9BiUgA0AH4AEDACVgAQFZAoATACUgBwElAoABAlkCJSABQA9AAwslAiUCJQIlAiUCJQI= +rokupremiere_spotify: BYcjuxE7AkABA48GOwJAAeADB0ALQANAAcAH4AMBQBPAA+ADAUATQAHAB0ABQAvAA0ABQAtAAUAHAY+e4FmHAI/gAt9AC0ADQAELjwY7AjsCOwI7AjsC diff --git a/dist/rokupremiere.png b/dist/rokupremiere.png new file mode 100644 index 0000000..2b46a99 Binary files /dev/null and b/dist/rokupremiere.png differ diff --git a/rokupremiere.png b/rokupremiere.png new file mode 100644 index 0000000..303b012 Binary files /dev/null and b/rokupremiere.png differ