Skill flagged — review recommended

ClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.

Daily Weather News

每日天气和新闻推送技能,使用Open-Meteo API获取精确天气信息、中文国际新闻搜索、智能穿衣建议和飞书消息推送功能。适用于需要每日自动推送天气和新闻到飞书聊天场景,支持定时推送和手动查询两种模式。

Audits

Suspicious

Install

openclaw skills install daily-weather-news

每日天气新闻推送

概述

这个技能提供了完整的每日天气和新闻推送功能,包括天气信息获取、中文新闻搜索、智能穿衣建议和飞书消息推送。支持定时自动推送和手动查询两种模式。

快速开始

基本用法

# 测试模式(预览推送内容)
./scripts/daily_push.sh --test

# 正常执行(获取天气和新闻并推送)
./scripts/daily_push.sh

# 设置定时任务(每天早上7:30执行)
30 7 * * * /home/alanchan/.openclaw/workspace/skills/daily-weather-news/scripts/daily_push.sh

配置设置

1. 设置环境变量(推荐):

# 临时设置(当前会话有效)
export TAVILY_API_KEY="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"

# 永久设置(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export TAVILY_API_KEY="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"' >> ~/.bashrc
source ~/.bashrc

2. 编辑 config/config.sh 文件(其他配置):

# 目标用户ID(飞书)
TARGET_USER="ou_3a0705a4c7b5f068fff0b2b719d37978"

# 推送地点
LOCATION="黄埔"

# 日志文件路径
LOG_FILE="/home/alanchan/.openclaw/workspace/daily_push.log"

核心功能

1. 天气信息获取

  • 使用 Open-Meteo API 获取指定地点的精确天气信息
  • 通过经纬度坐标(广州:23.1291, 113.2644)精确定位
  • 自动将天气代码转换为中文描述(如代码3 → "多云")
  • 提取温度、风速、风向等详细气象数据

2. 中文国际新闻搜索

  • 使用 Tavily Search API 搜索中文国际新闻
  • 优先搜索新华网、人民网等权威中文新闻源
  • 提供结构化的新闻摘要和来源链接

3. 智能穿衣建议

  • 根据Open-Meteo天气代码智能生成穿衣建议
  • 考虑温度、天气类型(多云、晴朗、雨雪等)等因素
  • 基于精确气象数据提供实用的穿衣指导

4. 飞书消息推送

  • 使用OpenClaw消息API发送推送内容到飞书
  • 支持丰富的emoji和格式化显示
  • 自动记录推送日志和执行状态

工作流程

步骤1: 获取天气信息

weather_info=$(get_weather "$LOCATION")
# 输出: "多云 25.6°C 3.7 km/h (微风)"

步骤2: 获取国际新闻

news_info=$(get_news)
# 输出: 结构化的中文国际新闻内容

步骤3: 生成穿衣建议

clothing_advice=$(get_clothing_advice "$weather_info")
# 输出: "根据当前天气,建议穿着舒适的长袖衣物,注意早晚温差。"

步骤4: 推送消息

send_to_feishu "$push_content" "$TARGET_USER"
# 发送格式化的消息到飞书

配置选项

config/config 关键配置

# 推送目标用户ID
TARGET_USER="ou_3a0705a4c7b5f068fff0b2b719d37978"

# 推送地点
LOCATION="广州市黄埔区"

# 广州经纬度坐标
LATITUDE="23.1291"
LONGITUDE="113.2644"

# 天气API配置
WEATHER_API_BASE="https://api.open-meteo.com/v1/forecast"

# Tavily API密钥(从环境变量读取)
# 在运行脚本前设置: export TAVILY_API_KEY="your-api-key"
TAVILY_API_KEY="${TAVILY_API_KEY:-}"

# 推送时间(cron格式)
CRON_TIME="30 7 * * *"

# 是否启用推送
ENABLE_PUSH="true"

错误处理

常见问题

  1. API密钥错误

    • 检查 TAVILY_API_KEY 配置
    • 验证密钥有效性
  2. 网络连接问题

    • 检查网络连接
    • 验证Open-Meteo API服务可用性
    • 检查防火墙设置
  3. 消息推送失败

    • 检查 openclaw 命令可用性
    • 验证用户ID正确性
  4. 天气数据解析失败

    • 检查JSON数据格式
    • 验证经纬度坐标正确性
    • 确认API响应完整性

日志查看

# 查看推送日志
tail -f /home/alanchan/.openclaw/workspace/daily_push.log

# 查看错误日志
grep "ERROR" /home/alanchan/.openclaw/workspace/daily_push.log

参考文档

API文档

工作流程

扩展功能

自定义新闻源

修改 NEWS_SOURCES 配置:

NEWS_SOURCES="site:your-news-site.com 重要新闻 OR site:another-site.com 国际新闻"

多地点支持

可以扩展脚本支持多个地点的天气推送,通过添加多个经纬度坐标对实现,每个地点使用独立的API调用。

消息模板自定义

修改 PUSH_TEMPLATE 来自定义消息格式和内容结构。

天气代码扩展

可以根据需要扩展天气代码映射,添加更多天气类型的中文描述。

技术依赖

  • curl: 用于HTTP请求(Open-Meteo API调用)
  • node.js: 用于Tavily搜索
  • openclaw: 用于飞书消息推送
  • bash: 脚本执行环境(JSON解析、数据处理)
  • bash: 脚本执行环境
  • 标准Linux工具:grep, awk, sed(JSON数据解析)