How2TerminalHomeKit
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[How2TerminalSiri]]
** HomebridgeとMQTTを使う [#b48a2a14]
ターミナルのコマンドラインやプログラムの中からHomeKitのス...
- Homebridgeサーバを用意して
- MQTT (Mosquitto)ブローカーを用意する
などの方法がありました。以下をご覧ください。
- http://is.ocha.ac.jp/~siio/?How2Homebridge_Mqttthing
- http://is.ocha.ac.jp/~siio/?How2HomeKit_MQTT
- http://is.ocha.ac.jp/~siio/?How2Homebridge
- http://is.ocha.ac.jp/~siio/?How2MQTT
- http://is.ocha.ac.jp/~siio/?How2NodejsRaspberryPi
- http://is.ocha.ac.jp/~siio/?How2ESP32MQTT
- http://is.ocha.ac.jp/~siio/?.How2DockerQNAP
- http://is.ocha.ac.jp/~siio/?.How2autolock408
ここでは、macOS 12.0 Montereyになって導入された、ショート...
** ショートカット.appを使う [#w2c7358b]
ショートカット.app(英語名:Shortcuts.app)は、今までiOS,...
macOS 12.0になってmacOSにも移植されました。
macOSの自動化をする純正アプリケーションには、今まで、
- スクリプトエディタ.app
- Automator.app
がありましたが、ショートカットが3個目として追加されました。
ショートカットはiOSと互換性があることもあって、今後は、Au...
&ref(shortcuts.jpg);
ショートカットからホーム.appが管理するHomeKitをコントロー...
ちなみに、スクリプトエディタやAutomatorからは、今も昔もHo...
HomeKitがOSA, AppleScriptに対応していないためのようです。
ショートカットは、スマート家電などの自動化もウリなので、...
さらに、ショートカットをターミナルから起動するshortcutsコ...
これにより、ターミナルからHomeKitをコントロールできます。
Terminal (shortcutsコマンド)---> Shortcuts.app ---> Home...
またショートカットはAppleScriptに対応してます。
なのでAppleScript経由でもHomeKitをコントロールできます。
Terminal (AppleScript)---> Shortcuts.app ---> Home.app
**クイックアクションを作る [#he46b6e5]
入力文字列に従って、複数のHomeKitデバイスを制御するショー...
タイプのショートカットがあるようですが、ここでは「クイッ...
クイックアクションとして設定すると、起動時のパラメタを受...
クイックアクションは、本来はサービスメニュー(メニューバ...
キーボードショートカットを設定する機能です。
いずれも不要なので設定していませんが、クイックアクション...
右のペーンのチェックボックスで、「クイックアクションとし...
&ref(shortcut_script.jpg);
作ったショートカットの中身を上に示します。名前をHomeKitSh...
文字列比較を、「次と等しい」ではなく「次で始まる」にした...
変数設定文、if文、Home.appアクセスのブロックなどは、右の...
こういうタイプのビジュアルプログラミングは見た目以上に面...
「IKEAのあかり」を設定
という行の部分は、右ペーンから「App」「ホーム」「"xxx"を...
ここでは「IKEAのあかり」という名前をつけた、IKEAの無線制...
https://www.ikea.com/jp/ja/p/tradfri-led-bulb-e26-806-lum...
ここでは、呼び出された時に得られたテキストの入力をcommand...
その内容に従ってif文で分岐して、異なるHomeKitデバイスをon...
** shortcutsコマンドから使う(おすすめ) [#h587504f]
macOS Montereyからコマンドラインから使えるshortcutsコマン...
この次に説明するAppleScriptを使う方法より新しい方法なので...
shortcutsコマンドは、-hでヘルプが出ます。
% shortcuts -h
OVERVIEW: Command-line utility for running shortcuts.
USAGE: shortcuts <subcommand>
OPTIONS:
-h, --help Show help information.
SUBCOMMANDS:
run Run a shortcut.
list List your shortcuts.
view View a shortcut in Shortcuts.
sign Sign a shortcut file.
See 'shortcuts help <subcommand>' for detailed help.
shortcuts listコマンドで、登録されているショートカットの...
% shortcuts list
HomeKitShortcut
Shazamショートカット
音楽クイズ
QRコードを作成する
ショートカットとは?
先ほど作ったショートカットが一覧にあれば、コマンドライン...
$echo -n IKEA_LED_ON | shortcuts run HomeKitShortcut
をすればIKEAのあかりが点灯します。他のコマンドも同様です。
$echo -n IKEA_LED_OFF | shortcuts run HomeKitShortcut
$echo -n HEATER_ON | shortcuts run HomeKitShortcut
$echo -n HEATER_OFF | shortcuts run HomeKitShortcut
echoに-nオプションをつけているのは、文字列末尾に改行コー...
ショートカットの文字列比較は、改行コードまで含めて判断す...
上記のHomeKitShortcutのスクリプトでは、「次で始まる」で文...
command用のテキストを引数にするスクリプトファイルを以下の...
#!/bin/sh
#Shell script to send a message to a shortcut named Home...
if [ $# = 0 ]; then echo 'Usage:' $0 '"command"'; exit 1...
echo $1 | shortcuts run HomeKitShortcut
これを例えば、hkcommand.shという名前のファイルで保存して...
% ./hkcommand.sh IKEA_LED_ON
% ./hkcommand.sh IKEA_LED_OFF
% ./hkcommand.sh HEATER_ON
% ./hkcommand.sh HEATER_OFF
シェルスクリプトファイルから実行するechoでは-nオプション...
** AppleScriptから使う [#i71708ff]
上で作ったHomeKitShortcutを、AppleScriptから使うこともで...
でもshortcutsコマンドから使う方が簡単な気がします。そちら...
ターミナルから、
osascript -e 'tell application "Shortcuts" to run shortc...
とすれば、呼び出せて、最初のif文が働いて、明かりが点灯す...
command用のテキストを引数にするスクリプトファイルを以下の...
#!/usr/bin/osascript
on run argv
tell application "Shortcuts"
run shortcut "HomeKitShortcut" with input (item ...
end tell
end run
これを例えば、hkcommand.osascriptという名前のファイルで保...
% ./hkcommand.osascript IKEA_LED_ON
% ./hkcommand.osascript IKEA_LED_OFF
% ./hkcommand.osascript HEATER_ON
% ./hkcommand.osascript HEATER_OFF
ちなみに、現在では実行後に missing value という警告メッセ...
** Processingからshellコマンドを実行する(おまけ) [#m729...
以下のようにして実行できるらしいです。
void setup(){
StringList strout=new StringList(); //for standard out
StringList strerr=new StringList(); //for error
shell(strout,strerr,"/Volumes/home/siio/hkcommand.sh IK...
for(String el:strout){
println(el);
}
for(String el:strerr){
println(el);
}
}
終了行:
[[How2TerminalSiri]]
** HomebridgeとMQTTを使う [#b48a2a14]
ターミナルのコマンドラインやプログラムの中からHomeKitのス...
- Homebridgeサーバを用意して
- MQTT (Mosquitto)ブローカーを用意する
などの方法がありました。以下をご覧ください。
- http://is.ocha.ac.jp/~siio/?How2Homebridge_Mqttthing
- http://is.ocha.ac.jp/~siio/?How2HomeKit_MQTT
- http://is.ocha.ac.jp/~siio/?How2Homebridge
- http://is.ocha.ac.jp/~siio/?How2MQTT
- http://is.ocha.ac.jp/~siio/?How2NodejsRaspberryPi
- http://is.ocha.ac.jp/~siio/?How2ESP32MQTT
- http://is.ocha.ac.jp/~siio/?.How2DockerQNAP
- http://is.ocha.ac.jp/~siio/?.How2autolock408
ここでは、macOS 12.0 Montereyになって導入された、ショート...
** ショートカット.appを使う [#w2c7358b]
ショートカット.app(英語名:Shortcuts.app)は、今までiOS,...
macOS 12.0になってmacOSにも移植されました。
macOSの自動化をする純正アプリケーションには、今まで、
- スクリプトエディタ.app
- Automator.app
がありましたが、ショートカットが3個目として追加されました。
ショートカットはiOSと互換性があることもあって、今後は、Au...
&ref(shortcuts.jpg);
ショートカットからホーム.appが管理するHomeKitをコントロー...
ちなみに、スクリプトエディタやAutomatorからは、今も昔もHo...
HomeKitがOSA, AppleScriptに対応していないためのようです。
ショートカットは、スマート家電などの自動化もウリなので、...
さらに、ショートカットをターミナルから起動するshortcutsコ...
これにより、ターミナルからHomeKitをコントロールできます。
Terminal (shortcutsコマンド)---> Shortcuts.app ---> Home...
またショートカットはAppleScriptに対応してます。
なのでAppleScript経由でもHomeKitをコントロールできます。
Terminal (AppleScript)---> Shortcuts.app ---> Home.app
**クイックアクションを作る [#he46b6e5]
入力文字列に従って、複数のHomeKitデバイスを制御するショー...
タイプのショートカットがあるようですが、ここでは「クイッ...
クイックアクションとして設定すると、起動時のパラメタを受...
クイックアクションは、本来はサービスメニュー(メニューバ...
キーボードショートカットを設定する機能です。
いずれも不要なので設定していませんが、クイックアクション...
右のペーンのチェックボックスで、「クイックアクションとし...
&ref(shortcut_script.jpg);
作ったショートカットの中身を上に示します。名前をHomeKitSh...
文字列比較を、「次と等しい」ではなく「次で始まる」にした...
変数設定文、if文、Home.appアクセスのブロックなどは、右の...
こういうタイプのビジュアルプログラミングは見た目以上に面...
「IKEAのあかり」を設定
という行の部分は、右ペーンから「App」「ホーム」「"xxx"を...
ここでは「IKEAのあかり」という名前をつけた、IKEAの無線制...
https://www.ikea.com/jp/ja/p/tradfri-led-bulb-e26-806-lum...
ここでは、呼び出された時に得られたテキストの入力をcommand...
その内容に従ってif文で分岐して、異なるHomeKitデバイスをon...
** shortcutsコマンドから使う(おすすめ) [#h587504f]
macOS Montereyからコマンドラインから使えるshortcutsコマン...
この次に説明するAppleScriptを使う方法より新しい方法なので...
shortcutsコマンドは、-hでヘルプが出ます。
% shortcuts -h
OVERVIEW: Command-line utility for running shortcuts.
USAGE: shortcuts <subcommand>
OPTIONS:
-h, --help Show help information.
SUBCOMMANDS:
run Run a shortcut.
list List your shortcuts.
view View a shortcut in Shortcuts.
sign Sign a shortcut file.
See 'shortcuts help <subcommand>' for detailed help.
shortcuts listコマンドで、登録されているショートカットの...
% shortcuts list
HomeKitShortcut
Shazamショートカット
音楽クイズ
QRコードを作成する
ショートカットとは?
先ほど作ったショートカットが一覧にあれば、コマンドライン...
$echo -n IKEA_LED_ON | shortcuts run HomeKitShortcut
をすればIKEAのあかりが点灯します。他のコマンドも同様です。
$echo -n IKEA_LED_OFF | shortcuts run HomeKitShortcut
$echo -n HEATER_ON | shortcuts run HomeKitShortcut
$echo -n HEATER_OFF | shortcuts run HomeKitShortcut
echoに-nオプションをつけているのは、文字列末尾に改行コー...
ショートカットの文字列比較は、改行コードまで含めて判断す...
上記のHomeKitShortcutのスクリプトでは、「次で始まる」で文...
command用のテキストを引数にするスクリプトファイルを以下の...
#!/bin/sh
#Shell script to send a message to a shortcut named Home...
if [ $# = 0 ]; then echo 'Usage:' $0 '"command"'; exit 1...
echo $1 | shortcuts run HomeKitShortcut
これを例えば、hkcommand.shという名前のファイルで保存して...
% ./hkcommand.sh IKEA_LED_ON
% ./hkcommand.sh IKEA_LED_OFF
% ./hkcommand.sh HEATER_ON
% ./hkcommand.sh HEATER_OFF
シェルスクリプトファイルから実行するechoでは-nオプション...
** AppleScriptから使う [#i71708ff]
上で作ったHomeKitShortcutを、AppleScriptから使うこともで...
でもshortcutsコマンドから使う方が簡単な気がします。そちら...
ターミナルから、
osascript -e 'tell application "Shortcuts" to run shortc...
とすれば、呼び出せて、最初のif文が働いて、明かりが点灯す...
command用のテキストを引数にするスクリプトファイルを以下の...
#!/usr/bin/osascript
on run argv
tell application "Shortcuts"
run shortcut "HomeKitShortcut" with input (item ...
end tell
end run
これを例えば、hkcommand.osascriptという名前のファイルで保...
% ./hkcommand.osascript IKEA_LED_ON
% ./hkcommand.osascript IKEA_LED_OFF
% ./hkcommand.osascript HEATER_ON
% ./hkcommand.osascript HEATER_OFF
ちなみに、現在では実行後に missing value という警告メッセ...
** Processingからshellコマンドを実行する(おまけ) [#m729...
以下のようにして実行できるらしいです。
void setup(){
StringList strout=new StringList(); //for standard out
StringList strerr=new StringList(); //for error
shell(strout,strerr,"/Volumes/home/siio/hkcommand.sh IK...
for(String el:strout){
println(el);
}
for(String el:strerr){
println(el);
}
}
ページ名: