Home Assistant のオートメーションで、Aqara Magic Cubeの回転量に応じてスピーカーの音量調整をする

というのを作った。

まず、標準では音量の増減の調整が10%区切りでしかできず、オートメーションするのに不便なので1%区切りで自由に調整できるスクリプトを用意した。

https://gist.github.com/oquno/c94c0d25cf95bf3f720bd51aedbffd90

そして、Aqara Magic CubeをZHAで使ってるので、それで拾ったイベントに対するオートメーションを、この blueprint をベースに設定する https://gist.github.com/rvaidya/3fe8a5f3b1d113ffa8625cf5ff2c88a3

そこで、Aqara Magic Cubeのイベントに載ってる回転の角度に応じて音量の調整量を変えたいので、具体的にはこんな感じのアクションのテンプレート。

設定 – Home Assistant

{# --- 設定 --- #} {# 感度調整: 1000で割ると「角度の1/10」が%になります (例: 90度/1000 = 0.09 = 9%) #} {% set factor = 1000 %} {# 上限設定: 0.1 (10%) 以上は一度に変えない #} {% set limit = 0.1 %}
{# --- 計算 (ここを変える必要はありません) --- #} {% set angle = trigger.event.data.args.relative_degrees | float(0) %} {% set calc = angle / factor %}
{# 上限(0.1)を超えないように制限して渡す #} {{ [calc, limit] | min }}

これを時計回りと反時計回り両方で設定して、時計回りに10°ひねった場合は音量を1%上げ、反時計回りに50°ひねると5%下げ、100°以上ひねった場合は10%ずつ音量調整するという挙動に。このあたりの比率は今後調整したいけど、10°未満のひねってもイベント発火しにくそうなのでこんなもんかなという気はする。

というわけで、Aqara Magic Cubeがだいぶ便利という感じになってきました。

published at