用AI解决家里门锁未关的焦虑

出门在外,突然想起门好像没关。

这种焦虑感,相信很多人都有过。我也是,每次出门后都要反复回忆,到底有没有锁门?甚至有时候都出了小区还要跑回家看一看。

为了解决这个问题,我做了一个”百宝工具箱”,把家里的门锁状态、温度、路由器信息全都整合到一个页面里,随时随地都能查看。

故事要从一个图床说起。

从图床开始

我自己写博客,有时候会用到 Markdown 去插入图片。每次用别人的图床,担忧很多;用自己的阿里云OSS 客户端,又觉得上传方式太过繁琐;始终没有Web方案信手拈来的爽快。

现在有 Hermes Agent,我想物尽其用,让它帮我做了一个图床,让我在手机上也能上传图片。

实现的方式很简单:

第一步,提出我的需求:利用阿里云 OSS做一个私有图床,带密码验证,防止滥用。AI 给我推荐用阿里云函数作为后端方案,前端随便放在哪里都行。

我只给它做了一件事情:提供阿里云OSS 的 API.

剩下的工作就是让 AI 自己完成的。

刚好小米面向开发者发放的百亿Token,我领到了一点;顺便验证Mimo-v2.5-pro大模型的成色。指令发出后几分钟的时间内,它就给我做好了前后端的代码,并让我把后端代码上传到服务器。经过几轮调试,这个 OSS 的图床上传页面就完成了。

页面上线之后,我觉得页面非常的单调,就想能不能让内容更丰富一点。

因此,我就干脆做了一个”百宝工具箱”。

百宝工具箱

结合我日常生活中每天需要查的信息,首先我就利用腾讯财经的和OKX的API做了一个股票行情和加密货币行情。

这些工具是极为简单的,因为信息全是通过外网采集的。下面我想做一些进阶难度的东西。

我想查看的内容包括:

  1. 家里的门有没有关(这里需要Docker安装Home Assistant,并且安装Xiaomi miot插件)
  2. 路由器的状态
  3. 服务器的状态

我内网是Linux小主机,外网也有Linux环境, 但是外网无法获取我们家内网的信息。AI 给我推荐了几个方案,我觉得内网的信息采集之后推送到外网的服务器上就行了。

技术实现

整个系统的核心是数据采集和推送。

家庭状态

Home Assistant里面接入了各种智能设备:门锁、温湿度计、空气净化器等等。

在本地写一个采集脚本,每分钟从 Home Assistant 的 API 获取数据,然后上传到外网服务器。

门锁状态用的是门窗传感器,通过磁铁感应来判断门是开还是关。温湿度计分别放在室外、室内和机柜里,这样我就能随时了解家里的环境状况。

路由器状态

路由器是 OpenWrt 系统,通过 LuCI 的 Web API 可以获取到 CPU 温度、运行时间、在线用户数量等信息。我写了一个 shell 脚本,每 5 分钟采集一次,然后通过 SCP 上传到服务器。

服务器状态

服务器的状态更简单,直接读取系统文件就能获取 CPU 温度、内存使用率、磁盘空间等信息。

最终效果

现在,我只要打开工具页面,就能看到:

  • 家庭状态:大门是否关好、室内外温度、机柜温度
  • 行情走势:小米、特斯拉、黄金的价格
  • 加密行情:BTC、ETH 的实时价格
  • 路由器状态:CPU 温度、在线用户数量
  • Homelab 状态:服务器的 CPU、内存、磁盘使用情况
  • 世界时间:北京、伦敦、纽约的时间
  • 每日诗词:随机展示一首古诗词

整个页面还做了 PWA 支持,可以添加到手机桌面,像原生 APP 一样使用。

物尽其用

这个工具箱的价值在于,它把分散在各个平台的信息整合到了一起。

以前我要查看门锁状态,需要打开米家的APP;查看路由器状态,需要打开浏览器输入 IP;查看行情,需要打开股票软件。

现在,一个页面搞定所有。

而且,因为是自己做的,我可以随时添加新的功能。比如以后可能还会加上天气预报、快递查询、日程提醒等等。

但是我现在确实还想不到我需要更多的功能,暂时就这样吧。