9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

n8n × MacroDroid × LINEで「今から帰る」をワンタップ通知する仕組みを作った

9
Posted at

はじめに

「今から帰る」と家族に連絡するのは大事だけど、毎回スマホを開いてLINEを立ち上げて、文章を打って送るのは少し面倒です。

そこで今回は、AndroidのMacroDroidn8n、そして LINE Messaging API を組み合わせて、
スマホからワンタップで家族へ帰宅連絡を送れる仕組み を作りました。

やりたいことはとてもシンプルです。

  • スマホでMacroDroidを実行する
  • n8nのWebhookにPOSTする
  • n8n側でトークンを確認する
  • LINEに家族向けメッセージをPush送信する

最終的には、こんな通知がLINEに届きます。

けんじが今から帰ります🏠
到着目安: 20分後
送信時刻: 2026/04/19 15:30:12

到着目安を送らない場合は、以下のようなシンプル版にもできます。

けんじが今から帰ります🏠
送信時刻: 2026/04/19 15:30:12

ちょっとした自動化ですが、日常の小さな手間を減らすにはかなり便利でした。

作ったものの概要

今回作ったワークフローは、次のような構成です。

MacroDroid
   ↓
n8n Webhook
   ↓
Codeノードで入力値の整形
   ↓
IFノードでトークン確認
   ↓
HTTP RequestノードでLINE Messaging APIを実行

役割としてはこうです。

  • MacroDroid
    スマホ側の実行トリガー
  • Webhook
    外部からのPOST受け口
  • Codeノード
    bodyの読み取り、トークン確認用データの準備、メッセージ生成
  • IFノード
    不正なリクエストを弾く
  • HTTP Requestノード
    LINE Messaging APIにPush送信

この仕組みでできること

今回の構成では、最低限次の情報を送れます。

  • 誰が帰るか
  • 到着目安
  • 送信時刻

たとえばPOSTのbodyはこんなイメージです。

{
  "token": "YOUR_SECRET_TOKEN",
  "name": "けんじ",
  "eta": "20分後"
}

eta を省略すれば、到着目安なしのメッセージになります。

{
  "token": "YOUR_SECRET_TOKEN",
  "name": "けんじ"
}

n8n側の実装

1. WebhookでPOSTを受け取る

まずはWebhookノードを作成します。

設定はシンプルです。

  • HTTP Method: POST
  • Path: going-home

これで、たとえば以下のURLで受け取れるようになります。

今回は「GETではなくPOSTにしたい」という構成なので、
nameeta はURLクエリではなく bodyで受け取る前提 にしています。

2. Codeノードでメッセージを組み立てる

次に、Webhookで受け取ったbodyを使って、トークンチェックとメッセージ生成を行います。

今回のCodeノードは以下のような内容です。

const body = $json.body || {};

const expectedToken = 'YOUR_SECRET_TOKEN';
const providedToken = body.token || '';

const userName = body.name || '家族';
const eta = body.eta || '';

const now = new Date().toLocaleString('ja-JP', { timeZone: 'Asia/Tokyo' });

const valid = providedToken === expectedToken;

const message = eta
  ? `${userName}が今から帰ります🏠\n到着目安: ${eta}\n送信時刻: ${now}`
  : `${userName}が今から帰ります🏠\n送信時刻: ${now}`;

return [{
  valid,
  lineAccessToken: 'YOUR_LINE_CHANNEL_ACCESS_TOKEN',
  lineTo: 'YOUR_LINE_USER_ID',
  message
}];

このノードでは、主に次のことをしています。

  • bodyから token name eta を取得
  • token が正しいかを判定
  • JSTの現在時刻を作成
  • LINE送信用メッセージを完成させる
  • 後続ノードで使う値をまとめて返す

3. IFノードでトークン確認

次に、Codeノードで作成した valid を使ってIFノードで判定します。

ここでは、

  • valid = true のときだけ送信
  • valid = false のときは送信しない

というシンプルな制御です。

設定例は以下のようなイメージです。
image.png

これで、正しいトークンが送られたときだけLINE通知が走ります。

4. HTTP RequestノードでLINE Push APIを呼ぶ

最後に、LINE Messaging APIへPush送信します。

APIのエンドポイントはこちらです。

https://api.line.me/v2/bot/message/push

HTTP Requestノードでは以下のように設定します。

メソッド

POST

ヘッダー

{
"Content-Type": "application/json",
"Authorization": "Bearer <LINEチャネルアクセストークン>"
}

Body

{
  "to": "送信先ユーザーID",
  "messages": [
    {
      "type": "text",
      "text": "送信本文"
    }
  ]
}

n8n の式で書くと、こんな感じです。

{
  "to": $json.lineTo,
  "messages": [
    {
      "type": "text",
      "text": $json.message
    }
  ]
}

MacroDroid側の使い方イメージ

スマホ側では MacroDroid から n8n のWebhookに対して POST を送ります。

bodyの例は以下です。

{
  "token": "YOUR_SECRET_TOKEN",
  "name": "けんじ",
  "eta": "20分後"
}

このマクロを作っておけば、たとえば次のような運用ができます。

  • 駅を出たタイミングで実行
  • 会社を出たタイミングで実行
  • ホーム画面ショートカットからワンタップ実行

eta を固定値にしてもいいですし、実行時に入力させても便利です。

実際に使ってみて良かったこと

使ってみると、思った以上に便利でした。

特に良かったのは以下の点です。

  • 毎回メッセージを打たなくていい
    「今から帰る」と毎回打つのはほんの数秒ですが、毎日のことになると地味に面倒です。
    ワンタップで済むだけで、かなり気が楽になります。

  • 連絡漏れが減る
    手動だと「あとで送ろう」と思って忘れることがありますが、
    ルーチンにしてしまえば連絡漏れが起きにくくなります。

  • 到着目安も一緒に伝えやすい
    ただ「帰る」だけでなく、到着目安も入れられるので、相手側も動きやすいです。

さらに改善するなら

今回の仕組みはシンプルで実用的ですが、発展させる余地もあります。

  • 現在地やGoogle Mapsリンクを付ける

今回は現在地は保留ですが、将来的にはかなり相性がいいです。

たとえば、

  • 現在地の住所
  • Google Mapsリンク

などをメッセージに含めることもできます。

まとめ

今回は、n8n × MacroDroid × LINE を使って、
「今から帰る」をワンタップで送れる自動化を作りました。

流れとしてはとてもシンプルです。

  • MacroDroidでPOST
  • n8n Webhookで受け取る
  • Codeノードで本文作成
  • IFノードでトークン確認
  • LINE Messaging APIでPush送信

ちょっとした仕組みですが、
こういう 生活の小さな面倒を減らす自動化 は満足度が高いです。

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?