用途:该技能通过观察罐中酵种通宵升高的过程,估算酵种何时达到峰值。需先阅读 zephyr 技能,了解键名方案、烘烤日志文件名与 event_time 标签。
主要能力:根据喂食时间起算,收集照片帧,使用 ffmpeg 生成延时视频与清单,测量每帧酵种上表面行位置,并结合人工目视核对确定持续的最低行(峰值),而非单帧。输出峰值时间、距喂食时长、维持时间等。
使用方式:zephyr 为必填且无默认值,仅接受 Zephyr 键形式(如 5 或 3-2)。喂食时间默认不手输,而取自烘烤日志中 feed starter 条目的 event_time;若该条无时间则停止并询问。运行前需确保 Docker 运行,因为 ffmpeg 在容器中执行,不装在宿主机:docker info --format {{.ServerVersion}},失败则运行 open -a Docker 后重试。照片位于 /Users/mtm/dcim2/OpenCamera,命名 IMG_YYYYMMDD_HHMMSS.jpg,约每 2 分钟一张,帧尺寸 720x1280。临时文件应使用会话暂存区,或在没有时用 mktemp -d。Docker 无法挂载 /Users/mtm/Downloads,因此应渲染到暂存目录后再复制出来。收集帧命令:uv run --no-active --script /Users/mtm/pdev/taylormonacelli/volcanicviper/skills/starter-peak-from-photos/list_frames.py --start FEED > SCRATCH/frames-list.txt,其中 FEED 为 YYYY-MM-DDTHH:MM:SS 格式;脚本从文件名读取时间,支持 --end 和 --frame-dir,窗口内无照片时不输出。生成 ffmpeg 脚本与清单:uv run --no-active --project /Users/mtm/pdev/taylormonacelli/wackywolffish /Users/mtm/pdev/taylormonacelli/wackywolffish/gen_ffmpeg_script.py SCRATCH/frames-list.txt --sort-by timestamp --start FEED --script-output SCRATCH/run_ffmpeg.sh;需在暂存目录运行:env --chdir=SCRATCH bash SCRATCH/run_ffmpeg.sh,会生成 ffmpeg_list.txt 与 timelapse.mp4。测量表面命令:uv run --no-active --script /Users/mtm/pdev/taylormonacelli/volcanicviper/skills/starter-peak-from-photos/surface_height.py SCRATCH/ffmpeg_list.txt --frame-dir /Users/mtm/dcim2/OpenCamera > SCRATCH/surface.txt。读取时注意:行卡在 790 或恒定低值代表未找到边缘,应忽略;相机自动曝光会产生 10 到 25 行的亮度台阶,单一跳变不算上升;几行的缓慢漂移是噪声;峰值是持续的最小行而非单帧。必须目视核对候选峰值及其他四五个时间点(如前后一两小时),峰值画面应最高、最圆鼓、气泡最多,峰后帧更平。若目视与数字不一致,以目视为准并说明。
输出:一行纯文本,例如:Zephyr 5; peaked about 4:35 AM; 9h33m after the 7:02 PM feed; held until about 5:45 AM; 4h32m ago。置信度低时附加一行说明原因。峰值按 5 分钟取整。除非被要求,否则不要写入烘烤日志;被要求时按 zephyr 技能添加 starter peaked 条目及 event_time 标签,并填写 peaked 与 duration_to_peak 字段。
限制:若 Docker 无法启动、照片文件夹自喂食后无帧、或窗口内少于 20 帧,应停止并说明。注意本技能不计算温度平均值;若需要,应使用 bulk-ferment-remaining 工具,以喂食时间为起点、峰值为 --end。
资料未提供该技能的价格、收费与平台信息。