用于与ELKM1报警/自动化面板交互的库。

elkm1的Python项目详细描述


#python elkm1库

用于与elkm1报警/自动化面板交互的库。


https://github.com/gww/elkm1


\requirements

-python 3.5(或更高版本)

写这篇文章的动机是与家庭助理自动化平台一起使用。该库可用于编写其他elkm1集成
应用程序。面板的IO通过TCP或
串行端口(串行端口尚未实现)异步通过TCP或
串行端口(串行端口尚未实现)异步通过TCP或
串行端口(串行端口尚未实现)安装






`` bash
$$pip install elkm1
`` `



/>连接到elk面板:elk面板:elkm1 import elk




elk=elk({'url'{'url''elk'elk'elk'elk'elk'elk({'url'{'url'{'elk'el以下内容:'elk://192.168.1.100'})
elk.loop.run_until_complete(elk.connect())
elk.run()
````

“elk://`
前缀指定连接为纯文本。或者,elks://`将
通过tls连接。在这种情况下,必须指定用户id和密码
,对“elk”的调用将是:

``python
elk=elk({'url':'elks://192.168.1.100',
'userid':'testuser','password':'testpass'})
````

`elk'对象支持“elements”的概念。“element`
是“zones”、“lights”等的基类表示。因此,对于
示例,有一个区域列表:`elk.zones',并且每个区域都可以由`elk.zones[index]`访问。每个元素都有一个“str”
表示形式,以便轻松打印其内容。


所有“elements”都从0开始引用。即使麋鹿面板
引用区域1-208,库也将其
引用为区域0-207。从基0到1的所有转换都在“elkm1.message”模块内部处理。



消息导致更改“element”的属性时,将调用
回调,以便通知用户库的使用
更改的元素。以下用户代码显示了注册回调:

``python
def call\u me(attribute,value):
print(attribute\u that\u changed,new\u value)


并处理与
麋鹿面板之间的消息。所有编码和解码都在“elkm1.message”模块中完成。


在内部注册回调,以便解码的消息
可用于更新“element”。
库的用户也可以注册回调。任何特定消息
都可能有多个回调。

当接收到消息时,将对其进行解码
,并进行一些验证。消息处理程序用解码消息中的字段调用
。每种类型的
消息都有与消息类型匹配的参数。所有处理程序参数
都是命名参数。

下面是一个注册消息处理程序的示例,以及如何调用它:

``python
def zone_status_change_handler(zone_number,zone_status):
print(zone_number,zone_status)

add_message_handler('zc',区域状态更改处理程序)
````

上述代码为“zc”(麋鹿区域状态更改)
消息注册回调。当接收到zc消息时,将调用带有区域号和区域状态的处理函数



.

`mkdoc`

它输出到stdout。
报告的数据主要来自elkm1库代码。
mkdoc脚本中有一些东西是硬编码的,特别是“无计划实现”列表。



继续监听来自面板的任何消息。


它可以在两种模式下运行。默认为非交互模式。只需运行“elk”命令。
非交互模式与“simple”类似,只是有一对
消息处理程序(“timeout”和“unknown”处理程序)。

“elk”也可以在交互模式下通过
“elk-i”调用它。在此模式下,is使用带有命令行和输出窗口的curse(终端的全屏使用)
。` tab`在
命令行和输出窗口之间切换。在输出窗口中,箭头键
和滚轮滚动窗口内容。

从“help”开始。然后“help<;command>;”,查看每个命令的详细信息。一般来说,有一些命令可以转储元素的内部
状态,并调用任何编码器将消息
发送到elk面板。

`它为3号灯(面板上的4号灯——记住0
与1个碱基相比)发出pf(关闭灯)
命令。

向面板发送消息的所有命令都会被自动发现,并且都是“elkm1.message”模块中的xx编码函数。docstring和xx_encode的参数显示为帮助的一部分。


\development

此项目使用“pipenv”作为开发依赖项。如果需要,
使用“pip install pipenv”安装它。

--dev
pipenv shell
进行测试,以确保所有设备安装正确
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Android应用内小部件中显示之前停止活动   swing如何在java文本字段中添加文本而不是替换文本   java相对布局getParams和setMargin不工作   java处理JDBC中Oracle的“本地时区时间戳”数据类型   ArrayList的java空指针异常   java无法使用跨不同机器生成的访问令牌进行身份验证   for循环中的java后缀和前缀   java验证方法未运行Mockito   java如何防止从其他网站调用我的servlet   java需要您的帮助来理解Android中的更新状态点   java使用纬度和经度获取时区   java httpURLConnection:post参数可以有多长?   java如何将执行的GROOVY脚本结果返回到RESTAPI响应   java为什么不同的线程输入了两次“synchronized(lock)”?   java在使用springsecurity和springwebflux时禁用WebSession创建   java如何解决“itemTag无法解析或不是字段”?   Java静态和动态绑定、重载   java为什么instanceof听上去不工作?   java登录到外部站点?(安卓)