go-fiap-clientは、IEEE1888プロトコルをGo言語で扱うためのクライアント実装です。現在はFETCHのみサポートしており、その他のクライアント メソッドは非対応です。サーバ実装はサポートされません。
IEEE1888 (UGCCNet, FIAPとも) は大量の時系列データをやりとりするための規格であり、BEMSやスマートグリッドでの利用を期待して開発されています。
ライブラリとしてのFIAPクライアント実装です。
package main
import (
"fmt"
"github.com/SIOS-Technology-Inc/go-fiap-client/pkg/fiap"
)
func main() {
var (
cli fiap.Fetcher = &fiap.FetchClient{ConnectionURL: "http://example.jp/FIAPEndpoint"}
id string = "sios/example/Temperature"
)
_, points, _, _ := cli.FetchLatest(nil, nil, id)
fmt.Print(id + ":[")
for i, value := range points[id] {
if i > 0 {
fmt.Print(", ")
}
fmt.Printf(`time:%d,value:"%s" `, value.Time.Unix(), value.Value)
}
fmt.Println("]")
}go run main.go
# sios/example/Temperature:[{time:1722438000,value:"29.01"}]コマンドラインとしてのFIAPクライアント実装です。
go run main.go fetch --select max "http://example.jp/FIAPEndpoint" "sios/example/Temperature"
# {"points":{"sios/example/Temperature":[{"time":"2024-08-01T00:00:00+09:00","value":"29.01"}]}}go.modが存在するディレクトリで次のコマンドを実行します。
go get github.com/SIOS-Technology-Inc/go-fiap-client@latestパッケージや関数の詳細はドキュメントを参照してください。
次のコマンドでローカルにコマンドをインストールします。
go install github.com/SIOS-Technology-Inc/go-fiap-client@latestgo-fiap-client fetch [flags] URL (POINT_ID | POINTSET_ID)このコマンドは、指定したURLとPOINT_IDまたはPOINTSET_IDを用いて、FIAPサーバからデータをFetchし、JSON形式で出力します。
-h,--help
オプション情報を含むコマンドのヘルプを表示します。-d,--debug
デバッグ用出力が表示されるようにします。-o FILEPATH,--output FILEPATH
Fetchの結果を指定したファイルに出力します。-s TYPE,--select TYPE
Fetchされるデータを変更するオプションです。TYPEはmax,min,noneを記述します。指定しない場合のデフォルトはmaxです。
FIAPのkeyクラスのselectの、それぞれmaximum、minimun、指定なしに対応します。--from DATETIME--until DATETIME
指定した日付期間で取得するデータを絞り込みます。DATETIMEには指定する日付日時をRFC3339形式の文字列で指定します。
FIAPのkeyクラスのgteq、lteqにそれぞれ対応します。
go-fiap-client [flags]-h,--help
サブコマンドやオプションの情報を含むヘルプを表示します。-v,--version
go-fiap-clientのライブラリバージョンを表示します。
開発環境はVisual Studio Code Dev Containersで構築されています。 Docker環境も前提となります。
詳細な利用方法はDev Containers 公式ドキュメントを確認してください。