すべての連携
内蔵スマートホームと Web

HTTP

Macro Deck に同梱

ボタンから HTTP リクエストを送信し、応答の値を変数に保存します。

  • GET、POST、PUT、PATCH、DELETE などに対応し、クエリとヘッダーも指定可能
  • Basic、Bearer トークン、API キーのヘッダーによる認証
  • JSON、フォーム、テキスト、ファイルアップロードの本文
  • ステータス、ヘッダー、JSON の値を変数に保存
  • クエリパラメーターとヘッダーの値に変数を使用可能

HTTP 連携は Macro Deck から Web リクエストを送信します。Webhook の呼び出し、Web API を持つネットワーク上のデバイスの操作、オンラインサービスから値を読み取ってボタンに表示する、といった用途に使えます。Macro Deck に同梱されていて最初から有効なので、接続やサインインは必要ありません。

2 つのアクション

HTTP リクエストを送信 は完全なリクエストを組み立てます。メソッド を選び、URL を入力し、クエリパラメーター と ヘッダー を名前と値の組で追加します。本文の種類 では none、json、form、text、multipart (追加のフォームフィールド付きのファイルアップロード) から選びます。認証 には basic (ユーザー名とパスワード)、bearer (トークン)、header (X-Api-Key など、名前を指定したヘッダーに入れるトークン) があります。期待するステータス は、どの応答を成功とみなすかを決めます (既定は 2xx)。タイムアウト の設定、リダイレクトに従う のオフ、応答の最大サイズ(バイト) の制限もできます。

取得 は応答の一部を変数に保存します。各行で変数名とセレクターを組にします。セレクターは $status、$ok、$duration、$body、$truncated、$headers、$header:<name>、または data.items[0].name のような JSON パスです。まだ存在しない変数は作成されます。

JSON の値を取得 は、値を 1 つだけ読み取るための簡易版です。URL、JSON パス、変数に保存 の変数を入力します。

設定例

  • HTTP リクエストを送信 で本文の種類を json にし、チャットの Webhook に {"text": "Stream is live"} を投稿するボタン。
  • ネットワーク上のスマートプラグを、そのローカル Web API でオンにするボタン。
  • JSON の値を取得 で公開 API から現在の価格を読み取り、{{ vars.price }} でラベルに表示するボタン。
  • リクエストを送信して $status を取得し、サーバーが 200 で応答しなかったときに もし / それ以外 でボタンを赤くするフロー。

クエリパラメーターとヘッダーの値には、{{ vars.channel }} のように変数を含めることができます。リクエストは Macro Deck が動いているコンピューターから送られるので、http://192.168.1.20 のようなアドレスでそのコンピューターのネットワーク内のデバイスに届きます。サーバーに接続できない、リクエストがタイムアウトした、TLS 証明書が拒否された、ステータスが期待どおりでない、といった場合、アクションはわかりやすいメッセージを表示して失敗します。

Home Assistant

Macro Deck に同梱

Home Assistant のライトの切り替え、シーンやスクリプトの実行を行い、ライブの状態をデッキに表示します。

AdGuard Home

Macro Deck に同梱

AdGuard Home の保護をオン、オフ、一時停止し、その統計をデッキに表示します。

RSS フィード

Macro Deck に同梱

RSS フィードや Atom フィードをフォローし、最新の記事をウィジェットに表示して、新しい記事が届いたときに反応します。

天気

Macro Deck に同梱

API キーなしで、登録した場所の現在の天気と予報をデッキに表示します。