<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GoogleHome アーカイブ - jyuvaworks</title>
	<atom:link href="https://jyuvaworks.blue/tag/googlehome/feed/" rel="self" type="application/rss+xml" />
	<link>https://jyuvaworks.blue/tag/googlehome/</link>
	<description>Description of concern. This site contains affiliate advertising articles.</description>
	<lastBuildDate>Tue, 12 Dec 2023 00:52:10 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://i0.wp.com/jyuvaworks.blue/wp-content/uploads/2023/11/cropped-LogoHD.png?fit=32%2C32&#038;ssl=1</url>
	<title>GoogleHome アーカイブ - jyuvaworks</title>
	<link>https://jyuvaworks.blue/tag/googlehome/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">155432049</site>	<item>
		<title>Google Homeで帰宅を検知して喋らせる！ラズパイとIFTTTで実現する方法</title>
		<link>https://jyuvaworks.blue/2023/10/18/google-home%e3%81%a7%e5%b8%b0%e5%ae%85%e3%82%92%e6%a4%9c%e7%9f%a5%e3%81%97%e3%81%a6%e5%96%8b%e3%82%89%e3%81%9b%e3%82%8b%ef%bc%81%e3%83%a9%e3%82%ba%e3%83%91%e3%82%a4%e3%81%a8ifttt%e3%81%a7%e5%ae%9f/</link>
					<comments>https://jyuvaworks.blue/2023/10/18/google-home%e3%81%a7%e5%b8%b0%e5%ae%85%e3%82%92%e6%a4%9c%e7%9f%a5%e3%81%97%e3%81%a6%e5%96%8b%e3%82%89%e3%81%9b%e3%82%8b%ef%bc%81%e3%83%a9%e3%82%ba%e3%83%91%e3%82%a4%e3%81%a8ifttt%e3%81%a7%e5%ae%9f/#respond</comments>
		
		<dc:creator><![CDATA[naopucho]]></dc:creator>
		<pubDate>Wed, 18 Oct 2023 04:33:08 +0000</pubDate>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[GoogleHome]]></category>
		<category><![CDATA[IFTTT]]></category>
		<category><![CDATA[RasberryPi]]></category>
		<guid isPermaLink="false">https://jyuvaworks.blue/?p=241</guid>

					<description><![CDATA[<p>はじめに Google Homeは、音声アシスタント機能を搭載したスマートスピーカーです。天気やニュースの確認、音楽の再生、スマート家電の操作など、さまざま …</p>
<p>投稿 <a href="https://jyuvaworks.blue/2023/10/18/google-home%e3%81%a7%e5%b8%b0%e5%ae%85%e3%82%92%e6%a4%9c%e7%9f%a5%e3%81%97%e3%81%a6%e5%96%8b%e3%82%89%e3%81%9b%e3%82%8b%ef%bc%81%e3%83%a9%e3%82%ba%e3%83%91%e3%82%a4%e3%81%a8ifttt%e3%81%a7%e5%ae%9f/">Google Homeで帰宅を検知して喋らせる！ラズパイとIFTTTで実現する方法</a> は <a href="https://jyuvaworks.blue">jyuvaworks</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><strong>はじめに</strong></h2>



<p class="wp-block-paragraph">Google Homeは、音声アシスタント機能を搭載したスマートスピーカーです。天気やニュースの確認、音楽の再生、スマート家電の操作など、さまざまなことができます。</p>



<p class="wp-block-paragraph">今回は、Google Homeで帰宅を検知して喋らせる方法をご紹介します。ラズパイとIFTTTを使えば、簡単に実現できます。</p>



<h2 class="wp-block-heading"><strong>必要なもの</strong></h2>



<ul class="wp-block-list">
<li>ラズパイ</li>



<li>マイクロSDカード</li>



<li>USBケーブル</li>



<li>電源アダプタ</li>



<li>Google Home(IPアドレスが固定されていること)</li>



<li>MyDNSのアカウント</li>



<li>IFTTTのアカウント</li>
</ul>



<h2 class="wp-block-heading"><strong>設定方法</strong></h2>



<ol class="wp-block-list">
<li>ラズパイにOSをインストールする</li>



<li class="vk_block-margin-xs--margin-bottom">GoogleHomeNotifireをインストールする</li>



<li>Google Homeを接続する</li>



<li>Google Homeに喋らせるサービスをラズパイに立てる</li>



<li>立てたサービスを外部から呼び出せるようにMyDNSに登録を行いグローバルIPを取得する</li>



<li>ルータのポート設定を行い外部から立てたサービスを呼び出せるようにする</li>



<li>IFTTTの位置情報を使い自宅付近に入ったらPOSTを行うよう設定する</li>
</ol>



<p class="wp-block-paragraph"> </p>



<p class="wp-block-paragraph"><strong><span class="ystdb-inline--2">1.ラズパイにOSをインストールする</span></strong></p>



<p class="wp-block-paragraph">ラズパイにOSをインストールするには、以下の手順が必要です。</p>



<ol class="wp-block-list">
<li>Raspberry Pi Imagerをダウンロードしてインストールする。</li>



<li>microSDカードをSDカードリーダーに挿入し、Raspberry Pi Imagerを起動する。</li>



<li>OSイメージを選択する。</li>



<li>microSDカードを選択する。</li>



<li>書き込みボタンをクリックする。</li>



<li>microSDカードをラズパイに挿入する。</li>



<li>ラズパイを電源に接続する。</li>
</ol>



<p class="wp-block-paragraph">Raspberry Pi Imagerは、ラズパイのOSイメージをダウンロードして、microSDカードに書き込むためのソフトウェアです。Raspberry Pi Imagerをダウンロードしてインストールしたら、microSDカードをSDカードリーダーに挿入し、Raspberry Pi Imagerを起動します。</p>



<p class="wp-block-paragraph">Raspberry Pi Imagerを起動したら、OSイメージを選択します。Raspberry Pi OSの最新バージョンがデフォルトで選択されています。</p>



<p class="wp-block-paragraph">OSイメージを選択したら、microSDカードを選択します。ラズパイにインストールするOSイメージを書き込むmicroSDカードを選択します。</p>



<p class="wp-block-paragraph">microSDカードを選択したら、書き込みボタンをクリックします。microSDカードにOSイメージが書き込まれます。</p>



<p class="wp-block-paragraph">書き込みが完了したら、microSDカードをラズパイに挿入します。ラズパイの電源コネクタを挿入し、電源をオンにします。</p>



<p class="wp-block-paragraph">ラズパイが起動したら、画面の指示に従って初期設定を行います。初期設定が完了すると、ラズパイが使えるようになります。</p>



<p class="wp-block-paragraph"> </p>



<p class="wp-block-paragraph"><strong><span class="ystdb-inline--2">2.GoogleHomeNotifireをインストールする</span></strong></p>



<p class="wp-block-paragraph">GoogleHomeNotifierは、Node.jsで動作するソフトウェアで、Google Homeに喋らせることができます。ラズパイでNode.jsとnpmが動作する環境が構築された前提で、インストール方法と使い方を説明します。</p>



<p class="wp-block-paragraph"><strong>インストール方法(リポジトリからインストール)</strong></p>



<p class="wp-block-paragraph"><a href="https://github.com/noelportugal/google-home-notifier/pull/55" title="">GitHub</a>を参考にダウンロードします。以下のコマンドを実行して、リポジトリからインストールします。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">Bash</span><span role="button" tabindex="0" data-code="git clone https://github.com/TomPenguin/google-home-notifier.git
cd google-home-notifier
git checkout origin/feature/support-new-google-tts-api" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">git</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">clone</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">https://github.com/TomPenguin/google-home-notifier.git</span></span>
<span class="line"><span style="color: #88C0D0">cd</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">google-home-notifier</span></span>
<span class="line"><span style="color: #88C0D0">git</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">checkout</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">origin/feature/support-new-google-tts-api</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>必要なライブラリのインストール</strong></p>



<p class="wp-block-paragraph">以下のコマンドを実行して、必要なライブラリをダウンロードします。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">Bash</span><span role="button" tabindex="0" data-code="npm install" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">npm</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">install</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>browser.jsの修正</strong></p>



<p class="wp-block-paragraph">node_modules/mdns/lib/browser.jsの該当箇所をエディタ等で以下のように修正します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">JavaScript</span><span role="button" tabindex="0" data-code="Browser.defaultResolverSequence = [
  rst.DNSServiceResolve(), 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo({families:[4]})
, rst.makeAddressesUnique()
];" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">Browser</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">defaultResolverSequence</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> [</span></span>
<span class="line"><span style="color: #D8DEE9FF">  </span><span style="color: #D8DEE9">rst</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">DNSServiceResolve</span><span style="color: #D8DEE9FF">()</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">DNSServiceGetAddrInfo</span><span style="color: #ECEFF4">&#39;</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">in</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">dns_sd</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">?</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">rst</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">DNSServiceGetAddrInfo</span><span style="color: #D8DEE9FF">() </span><span style="color: #81A1C1">:</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">rst</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">getaddrinfo</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">{</span><span style="color: #88C0D0">families</span><span style="color: #ECEFF4">:</span><span style="color: #D8DEE9FF">[</span><span style="color: #B48EAD">4</span><span style="color: #D8DEE9FF">]</span><span style="color: #ECEFF4">}</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">rst</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">makeAddressesUnique</span><span style="color: #D8DEE9FF">()</span></span>
<span class="line"><span style="color: #D8DEE9FF">]</span><span style="color: #81A1C1">;</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong>package.jsonの変更</strong></p>



<p class="wp-block-paragraph">google-tts-apiのバージョン指定を「0.0.6」にエディタ等で変更します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">JSON</span><span role="button" tabindex="0" data-code="&quot;google-tts-api&quot;: &quot;0.0.6&quot;," style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">google-tts-api</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">: </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">0.0.6</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">,</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong><span class="ystdb-inline--2">3.GoogleHomeを接続する</span></strong></p>



<p class="wp-block-paragraph">自宅のLANにGoogleHomeを接続します。設定は説明書に従って下さい。</p>


<div id="rinkerid329" class="yyi-rinker-contents  yyi-rinker-postid-329 yyi-rinker-img-m yyi-rinker-catid-1 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://hb.afl.rakuten.co.jp/hgc/g00r7ld1.bsm4r176.g00r7ld1.bsm4s6ae/Rinker_i_20231020222244?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fbiccamera%2F0193575000879%2F&#038;m=http%3A%2F%2Fm.rakuten.co.jp%2Fbiccamera%2Fi%2F13554004%2F&#038;rafcid=wsc_i_is_1018789010178996513" rel="nofollow"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/thumbnail.image.rakuten.co.jp/%400_mall/biccamera/cabinet/product/4800/00000007328516_a01.jpg?resize=128%2C128&#038;ssl=1" width="128" height="128" class="yyi-rinker-main-img" style="border: none;"></a>					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://hb.afl.rakuten.co.jp/hgc/g00r7ld1.bsm4r176.g00r7ld1.bsm4s6ae/Rinker_t_20231020222244?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fbiccamera%2F0193575000879%2F&#038;m=http%3A%2F%2Fm.rakuten.co.jp%2Fbiccamera%2Fi%2F13554004%2F&#038;rafcid=wsc_i_is_1018789010178996513" rel="nofollow">Google｜グーグル スマートスピーカー Google Nest Mini チャコール GA00781-JP [Bluetooth対応 /Wi-Fi対応]</a>							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=Google+%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB+%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%82%B9%E3%83%94%E3%83%BC%E3%82%AB%E3%83%BC&amp;tag=naopucho-22&amp;index=blended&amp;linkCode=ure&amp;creative=6339" rel="nofollow" class="yyi-rinker-link">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://hb.afl.rakuten.co.jp/hgc/g00r7ld1.bsm4r176.g00r7ld1.bsm4s6ae/Rinker_t_20231020222244?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fbiccamera%2F0193575000879%2F&amp;m=http%3A%2F%2Fm.rakuten.co.jp%2Fbiccamera%2Fi%2F13554004%2F&amp;rafcid=wsc_i_is_1018789010178996513" rel="nofollow" class="yyi-rinker-link">楽天市場</a>					</li>
								                											</ul>
					</div>
	</div>
</div>



<p class="wp-block-paragraph"><strong><span class="ystdb-inline--2">4.Google Homeに喋らせるサービスをラズパイに立てる</span></strong></p>



<p class="wp-block-paragraph">GoogleHomeNotifireをサービス化しラズパイが起動時に立ち上がるようにします。</p>



<p class="wp-block-paragraph">参考</p>



<figure class="wp-block-mamaduka-bookmark-card"><a class="bookmark-card" href="https://qiita.com/udon242/items/fef44cec7b243f93151b"><div class="bookmark-card__image"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?w=800&#038;ssl=1"/></div><div class="bookmark-card__content"><div class="bookmark-card__title">Google Homeで時報を知らせる #Node.js &#8211; Qiita</div><div class="bookmark-card__description">Google Home を購入したので、何か遊べないかと思い時報を作ってみことにしました。Raspberry Piで１時間ごとににGoogle Homeへリクエストを送ることで実現します。必要な…</div><div class="bookmark_card__meta"><img decoding="async" class="bookmark_card__meta-icon" src="https://cdn.qiita.com/assets/favicons/public/production-c620d3e403342b1022967ba5e3db1aaa.ico"/><span class="bookmark_card__meta-publisher">qiita.com</span></div></div></a></figure>



<p class="wp-block-paragraph">まず、サービスファイルを作成します。以下のコマンドを実行して、/etc/systemd/system/google-home-notifier.serviceというファイルを作成します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">Bash</span><span role="button" tabindex="0" data-code="sudo vi /etc/systemd/system/googlehomenotifier.service" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">vi</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">/etc/systemd/system/googlehomenotifier.service</span></span></code></pre></div>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">ShellScript</span><span role="button" tabindex="0" data-code="[Unit]
Description=google-home-notifier Server
After=syslog.target network-online.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/node example.js # nodeコマンドの絶対パスを指定すること
Restart=on-failure
RestartSec=10
KillMode=process
WorkingDirectory=/home/pi/google-home-notifier #google-home-notifierをクローンしたディレクトリパス

[Install]
WantedBy=multi-user.target" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #ECEFF4">[</span><span style="color: #D8DEE9FF">Unit</span><span style="color: #ECEFF4">]</span></span>
<span class="line"><span style="color: #D8DEE9">Description</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">google-home-notifier</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">Server</span></span>
<span class="line"><span style="color: #D8DEE9">After</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">syslog.target</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">network-online.target</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ECEFF4">[</span><span style="color: #D8DEE9FF">Service</span><span style="color: #ECEFF4">]</span></span>
<span class="line"><span style="color: #D8DEE9">Type</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">simple</span></span>
<span class="line"><span style="color: #D8DEE9">User</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">root</span></span>
<span class="line"><span style="color: #D8DEE9">ExecStart</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">/usr/local/bin/node</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">example.js</span><span style="color: #D8DEE9FF"> </span><span style="color: #616E88"># nodeコマンドの絶対パスを指定すること</span></span>
<span class="line"><span style="color: #D8DEE9">Restart</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">on-failure</span></span>
<span class="line"><span style="color: #D8DEE9">RestartSec</span><span style="color: #81A1C1">=</span><span style="color: #B48EAD">10</span></span>
<span class="line"><span style="color: #D8DEE9">KillMode</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">process</span></span>
<span class="line"><span style="color: #D8DEE9">WorkingDirectory</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">/home/pi/google-home-notifier</span><span style="color: #D8DEE9FF"> </span><span style="color: #616E88">#google-home-notifierをクローンしたディレクトリパス</span></span>
<span class="line"></span>
<span class="line"><span style="color: #ECEFF4">[</span><span style="color: #D8DEE9FF">Install</span><span style="color: #ECEFF4">]</span></span>
<span class="line"><span style="color: #D8DEE9">WantedBy</span><span style="color: #81A1C1">=</span><span style="color: #A3BE8C">multi-user.target</span></span></code></pre></div>



<p class="wp-block-paragraph">作成したサービスファイルを登録します。以下のコマンドを実行します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">Bash</span><span role="button" tabindex="0" data-code="sudo systemctl daemon-reload" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">systemctl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">daemon-reload</span></span></code></pre></div>



<p class="wp-block-paragraph">サービスを有効化します。以下のコマンドを実行します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">Bash</span><span role="button" tabindex="0" data-code="sudo systemctl enable google-home-notifier" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">systemctl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">enable</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">google-home-notifier</span></span></code></pre></div>



<p class="wp-block-paragraph">サービスを起動します。以下のコマンドを実行します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">Bash</span><span role="button" tabindex="0" data-code="sudo systemctl start google-home-notifier" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">sudo</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">systemctl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">start</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">google-home-notifier</span></span></code></pre></div>



<p class="wp-block-paragraph">これで、GoogleHomeNotifierがサービスとして登録され、ラズパイが起動時に立ち上がるようになりました。</p>



<p class="wp-block-paragraph"><strong><span class="ystdb-inline--2">5.立てたサービスを外部から呼び出せるようにMyDNSに登録を行いグローバルIPを取得する</span></strong></p>



<p class="wp-block-paragraph">MyDNSに登録します。以下のURLにアクセスして、アカウントを作成します。</p>



<figure class="wp-block-mamaduka-bookmark-card"><a class="bookmark-card" href="https://www.mydns.jp/"><div class="bookmark-card__content"><div class="bookmark-card__title">Dynamic DNS (DDNS) for Home Server and VPS etc, Free!</div><div class="bookmark-card__description">Free Dynamic DNS (DDNS) by POP3,IMAP4,FTP,HTTP-BASIC for Home Server, Webcam, VPS. You can use many free sub domain, .jp, .net, .asia, etc.. DynDNS is not free</div><div class="bookmark_card__meta"><img decoding="async" class="bookmark_card__meta-icon" src="https://www.mydns.jp/images/favicon.ico"/><span class="bookmark_card__meta-publisher">www.mydns.jp</span></div></div></a></figure>



<p class="wp-block-paragraph">MyDNSの設定は以下を参考にしました。</p>



<figure class="wp-block-mamaduka-bookmark-card"><a class="bookmark-card" href="https://cooeil.com/mydns-ddns/"><div class="bookmark-card__image"><img data-recalc-dims="1" height="236" width="400" decoding="async" src="https://i0.wp.com/cooeil.com/wp-content/uploads/2022/04/img_01261-400x236.jpg?resize=400%2C236&#038;ssl=1"/></div><div class="bookmark-card__content"><div class="bookmark-card__title">MyDNSの使い方とIPアドレスの自動通知方法【DDNS】 | Cooeil</div><div class="bookmark-card__description">DDNS(ダイナミックDNS)は変動するホスト側のIPアドレスとドメイン名を動的に結びつける機能です。DDNSを使えば動的IPアドレスで公開サーバーが構築できます。MyDNSの使い方とLinuxでのIPアドレス自動通知方法を解説します。</div><div class="bookmark_card__meta"><span class="bookmark_card__meta-publisher">cooeil.com</span></div></div></a></figure>



<p class="wp-block-paragraph">アカウントを作成したら、ログインして、以下の手順でドメインを登録します。</p>



<ol class="wp-block-list">
<li>トップページの「ドメイン登録」をクリックします。</li>



<li>ドメイン名を入力します。</li>



<li>ドメインの種類を選択します。</li>



<li>ドメインの登録期間を選択します。</li>



<li>ドメインの管理画面のパスワードを設定します。</li>



<li>「ドメインを登録する」をクリックします。</li>
</ol>



<p class="wp-block-paragraph">MyDNSを利用するためにはIPアドレスが変わった際に更新されるように定期的に通知する必要があります。cronを使って、定期的にIPアドレスを更新します。</p>



<figure class="wp-block-mamaduka-bookmark-card"><a class="bookmark-card" href="https://nellab.net/archives/00826/"><div class="bookmark-card__image"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/nellab.net/wp-content/uploads/2018/12/NEL-Laboratory.png?w=800&#038;ssl=1"/></div><div class="bookmark-card__content"><div class="bookmark-card__title">Raspberry PiでMyDNSへIPアドレスを自動通知する │ NEL Laboratory</div><div class="bookmark-card__description"></div><div class="bookmark_card__meta"><img data-recalc-dims="1" height="32" width="32" decoding="async" class="bookmark_card__meta-icon" src="https://i0.wp.com/nellab.net/wp-content/uploads/2021/09/cropped-icon-32x32.png?resize=32%2C32&#038;ssl=1"/><span class="bookmark_card__meta-publisher">nellab.net</span></div></div></a></figure>



<p class="wp-block-paragraph">cronで定期的にコマンドを実行するには、crontabファイルを編集します。以下のコマンドを実行して、crontabファイルを編集します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">Bash</span><span role="button" tabindex="0" data-code="crontab -e" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">crontab</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">-e</span></span></code></pre></div>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">ShellScript</span><span role="button" tabindex="0" data-code="*/5 * * * * curl -X POST -d '{&quot;ip&quot;: &quot;192.168.1.100&quot;}' https://mydns.jp/api/update/[ドメイン名]" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #81A1C1">*</span><span style="color: #D8DEE9FF">/5 </span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9FF"> curl -X POST -d </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">{&quot;ip&quot;: &quot;192.168.1.100&quot;}</span><span style="color: #ECEFF4">&#39;</span><span style="color: #D8DEE9FF"> https://mydns.jp/api/update/</span><span style="color: #ECEFF4">[</span><span style="color: #D8DEE9FF">ドメイン名</span><span style="color: #ECEFF4">]</span></span></code></pre></div>



<p class="wp-block-paragraph">以下の設定を行っています。</p>



<ul class="wp-block-list">
<li>*/5 * * * * : 5分ごとに実行</li>



<li>curl -X POST -d &#8216;{&#8220;ip&#8221;: &#8220;192.168.1.100&#8221;}&#8217; https://mydns.jp/api/update/[ドメイン名] : IPアドレスを更新するコマンド</li>
</ul>



<p class="wp-block-paragraph">crontabファイルを保存します。以下のコマンドを実行します。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">ShellScript</span><span role="button" tabindex="0" data-code=":wq" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">:wq</span></span></code></pre></div>



<p class="wp-block-paragraph"><strong><span class="ystdb-inline--2">6.ルータのポート設定を行い外部から立てたサービスを呼び出せるようにする</span></strong></p>



<p class="wp-block-paragraph">ポートフォワーディングの設定を行い、外部からの呼び出しで自宅内LANのサービスを呼び出します。</p>



<p class="wp-block-paragraph">ルータのポートフォワーディング機能を使用して、外部からの呼び出しを自宅内LANのサービスに転送します。</p>



<p class="wp-block-paragraph">具体的な設定方法は、ルータのメーカーや機種によって異なります。以下に、一般的な設定手順をご紹介します。</p>



<ol class="wp-block-list">
<li>ルータの設定画面にアクセスします。</li>



<li>ポートフォワーディングの設定画面を開きます。</li>



<li>転送先のIPアドレスとポート番号を設定します。</li>



<li>転送元のポート番号を設定します。</li>



<li>転送の有効化を設定します。</li>
</ol>



<p class="wp-block-paragraph"><strong>転送先のIPアドレスとポート番号</strong></p>



<p class="wp-block-paragraph">転送先のIPアドレスは、自宅内LANでサービスを実行しているコンピュータのIPアドレスです。ポート番号は、そのコンピュータで実行しているサービスのポート番号です。</p>



<p class="wp-block-paragraph"><strong>転送元のポート番号</strong></p>



<p class="wp-block-paragraph">転送元のポート番号は、外部からの呼び出しに使用するポート番号です。任意のポート番号を設定できます。</p>



<p class="wp-block-paragraph"><strong>転送の有効化</strong></p>



<p class="wp-block-paragraph">転送の有効化を設定することで、ポートフォワーディングが有効になります。</p>



<p class="wp-block-paragraph"><strong><span class="ystdb-inline--2">7.IFTTTの位置情報を使い自宅付近に入ったらPOSTを行うよう設定する</span></strong></p>



<p class="wp-block-paragraph">以下のようにIFTTTの位置情報を使い、自宅付近に入ったらPOSTを行うよう設定します。</p>



<p class="wp-block-paragraph"><strong>IFTTTの設定</strong></p>



<ol class="wp-block-list">
<li>IFTTTにログインします。</li>



<li>「My Applets」をクリックします。</li>



<li>「Create」をクリックします。</li>



<li>「If this」をクリックします。</li>



<li>「Location」を選択します。</li>



<li>「Enter a location」をクリックします。</li>



<li>自宅の位置を入力します。</li>



<li>「Create」をクリックします。</li>



<li>「Then that」をクリックします。</li>



<li>「Make a web request」を選択します。</li>



<li>「URL」にMyDNSで取得したURLを入力します。</li>



<li>「Method」に「POST」を選択します。</li>



<li>「ContentType」に「application/x-www-form-urlencoded」を選択します。</li>



<li>「Additional Headers」を指定しない場合は、空白のままにします。</li>



<li>「Body」に「text」パラメータに喋らせたい文言を指定します。</li>



<li>「Create」をクリックします。</li>
</ol>



<h2 class="wp-block-heading"><strong>動作確認</strong></h2>



<p class="wp-block-paragraph">以下のコマンドで自宅のGoogleHomeが喋るか確認ができます。</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#39404f;color:#c8d0e0">Bash</span><span role="button" tabindex="0" data-code="curl -X POST -d &quot;text=テスト&quot; http://localhost:8091/google-home-notifier" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #88C0D0">curl</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">-X</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">POST</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">-d</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">text=テスト</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF"> </span><span style="color: #A3BE8C">http://localhost:8091/google-home-notifier</span></span></code></pre></div>



<p class="wp-block-paragraph">以下のように実際に外出して、IFTTTで設定した位置情報の外に出ます。</p>



<p class="wp-block-paragraph"><strong>外出</strong></p>



<ol class="wp-block-list">
<li>自宅から出発します。</li>



<li>IFTTTで設定した位置情報の外に出ます。</li>
</ol>



<p class="wp-block-paragraph"><strong>動作確認</strong></p>



<p class="wp-block-paragraph">IFTTTで設定した位置情報の外に出たら、Google Homeが喋らないことを確認します。</p>



<p class="wp-block-paragraph"><strong>帰宅</strong></p>



<ol class="wp-block-list">
<li>自宅に帰宅します。</li>



<li>IFTTTで設定した位置情報の中に入ります。</li>
</ol>



<p class="wp-block-paragraph"><strong>動作確認</strong></p>



<p class="wp-block-paragraph">IFTTTで設定した位置情報の中に入ったら、Google Homeが喋ることを確認します。</p>



<h2 class="wp-block-heading"><strong>まとめ</strong></h2>



<p class="wp-block-paragraph">ラズパイとIFTTTを使えば、さまざまなことができます。</p>



<p class="wp-block-paragraph">今回は、位置情報を取得して通知する方法を紹介しましたが、ほかにもさまざまなことができます。</p>



<p class="wp-block-paragraph">たとえば、以下のようなものが考えられます。</p>



<ul class="wp-block-list">
<li>特定の場所に行ったときに通知する</li>



<li>特定の時間になったときに通知する</li>



<li>特定の条件を満たしたときに通知する</li>
</ul>



<p class="wp-block-paragraph">ぜひ、自分だけの通知を設定してみてください。</p>



<p class="wp-block-paragraph">以下に、いくつかのアイデアをご紹介します。</p>



<ul class="wp-block-list">
<li>自宅に帰宅したら、ニュースを流す</li>



<li>仕事場に到着したら、スケジュールを確認する</li>



<li>寝室に入ったら、照明を暗くする</li>



<li>玄関に入ったら、ドアベルを鳴らす</li>
</ul>



<p class="wp-block-paragraph">自分だけの通知を設定することで、生活をより便利で快適なものにすることができます。</p>



<!-- START MoshimoAffiliateEasyLink -->
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"【国内正規代理店品】Raspberry Pi4 ModelB 4GB ラズベリーパイ4 技適対応品【RS・OKdo版】","b":"Raspberry Pi","t":"Raspberry Pi 4 Model B 4GB","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/51ETv8Le3nL._SL500_.jpg","\/51HqZNH5TZL._SL500_.jpg","\/51516bJdm+L._SL500_.jpg","\/41YDrovi0lL._SL500_.jpg","\/516EIfbwvQL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/B081YD3VL5","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/B081YD3VL5","a_id":1241946,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/%E3%80%90%E5%9B%BD%E5%86%85%E6%AD%A3%E8%A6%8F%E4%BB%A3%E7%90%86%E5%BA%97%E5%93%81%E3%80%91Raspberry%20Pi4%20ModelB%204GB%20%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%91%E3%82%A44%20%E6%8A%80%E9%81%A9%E5%AF%BE%E5%BF%9C%E5%93%81%E3%80%90RS%E3%83%BBOKdo%E7%89%88%E3%80%91\/","a_id":1241944,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2},{"id":3,"u_tx":"Yahoo!ショッピングで見る","u_bc":"#66a7ff","u_url":"https:\/\/shopping.yahoo.co.jp\/search?first=1\u0026p=%E3%80%90%E5%9B%BD%E5%86%85%E6%AD%A3%E8%A6%8F%E4%BB%A3%E7%90%86%E5%BA%97%E5%93%81%E3%80%91Raspberry%20Pi4%20ModelB%204GB%20%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%91%E3%82%A44%20%E6%8A%80%E9%81%A9%E5%AF%BE%E5%BF%9C%E5%93%81%E3%80%90RS%E3%83%BBOKdo%E7%89%88%E3%80%91","a_id":1274215,"p_id":1225,"pl_id":27061,"pc_id":1925,"s_n":"yahoo","u_so":3}],"eid":"Khge1","s":"s"});
</script>
<div id="msmaflink-Khge1">リンク</div>
<!-- MoshimoAffiliateEasyLink END -->



<!-- START MoshimoAffiliateEasyLink -->
<script type="text/javascript">
(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;
b[a]=b[a]||function(){arguments.currentScript=c.currentScript
||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};
c.getElementById(a)||(d=c.createElement(f),d.src=g,
d.id=a,e=c.getElementsByTagName("body")[0],e.appendChild(d))})
(window,document,"script","//dn.msmstatic.com/site/cardlink/bundle.js?20220329","msmaflink");
msmaflink({"n":"Google Nest-Chalk ????","b":"Google","t":"GA00516-CA","d":"https:\/\/m.media-amazon.com","c_p":"\/images\/I","p":["\/41JCbgwcG2L._SL500_.jpg","\/41Wh1Os-P2L._SL500_.jpg","\/31RPt+iiQ+L._SL500_.jpg","\/314L3vI1VYL._SL500_.jpg","\/31oPQT13XnL._SL500_.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/B081B8QH9Q","t":"amazon","r_v":""},"v":"2.1","b_l":[{"id":1,"u_tx":"Amazonで見る","u_bc":"#f79256","u_url":"https:\/\/www.amazon.co.jp\/dp\/B081B8QH9Q","a_id":1241946,"p_id":170,"pl_id":27060,"pc_id":185,"s_n":"amazon","u_so":1},{"id":2,"u_tx":"楽天市場で見る","u_bc":"#f76956","u_url":"https:\/\/search.rakuten.co.jp\/search\/mall\/Google%20Nest-Chalk%20%3F%3F%3F%3F\/","a_id":1241944,"p_id":54,"pl_id":27059,"pc_id":54,"s_n":"rakuten","u_so":2},{"id":3,"u_tx":"Yahoo!ショッピングで見る","u_bc":"#66a7ff","u_url":"https:\/\/shopping.yahoo.co.jp\/search?first=1\u0026p=Google%20Nest-Chalk%20%3F%3F%3F%3F","a_id":1274215,"p_id":1225,"pl_id":27061,"pc_id":1925,"s_n":"yahoo","u_so":3}],"eid":"umxDn","s":"s"});
</script>
<div id="msmaflink-umxDn">リンク</div>
<!-- MoshimoAffiliateEasyLink END -->



<iframe sandbox="allow-popups allow-scripts allow-modals allow-forms allow-same-origin" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=naopucho-22&#038;language=ja_JP&#038;o=9&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=as_ss_li_til&#038;asins=B08BFZ7PXS&#038;linkId=4d460d760bef78e373066ecb5b50011e"></iframe>
<p>投稿 <a href="https://jyuvaworks.blue/2023/10/18/google-home%e3%81%a7%e5%b8%b0%e5%ae%85%e3%82%92%e6%a4%9c%e7%9f%a5%e3%81%97%e3%81%a6%e5%96%8b%e3%82%89%e3%81%9b%e3%82%8b%ef%bc%81%e3%83%a9%e3%82%ba%e3%83%91%e3%82%a4%e3%81%a8ifttt%e3%81%a7%e5%ae%9f/">Google Homeで帰宅を検知して喋らせる！ラズパイとIFTTTで実現する方法</a> は <a href="https://jyuvaworks.blue">jyuvaworks</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jyuvaworks.blue/2023/10/18/google-home%e3%81%a7%e5%b8%b0%e5%ae%85%e3%82%92%e6%a4%9c%e7%9f%a5%e3%81%97%e3%81%a6%e5%96%8b%e3%82%89%e3%81%9b%e3%82%8b%ef%bc%81%e3%83%a9%e3%82%ba%e3%83%91%e3%82%a4%e3%81%a8ifttt%e3%81%a7%e5%ae%9f/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">241</post-id>	</item>
	</channel>
</rss>
