ホームAppに温度を常時表示(Raspberry Pi)

2024/05/06に公開

Homebridgeに温度表示させるプラグインを追加して、常時温度を表示する様にします。

Homebridge Temperature Fileのインストールと設定

Homebridge Temperature FileをHomebridgeにインストールして実現します。

Homebridge Temperature File
温度を書いたファイルを読み込むことで、温度を表示するプラグインです。

Homebridge Temperature Fileをインストール

Homebridge Config UI Xからインストールします。※Homebridge Config UI Xは本当に便利。
Homebridge Config UI Xの「プラグイン」からHomebridge Temperature Fileし、インストールします。

Accessory追加

「プラグイン」からHomebridge Temperature Fileの「設定」を選択すると、以下の画面が表示されます。

設定方法は以下の通りです。

Head Head
accessory Homebridge Temperature Fileを使う場合は、"TemperatureFile"と記述。
name 任意の名前。ホームAppやSiriで呼ぶときの名前。
file_path 読み込むファイルのパスを指定。

温度を定期取得

定期的に温度を取得し、Homebridge Temperature Fileで指定したファイルに書き込みます。
今回は、pythonとcronを使って実行します。

cron
ユーザの設定したスケジュールに従って、指定したコマンドやシェルスクリプトなどを自動実行する。

pythonのコード

pythonのコードは以下の通りです。これで指定したファイルに温度を書き込みます。

# write-temp.py
# -*- coding: utf-8 -*-
import gettemp
import subprocess

ctrler = gettemp.PioCtrler()

temp = ctrler.read_adt7410() # 温度を読み出す。

# Homebridge Temperature Fileで指定したいファイルに書き込む
with open('/home/pi/work/temperature/temp.txt', mode='w') as f:
	f.write(str(temp))

cronの設定

cronの起動を確認します。以下のように出ていれば、起動しています。

$ sudo /etc/init.d/cron status
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
....

cronの設定を行います。エディタの選択が出てきますが、お好みのエディタを選択して下さい。

$ crontab -e 
no crontab for pi - using an empty one 

Select an editor.  To change later, run 'select-editor'.
   1. /bin/nano        <---- easiest
   2. /usr/bin/vim.tiny
   3. /bin/ed 
Choose 1-3 [1]: 2 
crontab: installing new crontab

エディタで以下のように、15分毎にwrite-temp.pyを実行するようにします。
「分 時 日 月 曜日 コマンド」の順に設定できるようになっており、今回は、分で*/15とすると15分毎に実行するという意味になります。

*/15 * * * * python /home/pi/work/temperature/write-temp.py

Discussion