阿里雲物ネットワークNET Coreクライアント|CZGL.AliIoTClient:5. デバイスのプロパティの設定

6025 ワード

ドキュメントディレクトリ:
説明1.阿里雲物ネットワークを接続する
2.IoTクライアント3.Topicの購読と応答Topic 4.デバイスエスカレーション属性4.1位置情報を報告する
5.デバイス属性を設定する
6.設備事件報告7.サービスコール8.委任イベント9.カスタム委任イベントメソッド 
前章では、グリムエアコン温度gree_temperatureでは、エアコンの出力温度が設定できるため、読み書き権限が設定されています.CPU温度は実際の状況に応じて採取し、エアコン温度はリモコンで設定し、サーバはこの温度データを設定してもよいし、同時にこのデータを設定してもよい.読み書き権限は、サーバがデバイスのプロパティを設定する権限を持っていることを示します.
注意したのは、読み書きの2つのケースだけで、書いていません.
1)サーバがデバイス属性を設定できるようにする
通信はサブスクリプション/プッシュ、データの上下転送であり、属性、イベント、サービス、本質、Topicにかかわらず、それ自体は複雑ではありません.CZGL.AliIoTClientは細かく分けられており(筆者を褒めて)、中には多くのパラメータが設置されており、より自由で便利です.
第3章では,応答やその他の機能を開く方法と取り消す方法について述べたが,ここでは説明しない.
以下は初期コードで、これに基づいて説明します(DeviceOptionsの情報を変更してください):
        static AliIoTClientJson client;
        static void Main(string[] args) { //       client = new AliIoTClientJson(new DeviceOptions { ProductKey = "a1A6VVt72pD", DeviceName = "json", DeviceSecret = "7QrjTptQYCdepjbQvSoqkuygic2051zM", RegionId = "cn-shanghai" }); client.OpenPropertyDownPost(); //       Topic、       Topic string[] topics = new string[] { client.CombineHeadTopic("get") }; //        client.UseDefaultEventHandler(); //       client.ConnectIoT(topics, null, 60); Console.ReadKey(); } 
Console.ReadKey()の前に1行のコードを追加し、サーバーを実行して属性設定コマンドを発行します.
            client.OpenPropertyDownPost(); 

プログラムを実行します.
2)命令を出す
アリクラウドネットワークコンソールを開き、 に入り、前に作成した製品、デバイスを選択します.直接開くこともできます.https://iot.console.aliyun.com/lk/monitor/debug以下の設定を行います.
    :      
  :          (gree_temperature)
  :      

入力ボックスの値を20.0に変更し、送信コマンドをクリックします.
{
  "gree_temperature": 20
}

コンソール・プログラムが指示を受けたのを見ることができます.
get topic message,Date: 16:52:55 topic: /sys/a1A6VVt72pD/json/thing/service/property/set get messgae : {"method":"thing.service.property.set","id":"666237842","params":{"gree_temperature":20},"version":"1.0.0"} 

Alink jsonを使用するため、サーバからの命令は実際には次のようになります.
{"method":"thing.service.property.set","id":"666237842","params":{"gree_temperature":20},"version":"1.0.0"} 

なぜ他のものを出力するのでしょうか?これはCZGLのためです.AliIoTClient種には、受信したメッセージの内容(message)などの情報を出力する複数のデフォルトのイベントメソッドが設定されており、メソッドをカスタマイズして処理することができます.
文字列をフォーマットした後:
{
	"method": "thing.service.property.set",
	"id": "666237842",
	"params": { "gree_temperature": 20 }, "version": "1.0.0" } 

しかし、現在はサーバからのコマンドしか受信できません.これらのコマンドをどのように処理するかはまだ書かれていません.これは、対応するメソッドを作成して依頼イベントにバインドする必要があります.これらのメソッドは、プロパティ・メッセージを受信するとトリガーされます.設定方法は、後述の章を参照してください.
3)対応
サーバーから指示を受けたとき、このTopicに応答することができます.
//     ID
public int Thing_Property_set(CZGL.AliIoTClient.PropertyDownModel model, [bool isToLower = True]) public int Thing_Property_set(CZGL.AliIoTClient.PropertyDownModel model, [bool isToLower = True], [System.Text.Encoding encoding = null]) public int Thing_Property_set(TModel model, [bool isToLower = True]) 


実際には、応答する必要はありません.の必要であれば,メソッドをカスタマイズし,メソッドに応答を加えて依頼にバインドし,自動的に応答することができる.設定方法は、後述の章を参照してください.