用于与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使用并发hashmap减少线程池的内存使用?   java为什么在提交片段后出现错误“getParentActivityIntent:badActivity name”?   vim UltiSnips扩展java包   java给出了一个名称列表,如何插入、删除、显示、搜索和退出?Java程序   java Spring集成:只从FTP服务器下载新的或更新的文件?   使用Java中的Scala:将函数作为参数传递   java线程1每秒填充一个映射,线程2每60秒保存一个条目   java从私有类访问公共类中的方法/字段   如何使用ApacheSpark流媒体和JavaAPI从所有人那里获取英语推文?   java是否可以在父标记和子标记中编写XMLSchemainstance?   java无法读取文本文件,也找不到解决方案   java在运行时加载类时无法创建bean