Gravio 4をインストールしてGravio 3との違いを見てみた

Gravio 4が年明けにリリースされました。
https://gravio-community-jp.slack.com/archives/C01GWUBFU4V/p1610006892031400

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/63bd6b86-24b1-5f0b-190a-78fb51b2dccc.png)

Gravio 4は、Gravioの4世代目のメジャーバージョンです。Gravio 4は前世代のGravio 3から大きく変わりました。インストールしてみるとわかりますが、パッと見た感じはそんなに変わってません。何が大きく変わったかというと、次の2点。

* アクションエンジンが変わった
* トリガーで実現できる範囲が大きく拡張された

細かい部分は他にも色々変わってますが、この2つは非常に大きいです。
この2つが大きく変わったため、Gravio 3とはデータやアクションの互換性がありません。インストールされるフォルダやデータを格納されるフォルダも変わってますので注意してください。

ただし、UIの使い勝手は踏襲されているのでそれほど迷うことはないでしょう。

逆に、特にもともとプログラムを書いている皆さんならば、新しいアクションやトリガーの仕組みを覚えれば、かなり実現可能な範囲が広がっているのですごくやりやすく感じるのではないかと思います。プログラムを普段書かない人でもちょっとしたコツを覚えるだけでいままでできなかったことも色々できるようになりますので、ぜひ覚えてみてください。

では、ひとまずインストールまでやってみます。

# 使用環境
Windows 10 20H2 (19042.746)
Gravio HubKit v4.1.4049.0
Gravio Studio v4.1.5432.0


# Gravio Studio 4をインストールする
まずはGravio Studio。Windowsストアで検索してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/a54f7645-9e7f-70c1-8870-b782b9aca4ab.png)

アプリの名前が「Gravio Studio 4」になってます。旧バージョンの「Gravio Studio」と両方インストールして使えます。旧バージョンのHubKit環境が残っている場合は両方インストールしておくといいでしょう。ただし、見た目はほぼ変わらないので注意して使ってください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/e26d31ef-d9d2-15ff-3e7b-f20694b96cb5.png)
あとはインストールボタンをクリックするだけですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/292f1bc9-87c0-7ea3-9f92-e1fdeec7379f.png)

起動するとサインアップ画面が出てきます。旧バージョンとほぼ同じですね。左上のアプリ名が「Gravio Studio 4」となってます。
すでに旧バージョンでサインアップしている場合はそのまま同じアカウントでログインできます。サインアップしてない場合はまずサインアップしてアカウントを登録してください。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/8792c842-8c84-3f51-115e-4eaf39f9a637.png)
ログインするとこのうように何も出てこないと思います。Gravio Studio 4では旧バージョンのGravio HubKitはリストされません。新しいHubKitがあればここに表示されます。まだ新しいHubKitをインストールしてないので出てこないわけです。

# Gravio HubKitをインストールする
次にGravio HubKitをインストールします。
先程のGravio Studioの画面から「Gravio HubKitについて」をクリックすると、ブラウザでHubKitのダウンロードページが開きます。開かない場合などは直接 https://gravio.com をブラウザで開き、左上にある「製品構成」からHubKitのダウンロードページへ移動しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/b1ac11f0-cabb-315e-7ac8-5d2a7d7133b5.png)

必要なHubKitをダウンロードします。今回はWindows版をダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/81910a3e-d3c9-2514-b58e-7aba62037466.png)

Gravio Studioと同じく名前が「Gravio HubKit 4」に変わってます。ファイル名も変わってますので注意してください。インストーラーを実行します。こちらもそのまま実行してもらえば迷うことはないでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/6f2469c4-0777-a4ff-3ac2-e92e084cd62d.png)

しばらくするとGravio Studioの一覧で見えるようになると思います。もし出てこないようであれば、手動でHubを追加してみましょう。右上の「+」ボタンで追加することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/e3ad079d-e75e-d06d-3727-c54a4f97291c.png)
Hub名には適当な名前、Hub IPにはIPアドレス、もしくはホスト名を指定してください。ここではStudioと同じPCにHubKitをインストールしたので `localhost` としました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/2750aa7e-cde3-719d-0638-6f8ffdaf5a7f.png)
このように一覧に追加されましたね。ここは旧バージョンと同じですね。迷うことはないと思います。
では、中身を見ていきましょう。

# Gravio 3とGravio 4を比較してみる
## デバイス タブ
Hubのアイコンをダブルクリックしましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/1facf4fc-ea5c-e577-838b-988f7c2166c4.png)
デバイス タブが出てきます。ちょっとだけ違ってますね。
まずは、下のここ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/298da77d-bd37-aec7-9209-d0954324f8c9.png)

アイコンが減ってます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/7e0ba0b5-2090-42f7-5c7f-aa5f3b552cfd.png)
Gravio 3ではこう。クラウドトリガーとタイマーがなくなりました。全部ひとつのトリガー画面の中で扱えるようになったので、この２つのアイコンが今回から削除されています。

上のツールバーも変わってます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/86dc5a56-7e88-6ada-f981-3ddb1ec23ae7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/4557ffb9-fd03-61d9-3a5f-1a0bf4bb7792.png)

いくつかアイコンが変わってますが、以前はデバイスによってペアリングなどの画面が変わってましたが、Gravio 4ではすべて右端にあるこのアイコンに集約されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/5ef9737a-21b4-b4e7-95ec-2d040d548405.png)
クリックするとこのようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/c9c0db1c-6037-6a39-c171-fa38f5be0c93.png)
このあたりの使い方についてはまた追々。特にZigbeeデバイスについては使いやすくなってます。


## トリガー タブ
次はトリガーですね。これは大きく変わりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/0a7d2978-3f55-7300-f9eb-7603c00048db.png)
パッと見はそんなに変わってないように見えますが、ココ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/69c3c8a9-e5c0-20a1-f070-b89a4e02a219.png)
上でも言ったように、タイマーがトリガーと一緒に管理されるようになりました。左がデバイストリガー、右がタイマーを作成するためのアイコンです。
デバイストリガーのアイコンをクリックしてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/37c1b81f-4426-1e32-4cf3-f402d6a97878.png)
下の領域が「時間」「条件」「アクション」の3つのタブに分かれています。
ここが大きく拡張された場所のひとつです。できるようになったことをいくつか紹介します。

* トリガーが有効となる時間帯の指定ができるようになりました。昼間だけ通知するみたいなことができるようになります。
* 複数の条件を指定できるようになりました。キーレイヤーに加えて、追加のレイヤーの条件を指定することで、例えばボタンを押したときに温度が高いと警告を出すみたいなことができるようになります。
* トリガープロパティを登録できるようになりました。このトリガープロパティはアクションの中で使うことができるので、例えば、トリガーAからはライトを青く、トリガーBからはライトを黄色にということを、同じアクションを使って実行できるようになります。

## データビューア タブ、ログ タブ
この2つは大きく変わったところはありません。

## 設定 タブ
設定も基本的にはそんなに変わってませんが、1点、基本プロパティセットが拡張されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/a5b36527-6415-d432-a691-b570bf4d6dda.png)

画面のように、基本プロパティセットに名前がつけられるようになりました。これによって、例えば「Slack Token」が複数作れるようになるので、アクション側での再利用が楽になります。

## アクション
一度Hub一覧の画面に戻り、Hubを選択、真ん中のアイコンをクリックしてアクション周りを見ていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/827abd30-4504-f2a0-65e0-f33e3aecb974.png)
アクションがまだないので分かりづらいですが、一覧の画面もいくつか拡張されてます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/8320f7ce-4fd1-6772-0d29-e992de2df918.png)
このあたりですが、まずは一番左のアイコンです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/5e7b52b3-61f0-9b3c-3e13-b4852a692e03.png)
クリックするとこのようなエクスプローラーみたいなものが出てきます。これはHubKit上のデータフォルダを参照するためのもので、アクションで作成したファイルをダウンロードしたり、読み込みのためのファイルをアップロードしたりすることができるようになります。特にGravio Hubを使っている場合など、いままではSSHを使えるようにして、scpやsftpなどで転送する必要がありましたが、今後はこの画面が利用できるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/23d01f0a-f12c-50e5-eac4-f4198f589d0e.png)

あと、小さいですが、ここにあるようにソートができるようになったのも地味に改善されてるところです。

さて、アクションを作ってみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/f0a3421e-996b-64c1-f025-3ea30e000ce4.png)

アクションではアクション名にファイル名を指定するようになりました。それに加えて、説明文を書けるようになりましたので、アクションがどのような内容のものなのか、このように一覧で見えるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/d0bc0fe9-013c-7af7-36d1-35ad275de6ec.png)

それではアクションの中を見てみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/94d9f660-30d5-d03c-3830-f8d3555a3797.png)

一見それほど変わってないように見えますが、実は大きく変わっています。
上のアイコン部分は同じなのですが、下のエリアが大きく変わっていて、3つに分かれています。

* Properties (左側) : コンポーネントのプロパティを指定します。Gravio 3でもあったものですね。従来同様にコンポーネントの動作を定義します
* Pre Mappings (右上) : コンポーネントの実行前に値を計算する内容を定義します
* Post Mappings (右下) : コンポーネントの実行後に値を計算する内容を定義します

Pre/Post Mappingsについては今回大きく変わった部分です。使い方については追々紹介していきたいと思います。

最後にコンポーネントの一覧です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41603/dacaaa7e-1c7a-db9c-c7b3-ba7a0859d6a5.png)

ほぼほぼ同じようなアクションが準備されていますが、細かいところで使い方が大きく変わったもの、便利になったものなどもありますので追々紹介していきたいなと思います。

# 最後に
かなり長くなってしまいましたが、Gravio 4をインストールして、ざっと変わったところを紹介してきました。今後、いままで紹介した記事も含めてアップデートしていきたいなと思います。