Qnap TS220からGoogle homeを鳴らしてみる

こんにちは。
みなさま夏をいかがお過ごしでしたでしょうか?
私はバテバテでした😭

さて、今日はずっと眠っていたQNAPのNASを復活させてみました!
今までポケットwifiだったのですが、自宅マンションから無料でインターネットを提供するというお話があり、数年ぶりに固定回線となったからです!✨

そこで何ができるかな?と考えた結果、「毎朝ラジオ体操流したい」と思いました!(実はずっと狙っていました)

私がもっているNASはたぶん古いので少しコツがいりましたが、うまく動いたのでご紹介いたします👏

用意するもの

  • QNAP TS-220(NAS)
  • Google home

私のNASはnode.jsがうまく使えなかったので、Python環境を使って進めていきます💪

SSH接続の許可

まずはブラウザからNASにアクセスします。
コントロールパネル → ネットワークサービス → Telnet/SSH から「SSH接続を許可する」のチェックを入れておきます

SSH接続

$ ssh admin@192.168.xxx.xxx

opkgのインストール

こちらのサイトからpkgをダウンロードし、AppCenterから手動でインストールさせます。

Python環境のインストール

opkgからPython3をインストールしていきます

$ opkg install python3
$ opkg install python3-pip
$ opkg install --force-overwrite python3-dev

$ pip3 install --upgrade setuptools
$ pip3 install --upgrade netifaces
$ pip3 install --upgrade pip enum34
$ pip3 install --upgrade zeroconf==0.19.1
$ pip3 install pychromecast

もしpip installで以下のエラーが出た場合

zlib.error: Error -5 while decompressing data: incomplete or truncated stream

キャッシュを削除することで解決します

$ rm -rf ~/.cache/pip/*

MP3を流してみます

著作権などあるので、今回はネット上のラジオ体操とは全く関係ないフリー素材を使って試してみます🙏

$ vim main.py
import pychromecast

chromecasts = pychromecast.get_chromecasts()
print(chromecasts)

for device in chromecasts:
    if device.model_name == 'Google Home' :
        mc = device.media_controller
        mc.play_media('http://amachamusic.chagasi.com/mp3/morinonakanotorii.mp3','audio/mp3')
        mc.block_until_active()
        print('OK!!')

私の家にはGoogle homeの他にChromecastも接続していたので、for文とIF文でGoogle homeのみを対象にするようにしています。
また最後の mc.block_until_active() は、記述しないと鳴らなかったりするので大事です!😂笑

実行!!

$ python3 main.py
[Chromecast('192.168.0.X', port=8009, device=DeviceStatus(friendly_name='TEST', model_name='Google Home', manufacturer='Google Inc.', uuid=UUID('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'), cast_type='audio')), Chromecast('192.168.0.X', port=8009, device=DeviceStatus(friendly_name='TEST2', model_name='Chromecast', manufacturer='Google Inc.', uuid=UUID('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'), cast_type='cast'))]
OK!!

うまくいきました!!👏👏

止めるときは OK Google. ストップ!! で止めてください🙇‍♀️

最後にcronなどに登録しておけば毎朝流せますね!

$ vi /etc/config/crontab
# 追記
10 * * * * python3 /root/main.py
$ crontab /etc/config/crontab
$ /etc/init.d/crond.sh restart

シェアする

  • このエントリーをはてなブックマークに追加

フォローする