用于与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正则表达式限制名称大小和文件扩展名   Mac上的java Android SDK:jspawnhelper意外退出   java SQL Server 2000到Oracle 12c重音字符   在Java中快速比较大数据集中的值和小数据集中的值   java在代码中的许多地方保留对对象的引用   Java规范中私有内部类的jvm访问标志与反射API不一致?   比较2个int数组中匹配的数字   java Apache Commons数学简化回归:get prediction stderr   安卓 Java SDK管理器因命令行输出中的“flashplayerplugin”而崩溃   JavaSQLite:关闭DB时必须关闭游标吗?   泛型Java设计抽象类声明示例说明   java应用程序在添加片段时崩溃   如何在java中使用注释为字段加载值