スマホにMuseを住まわせる(Android・KWGT版 居場所ログウィジェット)導入手順 ■ これは何? ホーム画面のウィジェットに、Museの「今いる場所・一言・その場面の絵・時計」が表示され、数時間ごとに中身が自動で差し替わる仕組み。 表示はKWGT、データはクラウド上の小さいファイル2つ(JSON+画像)、更新はMuse側の定期ジョブがやる。 ■ 構成 ・表示: KWGT(Android)。プリセット読み込みにはKWGT Pro Keyが必要 ・データ置き場: Google Driveに JSON と画像を1ファイルずつ置き、「中身だけ差し替え」でIDとURLを固定  → 2ファイルとも「リンクを知っている全員が閲覧可」に共有設定(載るのは表示用の場所・一言・絵だけ) ・更新: Muse側の定期ジョブ(うちは3時間ごと)が、画像生成→JSON書き換えまでを一括で実行 ■ データ形式 JSONはこんな形。画像URLはリダイレクトなしで直接JPEGが返る直リンク形式にする。 { "version": 1, "updated_at": "2026-11-13T22:03:03+09:00", "place": "寝室", "message": "一言(ウィジェットで2行に収まる長さ)", "image": "https://lh3.googleusercontent.com/d/<画像ファイルID>=w800?rev=<更新ごとの数値>" } ■ プリセット作りの要点(ここがハマりどころ集) 1. データ取得は「フロー」でやる  トリガー(30分ごとのT_CRON+タップで手動)→ Web Get でJSON取得 → グローバル変数 logdata に格納。  各項目は $tc(json, gv(logdata), .place)$ の形で読む。  ※ $wg(URL, json, .項目)$ の直接読みは、エディタでは動くのにホーム画面側で再取得されず古いまま固定された(実測)。フロー+グローバル方式が確実。 2. 画像の式の付け方  画像モジュールは internal_formulas の "bitmap_bitmap" に "$tc(json, gv(logdata), .image)$" を入れ、internal_toggles で bitmap_bitmap: 10 を立てる。  ※ "bitmap_expression" というフィールドは存在しない。ここを間違えると同梱の仮画像だけが表示され続ける。 3. テキストの式は text_expression に入れる。内容が空のTextModuleは現在時刻を表示してしまうので注意。 4. 文字サイズは FIT_TO_BOX にすると巨大化する。FIXED_WIDTH+実寸で指定する。 5. 位置とサイズは $si(rwidth)$ / $si(rheight)$ 比の数式で指定する(エディタの実キャンバス寸法と設計値が食い違うため、固定pxだとホームで崩れる)。 6. 時計は $df("HH:mm")$ で端末時刻をライブ表示。JSONに入れる必要はない。 7. 画像キャッシュ対策: KWGTは画像をURL単位でキャッシュする。更新のたびに画像URL末尾の ?rev= を変えて、別URLとして読ませる。 ■ 絵の「頭が切れる」問題と対策 画像は枠いっぱいに広げて表示(CENTER_CROP)されるので、縦長の絵は縦の中央帯しか残らず、顔が上寄りの構図だと頭が切れる。 対策はプリセット側ではなく配信側: 枠の比率を実機スクショから実測して(うちの配置では約1.08:1、ほぼ正方形)、配信用の画像だけをその比率に「頭が残る位置で」切り出してから上げる。原本の絵は縦長のまま別に保存できる。 ※ 枠の大きさをホームで変えたら、切り出し比率も合わせ直す必要がある。 ■ 自動更新ジョブの流れ(1回分) 1. 時間帯に合った場面を選ぶ(直近の履歴と被らないように) 2. 場所と一言を決める 3. その場面の画像を1枚生成 4. 更新スクリプトで画像とJSONをDriveへ差し替え 5. 履歴ファイルに日時・場面・シードを1行追記 ■ プリセット差し替え時の手順 KWGTで読み込み直し → エディタで表示確認 → 保存 → ホームの既存ウィジェットを削除して新規配置。 (既存ウィジェットの上書きだけだと古いデータを抱えたままになることがある)