HarmonyOS开发:【数字管家app设备接入FA】

简介

本文档为帮助开发者快速将设备接入到数字管家,完成FA、服务端和设备的通信,实现数字管家对设备的命令控制、日程管理,以及设备对数字管家的主动告警。

快速上手

image

1. 前提参考:

鸿蒙开发文档:docs.qq.com/doc/DUmN4VVhBd3NxdExK

  • IoT平台:完成IoT平台新设备配置;
  • 设备端:完成设备端的开发并定义好profile设备模型;
  • 服务端:搭建并配置好了服务端;
  • 数据库:device_type表中添加好相关产品数据;
2. 编写设备控制页面
  1. 在slice目录下新建 xxxxSlice.java文件,通过 addActionRoute()  方法为此AbilitySlice配置一条路由规则,并且在在应用配置文件(config.json)中注册,
    image

image

  1. 在resources->base->layout下新建对应xml布局文件,在上述两个文件中编写相应界面代码。
3. 页面逻辑与数据处理
  1. slice页面获取deviceId:在onStart中通过调用intent.getStringParam("deviceId") ,获取设备标识用于对设备进行控制或者获取设备信息。

image

  1. slice页面获取状态:对于可以主动控制的设备,调用intent.getBooleanParam(KEY_IS_SET_COMMAND, false) ,用于判断当前状态下是需要执行命令,还是通过 [EventBus]将命令数据传出用于日程对设备的编排之中。 image

  2. 编写设备控制命令的获取和解析方法:在CommandUtil中根据具体设备profile定义,来新增获取命令和解析命令的方法,以供设备调用sendCommand来发送命令和在日程中来解析命令。

image

image

  1. 配置设备相关信息:在DeviceData类的initData方法中,根据设备productId添加设备图片资源ID、跳转的action参数和日程解析方法,配置完成后设备列表页、日程页面等都能通过该配置进行图片加载、路由跳转和日程解析。 image

  2. 以上代码逻辑处理和实现可参考LampAbilitySlice.java。

4. 接口对接

​ 项目使用的网络请求组件为RetrofitCache,项目中服务端api定义于ApiRx2,通过OKHttpUtilsRx2来实现异步调用。

  1. 若使用自己部署的服务端,须做如下修改: (1) 将OKHttpUtilsRx2类中SERVER_URL变量修改为自己的服务端api地址; (2) 将DeviceStateListener类中RABBITMQ_HOST变量修改为自己的服务端地址;

  2. 初始化设备状态:通过调用getDeviceInfo接口,传入deviceId和userId来获取,其中UserId在登录时会储存于Preferences轻量级数据存储之中。 image

  3. 设备控制命令:通过调用sendCommand接口,传入deviceId和命令json字符串来对指定设备进行控制。

image

image

如何验证

鸿蒙NEXT开发星河文档+mau123789是v直接拿取
1. 写入NFC数据

根据设备定义好的设备profile模型,使用应用调测组助手将tlv格式数据写入NFC NFC数据写入章节。

2. 对设备进行碰一碰配网

将手机靠近NFC标签,可正常拉起数字管家,并开始无感配网。

image

3. 验证设备跳转入口
  • 在线设备贴近设备NFC标签碰一碰,可正常跳转至应用;

image

  • 在首页设备Tab和新增日程页面的设备图标能正确显示设备状态,在线设备点击图标后可跳转设备页;

image

4. 验证功能
  • 新增日程:在输入成员、设备执行动作、执行时间等后,日程页面可看见新增的日程以及需执行的动作,在到达指定时间后所有设备能够执行预设动作,并且相关成员手机会收到系统通知。

image

  • 设备单点控制:进入设备控制页面,执行控制操作设备能有相应动作执行。
    image

  • 主动告警:验证设备端能否通过AMQP通知到数字管家,例如智能垃圾桶检测到垃圾桶已满会通过服务端通知到相关用户,并且能触发铃声提醒和系统通知弹框。
    image

posted @   烧脑猴  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
鸿蒙NEXT文档资料 mau123789是助理v直接可拿取
点击右上角即可分享
微信分享提示