ホーム » 「Google Home mini」タグがついた投稿

タグアーカイブ: Google Home mini

サーバ⚙

最近の投稿

アーカイブ

カテゴリー

homebridge-gsh 不調が回復

最近、homebridge の機能を Google home から制御するためのプラグイン homebridge-gsh が動かない状態であった。ひとまず “Siri” 中心にしてたけど、回復。

google アシスタントで、homebridge との接続を解除して、デバイスをすべて削除した後、再度接続を行う。この時、google アシスタントのデバイスの登録画面などが随分雰囲気が変わっていたので、Google Home, アシスタントの機能が更新されて、homebrige と通信ができなくなっていたのが原因かもしれない。

Siriのシーン登録

Google Homeでhomebridge制御が動かないときがある

最近、Google home mini からRaspberry Pi の homebridge の制御で「homebridgeが見つかりません」の返答が返ってくることが増えた。
どうも、homebridge-gsh では裏で無料のクラウドサービスが使われているけど、たぶんこのクラウドの反応が悪いのかもしれない。(追記:google home の機能変更が原因?)

しかし、Home Pod mini を使い始めてるし、”Hey Siri”で頼むのに切り替えればいい。ただ、”Ok google, 行ってきます”で、テレビと部屋の照明を消す機能の、Siri での設定に悩んだ。

iOS ホームのシーンの登録

“Google Home”アプリでは、複数機能の連動ではルーティン機能を使っていたので、”Google Home” の iOS版ということで、”ショートカット機能”ばかり調べてた。でも、こういう設定は、iOS ではホームアプリのシーン機能だった。ただ、”Google Home”であれば、「いってきます」で、テレビを消した後に「天気」を喋らせたりと、機器制御以外の処理も連動できたけど、iOS “ホーム” では機器制御しかできない。

{CAPTION}  {CAPTION}

pychromecastで画像表示

homebridge から、処理結果を chromecast で表示できないかと、pychromecast を試す。

pychromecast の 定番サンプルで、自宅サーバの画像ファイルの URL を与えて、表示を試すが真っ黒画面の表示で動かない。

webサーバのアクセス履歴を見ても、chromecast からのアクセス履歴が無いので、指定した URL にアクセスしていない。

chromecastは、ローカルのDNSを使わない

自宅では、サーバのプライベートアドレスを返す、自宅内 DNS が動いていて、自宅外ではグローバルアドレスを引けるようにしている。自宅ドメインのURLのファイルを表示できないことから、たぶん chromecast は、DHCP の指定する DNS サーバ情報を使っていないのだろう。DNSポイズニングを懸念するなら、あたりまえだろうな。

ということで、URL を、プライベートアドレスを生書きしたものを与えたら、普通に動いた。

(追記) プライベートアドレスのURLだと、https も表示できない。IPアドレス表記のURLだとホスト名が判らないから、https ではオレオレ認証扱いされるのか、これまた表示できない。プライベートアドレスなコンテンツの場合は、アドレス表記に直してかつ、プロトコルを http に変更が必要だな。

#!/usr/bin/python3
import time
import pychromecast

# デバイス名
chromecast_name = "リビングルーム"

# 指定した名前のchromecastを探す
chromecasts, browser = \
    pychromecast.get_listed_chromecasts( friendly_names = [ chromecast_name ] )

chromecast = next( filter( lambda cc: cc.device.friendly_name == chromecast_name ,
                           chromecasts ) , None )
if not chromecast :
    sys.exit( 1 )

chromecast.wait()

mc = chromecast.media_controller
mc.play_media( 'http://192.168.xx.xx/wp/wp-content/uploads/2020/10/IMG_4165.jpg' , 'image/jpeg' )
mc.block_until_active()
mc.play()

# 接続を切る
pychromecast.discovery.stop_discovery( browser )

google home で温度グラフ表示

pychromecast がうまく使えるようになったので、homebridge + Google Home にて温度グラフを表示するようにしてみた。「OK Google, 温度グラフをつける」(‘をつける’というのは、スイッチ扱いで登録してあるから)

{CAPTION}

google home が動かなかったな…

そういえば、先日の朝とか、いつもの Google home mini に「照明つけて」とか言っても、ネットワークにつながっていないとかいって動かなかったけど、google のトラブルが原因か。

我が家では、家電制御は、Google Home mini → homebridge-gsh → homebridge だから、我が家のネットワークの問題(mydns.jpの接続トラブルで逆引き失敗することがある)で、homebridge-gsh が動かないと思っていたけど、google さんがトラブっていりゃうごかないよね。

まあ、homebridge は Home アプリで操作が普通で、”Hey Siri!” で操作できるし、記事みたいに何もできなることはないし。

homebridge-gsh と cec-client

homebridge-gshで、google-homeからHomeKit(homebridge)を制御

自宅で homebridge-config-ui-x で、家電制御の設定が楽になり、homebridge-gsh にて、Google Home から Apple の HomeKit の制御を呼び出せるようにしてみた。今までは赤外線リモコンベースなので、テレビのON/OFFがトグル動作で怪しかったが、HomeKit 経由だと、TVにつなげた HDMI 接続のRaspberry-Pi から HDMI 接続の他の機器に、ON/OFF を明示的に制御ができるようになる。

cec-client で 電源ON/OFF ができなくなった

無事、homebridge-gsh が動き出したのに、CATVSTB の電源が ON/OFF できない。入力切替は正しく動いているのに…
cec-client の動作状況を表示させながらうごかすと、定番の 「echo “on 1” | cec-client -s」で動かない。メッセージを見ると、対象機器がうまく選べないのが原因みたい。
CEC では、物理機器番号と論理機器番号で管理されていて、物理機器番号が決まらないのに on はできない…といったのが原因みたい。cec-client のバージョンがあがり、その辺がいいかげんなコマンドが送れないようになったようだ。

しかたがないので、CEC-O-MATIC のページにて、他の方法を試すと、以下のコマンドなら、正しく電源のON/OFFができた。

$ echo "tx 26:36"    | cec-client -s   # チューナーをけす Recording2 → Tuner2 standby
$ echo "tx 26:44:6C" | cec-client -s   # Recording2 → Tuner2 User Control Pressed Power Off
$ echo "tx 26:44:6D" | cec-client -s   # Recording2 → Tuner2 User Control Pressed Power On

ということで、cec-client を呼び出す処理を、上記のコマンドを使うようにして、無事 google-home から HomeKit 呼び出しに成功。

google-home に、”NHK をつける” と話しかけると、homebridge-gsh 経由で homebridgeが呼び出され、「地デジ切替と1チャンネルの赤外線信号」をだすし、”チューナーを消す”と言えば、cec-client 経由でtx 26:44:6c を送ってチューナーの電源が切れる。超便利。

(追記)

“tx 2X:44:6D” による電源ONは、HDMIの電源連動機能が動かないみたい。”on Y” だと、(TVで連動ON設定が必要だけど)チューナーの電源を入れれば、TVも連動してONになっていた。しかし、”tx 2X:44:6D”ではテレビがつかない。TV側の連動機能を知らないうちにOFFにしたのかと思ったけど、リモコンでチューナーをつければテレビ付くし。

ということで、cec-client を使って電源操作するシェルスクリプトに、TVの電源ON動作を行う機能を追加しておいた。

Google Home セットアップ中はiPhoneのProxyはオフ

Google Home アプリの設定を確認していたら、ファームウェアの更新みたいな表示が出たので Google Home mini の初期化(本体裏のスイッチ長押し)を行う。
# たぶん、これもproxy経由が原因だったんだろうな。

Google Home 初期化に失敗

普通に初期化を行うが、最終段階でエラーの表示で「…セットアップされているようですが、iPhoneからの通信に応答しませんでした。Google Home mini と iPhone が相互に通信出来ないネットワークに接続されている可能性があります…」といったエラーが表示され、初期化に失敗する。いろいろと試したが、失敗するが、ふと自宅内で Squid の キャッシュProxyサーバを運用しているのを思い出した…。

Proxyをオフにしたら、無事接続成功となった。

Proxy 自動設定Scriptの適用

他にも色々と試すと、Proxy設定がONだと、iPhone から Google Home mini へのストリーミングもできなくなっている。

最終的には、iPhone の WiFi 設定で、Proxy 設定の自動化で、Proxy設定のJavaScript(proxy.pac: 同じサブネット内は Proxy を使わない)を設定となった。

google home mini のホルダー

google home mini のホルダーを3Dプリンタで印刷してみた。
{CAPTION}

Google Home Mini と Netflix

Google Home Mini

先日の出張で、電気屋寄ったら、つい買ってしまった。

{CAPTION} {CAPTION}

似て非なるもの。
{CAPTION}

動画サイトを Netflix に変更

Google Home に Chromecast を合わせて使ってみたけど、Hulu だと連携していないので、音声で自由に見たいものがみれるという感じではない。Google Home がサポートしているのは、Netflix なので、Hulu を解約して乗り換えてみた。見れる動画も Hulu より多いみたいだし、アリだな。

検索 🔎

  My Google     Yahoo

便利サイト