ホーム » T-Saitoh

T-Saitoh」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

Gemini for Home でのエアコン操作

Google Home から Gemini for Home になって、Google Home mini での操作が便利になった。エアコンのオンタイマーとかオフタイマーもういらない。「OK google, 3時間後にエアコン消して」でいい。エアコンのリモコンも不要…と言いたいけど、まだ便利じゃないかな。

Gemini for Home になった最初のころは「エアコンを消して」といったら子供部屋のを消そうとしたりして、いちいち「リビングのエアコン」とか伝える必要があった。でも、部屋設定を見直したせいか、Gemini for Home が少しづつアップデートされたのか「エアコンを消して」で正しく動いてくれるようになった。

しかし「エアコンを冷房27度にして」というと、リモコン信号をだしてくれるようだけど、冷房に切り替えてくれるだけ。温度設定が効かない。「エアコンを冷房にして、設定温度を27度にして」というと、2つの別のアクションとして認識して2つのリモコン信号を送ってくれる。まだちょっと改善の余地ありですぞ。

HTTP2 の導入

HTTP2 Bomb のセキュリティ対応が apache2 – 2.4.66-2ubuntu2.2 で対応済みみたいなので、HTTP2 を導入。

HTTP2を導入するにあたり、mpm_event , php-fpm の設定が必要だけど、別途設定済み

$ sudo a2enmod http2
$ vi /etc/apache2/site-enabled/010-default-ssl.conf
((( 追加 )))
Protocols h2 http/1.1
$ sudo systemctl restart apache2

なんかページ表示が速くなった気がする。

HTTP2 接続ができるか確認する Webサイトで、HTTP2 が確認できた。

apache2 と php を mpm_event + php-fpm に変更

HTTP2 のセキュリティホールが見つかったらしいが、HTTP2を使うためには mpm_event と php-fpm 化が必要らしい。

mpm_prefork の状態では、php は apache2 の中に組み込まれている状態。php-fpm では、apache2 と php は別プロセスで動く状態。

mpm_event + php-fpm の導入

HTTP2 の導入はひとまず置いておいて、mpm_event と php-fpm 化は WordPress のようなものを動かす際には、効率向上のためには有効らしい。ということで、HTTP2 以外を導入。

((( php8.5-fpm が動くように変更 )))
$ sudo apt install php8.5-fpm
$ sudo a2dismod php8.5
$ sudo systemctl start php8.5-fpm
$ sudo systemctl enable php8.5-fpm
$ sudo a2dismod mpm_prefork
$ sudo a2enmod mpm_event
$ sudo a2enmod proxy_fcgi setenvif
$ sudo a2enconf php8.5-fpm
((( /home/*/public_html で php を許可する設定を排除 )))
$ sudo a2disconf php-user  # 以前、自サイト用の設定がトラブル
$ sudo a2enconf userdir    # 最近は userdir.conf を有効にするだけ
((( apache2 の再起動 )))
$ sudo systemctl restart apache2

Coreutils for Window いいね

https://www.publickey1.jp/blog/26/unixwindowscoreutils_for_window.html

Windows のコマンドラインで、unix 系コマンドを使えるようにする Coreutils for Windows をインストール。wingetを使えば超簡単。

C:\Users\foobar> winget install Microsoft.Coreutils
:
exit # 一旦exitしてからじゃないとPATHが通らない
C:\Users\foobar> ls
Desktop
Documents
Downloads
:

今まで、何度 cmd.exe で ls でエラーと言われたことか…

 

HomeAssistant の CPU 負荷

Dockerのプロセス負荷

サーバのプロセス負荷が先週から高くなり、色々と機能追加で遊んでいる HomeAssistant が原因かと、Docker のプロセス負荷の監視を追加。負荷増加の原因は、止めたと思ってた Homebridge の systemd ファイルの残存で、再起動で再び動いていたのが原因だった。

朝のオートメーションが動かない

朝は、少しづつの頭の目覚めのために、朝イチにテレビをつけている。これまでは、TV のオンタイマーだったけど、HomeAssistant に移行しようとしている。HomeAssistant なら、Web 操作で簡単に、オートメーションのON/OFFが切り替えられる。

んで、オンタイマーを切って、朝のオートメーションに切り替えたが、朝テレビが付いていない。原因の1つとして、HomeAssistant からホスト側に処理を起動する際の ssh コマンドで、ホストキーの確認で yes/no/… の入力待ちになっていたのが原因。ssh コマンドに -o StrictHostKeyChecking=accept-new を追加する。

ただ、この対応処理を加えたのに、今朝も TV が点いていない。 #危うく寝坊するところだった。

ダメ元で -o StrictHostKeyChecking=no にしてみる。

Antigravity CLI のインストール

Gemini CLI を便利に使っているけど、新しく統合化された Antigravity CLI に移行されるらしい。コードも Go 言語による実装となった様子。

インストールは下記の通り

$ curl -fsSL https://antigravity.google/cli/install.sh | bash
:
✅ Antigravity CLI installed successfully at $HOME/.local/bin/agy
Run 'agy' to start the CLI

WordPress 7.0 アップデート

特に、WordPress の追いかけしてないし、メジャー番号が上がるのはちょいと不安…といいながら、バックアップも取らずに更新をポチる。うん、問題なし。

WordPress 7.0リリース候補版4 (RC4版)

HomebridgeからHomeAssistantへ

Docker 上の HomeAssistant の整備もすすみ、在宅/外出の tracker も安定運用できるようになった。

Homebridge を停止

一方で、Homebridge の方は、Homebridge 2.0 が出てきたけど、自作のscriptと連動するための homebridge-cmdswich とかが、2.0 でサポート対象外となってきて、自宅で活用していたものが使えなくなった。しかし、google home からの操作は Switchbot に移行できたし、ブラウザからの操作なども HomeAssistant で可能になり、”Hey Siri” が使えなくなるくらい。Siri は使ってないし。ということで Homebridge の起動を停止とした。

気温でエアコン起動

気温が一定温度を越えたときに、エアコンで冷房を起動する処理は、nagios4 の異常温度警告で起動する shell script からエアコンを動かしていた。しかし、HomeAssistant のオートメーションを使えば、設定を UI で気軽に障れるので、移行。

固定電話の解約

固定電話を解約した。

以前から、かけたことがない通販会社から「お電話いただいたようで…」という電話があって、そのたび毎に「こちらからは電話してません」って伝えていた。通販会社が「着信あった」って嘘をついていると疑ってた。

しかし、昨日は女性から「留守電が残っていたのですが…」と電話があり、留守電には「とおる」の名前も録音されていたらしい。怪しすぎる。怖すぎる。相手の方には「お名前お聞きしてもいいですか?」と聞いて具体的な名前も名乗ってくれる方だし、変な相手ということではなさそう。なんか固定電話自体が怪しすぎる。相手の方には「この番号着信拒否してください」と伝えた。

早々に、発信履歴や着信履歴を確認した。発信履歴は請求書での確認しかできず、女性への発信は現時点で確認できなかったが、4月,3月には、通販会社などへの発信は残っていない。海外電話などを経由した発信者番号偽装をされているのかもしれないけど、ワンギリではなく録音が残っているというのは怖すぎる。

固定電話は、銀行などの契約の連絡先にも使っていたので残してはいたけど、着信履歴は、着信拒否登録の迷惑電話ばかり。今回のトラブルを契機に解約解除を決断に至った。

HomeAssistant のオートメーション

スマホの Ping(ICMP) の binary_sensor では、スマホがスリープ状態になったりするタイミングがあって、単純な ping では接続/切断が発生して、在宅/外出が正しく検出できない。

Ping(ICMP)の設定には consider_home で『デバイスが応答しなくなってから「切断」と判定するまでの待ち時間』を設定することができるが、エンティティとして扱える binary_sensor には consider_home は効き目がない。調べる中で device_tracker を有効にする必要があることが分かったけど、有効設定の画面にたどり着くのにひと手間かかった。

ようやく、device_tracker が使えるようになり、在宅/外出の判定がうまくできるようになり、オートメーションの設定。

Gemini が automation.yaml で設定する方法を解説してくれたけど、自分が在宅しているかどうかで色々と通知を切り分けたかったので、オートメーションの UI での登録はちょい悩んだけど…

オートメーションの例

UIで設定した結果を、YAML形式で表示

# shell_command.sh_mail_notify_message   - メールで送る shell_command
# shell_command.sh_google_notify_message - Google Home で話させる shell_command
alias: とーるの帰宅/外出を通知
description: ""
triggers:
  - trigger: state
    entity_id:
      - device_tracker.iphone_xxxx
conditions: []
actions:
  - action: shell_command.sh_mail_notify_message
    metadata: {}
    data:
      to: t-saitoh
      message: >-
        とーるが
        {% if states('device_tracker.iphone_xxxx') == 'home' %}
        帰宅/{{ now().strftime('%H:%M') }}
        {% else  %}
        外出{{ (now() - timedelta(seconds=450)).strftime('%H:%M') }}
        {% endif %}
  - if:
      - condition: state
        entity_id: device_tracker.iphone_yyyy
        state:
          - home
    then:
      - action: shell_command.sh_google_notify_message
        metadata: {}
        data:
          message: >-
            とーるが
            {% if states('device_tracker.iphone_xxxx') == 'home' %}
            帰宅
            {% else %}
            外出
            {% endif %}
            しました
mode: single

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報