用于与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
进行测试,以确保所有设备安装正确
```
用于与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
进行测试,以确保所有设备安装正确
```