Python Library for dealing with openader
pyopenadr的Python项目详细描述
#pyopenadr
pyopenadr是一个python 3模块,它为openadr提供了一个方便的接口 系统。它包含一个openadr客户机,您可以使用它与其他openadr交谈 系统,它包含一个具有方便集成的openadr服务器(vtn) 可能性。
在尽可能少地使用openadr协议和复杂性的同时,很容易连接到自己的功能部件。如果您愿意,一切都可以是协同活动和基于事件的,只要发生感兴趣的事情,您的协同活动就会被调用。
如果您想了解基本的openadr通信流是如何发生的,请阅读[openadr basics](openadr basics)部分。
##客户机(VEN)
您可以使用OpenADR客户端(虚拟端节点)与OpenADR虚拟顶层节点进行对话。
###手动模式
如果您想在手动模式下使用客户机,您可以用一个venu-name和一个vtn-url来实例化openadrclient,然后调用一次create-party-registration()和一次poll()方法。openadr客户端将跟踪分配的vtnven id和注册id。前者用于许多消息,如果您想从vtn"注销",则使用后者。
poll()方法将返回一个元组(消息类型,消息负载)供您解释。消息有效负载是一个尽可能包含本地python类型的dict。
###自动模式
当应用程序需要查看或响应事件或报告时,客户端可以处理自动轮询并调用自己的函数或协同程序。如果要使用自动轮询,请实现on_event和on_report处理程序,然后调用client.run()启动。所有处理程序都可以实现为常规方法或协同路由;协同路由的优点是不阻塞客户机的其余部分(例如轮询)。
###处理事件
要链接您自己的事件处理程序,请在openadrclient中填充on_event方法。对于每个传入的事件,如果这些事件是在来自vtn的单个消息中提供的,则此方法或协程将为一次。您可以通过提供oadrcreatedevent消息的内容来决定对每个事件的响应。通常,您需要返回字符串"opt in"或"opt out"来选择加入或退出事件。客户将对vtn执行必要的请求。
###处理报告
要链接您自己的报表处理程序,请在openadrclient中实现on_report方法。为每个报表调用一次方法或协同程序,将报表的内容提供给函数。
###提供报告
如果要自动向vtn提供报告,请在openadrclient中实现next_report方法。您的方法或协同程序应提供oadrcreatereport消息的内容。
##服务器(vtn)
虚拟顶层节点是vens连接到的"服务器"。pyopenadr服务器实现了大部分行为,但您必须将其连接到提供数据的后端。
##连接到数据源
###响应查询
处理事件的方法
处理报告的方法
如果您不确定OpenADR报告所涉及的正确消息流,请阅读[OpenADR基础:报告](报告)部分。 你必须提供你自己的课程。下面将解释每个后端。 ###获取有关已连接虚拟机的元信息 如果VEN联机或脱机(错过了三个可配置的轮询间隔),服务器还可以调用方法或协同路由: ##OpenADR基础知识 openadr围绕来自vtn的消息进行ven轮询。 ###注册 (待添加) ###报告 报告可能是openadr中最复杂的交互。它包括以下步骤: 此仪式以VTN为甲方和VEN为甲方各举行一次。 ven方可以使用oadrpoll或oadrequestreport机制从vtn收集其请求的报告。vtn将用包含实际报告的oadrupdatereport消息响应。然后,VEN应以oadrupdatedreport消息响应。 Ven应使用oadrupdatereport消息主动向VTN提供报告,VTN将用oadrupdatereport消息响应这些消息。 ###事件 openadr有一个非常灵活的事件建模,这使得事情变得非常复杂。机制非常简单,并遵循以下逻辑: openadr事件由以下属性(或多或少)组成: ###轮询 (待添加)推荐PyPI第三方库