Raspberry Piで今日の月齢と六曜六輝を知らせてくれるにしてみました Google Home + LINE Notify + Node-RED

Google HomeのIPアドレスが変わったことをLINEで知らせてくれるようにしました LINE Notify + Node-RED“の続きです。

 

前回のTALKで、久しぶりに”Raspberry Pi“と”Node-RED“ネタを扱ったので、その勢いを借りて、以前から実現してみたかった今日の”六曜六輝“を”LINE”と”Google Home“で知らせてもらう仕組みにトライしてみようと思います。

 

今回は、自分でロジックを組むのではなく、”旧暦や六曜など日付に関する情報を取得できるAPI“と利用させてもらうことにします。そういう意味では、”Node-RED”でRestfulなアプローチにトライっていう感じになりますね。

 

今回作成した”Node-RED”フローのプロトタイプです。プロトタイプでは、”LINE”や”Google Home”に渡す文言を作成するまでのプロセスを実行します。左から順に説明しておきます。

フローのスタートポイントは、”inject”ノードです。毎日 7:30にフローを実行するように設定します。

 

次に”function”ノードを配置しました。

今回使わせてもらうAPIでは、

https://dateinfoapi.appspot.com/v1?date=yyyy-MM-dd

という具合に、日付をエンドポイントに渡す必要があるので、今日の日付を指定された形式に仕立て、後続のノードに送るようにしています。

var dd = new Date();
msg.payload = formatdate(dd);
return msg;

function formatdate(dd) {
return dd.getFullYear()+"-"+(("0"+(dd.getMonth()+1)).slice(-2))+"-"+(("0"+dd.getDate()).slice(-2));
}

 

次に”http request”ノードを配置しました。このノードが”旧暦や六曜など日付に関する情報を取得できるAPI“を発行する部分です。

直前の”function”ノードから送られてきた日付をAPIの構文にセットしてリクエストしています。レスポンスはJSON形式になるので、”JSONオブジェクト”で出力するよう設定しました。

https://dateinfoapi.appspot.com/v1?date={{payload}}

 

最後に”function”ノードを配置しました。直前の”http request”ノードから送られてきたAPIのレスポンスから、月齢と六曜六輝を抽出して、”LINE”や”Google Home”に渡す文言を作成しています。

var new_msg;

if (msg.payload.moon_ja === null)
{
new_msg = { payload: ‘今日の六曜六輝は’ + msg.payload.rokuyo + ‘です。’ };

} else {
new_msg = { payload: ‘今日の月齢は’ + msg.payload.moon_ja + ‘、’ + ‘今日の六曜六輝は’ + msg.payload.rokuyo + ‘です。’ };
}

return new_msg;

 

完成したプロトタイプのフローを”デプロイ”して実行すると、こんな感じの文言が出来上がります。

 

それでは、プロトタイプを拡張して、”LINE”や”Google Home”で、今日の月齢と六曜六輝を知らせてくれるにしてみましょう。

プロトタイプに通知機能を追加したフローです。

 

“LINE”の処理は、”node-red-contrib-line-notify“というノードを利用しています。詳しい内容は、以前のTALK (“新しいラズパイ4で動体検知カメラ motion + LINE Notify + Node-RED を試してみる (2)”)をご覧下さい。

”node-red-contrib-line-notify“ノードのプロパティ画面のメッセージ欄は空白にします。こうすることで、直近の”function”ノードから渡されたpayloadの内容を”LINE”に送信することができます。

 

“Google Home”の処理は、”google-home-notify“ノードというノードを利用しています。詳しい内容は、以前のTALK (“Raspberry Pi + Node-RED + Google Home で明日の天気を定刻にアナウンス”)をご覧下さい。

“google-home-notify”ノードのプロパティ画面では、”Google Home”のIPアドレスを設定するだけです。

 

フローを”デプロイ”後、指定した時間になると、”LINE”にこんな感じでメッセージが届きます。勿論、”Google Home”で同じ文言を喋ってくれます。ただ、”Google Home”は漢字の読み方が苦手なので、ひらがなとの組み合わせで”Google Home”に伝えた方が良いのかも。

こちらが本稼働したところの様子。iPhoneの待受画面で欲しい情報をコンパクトに見れるのがいいよね。

 

ホームページ “THE POOH FILES”にも是非お立ち寄り下さい。
Adobe Stock“でベストショットな写真素材を販売中です。是非ご覧下さい。

tomohiko

長年に渡りMacintosh向けの自作アプリを作り続けているPOOHです。最近はiPhone,iPad向けアプリ開発にも挑戦中。グルメ、旅行、露天風呂、写真、サイクリング、映画、STAR TREKが大好き。レトロでSFなおもちゃを大量にコレクション。プレーリードッグと同居中。

おすすめ

コメントを残す