自动化的触发方式与步骤
「自动化」页里脚本的全部选项。从头建一个脚本的步骤见写一个自动化脚本。
「套用模板」会填好触发方式、用途、描述和步骤。周期和执行目标仍要自己填。
| 模板 | 默认触发 | 步骤 |
|---|---|---|
| 「发短信保号」 | 固定间隔 | 发一条短信,再推送通知。收件号码与内容是示例,要改成运营商认可的 |
| 「流量保号」 | 固定间隔 | 经这张卡的移动数据下载 1 MB,再推送通知 |
| 「定时换 IP」 | 固定间隔 | 只有「切换 IP」一步。换 IP 成功本身会推送通知 |
| 「Tello 充值保号」 | 手动 | 发充值短信,等运营商回复,等你输入银行卡有效期,发出,再推送通知。是一个示例流程 |
| 字段 | 说明 |
|---|---|
| 「名称」 | 必填 |
| 「描述」 | 可选 |
| 「用途」 | 「通用」或「保号」。保号脚本在列表里以「保号」开头 |
| 「启用」 | 停用的脚本不会被任何方式触发。列表里每行的开关拨了立即生效 |
| 「触发方式」 | 要填的 | 说明 |
|---|---|---|
| 「手动」 | 无 | 只在点「运行」时执行。也可以给机器人发 /run <脚本名或ID> |
| 「定时(cron)」 | 「Cron 表达式」 | 标准 5 段:分、时、日、月、周。0 3 * * * 是每天 3 点,0 * * * * 是每小时整点。最细到每分钟 |
| 「固定间隔」 | 「每隔多少天」 | 0–365 天,0 表示不执行 |
| 「入站短信」 | 「匹配正则」 | 收到匹配的短信时执行,留空匹配全部短信。正则写不对时,退化为按文字包含匹配 |
| 「设备事件」 | 「关心哪些事件」 | 「设备离线」「设备恢复」「控制面可疑」「控制面重建中」「控制面恢复」「漫游禁止表容量不足」,不选表示全部 |
- cron 表达式保存时不检查。写错了脚本不会执行,只在日志里留一条记录。
- 「固定间隔」只能按天填。要按小时或分钟执行,改用「定时(cron)」。
- 定时或间隔脚本上一次还没跑完时,这一轮跳过。
- 「设备事件」触发的脚本,目标要选「按设备」;选「按卡」永远不会被触发。
| 「目标」 | 说明 |
|---|---|
| 「任意设备」 | 不指定。「入站短信」触发时用收到短信的那台设备;其他触发方式下,需要设备的步骤会失败 |
| 「按设备」 | 选一台设备 |
| 「按卡」 | 选一张卡,按 ICCID 认。卡换到别的设备上,脚本仍跟着这张卡 |
勾选「手动填写」可以直接写 device:<设备ID> 或 iccid:<卡号>。
按卡执行时自动切卡
Section titled “按卡执行时自动切卡”目标是 eSIM 上一个没启用的 Profile 时,可以让脚本先切过去,执行完再切回。只有「手动」「定时(cron)」「固定间隔」三种触发方式能用。
| 字段 | 说明 |
|---|---|
| 「执行前自动切换到此卡,执行后切回」 | 在「切卡」里勾选。这张卡已经是启用状态时不用勾 |
| 「通话在途时重试」 | 到点时正在通话,最多再试几次,默认 5 次 |
| 「重试间隔(秒)」 | 两次重试之间等多久,默认 60 秒。等完仍在通话就跳过这一次 |
切走后没能切回时,nSIM 会推送通知,并在「自动化」页列出「待处理的切卡」。每条写着设备可能停在哪个 Profile、应该切回哪个。到那台设备的 eSIM 页确认并手动切回后,点「已处理,移除记录」。这个按钮只删除记录,不操作 SIM 卡。
「步骤」是一个 JSON 数组,每一步写成 {"type": "步骤类型", "params": {参数}}。JSON 写错时,保存会提示「步骤 JSON 无效」。
type |
做什么 | 参数 | 说明 |
|---|---|---|---|
send_sms |
发送短信 | to(必填)、text |
发出的短信记进短信页。超时 30 秒 |
delay |
等待 | duration(如 5s、2m)或 seconds |
最长 24 小时 |
notify |
推送通知 | text(必填) |
发到所有已启用的通知渠道 |
set_var |
设置变量 | name、value |
|
condition |
条件判断 | left、op、right、on_false |
不满足时默认正常结束;on_false 为 fail 时算失败 |
wait_reply |
等待回复短信 | pattern、timeout、save_as |
pattern 是正则。只匹配目标设备收到的短信。默认存进变量 reply |
wait_input |
等待输入 | prompt、timeout、save_as |
推送一条通知请你输入。默认存进变量 input |
extract |
提取内容 | source、pattern、save_as、on_no_match |
用正则取第一个括号分组。默认存进变量 extracted |
send_ussd |
发送 USSD | command、save_as |
例如 *100#。回复默认存进变量 ussd_response。超时 45 秒 |
consume_data |
消耗流量 | bytes、kb、mb 三选一 |
经这张卡的移动数据下载指定大小的数据。超时 5 分钟 |
place_call |
拨打电话 | to、hold_seconds |
经 VoWiFi 拨出。设备语音没就绪时失败 |
rotate_ip |
切换 IP | save_old_as、save_new_as |
与手动换 IP 相同。默认存进变量 old_ip、new_ip |
condition 的 op 可用:eq ne contains not_contains empty not_empty gt lt gte lte。
wait_reply 与 wait_input 的 timeout 默认 2 分钟,最长 30 分钟;纯数字按秒算。
参数里用 {{变量名}} 引用变量,不存在的变量替换成空字符串。
| 触发方式 | 自带的变量 |
|---|---|
| 「入站短信」 | sms_content、sms_sender、device_id、iccid 等 |
| 「设备事件」 | device_id、event_kind、event_reason |
给等待输入的脚本交输入
Section titled “给等待输入的脚本交输入”wait_input 推送的通知形如「[自动化 #12] 请提供银行卡有效期(MMYY)(回复 /input 12 <内容> 提供输入)」。交输入有两种办法:
- 在「运行历史」里点这次运行,在「输入」里填写,点「提交」。
- 给 Telegram、飞书或 QQ 机器人发
/input 12 0129这样的命令。
| 操作 | 说明 |
|---|---|
| 「运行」 | 立即真实执行全部步骤,可能产生费用且无法撤回。之后页面切到「运行历史」 |
| 「试运行」 | 按已保存的版本走一遍,不产生费用,不留运行记录。等待类步骤不会真的等,部分步骤的返回值是模拟的 |
| 「版本历史」 | 每次保存自动存一版,保留最近 20 版。「回滚到此版本」恢复旧版 |
| 「删除脚本」 | 彻底删除,不能恢复 |
每次运行一行,写着脚本名、状态、触发来源和运行编号。点一行看开始与结束时间、每一步的日志。失败原因写成「第 N 步(步骤名)失败:…」。
| 状态 | 含义 |
|---|---|
| 「排队中」 | 等待执行 |
| 「运行中」 | 正在执行 |
| 「等待回复」 | 停在 wait_reply,等短信 |
| 「等待输入」 | 停在 wait_input,等你交输入 |
| 「成功」 | 全部步骤完成 |
| 「失败」 | 某一步失败 |
| 「已取消」 | 被取消 |
触发来源:「手动运行」「定时触发」「间隔触发」「短信触发」「事件触发」。
运行记录默认保留 30 天,在「设置 › 数据与备份」的「自动化运行记录」里改。脚本运行失败本身不推送通知。
自动化发出的短信、电话、USSD 和切卡都记进审计日志,标明是哪个脚本,见诊断页。用 API 管理脚本需要 automation:write,见API 权限范围。