ホーム » コンピュータ » iOS (ページ 3)

「iOS」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

iPhone12 mini と HomePod mini

職場で KDDI の 5G アンテナが導入されたのもあるし、3年半での iPhone X から iPhone 12 mini への機種変 au Online Shop で発注したら、HomePod mini が並んでて、思わず一緒に購入しちゃった。

{CAPTION}

iPhone 12 への移行は、基本はすぐなんだけど、2段階認証アプリとして使っていた Saleforce のパスワードが分からない。今までは、MS365 専用で使っていた Microsoft Authenticator とペアで使っていたけど、ひとつひとつ Microsoft Authenticator に移動。仕事用のアカウント管理でも使っているので、20個ほどの移行作業で疲れた。

HomePod mini は、ひとまず設定が終わり、今まで Google Home mini でやっていたことが、スマホ無しの Siri でできるようになった。赤外線リモコンなどの制御に Raspberry-Pi と HomeBridge の操作をスマホなど関係なく使える。それに、HomePod が中継してくれるので、自宅外でも自宅内の状態もわかる。

Microsoft To Do は必須

仕事で Microsoft 365 を使っているけど、Microsoft To Do アプリが超便利。

メールソフトでメールをマークすると、To Do で表示されるようになる。Outlook だけでなく Thunderbird でマークしてもいい。
To Do アプリ側から、逆にメールを参照することもできる。

締切忘れでごめんなさいメールを書きなれていると、こういうのは超便利。

{CAPTION}

{CAPTION}

 

iOS14.5で体重計が動かなくなる

iOS 14.5 で コロナによるマスクが普通になり、FaceID の対応が取れ、Apple Watch さえ持ってれば、かなり便利になった。でも、アプリがシステムのデータを触るときのルールが厳しくなったので、いろいろと影響がでてきた。

毎日使ってる、Bluetooth 連動でデータが取れる体重計も、アプリが動かなくなった。新しい別アプリが提供されていたのでそれをインストールして無事使えるようになった。ただ、ヘルスケアにデータは残っているけど、このアプリでの過去データが見れなくなった。

{CAPTION}
{CAPTION}

マスクをしてのFaceIDが不便になった対策の iOS14.5 が出たので、早々にインストール。Apple Watch と連携しての認証ですごく便利。
ただ今朝 bluetooth 連動の体重計が、システム領域へのアクセス条件が厳しくなり動かなくなった。アプリの更新もかからないので心配になったけど、別の新アプリが出てた。

homebridge-config-ui-x を入れる

Appleの家電制御のためのHomeKitと互換性のあるソフト homebridge だけど、以前より家電の赤外線リモコンで活用しているが、google home との連携もさせたくって、homebridge-gsh を入れようとしたが、nodejs のバージョンが古く、インストールに失敗していた。

Google Home Mini で家電を制御するために、iPhone に eRemote 用のアプリを入れて、制御もしているけど、テレビなどの電源ボタンがトグル動作で、ON/OFF を正しく認識しないので、操作性が悪い。homebridge では、テレビにつけた Raspberry-Pi から、cec-client を使って、電源操作や入力切替操作が行えるので、基本は homebridge ベースに切り替えたい。

インストール

今回、nodejs のリポジトリを nodejs の本家を使うように設定して、nodejs を最新の 12.x に上げる。合わせて、設定ユーザインタフェースが便利な、homebridge-config-ui-x を入れてみた。

# リポジトリを登録
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
$ sudo aptitude update ; sudo aptitude safe-upgrade

# Node.js のインストール
$ sudo aptitude install -y nodejs
$ sudo npm install -g npm

# homebridge-config-ui-x のインストール 
$ sudo npm install -g homebridge-config-ui-x

config-ui-x を使えば、config.json の編集機能があるし、その編集も各モジュール単位で編集もできるので便利。一部のモジュールは、config.json で触る必要があって、その切り分けで手間取った。

この Web-UI では、スイッチの操作で時間のかかる処理のコマンドで、一部動きがおかしいのもあるけど、スマホ版だと問題なく動くようなので、この画面はあくまで設定用かな。

WatchOS7のx-callback-urlの検証

うーむ、WatchOS7の x-callback-url って上手く動かないのかな。

iOSであれば、ショートカット機能で x-callback-url を実行して、実行先で

header( "Location shortcuts://x-callback-url/run-shortcut?name=ショートカットの名前" ) ;

を実行すると、指定したショートカットを起動するし、

header( "Location shortcuts://x-callback-url/open" ) ;

を実行すれば、ショートカットに戻ってくれる。

かといって、「ショートカットの終了」が起動するように、別のショートカットを作っても、起動していたショートカットを終わらせることにはならないみたいだな。

でも、WatchOS7 だと、上記を実行しても、Webを開く画面を表示して何も表示されない画面のまま。いちいち「閉じる」を押さないとダメ。

ということで、Safari の URL を開く+ショートカットの終了の合わせ技にしておくのが一番無難なのか。

Watch OS 7 のWeb表示

Watch OS 7になって色々試しているけど、何気にiPhoneで起動しているショートカットをApple Watchで動かしたら、それなりに JavaScript 入っている自作ページだけど動くじゃん。

# 下に追記したけど、Webページの閲覧機能(クイックルック)をショートカットから呼出すのは避けるべきとのことであった。

家電リモコン操作が、Apple Watchで使えるぞぉ… (^_^;

{CAPTION}

コンプリケーションにショートカットを設定すれば、簡単にアプリ起動やらページ閲覧やらを起動できるので、ランチャとして使える。

問題点の追記(2020/09/30)

ショートカットを使って、LINEに固定メッセージを送る実験をしていると、メッセージが2回送られている。同じショートカットをiPhoneで動かすと1回だけ。LINEにメッセージを送るプログラム側の問題かと思ったけど、一番シンプルなページアクセスのショートカットを使ってWebサーバのログを確認したら、やっぱり2回連続してページアクセスをしている。

色々と調べていたら、「複雑なショートカットのショートカットアクションについて」を見ると、ショートカットからクイックルック機能を呼出すのは「避けるように」とのことであった。なるほど、不具合ではないのか。Web閲覧とクイックルックは別機能だな。

2回の連続アクセスだったら一方を無視させようと、flock() とかを使ってみたが、1回目のアクセスの完了を待ってから2回目のアクセスを行っているみたいで、なかなか面倒。

 

睡眠管理AutoSleep併用あり

WatchOS 7 で、睡眠管理機能が導入され、それ以前に導入していた有料のAutoSleepをアンインストールしていた。だけど、WatchOS の睡眠管理って、入眠・起床を自動検出してくれない?。

そんなに睡眠の質の確認しているわけじゃないけど、有料でインストールしたアプリだし、改めてインストールしなおした。Apple Watchの充電完了も通知してくれる。

{CAPTION}

WatchOS7は x-callback-url が違う?

WatchOS7 が公開されて、Apple Watch単独でショートカットを実行できるということなので、自分用に動かしているショートカットを試してみた。ただ、どれも動かなかった。

職場の中で自分のサーバに http:// で動くショートカットだけど、reverse-proxy の内側なので、SSL公開鍵が使えないため、http は危ないから…ということでダメ。

自宅で動かしているショートカットは、https:// で呼び出した後、x-callback-url でショートカットに戻るようにしてあるけど x-callback の仕組みが違うのか、制御がショートカットアプリに戻ってくれない。ショートカットが終了扱いにならないので、使い辛いなぁ…

Microsoft Authenticator が Apple Watch でうまく認証ができず内部エラーが発生するけど、この辺も同じような理由なんだろうなぁ…

Apple WatchのProxyダメだな

最近、少しでもキャッシュの効果が出ることもあるかと、squid のキャッシュproxyを動かしていた。

また、自宅内アクセス時に、proxyがかかると、不都合もあったので proxy.pac の自動設定を設定したけど、その頃からApple Watchの天気のコンプリケーションが表示されなくなった。

どうもproxy.pacをうまく処理できないのか現在地情報がとれないようで、天気情報が出てこない。

ということで、iPhoneでApple Watch使うなら、proxyは使っちゃダメだな。

IFTTTのwebhooksトリガーでLINEメッセージ送信

家に帰る時に、家族のLINEに「今から帰る」とメッセージを送りたいんだけど、iOSのショートカットだと、メッセージ文面をいちいち入力する必要がある。そこで、LINEのメッセージ送信は、IFTTT に任せることにして、スマホでショートカットなり、ショートカットのオートメーションから、LINEメッセージ送信を起動したい。

また、IFTTTの JSON形式を返すWebhook trigger だと、safari が開いたままになるので、webhook trigger を起動し、x-callback-url を返す trigger ページを作ってみた。

<?php
// IFTTTのwebhookトリガを呼出す
//  x-callback-url の機能で呼び出し側(shortcut)に戻る

// ifttt webhook url
$ifttt_webhook = "https://maker.ifttt.com/trigger/%s/with/key/xxxxxxxxxxxxxxxxx_xxxxxx" ;
$mykey = "yyyyyyyyyyyyyyyyyyyyyy" ;

// パラメータを読み込む
$key = isset( $_GET[ "K" ] ) ? $_GET[ "K" ] : "" ;
$command = isset( $_GET[ "C" ] ) ? $_GET[ "C" ] : "" ;
$json = file_get_contents( "php:input" ) ;

// 想定外の接続は無視
if ( $_SERVER['HTTPS'] != 'on' || $key != $mykey )
    exit( 1 ) ;

// 時間によるwebhook呼出し制限の前処理
$localtime = localtime( time() , true ) ;
$l_hour = $localtime[ "tm_hour" ] ;
$l_week = $localtime[ "tm_wday" ] ;

// webhookの呼出し
function post_webhook( $trigger , $json ) {
    global $ifttt_webhook ;
    $url = sprintf( $ifttt_webhook , $trigger ) ;
    $opts = array(
        'http' => array(
            'method' => 'POST' ,
            'header' => 'Content-type: application/json; charset=UTF-8' ,
            'content' => $json ) ) ;
    $context = stream_context_create( $opts ) ;
    header( "Content-Type: application/json; charset=utf-8" ) ;
    // x-callback-urlで処理後はショートカットに戻す
    header( "Location: shortcuts://" ) ;
    // IFTTTのtriggerを呼出す
    print file_get_contents( $url , false , $context ) ;
}

// GETパラメータで呼び出しするwebhookを切り替え
if ( $command == "go_home" ) {
    // ショートカットからの呼出し用
    // go_homeリクエストを中継
    post_webhook( "go_home" , $json ) ;
} else if ( $command == "go_home_time" ) {
    // オートメーションからの呼出し用
    // 平日の帰宅時間のみ中継
    if ( 17 <= $l_hour && $l_hour < 21
         && 1 <= $l_week && $l_week <= 5 )
        post_webhook( "go_home" , $json ) ;
    else
        exit( 0 ) ;
} else {
    exit( 1 ) ;
}
header( "Content-Type: application/json; charset=utf-8" ) ;
?>

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報