2026-04-11 22:02:38 +08:00
|
|
|
|
# 太阳公公监控
|
|
|
|
|
|
|
2026-04-11 23:46:54 +08:00
|
|
|
|
监控局域网设备上线,配合 AI 生成个性化早安邮件。每天清晨,有人替你把天气、热点和一点碎碎念收进一封信里,轻轻铺开。
|
2026-04-11 22:02:38 +08:00
|
|
|
|
|
|
|
|
|
|
## 功能
|
|
|
|
|
|
|
2026-04-11 23:46:54 +08:00
|
|
|
|
### 设备监控
|
2026-04-11 22:02:38 +08:00
|
|
|
|
- **Ping 监控**:监控指定局域网 IP 是否在线
|
|
|
|
|
|
- **首次上线通知**:目标设备首次上线时,发送"太阳公公出来了"邮件,包含具体上线时间
|
|
|
|
|
|
- **未到提醒**:每天 8:15 前目标仍未上线,发送"太阳公公还在睡觉"邮件
|
|
|
|
|
|
- **每日重置**:状态文件每日自动重置,避免重复发送
|
|
|
|
|
|
|
2026-04-11 23:46:54 +08:00
|
|
|
|
### AI 早安邮件
|
|
|
|
|
|
|
|
|
|
|
|
三段式早安文案,全部由 DeepSeek AI 生成的个性化内容:
|
|
|
|
|
|
|
|
|
|
|
|
- **第一段**:太阳公公状态,AI 根据实际上线/未上线情况单独生成
|
|
|
|
|
|
- **第二段**:今日天气,AI 自然衔接第一段,温暖过渡
|
|
|
|
|
|
- **第三段**:今日热搜,AI 筛选国内外热点,像朋友聊天一样串联成段
|
|
|
|
|
|
|
|
|
|
|
|
### 附言
|
|
|
|
|
|
|
|
|
|
|
|
邮件末尾附带一段 AI 原创的"过来人"小故事,主题围绕单方面喜欢、错位理解,带一点自嘲和电影感。最后一句往往突然变得很舔、很心酸。
|
|
|
|
|
|
|
|
|
|
|
|
### 数据源
|
|
|
|
|
|
|
|
|
|
|
|
- **天气**:wttr.in(免费无需 API Key)
|
|
|
|
|
|
- **国内热点**:百度实时热搜
|
|
|
|
|
|
- **国际热点**:BBC World、Sky News、NHK 国际(RSS 订阅)
|
|
|
|
|
|
|
|
|
|
|
|
### 运行时间
|
2026-04-11 22:02:38 +08:00
|
|
|
|
|
|
|
|
|
|
每天凌晨 2:00 至晚上 22:00 自动监控
|
|
|
|
|
|
|
|
|
|
|
|
## 文件结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
TaiYangGongGong/
|
|
|
|
|
|
├── ping_monitor.py # 主脚本(常驻运行)
|
|
|
|
|
|
├── test_ping.py # 测试脚本(单次测试)
|
|
|
|
|
|
├── config.py # 敏感配置(API密钥、邮件账号等)- 不上传
|
|
|
|
|
|
└── .ping_state/ # 状态文件目录 - 不上传
|
2026-04-11 23:46:54 +08:00
|
|
|
|
├── monitor_state.json # 监控状态
|
|
|
|
|
|
├── weather_cache.json # 天气缓存
|
|
|
|
|
|
└── news_cache.json # 新闻缓存
|
2026-04-11 22:02:38 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 首次使用
|
|
|
|
|
|
|
|
|
|
|
|
1. 复制配置模板并填入你的信息:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cp config.py config.py.bak
|
|
|
|
|
|
# 然后编辑 config.py,填入你的 API 密钥和邮件配置
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. 配置 `config.py`:
|
|
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
|
# DeepSeek API
|
|
|
|
|
|
DEEPSEEK_API_KEY = "your_api_key"
|
2026-04-11 23:46:54 +08:00
|
|
|
|
DEEPSEEK_API_URL = "https://api.deepseek.com/v1"
|
|
|
|
|
|
DEEPSEEK_MODEL = "deepseek-chat"
|
2026-04-11 22:02:38 +08:00
|
|
|
|
|
|
|
|
|
|
# 邮件配置
|
|
|
|
|
|
SMTP_SERVER = "smtp.qq.com"
|
|
|
|
|
|
SMTP_PORT = 587
|
|
|
|
|
|
SMTP_USER = "your_email@qq.com"
|
|
|
|
|
|
SMTP_PASSWORD = "your授权码"
|
|
|
|
|
|
FROM_NAME = "月亮姐姐"
|
|
|
|
|
|
TO_EMAILS = ["target_email@example.com"]
|
2026-04-11 23:46:54 +08:00
|
|
|
|
YOUR_NAME = "收件人名字"
|
2026-04-11 22:02:38 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-11 23:46:54 +08:00
|
|
|
|
3. 配置监控目标(`ping_monitor.py` 中的 `TARGET_IPS`):
|
|
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
|
TARGET_IPS = [
|
|
|
|
|
|
"192.168.2.60",
|
|
|
|
|
|
]
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
4. 配置天气位置(默认成都):
|
|
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
|
WEATHER_LOCATION = "成都"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
5. 如需获取国际新闻,配置代理(可选):
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
export NEWS_PROXY_URL="http://127.0.0.1:7890"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
6. 设置系统时区(邮件时间戳用系统时间):
|
2026-04-11 22:02:38 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
sudo timedatectl set-timezone Asia/Shanghai
|
|
|
|
|
|
sudo ntpdate ntp.aliyun.com # 同步网络时间
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-11 23:46:54 +08:00
|
|
|
|
7. 安装依赖并运行:
|
2026-04-11 22:02:38 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pip install requests
|
2026-04-11 23:46:54 +08:00
|
|
|
|
python test_ping.py # 测试(单次运行)
|
|
|
|
|
|
python ping_monitor.py # 正式运行(常驻)
|
2026-04-11 22:02:38 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 部署
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 添加到 crontab,每天凌晨2点自动启动
|
|
|
|
|
|
crontab -e
|
|
|
|
|
|
|
|
|
|
|
|
# 添加:
|
|
|
|
|
|
0 2 * * * cd /home/lhr/storage/TaiYangGongGong && python ping_monitor.py >> ping.log 2>&1 &
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 依赖
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pip install requests
|
|
|
|
|
|
```
|