みなさん、こんにちは。
いよいよ夏本番、寝苦しい夜が続いていますね。我が家のエアコンは昔ながらのON/OFFタイマー機能しかなく、高級エアコンに搭載されているような、睡眠時のきめ細やかな温度制御ができません。
この「きめ細やかな温度制御ができない」問題、実はけっこう厄介なんです。
なぜ睡眠時のエアコン制御は重要なのか?
自動制御ができないと、こんな不都合が生じます。
- 電力消費の増大
- 一晩中エアコンを稼働させれば、電気代が高騰してしまいます。
- 体調管理の困難
- 冷えすぎによる体調不良や、乾燥で喉を痛めることも。
- 環境負荷
- 不必要な電力消費はCO2排出量の増加につながります。
- 固定スケジュール
- 部屋の温度に関係なく、決まった時間にしか動作しないのは非効率的です。
- 温度センサーの位置
- エアコン本体のセンサーでは、寝室の実際の温度を正確に測れません。
- 柔軟性の欠如
- 個人の睡眠パターンや季節の移り変わりに合わせた調整が難しいです。
- データ蓄積機能の不足
- 睡眠環境の分析や改善に役立つデータが残りません。
この問題をシンプルに、でも賢く解決できないか、と考えた末、設定した温度を超えたら30分だけエアコンを動かして止める、というシンプルな案にたどり着きました。これなら単純なので、比較的簡単に実装できそうです。
今の時代、自分で実装する必要はありません。頼りになるのは、そう、GitHub Copilotです!
GitHub Copilotと共にエアコン制御システムを開発!
GitHub Copilotの力を借りるといっても、ゼロからすべてを作る必要はありません。これまでに公開してきた以下のシステムを組み合わせれば、実現できそうです。
今回は、これらのシステムを組み合わせ、睡眠時のエアコン制御プログラムをGitHub Copilotを使って開発した手順をご紹介します。
GitHub Copilot Agentモードでプロトタイプ作成
まずは、開発の意図を明確にし、Visual Studio CodeのGitHub Copilot拡張機能を使ってGitHub Copilot Agentモードでプログラムのたたき台を作ってもらいました。
開発の意図
- 省エネルギーの実現:
- 「必要な時だけ、必要な分だけ」を原則とし、室温が設定閾値を超えた場合にのみエアコンを短時間(30分)稼働させることで、大幅な省エネを目指します。
- 快適な睡眠環境の維持:
- 実際の寝室温度をリアルタイムで監視し、熱中症リスクのある温度(34℃以上)になった場合のみ自動的にエアコンを起動。安全で快適な睡眠環境を確保します。
- IoT技術の活用:
- Ambient: クラウドベースのデータ収集・監視サービス
- eRemote: 赤外線学習リモコンによる既存エアコンの制御
- Linux システム: 安定した24時間稼働とスケジュール管理
- Python: 柔軟なプログラミングと豊富なライブラリ これらの技術を組み合わせ、スマートな制御システムを構築します。
- 個人の生活パターンへの対応:
settings.ini
ファイルで以下のカスタマイズを可能にします。- 睡眠時間: 個人の就寝・起床時間に合わせたスケジュール
- 温度閾値: 個人の体感温度や健康状態に応じた設定
- 強制終了時間: 確実な起床時間でのエアコン停止
Agentモードは非常に優秀で、ものの数分でプログラムの骨格ができあがりました。その後、2度の修正指示で、すぐに動く状態に!README.mdも自動生成してもらい、GitHubのリポジトリにプッシュするまであっという間でした。
この段階までは、以前の記事でも同様の作業を行っています。
GitHub Copilot Coding Agentでさらなる改善!
今回はさらにその先へ進みます。実際に使ってみて不満点があったので、今度はGitHub Copilot Coding Agentに働いてもらうことにしました。私が加入しているGitHub Copilot Proでは、最近この機能が使えるようになったんです!
ここで少し補足です。
GitHub Copilot Agentモードはプロンプトを与えて指示通りのコードを生成してもらう機能です。
一方、
GitHub Copilot Coding Agentは、既存のプログラムに課題(issue)を与えて、その課題を解決してもらう機能です。
Coding Agentは、課題の意図を汲み取ってコードを修正し、テストを行い、その結果をプルリクエストとして報告までしてくれます。コード生成に留まるAgentモードよりも、はるかに幅広い作業を自動で行ってくれるわけです。人間は報告を確認し、修正されたコードを適用するかどうかを決定するだけ。課題を与えた後は、プルリクエストが来るまで何もしなくていいなんて、なんて素晴らしい機能でしょう!
さて、本題に戻ると、やるべきことはシンプルです。
感じた不満点をGitHubにissueとして登録し、Copilotにアサインするだけ。このあたりの詳しい手順は、以下の記事が参考になりますので、そちらをご参照ください。
Proプランでも使えるようになった「GitHub Copilot coding agent」を試してみた
issueを登録して待つこと数分、Copilotからプルリクエストのメールが飛んできました。早い!
コードを確認したところ、特に問題なさそうだったので、すぐにコードをマージし、これで完成となりました。
完成したプログラムと今後の展望
できあがったプログラム一式は、以下のリポジトリで公開しています。
https://github.com/taoman26/sleep_condition_controller
今回も半日足らずでプロジェクトが完了しました。プログラミング体験が日々進化しているのを実感します。これからは、「何を開発すべきか」により多くの時間を割けるようになりますね。
つい最近まで、自律型エージェントの分野ではGitHub Copilotはやや後塵を拝している印象でしたが、今回のようにissue管理と統合できるようになったことで、GitHubをコード管理のメインとして利用しているユーザーにとっては、GitHub Copilotが圧倒的なアドバンテージを持つようになったと言えるでしょう。
AIコーディングは日進月歩の世界。1ヶ月後にどうなっているかは予測できませんが、とにかく今の時点では、私はGitHub Copilot Coding Agentを最大限に活用していこうと思います。
本日も最後までお読みいただきありがとうございました。
それでは、よいAI開発体験を!