python3
netatmo

リビングのnetatmo weather stationのデータをMacに喋らせてみた

寒波の到来でお布団から抜け出せなくなってきましたね。正月なので書き初めとして、毎朝枕元のMacからリビングの温度を喋らせて、布団から抜けるための決意を挫くためのコードを書きました。

hidekingerz/netatmo
cap01.png

温度を確認後、別途用意してあるhomekit経由irkitを操作すれば「Hey Siri。暖房をつけて」でリビングのエアコンが稼働し、部屋を温めることができます。

netatmo connectのAPIの使い方

処理フロー

  1. Netatmo Connectでアプリを登録する
  2. Client idとClient secretを取得する
  3. Client idとClient secretとユーザ認証を利用してアクセストークンを取得
  4. アクセストークンを利用してデータを取得する

ClientIDとClient Secretの取得

Netatmo_Connect02.png

アクセストークンを取得して、Getstationsdataにアクセスする

サンプルコードを参考にアクセストークンを取得すれば良いです。
自分しか使用しないので、ユーザー情報も使用するClient Credentials Authenticationの方を採用しています。

API GUIDEではフォームに引数を書いて送信するとJSONが帰ってくるテストフォームがあるので、試す際は便利ですね。
特にデバイスが1台のみの場合は不要かもしれませんが、引数にMacアドレスを指定することで該当機器のデータのみ値が返ってくるようになるようです。

Macに喋らせる

sayコマンドで実行すれば良いので、pythonのsubprocessモジュールでコマンドを実行しています。
なお、度にすると「たび」と発音するようなのでひらがなで「ど」と指定しています。