Netatmo: CSVデータをスクリプトでダウンロード

netatmoのデータをスクリプトで落としたいと探していたら、netatmo.sh (by Michael Miklis)をみつけた。まさか、そのまま動くことはないだろうと、試してみたらあっさりと動いた。
スクリプトを動かした後に、Webの再ログインが求められる模様。

- [Read NetAtmo weather station data via Script](https://www.michaelmiklis.de/read-netatmo-weather-station-data-via-script/)

スクリプトが更新されてました
- [Read NetAtmo weather station data via Script Sep 1,2015 / By Michael Miklis](https://www.michaelmiklis.de/read-netatmo-weather-station-data-via-script/)


自動ダウンロードができると、スクリプトでこんなグラフを作ることが出来る。

二酸化炭素量とノイズの変化
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529969/0f018988-480f-5db0-a994-304f620a0c0a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529969/2b13a509-76c5-9ccc-ab52-5f5e39a39ab0.png)

温度と湿度の変化
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529969/ac25b25e-d41f-5ff6-8116-41fb73f0f02b.png)

気圧の変化
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/529969/087ea57b-e559-1a07-7ae7-4135b27709cc.png)

# netatmo.sh
netatmoのデータをダウンロードするbashのスクリプト
netatmo.sh で設定するパラメータ

```
# Default NetAtmo credentials (a guest user is sufficient)
# can be overwritten using -u and -p
user="my.mailaddress@mailprovider.com"    # my.netatomo.com のユーザー名
pass="my secret password"　　　　　　　　　 # パスワード

# ID of the main station　　　　　# netatmoメインデバイスのMACアドレス
master="aa:bb:cc:dd:ee:ff"       # my.netatmo.comの設定から確認可能

# available modules and their sensors
sensors_config=(
    #"<module id>;<module name>;<sensor 1>;...;<sensor n>"
    # Macアドレス;モジュール名; データの種類
    # 外部モジュールのIDは、メインモジュールとは別。 netatmo.sh -D で取得
    "aa:bb:cc:dd:ee:ff;room_x;temperature;humidity;co2;noise;pressure"
    "aa:bb:cc:dd:ee:ff;room_y;temperature;humidity;co2"
    "aa:bb:cc:dd:ee:ff;rain_meter;rain"
)

# by default, if called without any modifyer,
# we fetch the data for the last $period seconds
period=3600                      # パラメータなしの場合は1時間分のデータをダウンロード

# default output directory
# outdirectory=~/netatmo_download
outdirectory='.'                 # ダウンロードするディレクトリ

# use module id or name in the filenames?
# possible values are 'id' and 'name',
# can be overwritten using -i
module_in_filename='id'　      　# idでMACアドレス、nameでモジュール名

```
## ファイル名
以下のファイル名でダウンロードされます(module_in_filename='name')

```
ext_humidity_2020-10-02-20-00-00_2020-10-21-09-22-02.csv
ext_temperature_2020-10-02-20-00-00_2020-10-21-09-22-02.csv
room_co2_2020-10-02-20-00-00_2020-10-21-09-22-02.csv
room_humidity_2020-10-02-20-00-00_2020-10-21-09-22-02.csv
room_noise_2020-10-02-20-00-00_2020-10-21-09-22-02.csv
room_pressure_2020-10-02-20-00-00_2020-10-21-09-22-02.csv
room_temperature_2020-10-02-20-00-00_2020-10-21-09-22-02.csv
```

## CSVのフォーマット

湿度の例
CSVではあるが、セミコロンがセパレータになっている（もしかすると設定可能かも）
room_humidity_2020-10-02-20-00-00_2020-10-21-09-22-02.csv

```
Name;Long;Lat;ModuleName;ModuleType
room;139.608219;35.657217;room;Indoor
Timestamp;"Timezone : Asia/Tokyo";humidity
1601636473;"2020/10/02 20:01:13";60
1601636775;"2020/10/02 20:06:15";60
1601637078;"2020/10/02 20:11:18";60
1601637381;"2020/10/02 20:16:21";60
1601637683;"2020/10/02 20:21:23";60
1601637986;"2020/10/02 20:26:26";60
1601638288;"2020/10/02 20:31:28";60
1601638590;"2020/10/02 20:36:30";60
1601638893;"2020/10/02 20:41:33";60
1601639349;"2020/10/02 20:49:09";60
```
# 参考

- [Weather API Documentation](https://dev.netatmo.com/apidocumentation/weather)
- [モジュール毎のデータの意味(wind module)](http://mysyodo.seesaa.net/article/434439032.html)



# 関連

[Netatmo　Weather Station: 利用編](https://qiita.com/plus_sum/items/4989f6086925c230c888)
[Netatmo Weather Stationセットアップあれこれ](https://qiita.com/plus_sum/items/e702a009cc1da4452415)
[おうちLANあれこれ（WiFi, Vistumber, nmap）](https://qiita.com/plus_sum/items/3e4e060930cccd5c9663)