○灼熱の夏が終わらない
今年は平均気温が過去最高の夏ということだ。人口が集中する都内では夜になっても路上でクーラーの熱風排気を浴びることもしばしば。
寝床に入り、寝相悪く冷風機を足蹴にしてしまうと、排出すべき熱風が逆流し暑さと寝汗で目覚めるというなんだか、クーラーのなかった幼少期の長い夏休みを思い出す。クワガタを取りに友人と川沿いのヤナギやクヌギの木を徹底的に取りつくしてしまった自然環境に対する後悔の念を作文にして全国コンクールで受賞した遠い過去を思い出してしまった。走馬灯ではなかろうが当時ほど若くはないので、下手をすると熱中症によるダメージを食らう。慌てて水と塩分を採る。
ここまで暑いと、あしたは何度?あさっては何度?二週間天気予報は?と頻繁に天気予報サイトにアクセスする。なんだかアクセスするたびに予想気温が上昇しているようだ。昨年の9月には地震アラートラズパイを設置し、いまでも重宝している。気象関係の日本のポータルサイトを表示させたり、YouTubeのリアルタイム動画を流すというのも正確性や実用性を考えるとアリなのだが、灼熱エリアではラズパイを増加させようという前向きな好奇心が薄れていく。ラズパイも熱に弱いので、この環境下で常時稼働するには専用の冷却装備を思案しなければならない。これも面白そうだが、今夏は間に合いそうもない。
○APIで気温情報をいたるところに表示させたい
いたるところに気温情報を表示させたい・・・やはりAPIで手軽に気象情報を取得してコマンドラインに表示させるのが手軽だ。ハードワークを極めるブラウザ以外に外界とユーザー主導でつながることができるのはシェル環境。筆者の現在のメイン環境はWindows 11で常駐するはPowershell 7である。APIには、あくまで正確性やコストを削った趣味用途ということでOpenWetherのAPI無料枠を利用してみる。同APIでは分間60コールまでは登録すれば簡単な現在の天気状況をワールドワイドで取得できる。
ただし、手軽なホビーユースで人気もあり、APIキー取得後の実行後のレスポンスに数時間かかる場合もあるようで、筆者もAPI取得は即座に行えたが、その後の最初のコールに無反応の時間が長かったように思う。
ここではこちらの記事を参考にOpenAIのCodexを導入、生成AIに依頼してみよう。筆者からの要望(要件)は、
・Powershellスクリプトでコーディングされ、デスクトップにダブルクリックで開けるPS1ファイル
・東京都文京区の気温情報をもとに、色を変えて気温を表示
・取得したOPENWEATHER_API_KEYは、Windowsの環境変数(エクスプローラーでPC表示→右クリックでプロパティ→システムの詳細設定→環境変数)に設定
以下のプロンプトを入力する
OpenWetherのAPIを使って東京都文京区の気温を表示、38度以上赤色、33度以上黄色、32度以下青で表示。Powershellで。
コードがCodexに表示される。生成されたシンプルなコードは、$lat = 35.717 $lon = 139.753でおおよその文京区の位置を固定し以下のURIでコールし
$uri = "https://api.openweathermap.org/data/2.5/weather?lat=$lat&lon=$lon&appid=$apiKey&units=metric&lang=ja"
以下の部分でAPIで取得した気温を赤、黄、青で色分け、
$temp = [double]$res.main.temp
$color = if ($temp -ge 38) { 'Red' }
elseif ($temp -ge 33) { 'Yellow' }
elseif ($temp -le 32) { 'Blue' }
else { 'White' } # 32 < temp < 33 の場合
$msg = ('東京都文京区の現在の気温: {0:N1}°C' -f $temp)
Write-Host $msg -ForegroundColor $color`
末尾にユーザー入力を待機する一文を入れて、ダブルクリックでもターミナルを表示させたままにする。
Read-Host "Enterキーを押すとウィンドウが閉じます"
実行させると以下のように気温を告げる文が現在気温で区分された色で表示される。
こんなに暑いとさすがに室内に留まるのがむつかしい場合もある。そんな場合は身につける機器にAPIを連携させると外出先でもカスタマイズした気象情報を得られる。最近のスマートウオッチでは、APIを活用してより自分なりにカスタマイズを進められるものもある。通信が成功して表示されたときの達成感は、一種の清涼剤のような効果があるものだ。そう思った灼熱が終わらない9月のはじめである。
.