そこらへんのパパの独り言

そこらへんにいるパパの独り言をツラツラと。 子供とガジェット関連でいくよ

【IoT】9.「function」ノードを使ってすっきりさせる

すっかり生活にAlexaがなじんできた今日この頃。
あまり追加するネタも思い浮かばないので、この間宿題にしていた「function」ノードを使った
チャンネル切り替えスッキリ化でIoTシリーズをいったん閉めようと思う。

1.準備

まず、おさらいとして必要な準備を確認。
 A.Raspberry PiでNode-REDを起動する
 B.Raspberry PiのNode-REDをブラウザで開く(例:http://192.168.XX.XXX:1880
 C.Node-RED Alexa Home Skill Bridgeを開く
 E.https://alexa.amazon.co.jpを開く

2.やりたいこと

 

TVの操作を行うにあたり、「switch」のみで作ると、すっごい見づらいので
「function」を使ってすっきりさせる。

【function使用前】
チャンネルごとにスイッチを分けるので視認性が悪い。
f:id:sokoranopapa:20180217121525p:plain


【function使用後】
チャンネル変更をfunctionにまとめてすっきりする。
f:id:sokoranopapa:20180217121737p:plain

3.最初の準備

TVのチャンネル変更コマンドを「TV.○ch」という形で保存しておく。
 ※○にはチャンネル番号が入る。こんな感じ。
  f:id:sokoranopapa:20180217122848p:plain

次に、node-red上に「Alexa Home」と「switch」を設置する。
f:id:sokoranopapa:20180217124225p:plain

 

4.switchの設定

switchの中身は下記のように設定

f:id:sokoranopapa:20180217124728p:plain

 プロパティ:「msg.command」
1つめ  :「TurnOnRequest」(テレビをつける)
2つめ  :「TurnOffRequest」(テレビを消す)
3つめ  :「SetPercentageRequest」(チャンネルを変える)※今回セットするところ
4つめ  :「IncrementPercentageRequest」(ボリュームを上げる)
5つめ  :「DecrementPercentageRequest」(ボリュームを下げる)

ここでのポイントは「command」にすること。

4.functionの設定

続いて「function」の設定。
まず、switchの隣にfunctionを設置。
先ほどの3つめとつなぐ。

f:id:sokoranopapa:20180217125532p:plain

つぎに、functionノードを開いて下記のように設定する。
f:id:sokoranopapa:20180217125844p:plain

名前 :「add Num」(ここは何でもいいです)
コード:(return msg; は最初から入ってるかも)
 msg.payload = `TV.${msg.payload}ch`;
 return msg;

ここのコードの意味は
「switchから受け取った数字を、「TV.○ch」という形に変えてmsgに再格納しなさい。」
という意味だと思ってます。
なので、 `TV.${msg.payload}ch`の赤字部分を変えればほかにも応用できるはず。

全部入れ終わったら「完了」を押す。

5.functionの設定

最後に「exec」の設定。
functionの隣にexecを配置。
f:id:sokoranopapa:20180217130926p:plain

中身はこんな感じ。

f:id:sokoranopapa:20180217131236p:plain
コマンド:「sudo /home/pi/python-broadlink/cli/room.sh」(赤外線コードを保存している場所)
引数  :「msg.payload」にチェックを入れる
名前  :なんでもいい

これで完成。
あとは電源とかボリュームとかつなぐとこんな感じになる。
f:id:sokoranopapa:20180217162034p:plain

6.まとめ

赤外線で動作させられる機械って意外と少ないなぁ。というのが印象。
あと追加できるものとしてはエアコンぐらいか。
せっかくのAlexa、次はこの辺を参考にしてIFTTT使ってみようかな。


今日はここまで。

【IoT】8.Node-REDの動作をいろいろと調べてみる(ロック、カラー、温度)

前回に引き続き、体当たりで動作を調べていこうと思う。

1.準備

まず、毎度おなじみ必要な準備を確認。
 A.Raspberry PiでNode-REDを起動する
 B.Raspberry PiのNode-REDをブラウザで開く(例:http://192.168.XX.XXX:1880
 C.Node-RED Alexa Home Skill Bridgeを開く
 E.https://alexa.amazon.co.jpを開く

 

2.体当たりの準備

Node-RED Alexa Home Skill Bridge を開いて、前回作った「テスト」というデバイスを変更する。

まずはロックを試すので下記のようにする。
f:id:sokoranopapa:20180128191838p:plain


次に、https://alexa.amazon.co.jpで、「検出」を押して変更内容を認識させる。

最後にnode-redを開いて、デバッグが見えるようにしておく。
 ※フローは前回のものをそのまま使えるはずなので、デプロイは不要。
f:id:sokoranopapa:20180113233313p:plain

これで一応準備は完了。
どのようなコマンドでどのような動作をしているのかを調べていく。

3.「ロック」に対応するコマンド

Alexaに「ロック」してというと、「わかりません」と返ってきてしまった。
なんて言っても反応してくれない。

なんでだろうなぁ。と思って、Home skill bridgeのマニュアルを確認してみたところ、「ロック」はUSAのみ対応しているとのこと。(2018/01現在)

f:id:sokoranopapa:20180128194722p:plain


併せて確認すると、「カラー」についても同様の模様。
うーん、残念。

4.「温度」に対応するコマンド

今度は温度関連。

f:id:sokoranopapa:20180205213518p:plain

 テストを変更して、読み込みもばっちり。
早速呼び掛けてみる。

・・・

うまくいかない。
たまに反応するから日本語に非対応なわけじゃなさそうだけど、うまくいかない。

同じ言葉を言っても、「うまくいきませんでした」の時もあれば、「無反応」の時もある。

30分以上アレクサに話しかけて、成果なし。
もうだめだ、あきらめよう。

5.まとめ

前回のON/OFF、%と違い、こちらは成果なし。
たまに反応するときもあるみたいだけど、反応が悪すぎてどうしようもない。

使えたよ!という方がいたらぜひ話を伺いたい。

次回はフローの設定を書き起こそうと思う。

今日はここまで。

【ハワイ島】4-2.宿:ボルケーノハウス(4.可能な限り安く済ませる方法を考える)

-----------------------------------------------
【やること】
1.行きたいところを探す
2.宿の候補を探す
3.旅行日程を考える
4.可能な限り安く済ませる方法を考える
-----------------------------------------------

4-2.宿:ボルケーノハウス編

ワイ島は広い。
ぐるっと一周するとほぼ丸1日かかってしまう。
コナスタートでキラウェア火山見てぐるっと帰ってくると、朝出かけても帰りは夜遅くなってしまう。

(参考スケジュール)
なので、子連れとしては1週ドライブの途中どこかで泊まりたい。
どうせ途中で泊まるなら、特色ある所に。と思い、ボルケーノハウスをチョイス。

1.ボルケーノハウスの基本料金

ボルケーノハウスの基本料金はこちら。

f:id:sokoranopapa:20180121092454p:plain
公式サイトより画像引用

ふーん、スタンダードなら285ドルか。まぁこんなもんか。
とおもって、予約ページを開き、予約を入れようとすると326ドルになってる。
あれ?って思って内訳をみると、285ドルは税別表示だった。

f:id:sokoranopapa:20180121093215p:plain

4500円くらい増えるというのもさることながら、1泊300ドルを超えてくるとちょっと躊躇してしまう。

2.割引を探す

PCの予約画面を見ると、料金プランの選択が下記の通り表示される。
 f:id:sokoranopapa:20180121094004p:plain

いかにもアメリカ関係者専用風な表示になっていますが、ここで表示されている「JAF」は、日本のJAF
そう、車がトラブった時に助けてくれるあれ。

f:id:sokoranopapa:20180121094319p:plain

 
なので、JAF会員の方は臆せずJAF料金を選べば10%くらい安くなる模様。
 ※口コミサイトを見ると、予約時及び宿泊時にJAF会員証の提示を求められたという話はないですが念のため会員証などを持っていくことを忘れずに。

なお、予約日によっては下記のように選択肢が出てこない日があるようです。

f:id:sokoranopapa:20180121093906p:plain

なので出てきたらラッキーぐらいな感覚がよいかと。

3.追加で割引を探す

もっと割引がないかな?と探してみたところ、ボルケーノハウスを運営している「アストン・ホテルズ&リゾート」は航空会社と提携しているみたい。

ANAのマイルが貯まる

ANAのほうは航空会社のHPに掲載されているのでたぶん貯まる大丈夫


JALのマイルが貯まる?のかな

JALのほうは「アストン・ホテルズ&リゾート」のHPに掲載されていたんだけど、ホテル一覧にボルケーノハウスが載ってない。
(ボルケーノハウスがアクア・ホテルズ&リゾートだからかも)
さらに現地申告が必要だし、で、ちゃんと付くのか怪しい。
まぁこれも付いたらラッキーぐらいの気持ちがいいかも。

4.さらに更なる割引を探す(期間限定かも)

 ボルケーノハウスはExpedia等の提携サイトから予約できないみたいであまり割引が見つからないのですが、期間限定っぽい割引を見つけたのでご紹介(2018/1月現在)

キャンペーン名は「ごほうび、ハワイ」

具体的にはこちらのページ。
 

予約時に、「プロモーションコード:GOHOUBI」を入れると、安くなるんだって。
どのくらい安くなるかというと、8月某日の通常予約がコレ。

f:id:sokoranopapa:20180121101525p:plain

GOHOUBIを打ち込むとコレ。

f:id:sokoranopapa:20180121101728p:plain

JAF料金よりも安くなってる!
ちなみに上記画像には「税金」が含まれていないんのでもうちょい高くなることをお忘れなく。

5.まとめ

海外のホテルでもいろいろ探せば割引があるんだなぁ。と。
「ごほうび、ハワイ」はいつ終わるかわからないので、キャンセルポリシー的には7日前までキャンセル無料を踏まえると
とりあえず予約しちゃうのが吉かと。

f:id:sokoranopapa:20180121102221p:plain


ちなみに、「GOHOUBI」を使ったら安くなったので、うちは「ボルケーノ・クレータービュー」で予約しました。
300ドル超えちゃったけど、スタンダードの通常料金と変わらないし、多少はね?
f:id:sokoranopapa:20180121102441p:plain


ボルケーノクレータービューがいいのか、スタンダードビューがいいのかは、泊まってみないとコメントできないので、口コミなどから各自ご判断くださいませ。

4travel.jp


今日はここまで。


【ハワイ島】4-1.航空券の調達方法編(4.可能な限り安く済ませる方法を考える)

-----------------------------------------------
【やること】
1.行きたいところを探す
2.宿の候補を探す
3.旅行日程を考える
4.可能な限り安く済ませる方法を考える
-----------------------------------------------

4-1.航空券の調達方法編

旅行で費用がかかるのが、「航空券」「宿泊費」。

そのうち、「航空券」を安く済ませる方法は、
・乗り継ぎを使う
・格安航空を使う
・マイルで航空券をゲットする
の3種類あるかと思います。



1.乗り継ぎを使う

乗り継ぎを使う場合は、旅行日程を考えるときに使った「Skyscanner」で探すのがよさそう。

sokora.hatenablog.com


乗り継ぎ便の中には、JALが14万円前後のときに11万円台もある模様。
ただ、「東京-コナ」だと「東京ーホノルル」と比べて1回乗り継ぎが増えてしまうこともあり、移動時間が24時間を超えるので現実的ではない。
f:id:sokoranopapa:20180108114258p:plain

2.格安航空を使う

格安航空券を使う場合は、だいたい往復6万円ぐらいからかな?
ScootとエアアジアXが大阪から就航しており、比較記事やレビュー記事が出ているのでご参考に。

検証!スクート VS エアアジアX 関空⇔ホノルル・あなたはどっちで飛ぶ?|MSChannel
スクート(Scoot)の関空~ハワイ・ホノルルの初便に乗ったレビュー |

 東京から行く場合でも、無理して乗り継ぎ使うぐらいなら、大阪前泊して格安航空券のほうがいいかもしれない。

3.特典航空券をゲットする

特典航空券は取りづらいので結構ハードルが高い。 
その辺はもういろんな方が書いているので、ここでは触れないですが、今回自分が取得した際に気が付いたことを2つメモ。

1.キャンセル待ちは片道ずつすべし。
JALの特典航空券を片道でも取得した場合、「JMB片道運賃」というのが使える。
閑散期は微妙だけど、繁忙期などは通常運賃よりも少しは安くなることが多いようなのでとりあえず片道だけでも取っておく。

2.片道は「国内発」を優先して取得すべし。
上記片道航空券を取得する場合は、国内発を優先したほうがいい。
なぜならば、海外発国内行きは比較的安く取れるから。

Skyscannerで2018年8月の予定を調べてみると、まだ歯抜けだがコナ発東京行は8万円以下でも予約が取れる。
f:id:sokoranopapa:20180115223321p:plain

一方、東京発コナは20万円を超えてしまう。
f:id:sokoranopapa:20180115223534p:plain

なので、片道だけの場合は、国内発を優先したほうがいい。
ちなみに、家族3人分の海外発券だとこんな感じ。だいたい21万円ぐらい。

f:id:sokoranopapa:20180115225008p:plain

4.まとめ

 1マイル当たりのお得度?を最大化するなら、行きだけ特典を取って帰りは海外発にするのがよさそう。
親子3人で行く場合、夏の繁忙期だと、1人往復15万以上かかるので、12万マイルを分けて使うと考えると、

【パターン1】
 片道6万マイル利用して、帰りは実費(21万円)、2回分だとして42万。
【パターン2】
 往復12万マイルを利用して、2回目は往復実費(15万)を3人分だとして45万。

で、片道だけ特典のほうが3万円ぐらい安くなる。


いろんな航空券の取り方があると思うので、いろいろ工夫してみてみてください。

今日はここまで。

【IoT】7.Node-REDの動作をいろいろと調べてみる(ON/OFF、%)

echo dotが届いてすっかり満足したら更新頻度がぐっと落ちてしまいましたが、
まだまだいじるところがありそうなので、少しずつ進めて行こうと思う。

1.準備

まず、おさらいとして必要な準備を確認。
 A.Raspberry PiでNode-REDを起動する
 B.Raspberry PiのNode-REDをブラウザで開く(例:http://192.168.XX.XXX:1880
 C.Node-RED Alexa Home Skill Bridgeを開く
 E.https://alexa.amazon.co.jpを開く

2.Node-RED Alexa Home Skill Bridgeで設定できること

 Node-RED Alexa Home Skill Bridge
を見ると、下記のようにいろいろなactionが設定できるようになっている。

f:id:sokoranopapa:20180113231535p:plain

これ1つずつが何かしらの音声コマンドに対応しているはずなのだが、
どんなコマンドをいれたらどんな風に動くのかわからない。

英語サイトを見に行けば書いてありそうだけど、読むのも難しいので体当たりでできることを確認してみる。

3.体当たりの準備

まず、Node-RED Alexa Home Skill Bridge を開いて、「テスト」というデバイスを作成する。

その際、まずは下記のように
・ON/OFF
・%/+%/-%
の3種類を有効かする。

f:id:sokoranopapa:20180113232622p:plain


次に、https://alexa.amazon.co.jpで、今作成した「テスト」をデバイスとして認識させる。

f:id:sokoranopapa:20180113232925p:plain


最後にnode-redを開いて、下記のように新しいフローを作成する。
f:id:sokoranopapa:20180113233313p:plain
ここでのポイントは、「debug」を2つつないで、「command」と「payload」をみえるようにすること。


なお、配置した時点ではpayloadになっていると思うので、「対象」のところを書き換えてあげる。
f:id:sokoranopapa:20180113233518p:plain
node-redはいじったら「デプロイ」するのを忘れないように。
これで一応準備は完了。
どのようなコマンドでどのような動作をしているのかを調べていく。

4.ON/OFFに対応するコマンド

まずわかりやすいところから。
【ON】
音声入力:「オンにして」「つけて」「起動して」
出力(command):TurnOnRequest
出力(payload):true

f:id:sokoranopapa:20180114001908p:plain

【OFF】
音声入力:「オフにして」「消して」「終了して」
出力(command):TurnOffRequest
出力(payload):false
f:id:sokoranopapa:20180114002131p:plain

上記の通りとなるため、Switchノードを「command」で切り替えたい場合は下記となる。
f:id:sokoranopapa:20180114232653p:plain

「payload」で切り替える場合は下記3,4のようにすること。
1,2のように文字列で「true」「false」を入れても反応しない。
f:id:sokoranopapa:20180115001035p:plain

ON/OFFについては、比較的わかりやすい。

5.% +% -% に対応するコマンド

ちょっと説明しづらいのですが、つづいて%たち。
%については、数値指定ができるので応用が広がりそう。

【%】
音声入力:「○%にして」「○にして」
 ※下記出力は「5%にして」と入力した場合
出力(command):SetPercentageRequest
出力(payload):5

f:id:sokoranopapa:20180114235232p:plain

【+%】
音声入力:「○%増やして」「明るくして」
 ※下記出力は「5%増やして」と入力した場合
出力(command):IncrementPercentageRequest
出力(payload):5
f:id:sokoranopapa:20180114235641p:plain


【-%】
音声入力:「○%減らして」「暗くして」
 ※下記出力は「5%減らして」と入力した場合
出力(command):DecrementPercentageRequest
出力(payload):-5

f:id:sokoranopapa:20180114235818p:plain


なお、数値を指定せず「明るくして」「暗くして」と音声入力した場合は、「payload」の数値が±25で出力される。

音声入力:「明るくして」
出力(command):IncrementPercentageRequest
出力(payload):25

f:id:sokoranopapa:20180115000136p:plain


上記の通りとなるため、Switchノードを「command」で切り替えたい場合は下記となる。
f:id:sokoranopapa:20180115003046p:plain


「payload」で切り替える場合は下記のとおり。
「明るくして」「暗くして」の場合は、1,2のように数値で「25」「-25」を入れる。
「5%明るくして」「5%暗くして」のように数値を指定した場合は、その数値を入れる。

f:id:sokoranopapa:20180115002706p:plain

 

「payload」を利用した場合、音声入力時にswitchノードで数値指定による切り替えができるので、
必要な分だけの切り替えを用意すればテレビの切り替えなんかもできちゃいます。

例えば、テレビの操作を行うswitchノードにおいて、
1:電源オン
2:電源オフ
3:ボリュームアップ
4:ボリュームダウン
5:1chに切り替え
6:2chに切り替え
7:4chに切り替え
をしたい場合、

f:id:sokoranopapa:20180115003557p:plain

と設定して

f:id:sokoranopapa:20180115004733p:plain

とつなげばチャンネル切り替えもできるわけです。
でも、チャンネル分のswitchを用意する必要があるのでめんどくさい。

そんなときは「command」にして「function」ノードを挟んであげるとすっきりできます。
f:id:sokoranopapa:20180115004609p:plain
体当たりが終わったら、これのやり方をまとめようかと。

6.まとめ

一番多く使うであろう、ON/OFF、%はこんな感じだろうか。
もっと別の音声コマンドもあるかもしれないけど、見つけられなかったのでご存知のものがあれば、ぜひ教えていただければ幸いです。

次は「℃」と「Lock」に行こうかな。
「Query Set Point」とか「Set Color Temperature」とか体当たり候補すら思いつかないんだよなぁ…

今日はここまで。

【IoT】6.Echo dotが届いたー

Echo dotが届いたー
といっても、Amazonからの招待が全く来ないので、
メルカリから買っちゃった。

セットアップして、設定してみたら無事に動いた!
これでEchosim.ioから卒業だぜ!!

再びモチベーション高くNode-REDをいじっていこう。

 

【IoT】5.日本語で応答できるようにしてみる。

前回までに英語での動作ができるようになったので、ここからは応答を日本語化してみる。

1.準備

まず、一度おさらいとして必要な準備を確認。
 A.Raspberry PiでNode-REDを起動する
 B.Raspberry PiのNode-REDをブラウザで開く(例:http://192.168.XX.XXX:1880
 C.Node-RED Alexa Home Skill Bridgeを開く
 D.Alexa Skill Testing Tool - Echosim.ioを開く(Echoがあればいらないかも)
  ※DはChromeだとうまく動かないかも
 E.https://alexa.amazon.co.jpを開く

2.現状確認

 現在、Node-RED上はこんな感じになっていると思います。
 ※LIGTH.offの作成は今までの流れで触れてませんので、無ければないままで。
f:id:sokoranopapa:20171210221653p:plain

ここの「Light」を日本語に置き換えたいわけです。

3.Node-RED Alexa Home Skill Bridgeに追加する

まず、Node-RED Alexa Home Skill Bridge を開いて、Lightを追加したときのように日本語で登録します。
「リビングの電気」や「電気」で登録してみたら、他のスキルと競合してしまったようでうまく動作しないため、ここではかぶらなさそうな名称にしました。
f:id:sokoranopapa:20171210221907p:plain

無事登録できると、下記のようになると思います。

f:id:sokoranopapa:20171210222236p:plain

4.Node-RED に追加する

Node-REDのLightの下に、「Alexa Home」を追加する。

f:id:sokoranopapa:20171210222541p:plain

「Alexa Home」をダブルクリックして開き、「Account」に設定済みのものを選択。
「Device」を開くと、先ほどの「ご飯の電気」が追加されているので選択し、官僚を押す。
f:id:sokoranopapa:20171210223223p:plain

すると名前が「ご飯の電気」に変わっているはずなので、線をつなぎ、「デプロイ」を押す。

f:id:sokoranopapa:20171210223746p:plain

5.Amazon Alexaのサイトでスキルを認識させる

続いてAmazon Alexaのサイトへアクセスします。
https://alexa.amazon.co.jp/

スマートホーム→デバイスと移動したら、画面下の「検出」を押します。
f:id:sokoranopapa:20171210224743p:plain

すると、先ほどの「ご飯の電気」がデバイスに追加されます。 
f:id:sokoranopapa:20171210225209p:plain

 

6.Echosimで動作確認

ここまでで日本語登録は終わり。
続いて動作確認。
相変わらずEchoの購入ができないので、今回もWEBを活用。 

まずはサイトを開きます。
Alexa Skill Testing Tool - Echosim.io

言語が英語になっていたら、日本語を選択。
f:id:sokoranopapa:20171210230421p:plain

画面表示が日本語に変わるので、マイクを活性化して
「ご飯の電気をつけて」「ご飯の電気を消して」
というと、反応してくれます。
f:id:sokoranopapa:20171210230543p:plain

これを繰り返していけば、全部リモコン化できるかも。

7.まとめ

冒頭にも書いたように、他のスキルが動作してしまう場合があるので動作しないときの切り分けが難しい。
あと、「Node-RED Alexa Home Skill Bridge」の日本語言いかえがわからない。
(ON/OFFは「つけて」「消して」でいいんだけど、そのほかのアクションがさっぱり…)
f:id:sokoranopapa:20171210231527p:plain

このへん、どこか詳しく書いてあるサイトはないだろうか…

今日はここまで。