Slide 1

Slide 1 text

enebular developer meetup 20220602 気象庁天気 API を定期的に Airtable に 記録&自動化構築で思ったこと ワンフットシーバス 田中正吾

Slide 2

Slide 2 text

私の話はスライドを後ほど共有します。 話す内容に注力いただいて大丈夫です!

Slide 3

Slide 3 text

田中正吾(たなかせいご) 屋号:ワンフットシーバス 2004年よりフリーランス。以後、FLASH制作を 中心にインタラクティブコンテンツを主に行い現 在に至る。 最近ではWEBフロントエンドをベースにしなが らも、情報とインターフェースが合わさるアプ ローチという視点でIoTやMixed Realityといった 技術も取り入れながら活動しています。

Slide 4

Slide 4 text

今日お伝えすること enebular の実行環境ネタ

Slide 5

Slide 5 text

気象庁天気 API を定期的に Airtable に記録

Slide 6

Slide 6 text

リアルタイムデモ とはいいつつ定期実行の1時間待つのはアレなので手実行します!

Slide 7

Slide 7 text

つくるときに試行錯誤したこと

Slide 8

Slide 8 text

気象庁の天気予報 API

Slide 9

Slide 9 text

公式提供ではないし内部データのJSONだけど 政府標準利用規約に準拠して利用OKとのこと いままでの天気APIの利用の苦しさを考えればとてもありがたい!しっかり触りたかった。

Slide 10

Slide 10 text

正直、仕様が私の力では把握しにくく ほしいデータを狙って取るJSON解析が大変め データ例だけど、ここに至るまでがまず苦労するやつ https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json

Slide 11

Slide 11 text

説明としてとても分かりやすい文献 気象庁の天気予報JSONファイルをWebAPI的に利用したサンプルアプリ https://anko.education/apps/weather_api

Slide 12

Slide 12 text

うまく取得できた

Slide 13

Slide 13 text

Airtable 保存部分

Slide 14

Slide 14 text

記録するあたりは従来の記事でばっちり スプレッドシートのようにデータ管理できる AirtableをNode-REDノードでデータを書き込んでみる https://blog.enebular.com/samples/use-airtable-as-spreadsheet2/

Slide 15

Slide 15 text

カラムのフィールドタイプを気をつけた

Slide 16

Slide 16 text

Create time は Airtable 側で気を利かせて 作成日時を入れてくれる素敵フィールドタイプ こちらでやる処理が減るし、データベースだと一手間必要なので、めっちゃありがたい。検証にも役立つ。

Slide 17

Slide 17 text

Date フィールドタイプは、天気 API が持つ 更新日時を日付を良い感じに扱ってくれる ISO 8601 形式で入れる必要があるが、めちゃくちゃ便利

Slide 18

Slide 18 text

ありがたいことに 天気 API が持つ更新日時は ISO 8601 なのですんなり入る 他の API で日時データが ISO 8601 じゃない場合は JSONata を駆使するといいです https://qiita.com/tseigo/items/e7deb8d6d4902a4aef30

Slide 19

Slide 19 text

Date フィールドタイプは Calendar ビューで 見てやると良い感じに日付で並ぶ これは私の WordPress 投稿のログをカレンダーで並べている Airtable ビュー

Slide 20

Slide 20 text

更新日時を見る限り11:00,17:00,5:00が 予報自体の更新タイミングと分かった

Slide 21

Slide 21 text

これに関してアドバイスいただけた ありがとうございます!

Slide 22

Slide 22 text

アウトプットしてやり取りできて より深掘りできて、ありがたや

Slide 23

Slide 23 text

予報テキストはわりと全角ゴリ押し さらに文字に応じてアイコンにするときは手間がかかりそう

Slide 24

Slide 24 text

風向き・風力がでるのは面白い 何かに使いたい(全角ではあるんですけどね、変換はがんばりましょう)

Slide 25

Slide 25 text

地域に応じて取得するときは 都道府県IDをちゃんと把握して取得する必要 都道府県 ID というのがあるそう 参考: https://support.smp.ne.jp/manuals/field_reference2/ https://www.jma.go.jp/bosai/ forecast/data/forecast/130000.json

Slide 26

Slide 26 text

自動化の目線で enebular 実行環境を考えたこと

Slide 27

Slide 27 text

自動化をつくる流れ おおまかにこんな流れ まず つくる 動かし つづける どこかで 動かす より 良くする

Slide 28

Slide 28 text

自動化をつくる流れ まず つくる 動かし つづける どこかで 動かす より 良くする

Slide 29

Slide 29 text

ワークスペースでデバッグを見れるし 実行環境のログでも見れる プロコードでログ見れる環境をつくるのはパワーが必要。手元はいいけど、サーバーやクラウドで置くとき。

Slide 30

Slide 30 text

debug ノードでシステムコンソールを チェックすると実行環境ログに出ます

Slide 31

Slide 31 text

自動化をつくる流れ まず つくる 動かし つづける どこかで 動かす より 良くする

Slide 32

Slide 32 text

オンライン上でどう実行させるかが 課題になりがちだが肩代わりしてやってくれる 自前でしっかりつくるのはそれなりにパワーと手間が必要なのだがボタン一発でありがたい

Slide 33

Slide 33 text

自動化をつくる流れ まず つくる 動かし つづける どこかで 動かす より 良くする

Slide 34

Slide 34 text

自動化ではスケジュール実行が怯えしがち cron 実行めちゃくちゃイメージしづらい問題

Slide 35

Slide 35 text

こういうのをブックマークして使う時に 必死に思い出すが結構脳にツラい http://miya0.dyndns.org/pc/settei/crontab.html

Slide 36

Slide 36 text

スケジュールトリガーが cron を視覚的に 人間の思考に戻してくれるのでよい 実行予定でやりたいことと照らし合わせられる、ミスが減る

Slide 37

Slide 37 text

自動化をつくる流れ まず つくる 動かし つづける どこかで 動かす より 良くする

Slide 38

Slide 38 text

自分のための自動化は自分の運用力と向き合いがち

Slide 39

Slide 39 text

ローコードでつくれると数か月後も 自分で思い出して自分でメンテナンスしやすい!

Slide 40

Slide 40 text

プロコードで最終的につくるときも ローコードで固めきるというのはとても大切 プロコードでデバッグしたり機能追加するのってパワー使うので、enebular のように GUI でやれるのは素敵

Slide 41

Slide 41 text

自動化をつくる流れ うまく寄り添ってくれてありがたい!気軽につくって、つくりつづけられる! まず つくる 動かし つづける どこかで 動かす より 良くする

Slide 42

Slide 42 text

エクストラ 時間があれば ● いざ実行環境化しようとしたらLCDPノードつけ忘れて 一切発動しなかったウッカリ ● 天気概況の説明も面白いので、文章認識で天候をスコア 化できたら面白そう ● 東京で参照先ミスってずっと小笠原諸島の天気を見てて 一瞬戸惑った話 ● たぶん環境変数で都道府県IDなど動的に入れられるよう にすると汎用性高く作れそうだなってアイデア ● どこに活用していこうか話 使いやすい中間API、IoTへデータ表示 など

Slide 43

Slide 43 text

おおむね動いたので Discover Flow に整えて みんなで使えるよう公開するつもりです!