Raspberry Pi を使いこなす(Siriで家電操作編)

ハック

(テレビの横にLANとダンボースピーカーとUSB温度計とワイヤレスキーボードとUSBマイクをつけた状態でおいてあります。)

この数ヶ月Raspberry Piでやったことをまとめてみます、初心者がRaspberry Piで何ができたかをわかってもらってRaspberry Pi便利やんけと思っていただければ幸いです。

Homebridgeを導入してみた

スマートホームを実現したくて導入してみました。導入して何が起こるかと申しますと、iphoneのSiriから家電が操作できます。もともとUSB赤外線リモコン(ビットトレードワン)を持っていてそれを使ってパソコンから家電を操作していたのですが。

(在りし日の赤外線リモコン)

これを機に途中でRm mini3という中華製のWifi接続で動く赤外線リモコンにリプレイスしました。Homebridgeには様々なPluginがあるのでいろんなPluginを試してみると面白いかもです。自分はiphoneを検知してくれるPluginとか入れてるんですがうまく動いてないようです。cmdのPluginを入れておけばほぼなんでもできます。

Homebridge自動インストールアプリ 一通り自分で作ってから気づいたアプリ、自動でHomebridgeをRaspberry Piにインスコしてくれて設定やリブートや状態確認やターミナルの機能まであって600円くらい、楽したいなら購入するのおすすめ。これ使うために既存のインスコアンインストールした。

Homebridgeインストール参照ページ

Rm mini3参照ページ

赤外線リモコンをリナックス系で動かす参照ページ

温度の取得参照ページ(温度に関してはIFTTTを使ってGoogleスプレッドシートにも送り込んでグラフ化してる)

現在のHomeBridgeの設定(多分このまま流用しても対象のPluginがあれば動くはず)

{
  "bridge": {
    "name": "HomebridgeX",
    "username": "AA:BB:CC:DD:EE:FF",
    "port": 51826,
    "pin": "031-45-134"
  },
  "description": "Gilliam",
  "platforms": [
    {
      "platform": "People",
      "people": [
        {
          "name": "karu",
          "target": "Yatanokagami"
        }
      ]
    }
  ],
  "accessories": [
    {
      "accessory": "TemperatureFile",
      "name": "温度",
      "description": "The temperature sensor in the Mainroom",
      "file_path": "/home/pi/karu/temper/temper.txt"
    },
    {
      "accessory": "CMD",
      "name": "照明",
      "on_cmd": "sudo python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c SHOMEI_ON",
      "off_cmd": "sudo python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c SHOMEI_OFF"
    },
    {
      "accessory": "CMD",
      "name": "テレビ",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c TV_ONOFF",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c TV_ONOFF"
    },
    {
      "accessory": "CMD",
      "name": "チャンネル送り",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c TV_UP",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c TV_UP"
    },
    {
      "accessory": "CMD",
      "name": "チャンネル戻し",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c TV_DW",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c TV_DW"
    },
    {
      "accessory": "CMD",
      "name": "暖房",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c AIRCON_HEART",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c AIRCON_OFF"
    },
    {
      "accessory": "CMD",
      "name": "冷房",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c AIRCON_COOL",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c AIRCON_OFF"
    },
    {
      "accessory": "CMD",
      "name": "自動",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c AIRCON_AUTO",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c AIRCON_OFF"
    },
    {
      "accessory": "CMD",
      "name": "プラグ",
      "on_cmd": "sudo python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c PLUG_ON",
      "off_cmd": "sudo python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c PLUG_OFF"
    },
    {
      "accessory": "CMD",
      "name": "ミラーボール",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c MIRROR_ON",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c MIRROR_OFF"
    },
    {
      "accessory": "CMD",
      "name": "1番",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c DUCTS_1",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c DUCTS_1"
    },
    {
      "accessory": "CMD",
      "name": "2番",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c DUCTS_2",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c DUCTS_2"
    },
    {
      "accessory": "CMD",
      "name": "3番",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c DUCTS_3",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c DUCTS_3"
    },
    {
      "accessory": "CMD",
      "name": "4番",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c DUCTS_4",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c DUCTS_4"
    },
    {
      "accessory": "CMD",
      "name": "5番",
      "on_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c DUCTS_5",
      "off_cmd": "python2 /home/pi/karu/BlackBeanControl/BlackBeanControl.py -c DUCTS_5"
    },
    {
      "accessory": "CMD",
      "name": "パーティ",
      "on_cmd": "/home/pi/karu/BlackBeanControl/LETS_PARTY.sh"
    }
  ]
}

リモコンを使わなくても家電を操作できるのは楽しいですね。だいたい寝るときはSiriに電気消してもらってます。下の画像のようなwifiで操作できるプラグをAmazonで買って使っています。

curl -X POST https://maker.ifttt.com/trigger/chashitu_heater_on/with/key/”IFTTTが発行するキー”

このプラグの設定は各独自アプリ(アプリはメーカーごとにあるのですが、Smart lifeアプリは結構いろんなメーカーのプラグが紐付けられるので一回チャレンジするのは良さそうです。)があってそこに登録してそのアプリをIFTTTで検索してWebhooksでぶっ叩くみたいな感じで操作できます。大雑把に言うと”ウェブでのアクセスがあったら茶室のヒーターの電源オンするよ”みたいな感じです。これをONとOFF作ってCMDプラグインでHomebridgeのConfigにぶっこんでもいいです。(Key消すのがめんどくさかったので上記のconfigには記入してありませんが自分の環境では記入してあります。)現在、3口プラグ4000円くらい、(3口別々に操作可能)横長プラグ2個セットで3000円くらい、電源コードの間に挟むやつ2個セットで2000円位の7プラグを操作してます。アプリ登録で外部から操作できるので余ったiphone端末で作ったネットワークカメラと併用して猫の様子を見つつ家電を操作したりしています。

左側がケーブルの間に挟むやつです。右側が三口別々にアプリで操作できるやつです。

これがプラグタイプのやつです。アースの棒がついてるので対応が必要ですね。あと各自スイッチもついてて手動でONOFFできます、リアルタイムでアプリにフィードバックもされます。アレクサやGoogleのやつでも操作できるみたいですが持ってないのでわかりません。あとは外部ネットワーク経由でONOFFするのでちょっともっさり感ありますね。

AirPlayに対応してみた

ゆっくりっぽく喋ってもらった

デジタルサイネージ化した

ネットワークカメラ化した

コメント

タイトルとURLをコピーしました