将qt-openzwave的MQTT消息转换为Python对象和事件
项目描述
python-openzwave-mqtt
Python库,用于OpenZWave MQTT实现。
消耗来自https://github.com/OpenZWave/qt-openzwave的MQTT输出
有关Home Assistant集成,请参阅自定义组件homeassistant-zwave_mqtt。
安装
- 需要Python 3.7+。我们支持任何一次发布的两个最新Python 3版本。
pip install python-openzwave-mqtt
结构
每个对象映射到主题中的一或两个部分。一个主题可以包含以下部分
<Prefix>
:每个主题的前缀。在处理中忽略此内容。通常为openzwave/
。<CollectionType>/<CollectionID>
:集合类型和集合中项目的ID。例如:value/3
<CollectionID>
:某些对象将具有未在主题中类型化的直接集合。例如,在<Prefix>/1
中的OZW实例。<ObjectType>
:如果父项下只有一个实例。例如:node/2/statistics
。
示例
向主题openzwave/1/node/2/statistics
发送消息。这映射到
类型 | 标识符 |
---|---|
前缀 | - |
OZW实例 |
1 |
OZW节点 |
2 |
OZW节点统计信息 |
- |
消息顺序
我们与信号一起工作,当事物发生变化时向信号监听器发送信号。然而,当我们连接到MQTT时,我们一次会接收到大量的保留消息。为了防止信号发送顺序出错,我们将保留所有子消息,直到父消息接收到其信息。
此功能已在OZWManager
和OZWInstance
中禁用。
如果我们接收到以下主题的消息
openzwave/1/node/2/statistics
openzwave/1/node/2
我们将按相反的顺序处理这些消息
openzwave/1/node/2
openzwave/1/node/2/statistics
建模规则
这个库不应该追求复杂的功能。我们应该尽可能直接表示MQTT中的数据。我们不想更改名称,除了使它们具有Python风格(驼峰式 -> 蛇形_case)。
自动添加辅助器
模型将根据其子模型自动添加辅助器。例如,Node
模型有以下子集合
def create_collections(self):
"""Create collections that Node supports."""
return {
# A collection of children
"instance": ItemCollection(OZWNodeInstance),
# A single child
"statistics": OZWNodeStatistics,
}
这意味着Node
创建了以下自动函数
get_instance(item_id)
通过ID获取实例。instances()
获取所有可用实例的迭代器。get_statistics()
获取直接子节点。
收集数据
此库使用从MQTT接收到的消息进行实例化。为了使开发更容易,我们创建了两个辅助脚本。一个将转储所有MQTT消息,另一个将读取文本文件中的消息并使用所有数据实例化OZWManager
。这可以用于开发、测试或重现错误。
python3 -m script.dump_mqtt > dump.csv
python3 -m script.instance_from_file dump.csv
开发
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源分布
python-openzwave-mqtt-1.4.0.tar.gz (24.3 kB 查看散列)
构建分布
关闭
python-openzwave-mqtt-1.4.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | f47abc26b1bdfc02f5130144c30d155942193b8bbec95434afd9307451b0cae6 |
|
MD5 | 17b9a5b839cb1696d3579ab239757e87 |
|
BLAKE2b-256 | 17e2c82126a4bb81e181c20cb68630fa3631315e1a6e18f1dae4602be401e446 |
关闭
python_openzwave_mqtt-1.4.0-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8fb2483287b91935f1d9839dd0bc33b10076d66671021c3444a8081077f6955e |
|
MD5 | 023cb21118fdb7cb875c25b42c33e3b5 |
|
BLAKE2b-256 | e450be0f850e3bf0520c1a54fe30dc4efd99c497aaed04ab13a81f340e80446d |