8.2 組み込み名前空間

8.2.1 box

IoTBoX組み込みツール

8.2.1.1 現在時刻取得

  • 定義: now() -> int64

  • 分類: 関数

  • 説明: ミリ秒タイムスタンプ取得

  • 例:

    -- 現在時刻を取得
    local now = box.now()

8.2.1.2 時刻フォーマット

  • 定義: tsformat(time, format) -> string

  • 分類: 関数

  • パラメータ:

    • time: int64 ミリ秒タイムスタンプ
    • format: string 時刻フォーマット
      • フォーマット対照表:

        フォーマット 説明 例
        %a 省略された曜日名 Thu
        %A 完全な曜日名 Thursday
        %b 省略された月名 Aug
        %B 完全な月名 August
        %c 例の通り Thu Aug 23 14:55:02 2001
        %C 年を100で割って整数に切り捨て(00-99) 20
        %d 日(01-31) 23
        %D 短い日付 MM/DD/YY、%m/%d/%y と同等 08/23/01
        %e 日、スペースで埋める(1-31) 23
        %F 短い日付 YYYY-MM-DD、%Y-%m-%d と同等 2001-08-23
        %g 週ベースの年、最後の2桁(00-99) 01
        %G 週ベースの年 2001
        %h 省略された月名 Aug
        %H 24時間制の時 14
        %I 12時間制の時 02
        %j 年の日数 235
        %m 月 08
        %M 分 55
        %n 改行
        %p AM/PM PM
        %r 例の通り 12時間制時間 02:55:02 pm
        %R 例の通り 24時間制時間 14:55
        %S 秒(00-61) 02
        %t タブ文字
        %T %H:%M:%S と同等 14:55:02
        %u 曜日、月曜日が1(1-7) 4
        %U 年の週番号、日曜日を最初の日とする(00-53) 33
        %V ISO 8601 年の週番号(01-53) 34
        %w 曜日、日曜日が0(0-6) 4
        %W 年の週番号、月曜日を最初の日とする(00-53) 34
        %x 例の通り 月/年/日 08/23/01
        %X 例の通り 14:55:02
        %y 年の最後の2桁 01
        %Y 年 2001
        %z ISO 8601 UTCオフセット(1分=1、1時間=100) +100
        %Z タイムゾーン名 CDT
        %% 説明 %
  • 戻り値: string フォーマット後の時刻文字列

  • 説明: 渡されたタイムスタンプをフォーマット

  • 例:

    -- 現在時刻をフォーマット
    local now = box.now()
    --現在時刻を"2024-05-27 13:04:05"形式にフォーマット
    local time_str=box.tsformat(now,"%Y-%m-%d %H:%M:%S")

8.2.1.3 IoTBoX組み込みインターフェース要求

  • 定義: request(url, method, data) -> table

  • 分類: 関数

  • パラメータ:

    • url: string HTTP要求のURL、hostとschema部分を除く
    • method: string HTTP要求メソッド、例: PUT/GET/POST
    • data: table 要求で渡す内容、ない場合はnilを渡す
  • 戻り値: table 返されるステータスコードと内容

  • 説明: IoTBoX組み込みのすべてのインターフェースを要求、詳細はHTTP APIを参照

  • 例:

    -- 現在の**IoTBoX**デバイス情報を取得
    local gateway_info = request("/api/gateway","GET","")
    box.log(gateway_info.hardware)

8.2.1.4 乱数取得

  • 定義: random(start, end) -> int

  • 分類: 関数

  • パラメータ:

    • start: int 開始
    • end: int 終了
  • 戻り値: int 返される乱数

  • 説明: start以上end以下の乱数整数を返す

  • 例:

    -- 0-100の間の乱数を取得
    local r=box.random(0,100)

8.2.1.5 ログ出力

  • 定義: log(level, any...)

  • 分類: 関数

  • パラメータ:

    • level: string ログレベル、trace、debug、info、warn (warning)、err (error)、criticalを含む
    • any: any 任意の数の内容パラメータ、順番に出力
  • 説明: ログを出力

  • 例:

    -- ログに出力
    box.log("info",1,"11",true)
    box.log("debug","this is a debug info")

8.2.1.6 IoTBoX ID

  • 定義: gateway_id

  • 分類: プロパティ

  • 型: string

  • 説明: IoTBoXのID、プッシュインターフェースで設定

  • 例:

    -- 現在の**IoTBoX**のidを返す
    local gatway_id=box.gateway_id

8.2.1.7 IoTBoXフィンガープリント

  • 定義: fingerprint

  • 分類: プロパティ

  • 型: string

  • 説明: IoTBoXのフィンガープリント

  • 例:

    -- 現在の**IoTBoX**のフィンガープリントを返す
    local fingerprint=box.fingerprint

8.2.2 redis

redisキャッシュを操作、すべてのkeyのプレフィックスに自動的にedge_calc_を追加 * ここでのkeyはIoTBoX全体で一意です。複数のデバイスがエッジ計算を使用する場合、keyの重複に注意してください。 * この操作はIoTBoX再起動後にクリアされる可能性があります。永続ストレージが必要な場合はstoreを使用してください。

8.2.2.1 key読み取り

  • 定義: get(key) -> table

  • 分類: 関数

  • パラメータ:

    • key: string 設定名
  • 戻り値: table 取得した内容を返す、空の場合はnilを返す

  • 説明: redisキャッシュを読み取る

  • 例:

    -- redisキャッシュを読み取る
    local cache=redis.get("cached_value")

8.2.2.2 key書き込み

  • 定義: set(key, value)

  • 分類: 関数

  • パラメータ:

    • key: string 設定名
    • value: table 書き込む内容
  • 説明: redisキャッシュに書き込む

  • 例:

    -- redisキャッシュに書き込む
    redis.set("cached_value",1)

8.2.2.3 key削除

  • 定義: del(key)

  • 分類: 関数

  • パラメータ:

    • key: string 削除するkey
  • 説明: redisキャッシュを削除

  • 例:

    -- redisキャッシュを削除
    redis.del("cached_value")

8.2.3 store

IoTBoX組み込みdb変数を操作、すべてのkeyのプレフィックスに自動的にedge_calc_を追加 * ここでのkeyはIoTBoX全体で一意です。複数のデバイスがエッジ計算を使用する場合、keyの重複に注意してください。 * このkeyはデバイス設定ページでも操作でき、設定とエッジ計算の連携を実現します。 * この操作は永続ストレージですが、ディスク読み書きのためパフォーマンスが低いです。永続化が不要な場合はredisを使用してください。

8.2.3.1 key読み取り

  • 定義: get(key) -> table

  • 分類: 関数

  • パラメータ:

    • key: string 設定名
  • 戻り値: table 取得した内容を返す、空の場合はnilを返す

  • 説明: storeキャッシュを読み取る

  • 例:

    -- storeキャッシュに書き込む
    local cache=store.get("cached_value",1)

8.2.3.2 key書き込み

  • 定義: set(key, value)

  • 分類: 関数

  • パラメータ:

    • key: string 設定名
    • value: table 書き込む内容
  • 説明: storeキャッシュに書き込む

  • 例:

    -- storeキャッシュに書き込む
    store.set("cached_value",1)

8.2.3.3 key削除

  • 定義: del(key)

  • 分類: 関数

  • パラメータ:

    • key: string 削除するkey
  • 説明: storeキャッシュを削除

  • 例:

    -- どこでも使用可能
    -- redisキャッシュを削除
    store.del("cached_value")

8.2.4 http

HTTPインターフェース要求

8.2.4.1 共通パラメータ

  • パラメータ:

    • request: table 要求パラメータ
      • url : string 要求url
      • params : table 要求queryパラメータ(空可)
      • headers : table 要求httpヘッダー(空可)
      • cookies : table 要求cookie(空可)
      • form : table 要求formデータ(空可、postのみ)
      • body : table/string post内容(空可、postとputのみ)
  • 戻り値

    • status_code : int 返されるhttp_code
    • text : string 返される内容
    • headers : table 返されるhttpヘッダー
    • cookies : array[table] 返されるcookie
      • name : string Cookie名
      • value : string Cookie内容
      • domain : string ドメイン
      • path : string パス
      • include_subdomain : bool サブドメインを含む
      • http_only : bool Http only
      • expires : int 有効期限
  • 示例:

    {
        "status_code": 200,
        "text": "hello",
        "headers": {
            "X-Foo": "bar"
        },
        "cookies": {
            [
                "name":"user_id",
                "value":"1"
            ]
        }
    }

8.2.4.2 get

  • 定義: get(request) -> table

  • 分類: 関数

  • パラメータ: 见共通パラメータ

  • 戻り値: 见共通パラメータ

  • 説明: HTTP GET要求

  • 示例:

    local r=http.get({
        url="http://127.0.0.1",
        params={
            foo="bar"
        },
        headers={
            ["X-Data"]="aaaa"
        },
        cookie={
            user_id=1
        }
    })
    box.log("debug",r)

8.2.4.3 post

  • 定義: post(request) -> table

  • 分類: 関数

  • パラメータ: 见共通パラメータ

  • 戻り値: 见共通パラメータ

  • 説明: HTTP POST要求

  • 示例:

    local r1=http.post({
        url="http://127.0.0.1",
        form={
            foo="bar"
        },
    })
    box.log("debug",r1)
    local r2=http.post({
        url="http://127.0.0.1",
        body={
            foo="bar"
        },
    })
    box.log("debug",r2)

8.2.4.4 put

  • 定義: put(request) -> table

  • 分類: 関数

  • パラメータ: 见共通パラメータ

  • 戻り値: 见共通パラメータ

  • 説明: HTTP PUT要求

  • 示例:

    local r=http.put({
        url="http://127.0.0.1",
        body={
            foo="bar"
        },
    })
    box.log("debug",r)

8.2.4.5 delete

  • 定義: delete(request) -> table

  • 分類: 関数

  • パラメータ: 见共通パラメータ

  • 戻り値: 见共通パラメータ

  • 説明: HTTP DELETE要求

  • 示例:

    local r=http.delete({
        url="http://127.0.0.1",
    })
    box.log("debug",r)