
开发工具桌面应用【免费下载链接】script-commandsScript Commands let you tailor Raycast to your needs. Think of them as little productivity boosts throughout your day.项目地址https://gitcode.com/gh_mirrors/sc/script-commands点击查看免费下载本指南基于 commands/remote-control/samsung-tv 目录下的 README 与配套 Python 源码讲解如何将三星电视的开关机操作接入 Raycast 快捷命令体系。读完本文你将掌握wakeonlan依赖安装、电视 IP/MAC 获取、模板脚本改名为可运行命令的全流程并能从源码层理解开机Wake-on-LAN 魔法包与关机Samsung WebSocket 远程控制 API两条命令的底层工作机制。命令概览一键掌控电视开关该目录为 Raycast Script Commands 仓库中remote-control分类下的三星电视控制命令包含两个核心命令Turn On TV通过 Wake-on-LAN 向电视发送魔法包magic packet实现局域网内远程开机Turn Off TV通过三星电视的 WebSocket 远程控制通道发送电源键指令实现远程关机。两个命令在 Raycast 中都以compact模式运行见 turn-on.template.py 与 turn-off.template.py 的raycast.mode compact即执行后在 Raycast 界面中展示轻量结果不打断当前工作流。启用后在 Raycast 中搜索 samsung tv 即可看到上述两条命令并一键运行。兼容性说明README 明确指出并非所有三星电视型号都支持这套远程控制方式Samsung 官方在开发者站点上维护了完整的兼容型号分组列表tv-model-groups。可以推断该列表对应的是支持 Smart TV WebSocket 远程控制 API的型号群体。在配置前建议先确认自己的电视型号在兼容范围内否则命令可能无法建立连接。初始配置三步走1. 安装 Python 依赖开机命令依赖wakeonlan第三方库README 要求通过pip安装pip3 install wakeonlan该依赖在 turn-on.template.py 头部注释中被明确声明并在源码中以import wakeonlan的形式被直接引用。2. 获取电视的 IP 与 MAC 地址Samsung 电视的 IP 地址与 MAC 地址都可以在电视本身的网络设置菜单中查到两个模板脚本的源码注释都明确标注了这一点。拿到地址后将电视的MAC 地址填入turn-on.template.py中的mac_address变量将电视的IP 地址填入turn-off.template.py中的ip_address变量。3. 重命名模板并重载 Raycast仓库中的脚本均为模板形式文件名含.template.必须将其重命名以激活将turn-on.template.py→turn-on.pyturn-off.template.py→turn-off.py即从文件名中移除.template.段。重命名后在 Raycast 中重新加载脚本命令即可看到Turn On TV与Turn Off TV两条命令并开始使用。深入源码Raycast 元数据如何驱动命令两个模板脚本顶部都携带了完整的 Raycast 元数据注释这些注释定义了命令在 Raycast 中的展示与行为元数据字段Turn On TV 的值说明raycast.schemaVersion1脚本命令 Schema 版本号raycast.titleTurn On TV命令在 Raycast 中的显示名称raycast.modecompact输出模式另支持inline、fullOutput、silent等raycast.packageNameSamsung TV所属包名用于命令分组raycast.iconimages/logo.png命令图标引用同目录下的 logo.pngraycast.authorDarryl Brooks作者信息raycast.descriptionTurns on/off a Samsung TV.命令功能描述显示在 Raycast 搜索列表中这套元数据是 Raycast Script Commands 的标准声明式配置Raycast 会据此将普通 Python 脚本注册为可搜索、可执行的原生命令。开机命令的原理Wake-on-LAN 魔法包turn-on.template.py 的实现非常精简核心逻辑只有两行import wakeonlan mac_address 00:00:00:00:00:00 # 填入电视的 MAC 地址 wakeonlan.send_magic_packet(mac_address)wakeonlan.send_magic_packet()会向局域网广播发送标准的 WoL 魔法包magic packet该数据帧内重复包含目标设备的 MAC 地址处于待机状态且开启网络唤醒功能的三星电视收到后即被唤醒开机。由于开机依赖的是数据链路层广播而非 IP 层连接因此开机命令只需要 MAC 地址不需要 IP 地址——这正是turn-on.template.py只声明mac_address参数的原因。关机命令的原理Samsung WebSocket 远程控制 API关机流程远比开机复杂它需要与电视建立实时的 WebSocket 长连接。整体调用链如下turn-off.template.py └─ SamsungTVWS(hostip_address, port8002, token_filetv-token.txt) └─ tv.shortcuts().power() └─ SamsungTVShortcuts.power() └─ remote.send_key(KEY_POWER) └─ SamsungTVWS._ws_send({method: ms.remote.control, ...})连接参数与 Token 缓存turn-off.template.py 创建了SamsungTVWS客户端实例ip_address 192.168.0.00 # 填入电视的 IP 地址 token_file os.path.dirname(os.path.realpath(__file__)) /tv-token.txt tv SamsungTVWS(hostip_address, port8002, token_filetoken_file) tv.shortcuts().power()关键点port8002这是三星电视 WebSocket 远程控制 API 的标准端口。从 samsunghelper.py 的_is_ssl_connection()方法可见端口为 8002 时被视为 SSL/TLS 安全连接会走wss://协议并携带 token。token_file首次连接时电视会下发一个认证 token客户端将其缓存在tv-token.txt文件中路径为脚本所在目录后续连接自动复用避免每次都弹出授权确认。连接协议与认证流程samsunghelper.py 定义了两种连接 URL 格式_URL_FORMAT ws://{host}:{port}/api/v2/channels/samsung.remote.control?name{name} _SSL_URL_FORMAT wss://{host}:{port}/api/v2/channels/samsung.remote.control?name{name}token{token}非 8002 端口使用明文ws://通过name参数默认SamsungTvRemote经_serialize_string()做 base64 编码标识设备8002 端口使用加密wss://URL 中额外携带从token_file读取的token。open()方法samsunghelper.py负责建立连接发送请求后读取响应若响应data中包含token字段则通过_set_token()写入 token 文件若响应事件不是ms.channel.connect则关闭连接并抛出ConnectionFailure异常。按键指令的发送格式send_key()方法samsunghelper.py把按键封装为标准的三星远程控制消息{ method: ms.remote.control, params: { Cmd: Click, DataOfCmd: KEY_POWER, Option: false, TypeOfRemote: SendRemoteKey } }发送后根据key_press_delay默认 1 秒等待按键生效。而power()命令本身定义在 samsungshortcuts.py 中def power(self): self.remote.send_key(KEY_POWER)即向电视发送电源键KEY_POWER的点击事件电视收到后执行关机。异常处理体系samsungexceptions.py 定义了三个异常类型覆盖了命令运行中的主要失败场景ConnectionFailure连接建立失败或握手事件异常ResponseError电视返回内容无法解析源码注释提示可能该型号不支持此功能HttpApiErrorHTTP API 调用错误为后续扩展预留。从源码结构看这套异常体系是命令在真实网络环境中保持稳定性的保障——例如首次连接时电视拒绝授权、电视型号不支持远程控制等场景都会以异常形式暴露给用户排查。部署注意事项与已知问题辅助文件必须与命令放在同一目录两个模板脚本头部注释都强调必须将samsunghelper.py、samsungshortcuts.py、samsungexceptions.py三个辅助文件复制到启用后的命令脚本旁边否则关机命令无法运行。此外 turn-off.template.py 中的sys.path.append(../)会将上一级目录加入模块搜索路径这是为了兼容 Raycast 对脚本命令的组织方式。首次使用的授权流程README 的 Important 部分明确了两点首次使用的注意事项首次连接需要在电视上允许设备接入——当你第一次运行关机命令时电视屏幕会弹出连接授权提示确认后电视才会下发 token部分电视需要在系统设置中开启允许 IP 远程设备连接——如果你的电视型号默认关闭此选项命令将无法建立连接需先在电视设置中手动开启。已知问题关机后无法立即开机README 记录了该命令集目前已知的固有限制电视关机后约 1015 秒内无法通过Turn On TV命令重新开机。这是由电视关机后的网络状态决定的——刚断电/待机的短时间内电视的网络唤醒栈尚未完全就绪或仍处于连接关闭状态WoL 魔法包会被忽略。如果你的使用场景对关机后立刻开机有强需求需要接受这一延迟。小结三星电视控制命令是 Raycast Script Commands 中以几行 Python 完成智能家居远程控制的典型示例开机复用成熟的 Wake-on-LAN 协议仅需一行send_magic_packet关机则借助 samsunghelper.py 封装的三星 WebSocket 远程控制 API完成 token 认证、SSL 连接与按键指令下发。整个配置过程只需安装依赖、填入电视 IP/MAC、重命名模板三步。若需排查问题可从异常定义与按键封装入手结合本文的调用链逐层定位。赞分享开发工具桌面应用【免费下载链接】script-commandsScript Commands let you tailor Raycast to your needs. Think of them as little productivity boosts throughout your day.项目地址https://gitcode.com/gh_mirrors/sc/script-commands点击查看免费下载相关推荐开源项目安装与配置指南Raycast Script Commands开源项目安装与配置指南Raycast Script Commands 1. 项目基础介绍 Raycast Script Commands 是一个开源项目它允开发工具桌面应用Raycast Script Commands 使用指南Raycast Script Commands 使用指南 1. 项目介绍 Raycast 是一款允许用户通过几个键盘快捷键控制桌面工具的应用程序。通过安装 Sc开发工具桌面应用Raycast Script Commands实战从零构建你的第一个脚本命令Raycast Script Commands实战从零构建你的第一个脚本命令 本文详细介绍了Raycast Script Commands的开发实践从基础模开发工具桌面应用上一篇解锁英雄联盟个性化体验LeaguePrank深度解析下一篇shadcn-vue 完全指南用 Open Code 理念构建你自己的 Vue 组件库创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考