物联网中继-数据源和目的地之间的中继数据。
iotrela的Python项目详细描述
物联网中继:为您的物品发声
版本v1.2.3
越来越多的"事物"能够收集数据 关于他们的环境。这些东西有一个接口来检索 正在进行测量,但无法将此数据推送到 互联网。例如,家庭气象站通常只包含一个USB接口 接口和无网络能力。其他设备可能有网络 功能,如ZigBee?,但仍无法直接发送 数据传输到连接到Internet的主机。
物联网中继是一个应用程序和框架 数据源和中继到目的地。有点像 发布/订阅,但它更倾向于 无法启动连接(必须对其进行轮询才能获取 数据)
物联网中继提供基本设置,并将数据源与感兴趣的 处理程序。剩下的工作留给插件来完成。
安装
通过PYPI提供物联网中继。
$ pip install iotrelay
还需要创建(最初为空)ini样式 文件: ~/.iotrerelay.cfg
[itorelay]
插件
在物联网中继可以做任何有用的事情之前,它需要插件。有 插件类型:源和处理程序。源插件生成数据。处理程序 插件处理或处理源插件生成的数据。 这些定义是开放式的。尽管物联网接力 开发的目的是在 处理程序可以查看远程源和远程目标 每个数据作为一个事件并触发一些操作。同样,数据源 插件不需要简单地传递它们收集的数据。他们 在将数据提供给 感兴趣的处理人员。
数据源示例插件
数据源定义是一个类,它提供 方法和接受 config 参数的构造函数。这个 方法必须返回 reading() 类或无。在本例中,创建一个名为 iotrelay_sample_source.py 并输入以下代码。
# iotrelay_sample_source.pyimportrandomfromiotrelayimportReadingclassDataSource(object):def__init__(self,config):self.config=configdefget_readings(self):returnReading('sample',random.randint(1,100))
IoT Relay使用setuptools查找注册在 物联网中继 组。数据源应使用入口点名称 来源 。在与 iotrerelay_sample_source.py相同的目录中, 下面的代码应该放在setup.py中
# setup.pyfromsetuptoolsimportsetupsetup(name='iotrelay-sample-source',install_requires=['iotrelay'],py_modules=['iotrelay_sample_source'],entry_points={'iotrelay':['source=iotrelay_sample_source:DataSource']})
键入以下命令安装源插件:
$ python setup.py install
数据处理程序示例插件
与前面的示例一样,创建一个包含两个文件的新目录:
# iotrelay_sample_handler.pyclassHandler(object):def__init__(self,config):self.config=configdefset_reading(self,reading):print(reading)# setup.pyfromsetuptoolsimportsetupsetup(name='iotrelay-sample-handler',install_requires=['iotrelay'],py_modules=['iotrelay_sample_handler'],entry_points={'iotrelay':['handler=iotrelay_sample_handler:Handler']})
键入以下命令安装处理程序插件:
$ python setup.py install
插件配置
本例中使用的最小源插件不需要任何 配置。处理程序配置中的"读取类型"选项 指定处理程序将接收的读取类型。为了 从"IoRelay样本源"插件接收读数 IoRelay示例处理程序中的"读取类型"选项将为"示例"。 这对应于由读取设置的读取类型属性 调用get_readings()时的构造函数。
节名直接对应于插件名,如定义的 在setup.py中。
; ~/.iotrelay.cfg[iotrelay][iotrelay-sample-source][iotrelay-sample-handler]reading types=sample
每个插件部分中指定的任何选项都将传递给 初始化期间插件的构造函数。
运行物联网继电器
使用以下命令启动IOT中继:
$ iotrelay
许可证
物联网中继根据BSD 2条款许可获得许可。