CN113760912A - 一种基于WebHook服务的智能设备状态信息持久化方法及平台 - Google Patents
一种基于WebHook服务的智能设备状态信息持久化方法及平台 Download PDFInfo
- Publication number
- CN113760912A CN113760912A CN202111023000.XA CN202111023000A CN113760912A CN 113760912 A CN113760912 A CN 113760912A CN 202111023000 A CN202111023000 A CN 202111023000A CN 113760912 A CN113760912 A CN 113760912A
- Authority
- CN
- China
- Prior art keywords
- webhook
- service
- attribute
- service module
- redis database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于WebHook服务的智能设备状态信息持久化方法及智能家居业务管理平台,涉及智能家居技术领域。方法包括:当emqx消息服务器接收到属性状态值的变化指令时,emqx消息服务器向WebHook服务模块发布属性状态值的变化值;WebHook服务模块基于变化值更新属性值到内存队列;WebHook服务模块更新设备的属性值到Redis数据库,Redis数据库向WebHook服务模块返回更新结果;当消息的生产速度大于WebHook服务模块向Redis数据库更新的速度时,开启至少一个property消费服务进程,每个property消费服务进程向WebHook服务模块中取出属性值,并更新到Redis数据库。采用本发明,可以直接从平台的redis服务直接获取设备状态数据返回给移动端,从而减少移动端的数据查询等待时间,提高查询效率。
Description
技术领域
本发明涉及智能家居技术领域,特别是指一种基于WebHook服务的智能设备状态信息持久化方法及智能家居业务管理平台。
背景技术
在当前的智能家居领域中,设备状态信息存储在网关设备中,平台和移动端无法接收到设备状态变化事件和变化后的状态值。当移动端显示设备状态时,必须经过平台做中转,平台再从网关获取各设备的当前状态值,该请求过程因节点多从而造成请求等待时间长,导致查询效率低,同时网关所在的网络波动对获取数据的成功率影响大。
发明内容
为了解决平台从网关获取各设备的当前状态值的请求过程因节点多从而造成请求等待时间长,导致查询效率低的问题,本发明实施例提供了一种基于 WebHook服务的智能设备状态信息持久化方法及智能家居业务管理平台。
为解决上述技术问题,本发明提供如下所述技术方案如下:
一方面,提供了一种基于WebHook服务的智能设备状态信息持久化方法,该方法应用于智能家居业务管理平台,所述智能家居业务管理平台包括emqx消息服务器、WebHook服务模块、Redis数据库以及至少一个property消费服务进程;
所述方法包括:
S1、当emqx消息服务器接收到属性状态值的变化指令时,所述emqx消息服务器向WebHook服务模块发布属性状态值的变化值;
S2、所述WebHook服务模块基于所述变化值更新属性值到内存队列;
S3、所述WebHook服务模块更新设备的属性值到Redis数据库,所述Redis 数据库向所述WebHook服务模块返回更新结果;
S4、当消息的生产速度大于所述WebHook服务模块向所述Redis数据库更新的速度时,开启至少一个property消费服务进程,每个property消费服务进程向所述WebHook服务模块中取出属性值,并更新到Redis数据库。
可选地,所述S2中的WebHook服务模块基于所述变化值更新属性值到内存队列,包括:
当基于所述变化值更新属性值的消息进入内存队列时,如果所述内存队列已存在相同设备下同名属性的消息,则将要入的消息覆盖已存在的旧消息。
可选地,所述方法还包括:
S5、当平台接收到移动端发送的设备状态查询消息时,所述平台直接获取所述Redis数据库内的设备状态,将所述设备状态发送至所述移动端。
可选地,所述S4中的每个property消费服务进程向所述WebHook服务模块中取出属性值,并更新到Redis数据库,包括:
所述property消费服务进程向所述WebHook服务模块发送属性值获取请求,所述WebHook服务模块向所述property消费服务进程出列属性值,所述WebHook 服务模块向所述Redis数据库进行设备属性值的更新,所述Redis数据库向所述 WebHook服务模块发送更新结果。
可选地,所述Redis数据库是使用Redis扩展的json类型进行数据存储,存储的数据以物的id作为键、以物的属性名为json的object对象的属性名、以物的属性值作为json的object对象的属性值。
另一方面,提供了一种智能家居业务管理平台,所述智能家居业务管理平台用于实现一种基于WebHook服务的智能设备状态信息持久化方法,所述智能家居业务管理平台包括emqx消息服务器、WebHook服务模块、Redis数据库以及至少一个property消费服务进程,其中:
所述emqx消息服务器,用于接收到属性状态值的变化指令时,向WebHook服务模块发布属性状态值的变化值;
所述WebHook服务模块,用于基于所述变化值更新属性值到内存队列;更新设备的属性值到Redis数据库;
所述Redis数据库,用于更新设备的属性值;向所述WebHook服务模块返回更新结果;
所述property消费服务进程,用于当消息的生产速度大于所述WebHook服务模块向所述Redis数据库更新的速度时,开启至少一个property消费服务进程,每个property消费服务进程向所述WebHook服务模块中取出属性值,并更新到Redis数据库。
可选地,所述WebHook服务模块,进一步用于:
当基于所述变化值更新属性值的消息进入内存队列时,如果所述内存队列已存在相同设备下同名属性的消息,则将要入的消息覆盖已存在的旧消息。
可选地,所述平台还用于:
当平台接收到移动端发送的设备状态查询消息时,所述平台直接获取所述 Redis数据库内的设备状态,将所述设备状态发送至所述移动端。
可选地,所述property消费服务进程,进一步用于:
所述property消费服务进程向所述WebHook服务模块发送属性值获取请求,所述WebHook服务模块向所述property消费服务进程出列属性值,所述WebHook 服务模块向所述Redis数据库进行设备属性值的更新,所述Redis数据库向所述 WebHook服务模块发送更新结果。
可选地,所述Redis数据库是使用Redis扩展的json类型进行数据存储,存储的数据以物的id作为键、以物的属性名为json的object对象的属性名、以物的属性值作为json的object对象的属性值。
本发明实施例的上述技术方案至少具有如下有益效果:
通过智能家居业务管理平台实现基于WebHook服务的智能设备状态信息持久化,将所有网关下的任意设备的所有属性状态值在变化之后,实时地存储在平台的redis服务中,以达到当移动端查询一个或多个设备状态时,能直接从平台的 redis服务直接获取设备状态数据返回给移动端,从而减少移动端的数据查询等待时间,提高查询效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于WebHook服务的智能设备状态信息持久化方法流程图;
图2是本发明实施例提供的一种智能家居业务管理平台的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明实施例提供了一种基于WebHook服务的智能设备状态信息持久化方法,该方法可以应用于智能家居业务管理平台,该智能家居业务管理平台包括 emqx消息服务器、WebHook服务模块、Redis数据库以及至少一个property消费服务进程。如图1所示的基于WebHook服务的智能设备状态信息持久化方法流程图,该方法的处理流程可以包括如下的步骤:
S1、当emqx消息服务器接收到属性状态值的变化指令时,emqx消息服务器向WebHook服务模块发布属性状态值的变化值。
S2、WebHook服务模块基于变化值更新属性值到内存队列。
其中,WebHook服务是一个高性能的http服务,提供一个http接口用于接收emqx提交过来的设备状态数。
一种可行的实施方式中,由于保存数据到redis的速度低于接收数据的速度,WebHook需要实现一份内存队列,用于保存接收到的数据,然后再从内存队列取出数据写入到redis中。
可选地,当基于变化值更新属性值的消息进入内存队列时,如果内存队列已存在相同设备下同名属性的消息,则将要入的消息覆盖已存在的旧消息。这样,可以只保留属性的最新状态值。
S3、WebHook服务模块更新设备的属性值到Redis数据库,Redis数据库向 WebHook服务模块返回更新结果。
一种可行的实施方式中,WebHook服务模块内置一个设备属性消费者,无需进程交互就能从内存消息队列取出一条消息,然后直接写入Redis。循环地从内存消息队列取出消息然后写入Redis,每秒可完成消费10000条消息以上。
可选地,Redis数据库是使用Redis扩展的json类型进行数据存储,存储的数据以物的id作为键、以物的属性名为json的object对象的属性名、以物的属性值作为json的object对象的属性值,例如,温度为20摄氏度、模式为制冷的空调001,保存在redis的结构是:001->{“temp”:20,“mode”:0}。
在数据更新时,可以进行局部更新,即当温度调整为21时,只需要更新001 下面的.temp属性值,不用整体先读取整箱数据修改再保存整个json值。对应的命令是:JSON.SET.temp 21。
还可以进行多键获取:当想一次性获取空调001和空调002的所有的状态值时,传入001和002键名,就可以获取到2条json共4个属性值。对应的命令是JSON.MGET 001 002。
json类型的数据存储可以通过jsonRedis服务实现,该jsonRedis是给Redis 数据库安装了一个json数据类型支持的扩展模块的服务,此服务除了拥有redis 原生支持的数据类型之外,还支持json数据类型。
S4、当消息的生产速度大于WebHook服务模块向Redis数据库更新的速度时,开启至少一个property消费服务进程,每个property消费服务进程向WebHook 服务模块中取出属性值,并更新到Redis数据库。
一种可行的实施方式中,将属性值更新到Redis数据库后,Redis数据库返回更新结果,property消费服务进程可以弥补WebHook服务内置消费者的消费能力不足,保证属性值及时地更新到redis中。
可选地,S4中的每个property消费服务进程向WebHook服务模块中取出属性值,并更新到Redis数据库,包括:
property消费服务进程向WebHook服务模块发送属性值获取请求,WebHook 服务模块向property消费服务进程出列属性值,WebHook服务模块向Redis数据库进行设备属性值的更新,Redis数据库向WebHook服务模块发送更新结果。
S5、当平台接收到移动端发送的设备状态查询消息时,平台直接获取Redis 数据库内的设备状态,将设备状态发送至移动端。
本发明实施例中,通过智能家居业务管理平台实现基于WebHook服务的智能设备状态信息持久化,将所有网关下的任意设备的所有属性状态值在变化之后,实时地存储在平台的redis服务中,以达到当移动端查询一个或多个设备状态时,能直接从平台的redis服务直接获取设备状态数据返回给移动端,从而减少移动端的数据查询等待时间,提高查询效率。
本发明实施例提供了一种智能家居业务管理平台,如图2所示为智能家居业务管理平台的结构示意图,所述智能家居业务管理平台用于实现一种基于 WebHook服务的智能设备状态信息持久化方法,所述智能家居业务管理平台包括 emqx消息服务器、WebHook服务模块、Redis数据库以及至少一个property消费服务进程,其中:
所述emqx消息服务器,用于接收到属性状态值的变化指令时,向WebHook服务模块发布属性状态值的变化值;
所述WebHook服务模块,用于基于所述变化值更新属性值到内存队列;更新设备的属性值到Redis数据库;
所述Redis数据库,用于更新设备的属性值;向所述WebHook服务模块返回更新结果;
所述property消费服务进程,用于当消息的生产速度大于所述WebHook服务模块向所述Redis数据库更新的速度时,开启至少一个property消费服务进程,每个property消费服务进程向所述WebHook服务模块中取出属性值,并更新到Redis数据库。
可选地,所述WebHook服务模块,进一步用于:
当基于所述变化值更新属性值的消息进入内存队列时,如果所述内存队列已存在相同设备下同名属性的消息,则将要入的消息覆盖已存在的旧消息。
可选地,所述平台还用于:
当平台接收到移动端发送的设备状态查询消息时,所述平台直接获取所述 Redis数据库内的设备状态,将所述设备状态发送至所述移动端。
可选地,所述property消费服务进程,进一步用于:
所述property消费服务进程向所述WebHook服务模块发送属性值获取请求,所述WebHook服务模块向所述property消费服务进程出列属性值,所述WebHook 服务模块向所述Redis数据库进行设备属性值的更新,所述Redis数据库向所述 WebHook服务模块发送更新结果。
可选地,所述Redis数据库是使用Redis扩展的json类型进行数据存储,存储的数据以物的id作为键、以物的属性名为json的object对象的属性名、以物的属性值作为json的object对象的属性值。
本发明实施例中,通过智能家居业务管理平台实现基于WebHook服务的智能设备状态信息持久化,将所有网关下的任意设备的所有属性状态值在变化之后,实时地存储在平台的redis服务中,以达到当移动端查询一个或多个设备状态时,能直接从平台的redis服务直接获取设备状态数据返回给移动端,从而减少移动端的数据查询等待时间,提高查询效率。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于WebHook服务的智能设备状态信息持久化方法,其特征在于,所述方法应用于智能家居业务管理平台,所述智能家居业务管理平台包括emqx消息服务器、WebHook服务模块、Redis数据库以及至少一个property消费服务进程;
所述方法包括:
S1、当emqx消息服务器接收到属性状态值的变化指令时,所述emqx消息服务器向WebHook服务模块发布属性状态值的变化值;
S2、所述WebHook服务模块基于所述变化值更新属性值到内存队列;
S3、所述WebHook服务模块更新设备的属性值到Redis数据库,所述Redis数据库向所述WebHook服务模块返回更新结果;
S4、当消息的生产速度大于所述WebHook服务模块向所述Redis数据库更新的速度时,开启至少一个property消费服务进程,每个property消费服务进程向所述WebHook服务模块中取出属性值,并更新到Redis数据库。
2.根据权利要求1所述的方法,其特征在于,所述S2中的WebHook服务模块基于所述变化值更新属性值到内存队列,包括:
当基于所述变化值更新属性值的消息进入内存队列时,如果所述内存队列已存在相同设备下同名属性的消息,则将要入的消息覆盖已存在的旧消息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
S5、当平台接收到移动端发送的设备状态查询消息时,所述平台直接获取所述Redis数据库内的设备状态,将所述设备状态发送至所述移动端。
4.根据权利要求1所述的方法,其特征在于,所述S4中的每个property消费服务进程向所述WebHook服务模块中取出属性值,并更新到Redis数据库,包括:
所述property消费服务进程向所述WebHook服务模块发送属性值获取请求,所述WebHook服务模块向所述property消费服务进程出列属性值,所述WebHook服务模块向所述Redis数据库进行设备属性值的更新,所述Redis数据库向所述WebHook服务模块发送更新结果。
5.根据权利要求1所述的方法,其特征在于,所述Redis数据库是使用Redis扩展的json类型进行数据存储,存储的数据以物的id作为键、以物的属性名为json的object对象的属性名、以物的属性值作为json的object对象的属性值。
6.一种智能家居业务管理平台,其特征在于,所述智能家居业务管理平台用于实现一种基于WebHook服务的智能设备状态信息持久化方法,所述智能家居业务管理平台包括emqx消息服务器、WebHook服务模块、Redis数据库以及至少一个property消费服务进程,其中:
所述emqx消息服务器,用于接收到属性状态值的变化指令时,向WebHook服务模块发布属性状态值的变化值;
所述WebHook服务模块,用于基于所述变化值更新属性值到内存队列;更新设备的属性值到Redis数据库;
所述Redis数据库,用于更新设备的属性值;向所述WebHook服务模块返回更新结果;
所述property消费服务进程,用于当消息的生产速度大于所述WebHook服务模块向所述Redis数据库更新的速度时,开启至少一个property消费服务进程,每个property消费服务进程向所述WebHook服务模块中取出属性值,并更新到Redis数据库。
7.根据权利要求6所述的智能家居业务管理平台,其特征在于,所述WebHook服务模块,进一步用于:
当基于所述变化值更新属性值的消息进入内存队列时,如果所述内存队列已存在相同设备下同名属性的消息,则将要入的消息覆盖已存在的旧消息。
8.根据权利要求6所述的智能家居业务管理平台,其特征在于,所述平台还用于:
当平台接收到移动端发送的设备状态查询消息时,所述平台直接获取所述Redis数据库内的设备状态,将所述设备状态发送至所述移动端。
9.根据权利要求6所述的智能家居业务管理平台,其特征在于,所述property消费服务进程,进一步用于:
所述property消费服务进程向所述WebHook服务模块发送属性值获取请求,所述WebHook服务模块向所述property消费服务进程出列属性值,所述WebHook服务模块向所述Redis数据库进行设备属性值的更新,所述Redis数据库向所述WebHook服务模块发送更新结果。
10.根据权利要求6所述的智能家居业务管理平台,其特征在于,所述Redis数据库是使用Redis扩展的json类型进行数据存储,存储的数据以物的id作为键、以物的属性名为json的object对象的属性名、以物的属性值作为json的object对象的属性值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111023000.XA CN113760912A (zh) | 2021-09-01 | 2021-09-01 | 一种基于WebHook服务的智能设备状态信息持久化方法及平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111023000.XA CN113760912A (zh) | 2021-09-01 | 2021-09-01 | 一种基于WebHook服务的智能设备状态信息持久化方法及平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113760912A true CN113760912A (zh) | 2021-12-07 |
Family
ID=78792560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111023000.XA Pending CN113760912A (zh) | 2021-09-01 | 2021-09-01 | 一种基于WebHook服务的智能设备状态信息持久化方法及平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760912A (zh) |
-
2021
- 2021-09-01 CN CN202111023000.XA patent/CN113760912A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9832275B2 (en) | Message processing method, device and system for internet of things | |
CN108965355A (zh) | 用于数据传输的方法、装置及计算机可读存储介质 | |
CN101247362B (zh) | 即时通信联系人资料的更新方法以及即时通信系统 | |
CN107786623B (zh) | 消息异步处理方法和装置 | |
CN105279163A (zh) | 一种缓存数据的更新及存储方法及其系统 | |
CN106326499B (zh) | 一种数据处理方法及装置 | |
CN101690017A (zh) | 用于对在通用即插即用装置与远程用户界面客户机之间的通信进行中继的格式文件方法和设备 | |
CN104169914A (zh) | 数据存储方法、数据处理方法、装置及移动终端 | |
CN103927369A (zh) | 公交信息展现方法和装置 | |
US20080201475A1 (en) | Device Management Method Using Nodes Having Additional Attribute and Device Management Client Thereof | |
CN100416566C (zh) | 一种图片数据存储和读取方法 | |
CN103782542A (zh) | 用于设备发现的方法和用于下载内容的方法 | |
CN109558386A (zh) | 一种客户端数据的缓存方法、装置、设备和介质 | |
CN110309156A (zh) | 数据库系统、数据库更新、扩容方法及设备 | |
CN112559219A (zh) | 一种物联网离线消息管理方法、装置、设备及存储介质 | |
CN105653654B (zh) | 一种抽奖资格索引系统及方法 | |
CN113760912A (zh) | 一种基于WebHook服务的智能设备状态信息持久化方法及平台 | |
EP2728803B1 (en) | Systems and Methods for Implementation of a Smart Energy Profile Using Data-Interchange Encoding | |
CN103138965A (zh) | 一种查询物联网设备状态的方法、装置和系统 | |
CN102170476B (zh) | 一种基于云节点自主学习的云计算方法和装置 | |
CN116743790B (zh) | 设备数据采集、设备数据分析方法、装置和计算机设备 | |
CN114884883B (zh) | 一种流量转发方法、装置、设备及存储介质 | |
CN108494951B (zh) | 未读数据获取方法、装置、设备及存储介质 | |
CN112818166B (zh) | 一种视频信息查询方法、装置、电子设备和存储介质 | |
CN113918436A (zh) | 日志处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |