Help us understand the problem. What is going on with this article?

GravioでChromecastに動画を流す: ラズパイ/Linux編

背景

前回、CATTを使ってChromecastデバイスに動画を流すところまでやりました。CATTの使い方はこちらをどうぞ。→ https://qiita.com/zrock/items/522a629262222645aefe
今度はこれをGravioで制御してみます。Gravioで制御できれば、いろいろ妄想が広がります。

  • 人が来たらウェルカムメッセージを流す
  • 温度によって、暑いときは涼しい映像、寒いときは温かい映像を流す
  • ボタンを押して好きな映像を流す
  • タイマーを使って目覚まし代わり

使用環境

前回と同じです。Gravioが増えてます。

  • Raspberry Pi 4
  • Ubuntu 20.04.01 LTS
  • Python 3.8.2
  • CATT v0.11.3
  • Gravio HubKit v3.8.0-4681
  • Gravio Studio v3.8.3606.0

概要

GravioにはRunScriptというシェルスクリプトを実行するコンポーネントがあります。CATT自体には対応してませんが、シェルスクリプトを作ってこれを実行することで実現できます。

手順

まずはシェルスクリプトを作ります。動画をキャストするだけなのでデバイス名など埋め込んでしまいます。動画自体はパラメータで渡したいので $1 を使っておきます。非常に単純です。

play-video.sh
catt -d "Chromecast 4K" cast "$1"

これを配置します。配置する場所は、Linuxの場合、/var/opt/gravio/action/scriptsの下です。あとで出てきますが、Gravio Studioからもアップロード可能です。SSHなどで繋げる場合は、直接置いたりvimなどで作っちゃってもかまいません。

ファイルができたら、オーナーをrootにし、実行権を与えておきます。こうしないと、RunScriptコンポーネントで実行することはできません。

$ cd /var/opt/gravio/action/scripts
$ sudo chown root play-video.sh
$ sudo chmod +x play-video.sh

あとはGravioでの設定です。
Gravio Studioにログインし、アクションを作成します。
アクションの中に、RunScriptコンポーネントを配置します。
catt2.png
プロパティで、ファイルに先程作成したplay-video.shを指定します。すでに配置している場合は、ブラウズボタンをクリックして、play-video.shを選択してください。配置していない場合は、アップロードボタンを使ってローカル環境で作成したファイルを配置してください。ただ、配置しただけでは実行権が付きませんので、必ずSSHなどでアップロード先のフォルダにあるスクリプトファイルに上記のコマンドで実行権を与えてください。
Argumentsには動画のURLを指定してください。

これで終わりです。あとは再生ボタンをポチッとクリックすると、指定したデバイスで動画が再生されます。

あとはこんな感じでボタンのクリックイベントのトリガーでアクションを割り当てたり、センサーの値によって実行されるトリガーを作ればIoTとChromecastのあわせ技が完成です。

catt1.png

ちなみに、サイトを表示させるにはコマンドがcast_siteとなるので、別のシェルスクリプトを作っておきましょう。コマンドもパラメータで埋め込んでもいいのですが、スクリプトを変えた方がわかりやすいですね。

show-site.sh
catt -d "Chromecast 4K" cast_site "$1"

最後に

最初に書いたように、Gravioは色々なセンサーに対応していて、センサーの状態を見ながらいろいろなアクションを実行できるのでとても妄想が広がります。エンタープライズ版のAI Editionになると、顔認識も可能になるので、訪問した人によって好みの映像を流すなんてことも可能になりますね。
ちなみに、今回はLinux/Raspberry Piで実現しましたが、WindowsでもPythonをインストールすれば実現可能です。ちょっとしたコツがあるのでそれはまた後日。

asteria
データ連携ソフトのASTERIA Warp、コンテンツ管理システムのHandbook、モバイルアプリ作成サービスPlatio、AI/IoTのエッジウェアGravioなどを開発しています
https://asteria.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした