解决方案
Product
Services
开发者
工厂客户
Register
Login
首页
文章
详情
怎么用Dart语言对接智能灯座
2022-06-14 发布
浏览:107 次
本文介绍了如何用
Dart
对接 智能灯座 的方法: 可以通过接口实现。
智能灯座
更多...
支持命令
线路
power
先通后断
point
先断后通
reset
产品手册
版本
对应产品手册
HTTP接口控制
以设备控制(向设备下发命令)为例
Dart
// First you need to prepare the following values // 1. AppID (in your console development settings) // 2. AppSecret (in your console development settings) // 3. ts (timestamp of the current time, seconds) // 4. YourSign = md5(md5(AppSecret)ts);(md5 is an encryption method, AppSecret is the AppSecret prepared above, ts is the timestamp prepared above, concatenate the string after the AppSecret after md5 encryption) // In simple terms, the signature is md5(md5(your developer password)concatenate the above ts timestamp value); ts is the timestamp of the current timestamp; that is, to perform one MD5 on the developer password (AppSecret), then concatenate the timestamp, and then perform one MD5 on the entire concatenated string // Core request address: api.thingboot.com/AppID/device/control/?sign=YourSign&&ts=ts; // Request needs to pass two parameters device and order: // device[string]: unique device ID, can pass multiple [separated by ,], can be viewed in the console, or pulled through the interface // order[json string]: the command to be issued, for example: // {"power":1}, usually to connect the circuit of the switch // {"power3":0}, usually to close the third line of the switch or controller // {"play:gbk:16":"hello, welcome to visit"}, let the voice speaker report the specified content // The same type of product, the command is the same, different product types of commands, please view the product manual page of each product // Note: you must replace the formal AppID and AppSecret with real-time timestamp calculation of the signature, the request must have device device ID and order command /* 确保在 pubspec.yaml 文件中添加以下依赖: dependencies: http: ^0.13.5 crypto: ^3.0.2 */ import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:crypto/crypto.dart'; void main() async { // 配置参数 final AppID = 'qtyVWcgeMq'; // 替换为实际的 AppID final AppSecret = '开发者密码'; // 替换为实际的 AppSecret final device = '1878'; // 替换为实际的设备ID;可传多个[用,间隔] final order = '{"power1":1}'; // 替换为实际的命令 // 计算时间戳 final ts = DateTime.now().millisecondsSinceEpoch; // 计算 MD5 哈希值 final md5Hash = md5.convert(utf8.encode(AppSecret)).toString(); // 计算 sign final signInput = md5Hash + ts.toString(); final sign = md5.convert(utf8.encode(signInput)).toString(); // 构造请求 URL final url = 'https://api.thingboot.com/$AppID/device/control/?sign=$sign&ts=$ts'; // 创建 multipart 请求 var request = http.MultipartRequest('POST', Uri.parse(url)); // 添加请求头 request.headers.addAll({ 'Accept': '*/*', 'Host': 'api.thingboot.com', 'Connection': 'keep-alive', }); // 添加请求体字段 request.fields.addAll({ 'device': device, 'order': order, }); // 发送请求 var response = await request.send(); // 输出响应 if (response.statusCode == 200) { print(await response.stream.bytesToString()); } else { print(response.reasonPhrase); } }
文章:
怎么用Dart语言对接智能灯座
相关技术文章:
怎么用Dart语言控制DC-10A 智能通断器
查看
怎样用Dart语言对接8位智能总控PDU
查看
怎么用Dart语言对接2路HTTP接口智能开关
查看
怎么用Dart语言对接壁挂式红外和雷达双模块传感器
查看
怎样用Dart语言控制智能3路墙壁开关
查看