热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于websocket:智汀家庭云开发指南Golang设备模块

品牌指的是智能设施的品牌,SA通过插件的模式对该品牌下的设施进行发现管制。实践上来说一个品牌对应一个插件服务。您能够通过我的项目根目录下的品牌查看SA反对的品牌。对于插件服务的详细信息能够参考plugin

1.品牌

品牌指的是智能设施的品牌,SA通过插件的模式对该品牌下的设施进行发现管制。实践上来说一个品牌对应一个插件服务。您能够通过我的项目 根目录下的品牌查看SA反对的品牌。对于插件服务的详细信息能够参考 plugin

2.设施的相干操作

在SA中是通过一个个命令对设施进行操作的,如果您想应用这些命令操作某一品牌的设施,首先应该装置该品牌的插件。在SA中装置、更新、 移除插件。请参考 plugin SA解决设施命令的流程:客户端通过websocket音讯的模式将对应的操作命令发送给SA,SA通过grpc的形式将音讯转发给插件服务,插件 服务解决后,将解决的后果通过grpc的形式发送给SA,SA将处理结果以websocket音讯返回给客户端。

(1)设施的发现与增加

发现设施 发现设施需向SA发送以下格局的websocket音讯,字段阐明: domain: 插件名称;service:设施命令。

{
  "domain": "",
  "id": 1,
 "service": "discover"
}

胜利后SA会返回以下音讯

 {
  "id": 1,
 "success": true,
 "result": {
"device": {
  "id": "21394770a79648e6a3416239e1ebecb9",
  "address": "192.168.0.195:55443",
  "identity": "0x0000000012ed37c8",
  "name": "yeelight_ceiling17_0x0000000012ed37c8",
  "model": "ceiling17",
  "sw_version": "5",
  "manufacturer": "yeelight",
  "power": "on",
  "bright": 80,
  "color_mode": 2,
  "ct": 3017,
  "rgb": 0,
  "hue": 0,
  "sat": 0
 }
 }
}

manufacturer之后的字段为设施属性,取决于设施的类型

增加设施 将发现设施操作获取的设施次要信息通过增加设施接口以下列格局发送到SA。如果增加的设施为SA,则type为smart_assistant

{
"device": {
"name": "nisi dolore eu est",
"brand_id": "commodo es",
"address": "pariatur sint",
"identity": "velit ut ad",
"model": "proident veniam",
"type": "nisi Lorem in officia irure",
"sw_version": "qui ut",
"manufacturer": "aute Lorem pariatur volu",
"plugin_id": "dolore reprehenderit"
}
}

SA会将该设施长久化保留在数据库中,之后便可通过插件管制设施。

(2) 设施管制与设施信息
客户端同样是以websocket音讯的模式将命令发送给SA。因为不同类型的设施的命令不肯定雷同,所以这里只以yeelight灯进行示例展现。更多类型设施的 音讯格局请浏览 WebSocket API 音讯定义

设施信息

{
"domain": "yeelight",
"id": 1,
"service": "state",
"service_data": {
"device_id": "device_id"
}
}
{
"id": 1,
"result": {
"state": {
  "power": "on/off",
  "brightness": 55,
  "color_temp": 4000
}
},
"success": true
}

开关

{
 "domain": "yeelight",
"id": 1,
"service": "switch",
"service_data": {
"device_id": "device_id",
"power": "on/off/toggle"
  }
}

设置亮度

{
 "domain": "yeelight",
"id": 1,
"service": "set_bright",
"service_data": {
"device_id": "device_id",
"brightness": 100
 }
}

设置色温

 {
  "domain": "yeelight",
  "id": 1,
  "service": "set_color_temp",
  "service_data": {
  "device_id": "device_id",
  "color_temp": 100
  }
}

3.设施的权限

SA会从插件的装置目录 “插件装置目录:../../static/plugins” 读取每一个插件的config.yaml文件以取得该设施具备的操作性能。具体方法能够查看 ”获取设施的操作性能:device.go“ 文件中的GetDeviceActions()办法。SA为设施的每一个性能操作设置了权限 管制,这意味着您可能只能管制某个设施的一种或多种性能。对于权限的详细信息,您能够浏览 “用户模块-权限”。您能够通过获取用户权限接口 来查看您领有的设施管制权限。


推荐阅读
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Echarts图表重复加载、axis重复多次请求问题解决记录
    文章目录1.需求描述2.问题描述正常状态:问题状态:3.解决方法1.需求描述使用Echats实现了一个中国地图:通过选择查询周期&#x ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
author-avatar
帆侮听我悄悄说星星
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有