用于与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第三方库


热门话题
JavaMaven没有识别junit测试   正则表达式替换Java中字符串中的所有“(“and”)”   文件移动到另一台计算机时出现java错误“实例化servlet类”   服务器上的java服务   Spring数据JPA上的java嵌套@Transactional注释行为   eclipse中的Java Tomcat项目   java在Tomcat上部署web应用程序   如何解决“java.lang.IllegalStateException:ArrayAdapter要求资源ID为TextView”错误?   java在条形码上方添加文本,并使用烧烤更改字体大小   java与php基准测试   java使用正则表达式提取特定模式   java扫描器。findInLine()大量泄漏内存   java HTTP:差异请求属性和POST参数   返回空指针的Java方法?   java验证密码不包含名称中的3个以上连续字符   Java中带泛型的静态多态性   java在Android中获得最后一个已知位置   java为什么Groovy的Map比Array更具可伸缩性?   编码如何在Java中生成八进制字符串?   java Hibernate:使用单例会话写入日志(无刷新)