智慧家庭SSDP发现设备
浅谈华为OpenLife智慧家庭
小优通过WIFI+SSDP方式接入智能网关
客厅灯、门禁通过ZigBee或WIFI方式接入智能网关
1.小优连接智能网关对应的wifi,把小优加入到多播组中,并实现ssdp发现服务监听器,在多播组中收到匹配的发现服务就以单播方式响应目标客户端(此处为智能网关),单播响应的消息主要包含小优ip地址、设备的系列号、识别号等;另外小优端也会初始化socket服务端ServerSocket,等待客户端Socket连接。
2.智能网关加载小优的驱动插件,插件初始化后,会每隔几秒广播一次ssdp:discover服务,服务类型为-ssdp:all( 搜索所有设备和服务),当有收到回应,识别出小优,认为小优在线,然后发起socket连接;如果隔一段时间(自己设定)没收到小优的ssdp响应,认为小优下线,此时断开socket连接。
3.手机接通智能网关,查询到小优在线,点开小优设备图片,可以控制小优,例如点击前进按钮,前进指令发到智能网关,智能网关匹配到小优的对应事件接口,并通过socket通道发送此事件给小优,小优解析事件信息执行相应动作。
4.当门禁打开或关闭都会触发相应事件,此事件发到智能网关,智能网关把此事件通知小优,小优解析出事件会说:主人,门已打开(关闭)。
5.对小优说打开客厅灯,小优解析此语音信息转换为字符串事件信息发送到智能网关,智能网关处理后,发送执行指令把客厅灯打开,并把执行结果发回给小优,小优处理返回结果,会说:主人,已为你打开客厅灯。
哈哈,大概就这么个过程,下一篇会针对小优WIFI+SSDP的实现贴上对应代码。