# IOT采集器 **Repository Path**: justonlyyo/iot-collector ## Basic Information - **Project Name**: IOT采集器 - **Description**: iot设备的采集器 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-27 - **Last Updated**: 2026-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # README ## 项目简介 采集物联网设备信息的项目 访问域名 http://iot.ihcc.com.cn:8085 InfluxDB2 的API 文档的地址 https://docs.influxdata.com/influxdb/v2/api/ 查询数据的 API 文档地址 https://docs.influxdata.com/influxdb/v2/api/#operation/PostQuery 使用API查询数据的指南 https://docs.influxdata.com/influxdb/v2/query-data/execute-queries/influx-api/ ## 已知问题 ##### 需要重构 2025-8-27 重构清单 * 异步化 * 需要一个新的Orm记录传感器的各类事件的原始信息,比如离线,阈值,同时用于实现复杂的延时报警 * 上面的ORM类要和 InfluxAlertOrm 联动,真正触发报警条件的再写入 InfluxAlertOrm ## 部署 ### 相关文档 * [《接口文档》](docs/接口文档.md) ### 项目容器 部署在 61.169.129.194 uat基础服务, 容器名 iot-collector 端口 8085 ```shell sudo docker run -p 8085:8085 -e WORKENV=uat -e LANG=C.UTF-8 -e TZ=Asia/Shanghai -ti -e PYTHONIOENCODING=utf-8 --name iot-collector registry.cn-hangzhou.aliyuncs.com/justonlyyo/python:3.10.11 /home/start.sh ``` ### 接口 温度报警的接口是统一的,都是 http://iot.ihcc.com.cn:8085/iot/sensor/temperature/{品牌客户id}/{门店id} 温度传感器接口各不相同。 一般的构建方法是: * url: http://iot.ihcc.com.cn:8085/iot/sensor/temperature/{品牌客户id}/{门店id} * 数据包格式: 私有 * 上传方法:POST * 网络重启周期 200秒 * 自检时间: 180秒 * 上传周期: 180秒 * 请求url: /iot/sensor/temperature/{品牌客户id}/{门店id} * http服务器地址: iot.ihcc.com.cn:8085 * 请求头: Content-Type:application/json Authorization: Bearer {DATA_AUTHROIZATION} * 桶名: customer_{customer_id} 麦上包子控江店是个例,这是因为历史原因造成的,特殊之处在于 * url: http://iot.ihcc.com.cn:8085/iot/temperature/wn1010 * 数据包格式: 私有 * 上传方法:POST * 网络重启周期 150秒 * 上传周期: 120秒 * 自检时间: 1000秒 * 请求url: /iot/temperature/wn1010 * http服务器地址: iot.ihcc.com.cn:8085 * 没有请求头 * 桶名为 wn1010 ### 沈阳维恩传感器注意事项 #### 几个重要的参数 ##### 自检时间 自检时间是指传感器在主机重启后,主机等待传感器上报数据的周期,单位是秒。如果主机在自检时间内没有收到传感器的数据,那么主机就会缓存传感器数据。直至 传感器上报数据 或者 超过 自检时间 * 3以后。标记传感器离线。 自检时间的默认值是1000秒,单位是秒。厂家不建议自检时间设置太短,因为无线传感器偶尔离线比较普遍,如果自检时间设置太短,会导致主机频繁报告设备离线,误报率会升高,影响数据连续性和用户体验。 测试时,为了尽快的看到离线的状态,可以修改这个值,但是记得生产中修改回去 ![](docs/image/自检时间.jpg) ##### 网络重启周期 网络重启周期是主机重启的周期,单位是**分钟**。如果主机断电,主要是因为弱网环境(比如4G),主机和服务器的连接丢失的情况,定时自动重启可以简单的解决这个问题。这个系统默认值是30(分钟)也是建议的值。 ##### 上传周期 上传周期是指传感器上报数据的周期,单位是秒。是指主机向服务端发送传感器数据的周期。 ![](docs/image/上传周期和网络重启.jpg) #### 注意沈阳维恩的主机上传时的url有bug 目前发现的问题是: Http请求url中的path,只能设置一个查询参数,2个的话会导致写入失败。也就是说 这个path中不能有 & 这个符号。不过路径参数没有限制。影响不大,但是设计URL时请注意这个问题 #### 注意沈阳维恩的传感器中的自检时间设置问题 * 自检时间默认1000秒,传感器主机会缓存数据,缓存的时间是 自检时间 * 3 * 如果网络重启时间设置过长,会导致主机缓存了太久的传感器数据。导致**无法及时得知传感器离线的问题**, 建议不要设置过大。但也不要太小,以免丢包时数据不连续 如无线温度传感器上传时间为100S,而自检时间设置成100S时,实际缓存300S,即允许3次数据丢包,当连续3次收不到数据时 接收器 将该测温点对应寄存器缓存的数据清除, 即变成0x8000(0x8000是特征值而不是有效温度值,主要用于代表设备离线、电池耗尽、超出量程) ## 时序数据库 部署在 61.169.129.194 uat基础服务, 容器名 influxdb2 端口 8086 INFLUXDB_TOKEN=pazwlwOpZpsuxysK7Q53e_bh_NurkA9YyOVWD9Vl4ApA4SnD-dQGQdHpITLO3Sqh7BJnOgJ4YS0EMYqVEAvR2w== http://61.169.129.194:8086, 账户:influx_root 密码: imeQueue@240917