将达拉斯1线传感器的读数发布到MQTT
项目描述
达拉斯MQTT是一个服务,它将定期轮询任意数量的达拉斯1线传感器,并将数据发布到MQTT代理。
安装
达拉斯MQTT可通过pypi获取,因此您只需运行以下命令
pip install -U dallasMQTT
假设您已安装pip。(这是推荐的方式安装。如果您需要使用达拉斯MQTT的开发版本,您可以克隆存储库并在本地使用以下命令安装它
git clone https://github.com/mtreinish/dallasMQTT.git
然后使用以下命令安装
pip install -e dallasMQTT
这将使达拉斯MQTT在您的Python环境中以可编辑模式安装,以便进行本地开发。
如果您未安装pip,您可以通过克隆存储库并使用以下命令从存储库基本目录手动安装dallasMQTT
python setup.py install
但是,请注意,通过pip安装是推荐和支持的安装方式。(即使是本地git克隆)
配置
要配置达拉斯MQTT,您需要创建一个配置yaml文件,该文件将告诉达拉斯MQTT如何访问传感器,如何使用MQTT等。该文件具有3个部分的格式是
mqtt: hostname: foo sensors: - id: id number name: 'My Sensor' default: poll_rate: 60 base_topic: a_topic
MQTT部分配置
此部分用于配置达拉斯MQTT如何连接到MQTT代理。要配置mqtt部分,它目前有3个选项
主机名
用户名
密码
其中只有主机名是必需的。其他2个选项是可选的。您可以使用用户名和密码,如果需要客户端认证(或MQTT代理要求)。
传感器部分配置
yaml配置文件中的传感器部分用于指定要轮询哪些传感器以及如何在mqtt主题中标记它们。它接受任意大小的传感器列表,包括传感器ID和名称的组合,例如,如果有3个传感器,它看起来可能像这样:
sensors: - id: 28-000001 name: Sensor1 - id: 28-000002 name: Sensor2 - id: 28-000003 name: Sensor3
此模式将重复用于您想让dallasMQTT轮询的任意数量的传感器。名称字段相当直观,它只是用作mqtt主题第二部分的传感器名称,例如:
$base_topic/$name
id字段用于指定要轮询的传感器ID。dallasMQTT将轮询位于
/sys/bus/w1/devices/``$id``/w1_slave
因此,确保在这里使用正确的ID非常重要,否则dallasMQTT将无法读取传感器数据。
本节编写得足够广泛,以便在将来可以向dallasMQTT添加额外的传感器类型。这将是一个非常简单的添加,只需要在每个列表元素中添加一个可选的驱动器字段,告诉dallasMQTT使用哪个类来轮询传感器。(这些额外的传感器不一定必须是dallas 1 wire)但是,目前只有一个类,即DallasTemp,用于1线温度传感器,因此该字段不存在。然而,如果/当dallasMQTT更新以包含其他传感器类型时,文档将更新。(并且将遵守向后兼容性,以免破坏任何人)
默认部分配置
默认部分是您配置控制dallasMQTT基本操作的设置的地方。目前该部分有3个选项:
base_topic
poll_rate
max_threads
所有3个选项都是可选的。
base_topic用于设置用于在mqtt上发送传感器数据的基本主题。消息将按照以下方式在mqtt上发送:
$base_topic/$sensor_name
默认情况下,此设置设置为dallasMQTT。
poll_rate用于指定在工作者线程之间轮询传感器的时间(秒)。请注意,这不是单个传感器之间的时间,而是单个线程处理的多个传感器之间的时间。该组中的每个传感器都将依次轮询,它们之间没有任何等待时间。
max_threads用于指定dallasMQTT将启动以轮询传感器的最大线程数。如果配置文件中的传感器少于线程数,将为每个传感器启动一个工作者线程。如果有更多的传感器,则传感器将平均分配到指定的工作者数量。每个工作者将处理其收到的传感器列表。
用法
运行dallasMQTT相当直接。安装dallasMQTT后,只需运行
dallasMQTT config.yaml
其中config.yaml是您的yaml配置文件的路径。
项目详细信息
dallasMQTT-0.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1128a2611052353073dbb664a1a960ca3964233fe5821c8577fcc568f17d2ce2 |
|
MD5 | e72850a36908aac827fb9d616b89ddc2 |
|
BLAKE2b-256 | 26d9798f037ae68a92f8d6f1ea23cccac5ee491bd5d248c6efd0100b092323c6 |