侧边栏壁纸
  • 累计撰写 57 篇文章
  • 累计收到 2 条评论

Python搭家用IoT设备AI异常提醒脚本实操要点

2026-10-11 / 0 评论 / 3 阅读

Python搭家用IoT设备AI异常提醒脚本实操要点

打开终端先装依赖,别等写到一半缺包报错。

依赖安装直接抄的命令

pip install openai paho-mqtt requests
  • 如果用国内源装不动,在后面加 -i https://pypi.tuna.tsinghua.edu.cn/simple 就行,不用手动下whl包
  • Python版本3.8以上都能跑,太老的版本会报OpenAI SDK的类型注解错误,别硬凑

MQTT接家用IoT网关的核心参数

  • 大部分家用开源网关(比如HomeAssistant自带的MQTT broker)默认地址是127.0.0.1,端口1883,没改密码的话用户名留空即可
  • 订阅主题直接填你要监控的设备传感器前缀,比如温湿度类设备就填"sensor/+/state",+是通配符,能匹配所有同类型设备
  • 接收消息的回调函数里别一开始就塞复杂逻辑,先打印原始报文确认能稳定拿到数据,再走后续判断,不然调半天不知道是消息没收到还是逻辑错了

AI异常判断的最小可用代码片段

import os
from openai import OpenAI

def check_abnormal(device_data):
    client = OpenAI(
        base_url="你用的大模型接口地址",
        api_key=os.getenv("LLM_KEY") # 从环境变量读Key,别硬写在代码里
    )
    resp = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role":"user","content":f"判断以下家用物联网设备数据是否属于异常情况,只返回是或否,不要多余内容:{device_data}"}],
        temperature=0
    )
    return resp.choices[0].message.content.strip()

提示:别把temperature参数设太高,不然AI会瞎编判断结果,设成0输出最稳定,适合这种固定规则的判断场景。脚本整体资源占用不高,跑在树莓派这类小主机上完全没问题,具体负载看你接的设备数量。

消息推送的关键配置

  • 用Server酱这类第三方推送服务的话,直接发POST请求就行,不用额外装复杂SDK,接口文档里直接拷请求代码改两个参数就行
  • 推送内容里要把设备名、异常数据、采集时间写全,别只发“有异常”三个字,不然收到通知还要自己翻日志查问题
  • 加个5分钟左右的冷却时间,同个设备同类型异常别反复推送,不然手机一直震,容易被烦到直接关通知权限

对了,第一次跑的时候先拿测试数据试下判断准不准,别直接挂到后台跑,不然哪天误报给你发一堆火灾预警,白吓一跳。

评论一下?

OωO
取消