Nordic の Zigbee CLI Reference を読む


https://infocenter.nordicsemi.com/topic/sdk_tz_v4.0.0/zigbee_example_cli_reference.html

にある CLI リファレンス。

# コマンド一覧

- bdb role
- bdb extpanid
- bdb panid
- bdb start
- bdb channel
- bdb ic
- bdb legacy
- bdb nwkkey
- bdb factory_reset
- zdo match_desc
- zdo simple_desc_req
- zdo active_ep
- zdo bind on
- zdo bind off
- zdo mgmt_bind
- zdo mgmt_lqi
- zdo nwk_addr
- zdo ieee_addr
- zdo eui64
- zdo short
- zdo mgmt_leave
- zcl cmd
- zcl attr read
- zcl attr write
- zcl subscribe on
- zcl subscribe off
- zcl ping
- radio fem enable
- radio fem <pa|lna|pdn> pin <pin>
- radio fem <pa|lna|pdn> polarity <active_high>
- radio channel set
- radio channel get
- version
- reset
- debug on|off
- zscheduler suspend
- zscheduler resume


# 解説

以下はリファレンスの補足。ちゃんとした解説はリファレンスを参照。


## bdb role

- bdb role zc コーディネーターにセット
- bdb role zr ルータにセット
- bdb role zed エンドデバイスにセット
- bdb rold 現在の設定を返す


## bdb extpanid

拡張PAN IDを設定または取得

## bdb panid

Zigbee PAN IDを設定または取得

## bdb start

コミッショニング(ネットワークへの参加)処理の開始

## bdb channel

802.15.4 チャンネルの設定または取得


## bdb ic

インストールコードの設定。インストールコードはトラストセンターに接続に使用できる。

## bdb legacy

レガシーデバイスのサポートの有効／無効
レガシーデバイスとはZibgee 3.0(ZigBeePRO r21)より前のデバイス


## bdb nwkkey

ネットワークキーの設定


## bdb factory_reset

ファクトリーリセット
cf., Base Device Behavior specification 9.5 Reset via a local action

## zdo match_desc

プロファイルを指定してブロードキャストし、デバイスを検索する
例

```

> zdo match_desc 0xffff 0xffff 0x0104 2 0x0402 0x0403 0
Sending broadcast request.
> 
> 
src_addr=17D5 ep=10
```

cf., https://qiita.com/nanbuwks/items/308a421eaa61dd3f8fb4

## zdo simple_desc_req


ノードとエンドポイントを指定してSimple Descriptor Requestを送信し、エンドデバイスの内容を確認します。
cf., https://qiita.com/nanbuwks/items/308a421eaa61dd3f8fb4

## zdo active_ep
アクティブエンドポイント要求を送信します。

## zdo bind on

ソースeui64とエンドポイントソースepで識別されるデバイスと、デスティネーションaddrとエンドポイントデスティネーションepで識別されるデバイスの間にバインド接続を作成します。
cf., https://qiita.com/nanbuwks/items/998b0c57d764ed994bfb

## zdo bind off
2 つのノード上の 2 つのエンドポイント間のバインディングを削除する。

## zdo mgmt_bind
dst_addr で識別されるリモートデバイスに、zdo mgmt_bind_req (仕様 2.4.3.3.3.4 参照) を介してバインディングテーブルを読み込むためのリクエストを送信します。

## zdo mgmt_lqi

ZDO Mgmt_Lqi_Req コマンドをリモートデバイスに送信します。


## zdo nwk_addr

 EUI64 アドレスを短いネットワークアドレスに解決します。

## zdo ieee_addr

Zigbee デバイスのショートアドレスから EUI64 アドレスを取得します。
cf., https://qiita.com/nanbuwks/items/998b0c57d764ed994bfb

## zdo eui64

自 Zigbee デバイスの EUI64 アドレスを取得します。
cf., https://qiita.com/nanbuwks/items/998b0c57d764ed994bfb


## zdo short

自 Zigbee デバイスの 16 ビットのショートアドレスを取得します。


## zdo mgmt_leave

zdo mgmt_leave_req (仕様書 2.4.3.3.3.5 節参照) を使用して、リモートデバイスにネットワークから離脱するためのリクエストを送信します。device_address が省略された場合や値が 0000000000 の場合は、アドレス dst_addr のリモートデバイスはネットワークから自身を削除する。

## zcl cmd

リモートノードに汎用コマンドを送信します。デフォルトではペイロードは空。ペイロードはリトルエンディアン。バインディングテーブルを使用する場合は 送信先アドレスとEPを0に設定する。

cf.,https://qiita.com/nanbuwks/items/308a421eaa61dd3f8fb4


## zcl attr read

リモート ノードの属性値を取得します。

cf.,https://qiita.com/nanbuwks/items/308a421eaa61dd3f8fb4


## zcl attr write
リモート ノードに属性値を書き込みます。



## zcl subscribe on


レポートの購読。
ex.,

```

zcl subscribe on f4ce36a90365d8fb 10 0x0402 0x0104 0 41
```


## zcl subscribe off

購読の停止
ex.,

```

zcl subscribe off f4ce36a90365d8fb 10 0x0402 0x0104 0 41
```



## zcl ping
ペイロードのpayload_sizeバイトを使用してping形式のコマンドを発行します。
cf.,3.13.2.3.6 Send Pings Command
(ZigBee Cluster Library Specification Revision 6 Draft Version 1.0)


## radio fem enable

FEM の設定は、external/zboss/osif/zb_nrf52_transceiver.c で定義されています（define ZB_FEM_SETTINGS を参照）。
詳細については、802.15.4 radio driver WikiおよびPA/LNAモジュール(FEMサポート)ページのFEMの説明を参照してください。


## radio fem <pa|lna|pdn> pin <pin>

FEM ピン番号を設定します。
## radio fem <pa|lna|pdn> polarity <active_high>

pa. パワーアンプ
LNA. 低雑音増幅器
pdn. パワーダウン制御

## radio channel set
現在の 802.15.4 チャンネルを設定
この関数は、Zigbee ネットワーク形成のために許可されるチャネルを定義する bdb チャネル関数とは対照的に、実行時に直接チャネルを設定します。
## radio channel get
現在の 802.15.4 チャンネルを取得します。

## version
ファームウェアのバージョンを表示します。


## reset

NVIC_SystemReset() を使用してデバイスのリセットを実行します。

## debug on|off
CLI でデバッグモードを有効/無効にします。


## zscheduler suspend

 Zigbee スケジューラ処理をサスペンドします。
## zscheduler resume

 Resume Zigbee スケジューラの処理を行います。


# コマンド以外に使える操作

上記のリスト以外に、以下が使えるようです


```

log enable info zigbee.report

```


# 接頭語などの意味

## zdo

Zigbee Device Object

## bdb

Base Device Behavior 
https://zigbeealliance.org/developer_resources/zigbee-base-device-behavior-bdb-v1-0/

## zcl

ZigBee Cluster Library 

## radio fem

このうちの fem とは Front-End Modules

## zscheduler

Zigbee scheduler  


# 参考文献

ZigBee Cluster Library Specification Revision 6 Draft Version 1.0
https://zigbeealliance.org/wp-content/uploads/2019/12/07-5123-06-zigbee-cluster-library-specification.pdf


Base Device Behavior Specification
Version 1.0
https://zigbeealliance.org/wp-content/uploads/2019/12/docs-13-0402-13-00zi-Base-Device-Behavior-Specification-2-1.pdf