MQTT电桥

mqspeak的Python项目详细描述


#mqspeak-mqtt桥

mqspeak是[mqtt](http://mqtt.org/)客户端,它收集数据并将其转换为[thingspeak](https://thingspeak.com/)通道更新或[phant](http://phant.io/)
数据流。它能够处理多个mqtt连接并独立地更新多个通道。


这是我的物联网项目的一部分。您可以在我的[博客](http://buben19.blogspot.com/)上阅读有关它的更多信息。


install


`或"--config`
选项(默认的`/etc/mqspeak.conf`)。这是示例配置文件:

[brokers]
enabled=温度代理湿度代理门代理


[temperature代理]
host=temperaturebrokerhostname
port=1883
user=brokeruser
password=brokerpass
topic=sensors/t温度传感器/某物

[湿度代理]
主机=湿度代理主机名
端口=1883
用户=代理
密码=代理主机名
主题=传感器/湿度

[门代理]
主机=门代理主机名
端口=1883
使用r=brokeruser
password=brokerpass
topic=

[channels]
enabled=channel1 channel2 channel3 channel4


[channel1]
id=channelid
key=channelkey
type=thingspeak
updaterate=15
updatetype=blackout
updatefields=dht update

[channel2]
id=channelid
key=channelkey
type=thingspeak
updaterate=15
updatetype=buffered
updatefields=dht update

[channel3]
id=channelid
key=channelkey
type=thingspeak
updatefields=15
update type=average
updatefields=dht update

[channel4]
id=channelid
key=channelkey
type=phant
updaterate=15
updatetype=onchange
updatefields=door update

[dht-update]
field1=湿度代理传感器/湿度
field2=温度代理传感器/温度

[door update]
state=door broker传感器/门

tion. 这些选项包含空格分隔的broker和channel
节名称。

Broker部分中可能选项的完整列表:

-`host`-Broker IP地址或主机名(默认127.0.0.1)。
-`port`-Broker端口(默认1883)。
-`user`-用户名。
-`password`-密码。
-`topic`-主题订阅的空格分隔列表。必选选项。

必需选项。
-`type`-指定通道类型。强制选项。支持以下类型:
-`thingspeak`-[thinkspeak](https://thingspeak.com/)通道。
-`phant`-[phant](http://phant.io/)通道。
-`updaterate`-通道更新间隔(秒)。目前,ThinkSpeak允许
间隔15秒或更长时间。必需选项。
-`wait interval`-等待剩余数据到达的最大间隔。当设置为
0时,请永远等待(默认)。有关详细信息,请参阅**更新等待**。
-`update type`-通道更新类型。可能的值有"blackout"、"buffered"、"average"和"onchange"。强制选项。
-`blackout`-在"updaterate"间隔到期之前,任何传入的数据都将被忽略。间隔过期后收到的第一个数据将发送到thingspeak。
-`buffered`-传入数据将在`updaterate`间隔期间缓冲。
此间隔过期后,将立即发送最新值。
-`average`-类似于'buffered`,但mqspeak计算这些
数据的平均值。任何不能转换为实数的数据都将被忽略。通道
在"updaterate"间隔过期后立即更新。
-`onchange`-数据用时间戳标记并存储在队列中。每个项目在"updaterate"间隔过期后发送。***尚未实现。指定定义此通道更新的节。强制选项。

默认情况下,在所有传感器的数据到达之前,不会更新通道。
非活动传感器导致通道更新暂停。

可分为以下情况:

-**"updaterate"条件满足,但没有数据。**等待机制在某些数据到达之前不会激活。在接收到通道更新的第一部分后,mqspeak将等待
定义的时间,并尝试收集剩余的数据。"waitinterval"过期后,将发送
数据。
-**部分数据在满足"updaterate"条件之前到达。**等待将延迟
,直到满足"updaterate"条件。当它过期并且仍然没有
所有必需的数据时,将触发等待。"waitinterval"过期后,将发送数据

-**在满足"updaterate"条件之前收集所有必需的数据。**无需激活"update waiting"。只需发送数据。

updatefields section

updatefields section包含任意数量的选项。每个选项键指定
字段名。它的值必须是以空格分隔的Broker节和主题的名称。

对于ThinkSpeak频道,只有选项键"field1"…` field8`是有效的。

\questions

-**mqspeak只在前台运行。**-是的,没有双叉组合键可在后台运行
mqspeak。我使用systemd init,我更喜欢以简单的方式运行所有服务
systemd units,它在前台运行。对不起。
-**它用蟒蛇3。是否支持Python2.x?**-不,我不打算支持Python2.x。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用JSR223从Jython脚本获取数据   java JSON到POJO字段的空检查   java RObject。isExists()检查内存还是服务器?   java停止线程未使用函数setRunning(false)   java在超类中访问childs实例变量?   java更改主题会导致双操作栏故障   java为什么我的RMIsocket只发送一个字节?   java如何跨文件提取方法?   hibernate命名查询的java问题   java Spark因SerializedLambda的ClassNotFoundException失败   java为什么这个列表有错误?   java JavaFX/Aurdino编译器未显示图形/数据不知道原因   java连接某些舱室的最低成本   集合Java HashMap初始化?   java更改手机壁纸在片段中无法工作   java分页ArrayList   继承是子类继承的超类的私有成员。。。JAVA   多参数java 8流过滤器   java我应该如何存储我希望访问的对象,以与我放置它们的方式相反的顺序