【IFTTT】Google home で IoT Part.3【Hue】
■ このスレッドは過去ログ倉庫に格納されています
Google HomeでIoTをする人の為のスレッドです。
本スレはできるだけ本体(もしくは+Chromecast)で楽しむ人に譲って、
濃い話はこちらでお願いいたします。
※本スレ
google home Part.11
http://mevius.5ch.net/test/read.cgi/google/1516500534/
※前スレ
【IFTTT】Google home で IoT Part.1【Hue】
http://mevius.5ch.net/test/read.cgi/google/1513235443/
【IFTTT】Google home で IoT Part.2【Hue】
http://mevius.5ch.net/test/read.cgi/google/1516114373/ >>598
いーなーそれ。わかったらココで教えてください Google Home、Philips hue、RM mini3、ラズパイの構成で、
IFTTTからhueの起床ルーチンをキックできないでしょうか。
起床ルーチンでなくとも、「30分かけて徐々に明るく」できればいいのですが >>603
日によって不規則に起きる時間が変わるので、
理想としてはIFTTTに翌日の出勤時間を入力すれば、
「40分前に暖房ON、30分前から徐々にライトON、
20分前にアラーム、0分前(出勤時間)に暖房と電気OFF」
が発動するIFTTTを作りたいのです。
今はIFTTTとhueアプリで別々に指定していますが面倒になってきた次第です。 hueはapiあるからそっち経由で設定すればいいんじゃないの >>605
WebAPIで起床ルーチンをキックすることも、
徐々に明るくすることもできないと思っておりましたができましたっけ?
明度を1づつ上げたURLをcurlを叩き続けるとかをそういうのですか? uint16だから最大65536かな
ということ最大6553秒なので100分くらいは指定出来るのでは
ていうかスケジュールのapiもあるじゃん
https://developers.meethue.com/documentation/schedules-api-0 >>608
ありがとうございます!
"transitiontime":18000指定で無事想定通りの動きができました hubot-broadlink-rmを0.6.3から0.6.5にアップデートしたいんですが
npm updateでもエラーがでてアップデートできません。
npm cache cleanもnpm cache clean —forceもダメでした。
ご助言いただければ助かります。
以下npm updateのエラーコードです。
npm WARN checkPermissions Missing write access to /home/(ユーザー名)/homebot/node_modules/hubot-broadlink-rm
npm ERR! path /home/(ユーザー名)/homebot/node_modules/hubot-broadlink-rm
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/home/(ユーザー名)/homebot/node_modules/hubot-broadlink-rm'
npm ERR! { Error: EACCES: permission denied, access '/home/(ユーザー名)/homebot/node_modules/hubot-broadlink-rm'
npm ERR! stack: 'Error: EACCES: permission denied, access \'/home/(ユーザー名)/homebot/node_modules/hubot-broadlink-rm\'',
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/home/(ユーザー名)/homebot/node_modules/hubot-broadlink-rm' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/(ユーザー名)/.npm/_logs/2018-02-14T14_46_25_018Z-debug.log すいません、自己解決できました。
権限がないのでsudoつければよかったんですね。申し訳ない。 >>610, >>611
Raspberry Pi Zero Wにて、691氏の「hubot-broadlink-rmの更新」通りにできた
$ npm outdated 少し時間がかかった
pi@raspberrypi:~/homebot $ npm update
+ hubot-broadlink-rm@0.6.5
added 2 packages and updated 5 packages in 52.68s
$ npm outdated で何も表示されず。
$ nano package.json すでに書き換えられていた
"hubot-broadlink-rm": "^0.6.5", >>612
削除 : $ npm outdated 少し時間がかかった >>571
>誤解を減らすために、@の前に空白を強制するようにしました。
>X learn tv:on@bedroom
>O learn tv:on @bedroom
とありますが、0.6.5に上げてもスペースを入れると反応しなくなります。
また、send tvliving:on@living が一度反応してくれましたが、2回目から
全く応答してくれません。一度は通っているのに2回目がNGということで
全くの?です。 お時間がございましたらご教示願います。 >>573
当方も全く同様にdiscoverされない問題あり.
・OS:FreeBSD10.4R
・ping/pongの手順まではOK
・PCとrmは双方とも同一セグメント内に設置
・(特に意味はないとは思うが)PCとrmは双方とも11gで接続
・getDevice.js単独で試してもdiscoverdされない
・hosts.allowは素通し設定.
/etcあたりでUDP周り制限の設定とか何かあったっけ? >>593
遅レスで申し訳ないけど
やり直す場合、691氏環境つまりhubot-broadlink-rmだけでいいかな?
コード覚えているRadiusサーバーやhubotもやり直しとなると大変かなと。 >>601
node-redで使ってるコードなので適宜読み替えてもらえれば。
javascriptを普段使わないので、callback部分とか適切に書けているかあまり自信はないです。。
npmでcastv2-clientがインストールされている前提です。
現在の音量を取得したあとに音量を新しい値に設定します。
あとで音量を元に戻したい場合はcurvol.levelを使ってsetVolumeし直して下さい。
// input : msg.castv2.ipaddr, msg.castv2.volume
// output: msg
var ipaddr = msg.castv2.ipaddr || "192.168.xxx.xxx";
// volume は min:0 max:1 で指定
var volume = msg.castv2.volume || 0.5;
var Client = require('castv2-client').Client;
var client = new Client();
client.connect(ipaddr, function() {
client.getVolume(function(err, curvol){
if(err) console.log(err);
console.log(curvol);
client.setVolume({ level: volume }, function(err, newvol){
if(err) console.log(err);
console.log(newvol);
client.close();
});
});
client.on('error', function(err) {
console.log('Error: %s', err.message);
client.close();
callback('error');
});
});
return msg; >>579
ラズパイからadbコマンドを使ってFireTV StickのNetflix起動は出来たんで、頑張れば行けそうではある >>616
redisは入れ直し不要。redisはOS側で組み込んでるからシステムディレクトリに入ってる。
hubotはnpmで再導入は必要だけど同じアクセスキーを入れればそのままログインは出来る。 >>617
いいですね!bin/say.js にも取り入れようかな。
>>573 >>615
WindowsやFreeBSDでの検証ありがとうございます。
朗報を楽しみにしています。 Chromecast は持ってないけど FireTV Stick はあるんで
何か映像で遊べないかなと思って調べてるけど
やってる人はいるかな
https://github.com/happyleavesaoc/python-firetv
https://github.com/Sor3nt/Amazon-Fire-TV-Stream
これらあたりをいじってみようと思ってるけど >>617
詳細情報ありがとうございます。
土日にトライしてみます! >>573
Windows Subsystem for Linuxを利用してるってことかな
現状サーバーとしての運用はできないって情報があるからhubotサーバーとしては使えないのかも
他にWSLで691氏のシステム運用できてる人がいたら情報欲しいね >>624
WSLは使ってないです
純粋なWin上での動作ですね
>>621
ブロードキャスト周りの知識を全く持ち合わせてないのでこれ以上は俺には無理です
ラズパイがブロードキャスト時に送ってるパケットとWinが送ってるパケットを(console.logで)見たけど同じようだったしお手上げです
パケットキャプチャとかめんどくさくてやってられないし・・・ 現在、691さん環境のRaspberryで鯖を立ててGoogleHomeminiを運用しています。
黒豆とChromeCastとSonoffを使用していますが、ワンフレーズで複数の機器を制御したいと考えています。
具体的には、Slack経由で黒豆にコマンドを流しているのですが、加えて同時にSonoffでもOn/Offを切り替えたいと思っています。
Sonoffは専用アプリをIFTTTに紐づけて制御しているので、Thatが一つの機器に限定される非開発者版では黒豆と同時にコマンドを流すことができません。
そこで、複数コマンドを実行させる際にSlackに特定のワードを話させて、IFTTTに戻す形でSonoffも動かそうと考えていますが、もう少しスマートなやり方があるような気がしています。
もしくはSonoff自体のファームをESP Easyに変更する事も考えていますが、ほかにアプローチはないでしょうか?
初歩的な質問かもしれませんが、アドバイスお願いできませんか? 試してないけど、sonoffはwebapiあるみたいだから、専用アプリ使わずにcommand登録してhubot経由で動作させたらいいんじゃね? >>626
たしかIFTTTのthisを同じ条件にした複数アプレット作れば、全てのthatがキックされるはず。 イベントベースでttsに読み上げさせてるけど、別の部屋にいたり、ちょっと外出してたりすることもあるので
人感センサーと連携させて、メッセージが登録されたあと、次に人を検知したタイミングで話すようにしてみた。
完全に自己満足の世界だが満足。
ラズパイから伸びた基盤むき出しのPIRは見た目がアレなので、ナノブロックでケース作ったけど、ハマると3Dプリンターに興味でてくるな。 >>628
できる。多分これが一番単純で簡単な解だと思う うちの TV は Sony の 2014年製の KDL-40W600B で AndroidTVじゃないんで
外部からコントロール出来ないと思ってたんだけど
https://github.com/alanreid/bravia
を使うとLAN内からコマンドを投げて制御できたんで古めのBraviaの人も試してみるといいかも
これでホームネットワークに一歩近づいた >>631
電源ONちゃんと動いてますか?
うちはKDL-46W900Aだけど、PowerOnが確実に動くか不明だったので別のにしました。
ソースコード見るとarpコマンドでmacアドレスを割り出しているようだから、arpテーブルにない場合は動かなそうだなと。 >>627 webApi確認してみます。
>>628
>>630 なるほど、たしかに一番単純で簡単な解決法ですね。
ご助言ありがとうございましたq >>632
そこのコードでmac固定値で入れとけばいいんじゃない? BRAVIAのリモートからの電源オンはただのWake on LANだから
どうにでもなる。 ていうか、上のコードもPowerOnのときはマジックパケット送ってるだけだよね >>632
電源Onはうちでも無理だったので Bravia の 「ホーム」->「ヘルプ」->「お客様サポート」->「本体情報」で確認できる
MACアドレスにWoLパケットを送るようにして対応
あと、使うライブラリは npm install bravia で入る
https://github.com/waynehaffenden/bravia
の方に乗り換え
こっちの方はIRCCコードを送るだけじゃなく、各種情報の取得や設定が簡単にできるので
音量の上げ下げだけじゃなく絶対値で操作できるようになって便利かなと
で、いろいろ試していたら
const Bravia = require('bravia');
let bravia = new Bravia('192.168.1.xx', '80', 'xxxx');
bravia.avContent.invoke('getPlayingContentInfo')
.then(info => console.log(info))
.catch(error => console.error(error));
で現在表示中の番組名なんかを取得できるのがわかったんで「この番組何?」って聞いて番組名を答えてくれる機能が
できそうなんで結構いい感じ
>>637
できます うちのAQUOSは、ここで教えて貰ったコードが挙動不審なので、諦めてChromecast買ってしまった >>468 の SUREユニバーサルリモートを使おうとしたんだけど、
XPERIA XP(SO-04H)だとPlayストアに出てこない。
PCで見ると「このアプリはお使いの端末に対応していません。」て。
なんでだ?Android 7.0なのに・・・ >>641
日本の端末じゃ落とせないからapkぐぐって落としてきたらいいよ 岩槻アピ○閉店記念!!周りから集まった情報をまとめてみた(不審な客として扱われていたH・美代○の事)
長宮(旭段ボール脇の香取神社のある細い道沿い住み)のH・美代○(80歳位)は、虚言が多いから、話半分で聞いてた方がよいような人。
口では偉そうな事を言ってるが、やらせると全く出来ず、実態が伴わない。
昔、PTAの簡単な役さえ出来なくて周りから非難されてた。また、パートの仕事に出ても、毎回すぐに辞めてしまう事で有名だった。仕事内容を理解するのが遅く、首を切られた事もある。
中学卒業後、晩婚だったが、その間も無職。また口が臭かった(地元が一緒だった人の話)。
H・美代○に似て、息子3人とも働けない。
今まで面倒な事は何もしてこず、有り余った時間で、自分家の為になる事や、自分がやりたい事だけやってきたズルい人らしい。そのためか、健康そのもの。
顔の骨格はマントヒヒ。デカい唇。がめつく欲深い。
物流が多く、川通公園(やまぶきスタジアム)、スーパー夢らんど、新岩槻郵便局がある地域。
大口に住む息子(H・フミ○)はアピ○で試食品を食べ荒らす迷惑行為をしていた。
フミ○は昔、職場で給料泥棒だと言われ(仕事が出来ず、何もしてない)、会社を辞めさせられた。そのお金で小屋を建てたみたいだが、会社の人達は、半分自分達の物だと思っている。 ps4-wakerをインストールして起動から本体を登録しようとしても
could not detect any matching ps4 device
と表示されるのですがどうしたらいいのでしょうか? 691さんの環境をラズパイゼロwとgoogle home miniで実現しています。691さんありがとうございます。
ここにswitch botを組み入れ、自宅外からもお風呂のお湯張りボタンを物理的に押したいと考えています。
どのように組み入れるのが一番簡単でしょうか?
ちなみにswitch botはまだ入手していないのですが、ラズパイからも操作可能なようです。
https://github.com/OpenWonderLabs/python-host/blob/master/README.md
switch botは一つだけの導入予定です。
自宅ではgooglehome経由で声での操作、自宅外からはスマホで操作したいです。
何かヒントをいただけないでしょうか?
よろしくお願いします。 >>645
ラズパイから操作出来るなら操作するシェルスクリプト作ってそれをcommandに登録すればいい。 給湯リモコンは脱衣所とかに設置してあるタイプなのかな?
浴室内に設置してあるタイプだとswitchbotじゃ無理かと >>646
ありがとうございます。
commandに登録というのが良くわからないのですが、どこに登録すれば良いのでしょうか?
自宅外から操作したいので、slack経由でできればありがたいのですが、hubot?からラズパイにあるシェルスクリプトを叩くことができるのでしょうか?
slackは691さんの環境を構築する時に初めて触りましたので全然分かってません…。
>>647
給湯リモコンはキッチンにありますので、そこに設置する予定です。 >>649
自宅外からの操作って、変に作り込むよりグーグルアシスタント使えば? >>617
google-home-notifier.jsにボリューム変更機能付けてみたんだけど元のボリュームに戻すタイミングってどうしてる?
普通にやっても実際にHomeが喋り出す前にsay.jsの実行は完了しちゃう(非同期実行されてる)
なので喋り終わる前にボリュームを戻してしまわないようにお喋りが終わったか監視する仕組みを考えないとダメっぽい >>649
691氏環境に任意のlinuxコマンドを叩く機能がある。
そこに操作コマンドを登録してslackから黒豆コマンドと同じ要領で実行すればいい。
詳しくは691氏ブログ参照。 >>652
自分の場合はめんどくさいので文字数カウントしてテキトウな秒数かけてsetTimeoutさせてる。
使ったことないけど、ソースコード見るとplayer.getStatusがあるみたいなので、これで終了判定できるかもしれない。 >>645
難しいことはせずにSwitch linkを購入したら?設定に1分ほど時間かかるけど普通に音声で操作できる。 時間あったのでcastv2-clientのコードを確認してみたら、playerでのステータス変化をemitしていたので、捕まえてみたら、再生終了時に以下のようなイベントが飛んでくるみたい。
----- BEGIN:player.on(status) -----
{ mediaSessionId: 1,
playbackRate: 1,
playerState: 'IDLE',
currentTime: 0,
supportedMediaCommands: 15,
volume: { level: 1, muted: false },
currentItemId: 1,
idleReason: 'FINISHED' }
----- END :player.on(status) ----- 自分はgoogle-home-notifier.jsを修正して使っているので、以下のように書き換えたら想定通りの動きになりました。
var onDeviceUp = function(host, url, callback) {
var client = new Client();
client.connect(host, function() {
client.launch(DefaultMediaReceiver, function(err, player) {
var media = {
contentId: url,
contentType: 'audio/mp3',
streamType: 'BUFFERED' // or LIVE
};
client.getVolume(function(err, curvol){
if(err) console.log(err);
console.log(curvol);
client.setVolume({ level: volume }, function(err, newvol){
if(err) console.log(err);
console.log(newvol);
});
player.on('status', function(status){
console.log('----- BEGIN:player.on(status) -----');
console.log(status);
console.log('----- END :player.on(status) -----');
if(status.idleReason=='FINISHED'){
client.setVolume({ level: curvol.level }, function(err, newvol){
if(err) console.log(err);
console.log(newvol);
client.close();
});
}
});
player.load(media, { autoplay: true }, function(err, status) {
callback('Device notified');
});
});
});
});
client.on('error', function(err) {
console.log('Error: %s', err.message);
client.close();
callback('error');
});
}; pastebinとかに貼り付けてリンク貼ってもらうほうが良い気がする volume変数も自分がカスタマイズして持たしてる変数なので、上記のコード使う場合はどこかでvolume変数を設定しておいて下さい。 >>653
ありがとうございます!unixコマンドを操作するってやつですね!
ちょっと調べてやってみます! >>655
>>655
switch linkもお持ちなんですか?!良いですね。
出来ることならラズパイにまとめたいです。linuxもslackも全然分からないので手探り状態で色々試してます…。 >>662
おおーどもですどもです
実際のところ今回の件は(どうしても行数が嵩んで読みにくい以外)そこまで気にしなくてもいいとは思うんだけど
スレに貼り付けたコードってライセンスが面倒なことになる(匿名故にauthor不明+書き込み規約の問題)んで
基本的にはコードをスレに貼らないほうがいいんすよ Raspberry Pi ZeroとHome miniで691氏のHomeの喋らせ方を構築中ですが、
bin/say.jsの実行させてもError: getaddrinfo -3008 となります
自分でググった情報を元にhomeのipアドレスをhome.ip("192.168.xxx.xxx"); で指定すると♪コンニチワと喋りました
しかしながらhomeはDHCPなので解決には至っていません。
この場合、process.argvがうまく作動してないのでしょうか?
またはipを自動取得するコードの追加が必要でしょうか?
アドバイスよろしくお願いいたします。 >>645
バスタブの栓を開けたまま給湯して、数百リットルのお湯をダイレクト排水する未来が見える >>666
ありがとうございます。できました。
当該ページの手順は一通りやっていたはずですが、確認したところ
・ファイル `node_modules/mdns/lib/browser.js` を以下のように修正する。
の`getaddrinfo({families:[4]})`とするところが抜けていました。
再度修正更新したところ、ipを指定しなくても(実際は//で行をコメントアウト)喋らせられました。
>>665さんもありがとうございました。 >>639
Braviaの操作、色々設定して結構いい感じになってきた
system/getPowerStatus で電源のオンオフが判定できるので電源オフ時には
WoLを送って3秒待ってから命令を送信するとうちの環境だとちょうど受信可能な状態に
なっている感じに
音量設定も「音量を20にして」みたいに直接指定できるようにして、誤認識対策に
設定した音量以上にならないようにリミッターをかけるようにした
あと、Rewind を送信して nミリ秒後に Play を送信するコマンドを作って、擬似的な
「○秒戻し」ができるようにしてレコーダーなんかの再生時に結構快適になった
こういうのがスクリプトで制御できる利点だよなぁ >>662
素晴らしい!
自分はplayer.loadのstatusに再生時間(duration)がセットされてたのでテキトーなオフセット値を加えてsetTimeoutでボリューム戻すようにしたんだけど断然スマートですね >>667
マジレスすると、普通はお湯張りしてすぐに入りたいから(そのために自宅外から操作したいわけだし)帰宅時間から逆算してお湯張り開始するよね。だから例え何かミスしててもそんな大きな被害にはなりにくい。(無いとは言ってない…) >>671
深夜電力のタンク式の給湯器だけど年に数回栓を忘れてボタンを押してるが一定時間内に水位が上がらないとエラーで自動停止する
給湯入出口が漬かるまでは水が出てその後お湯が出るから無駄になるのは冷たい水だけで
量はせいぜい50リットルぐらいだと思う。トイレ5回分位の水か? IFTTTを真ん中に置いて、赤外線系の操作を691さんので、
トリガー側に、dasherでダッシュボタンや、
homebridge-iftttでsiriとかapplewatchも取り込んだ。
これでほぼ無双状態w コルタナさんが IFTTT に来てる
今まで全然興味なかったけど、Google Home 買ってからなんか利用できないか考えるようになった
マイクの用意すらしてないけど
https://ifttt.com/blog/2018/02/Hey-Cortana-welcome-to-IFTTT
https://ifttt.com/cortana リンナイだと100リットルくらい出して水位上がらなかったらエラー出して止まらなかったっけ?
メーカーによるとしか言えない所だろうけど各社もう少しIoTに力入れて欲しいよな
10年位に一度しか入れ替えタイミング無いから困る 給湯ボタンを押せるようにSwitchbotを設置する。
1-2分で設定は終わるから SwitchLinkを導入したほうがスマートスピーカーに対応させるのには早い。 うちは給湯器とブラーバにSwitchbotを付けて使ってる。 風呂は掃除後に栓をする習慣にしとけば良いとして、
ブラーバって使う前にウェットシートセットが必要だし、終わった後は手動で充電が必要だから自動化のメリット少なくない? >>678
ルンバ使用後に使いたいたいから出かける時にブラーバのセットしておいて、ルンバが掃除終了後にブラーバに指示を出す感じかな >>679
なるほど、ルンバとの連携で使うのか
その発想はなかった 家にいるときに掃除させるのは結構邪魔なんで便利ですよ >>660
> >>653
> ありがとうございます!unixコマンドを操作するってやつですね!
> ちょっと調べてやってみます! >>674
iftttでアプレット作ろうと思ったけど日本語には対応してないのかな
アルファベットを含まないフレーズだと登録できないみたい ルンバってIoT対応モデルがなぁ。
せっかくの自動製品なんだから1世代前の680くらいアップデートで対応してくれてもいいのに。 >>685
安いかどうか知らんがaliでrm mini3が1つ送料別1736円、送料115円。送料無料の店だと1860円。円高になればまた変わる。 >>688
これに関してはAliよりebayの方が安い店が多いような。
でも、遅いね。1月28日オーダーで多分明日か明後日着。
今、川崎らしい。 春節休みだから今からあっちに出す注文は22日くらいに通ったと考えないと >>688
そのせいか
rmmini3はまだ海外が安いけど、ソケットが1500円近くになってたわ
先週1100円だったんだけど
今ソケット買うなら日本でもいいけどまた値下がるかね 俺も二週間くらい前にeBayで注文。
PayPal支払いで1400円ちょいだった。
ちょうど通関終わったくらいだから、あと数日で届くと思われ。
SUREアプリで黒豆制御できるとの書き込み見て、2台あるとはかどるって話だったから、一週ほど遅れてもう一個注文してみたけど、最初に買った方と同じところのやつは品切れっぽかった。
春節やらの影響で一時的に品薄なってるだけかもしれんけど、現状安いところが減ってきてるような印象を受ける。 去年12月に届いた黒豆が調子悪い
再起動後や Wi-Fiルータ再起動でGoogleHomeとの連携切れる。 ihcでは動くけど 修復方法は 黒豆 Homeアプリ で設定全消し後にアプリ入れ直しし作り直せば復活するが 4,5回やってもう疲れたよ。黒豆が不良品なのかな?
さらにGoogleHomeに電源入ってるとWi-Fi速度が2,30M台から7~4Mまで落ちてプチプチ切れる。ルータ再起動で直るが数日で再発する。
同じような方おりますか? オレ環境なら黒豆買い直そうかと検討中。ソフバン光ルータは新しいのが今日届き様子見してる。 ■ このスレッドは過去ログ倉庫に格納されています