IRIS (IR Interchange Service) 是 IRext 的一个子项目。它的主旨是为所有使用 IRext 的用户提供一个开放的红外码库扩展和交换的服务。

在 IRIS 的软硬件和服务框架下,你可以自主采集第三方遥控器的编码到自己的码库,和 IRext 原生码库融合,也可以在开放的码库交换协议支持下和其他用户进行有偿交换和共享码库。


IRIS 的组成架构和功能

IRIS 是一个以 IRext 红外遥控码库管理服务为后台,搭配一系列用户端的工具,用于用户自行对 IRext 当中没有收录的编码进行扩展的平台和工具。

自行采集和录入的编码可以进入 IRext 的码库,并可在智能家居控制产品中直接使用。

IRIS 提供用户端用于编码采集和测试的 Android APP,红外遥控收发一体的模组,以及和 YG-920 协同工作的远程协议分析服务等组件,帮助你达成下面的目标:

1. 你可以使用实体遥控器、或者其它厂家的万能遥控 APP,在 IRIS 提供的 VM 上或者通过 IRIS Kit 进行学习。

2. 学习到的码库可以通过 IRIS 的编码采集管理控制台进行查看和管理,它们也会被合并到 IRext 的存量码库中用于索引、下载和解码。

3. IRIS 提供在线的红外协议分析功能,对存量码或者新学习的编码进行协议验证,以确保学习编码的语法正确性。

4. IRIS 提供编码发射 APP ,安装在带有红外发射装置的手机上,配合编码采集管理控制台,验证家电的实际控制。

5. IRIS 也提供红外发射模组 IRIS Kit,配合编码采集管理控制台,验证家电的实际控制。



IRIS APP

IRIS APP 是一个 Android 应用程序,它主要适用于:

  • 当安装在 IRIS VM 上时,可以用于从其它厂商的遥控 APP 采集编码到 IRIS 和 IRext 平台数据库。
  • 当安装在带有红外发射装置的手机上时,可以通过 IRext 或者 IRIS 控制台或者应用接口进行发射编码对真实的家电进行控制。

  • IRIS VM

    IRIS VM 是一个安装在个人电脑上的,内置 IRIS APP 的 Android 虚拟化环境,可以在这个虚拟机当中安装其它厂商提供的万能遥控 APP,并采集它的遥控码到 IRIS 后台数据库。

    IRIS VM 可以运行于主流的虚拟机环境,例如 VMWare 或者 Virtualbox (目前均有免费版),只需要 2 CPU + 4 GB RAM 即可运行。

    在 IRIS VM 上所采集到的编码,在 IRIS 的预备码库后台当中可以自动关联到已有家电类型以及品牌,且自动映射到 IRext 所支持的电器按键键位。


    IRIS Kit

    IRIS Kit 是一个基于 ESP8285 的红外收发一体的模组,通过物联网平台和 IRIS 后台以及控制台连接。它可以用于:

  • 从 IRext 或者 IRIS 控制台下发遥控码到 IRIS Kit,使用 IRIS Kit 红外发射功能验证遥控码是否可以真实的控制家电。
  • 利用 IRIS Kit 的接收学习功能,从实体遥控器学习遥控码并通过与 IRIS 编码采集管理控制台交互采集到 IRext 码库。

  • IRIS Edge Stack

    在 IRIS 编码采集管理控制台上,可以看到所有使用管理员账号进行采集的所有第三方编码,但这些编码是以时间序列的方式保存的。通常你可以通过购买 YG-920 协议分析仪 (见 IRext 文档编码维护章节) 对这些时间序列进行分析并且基于分析结果按照 IRext 的编码算法进行编码压缩保存。

    IRIS Edge Stack 提供了一种在线的分析手段,通过编码采集管理控制台当中的“协议分析”功能,即可以对每个按键的时间序列进行协议分析,分析结果会直接显示在控制台上。


    通过仪表板可以让你可以每日跟踪 IRext 的全局码库使用情况以及新增码库情况,如果在存量库当中不具备你想要的电器品牌或者具体编码,可随时关注码库更新进展。

    IRext 也会定期向你的注册邮箱发送邮件告知近期的码库更新情况。


    编码统计

    搭载 IRext 的设备数量


    用户遥控电器种类

    支持品牌数量

    支持家电型号数量

    当月新增码

    预备新增码

    当月新增设备


    支持电器详情


    新增码统计

    统计区间
    -



    简介

    IRIS VM 是一个万能遥控 APP 的 Android X86 运行环境,它按照 IRext 的编码规则进行定制,并直接和 IRIS 后台对接。第三方用户在这个 Android 环境当中安装万能遥控 APP,并且按照规则创建万能遥控设备,并按下相应按键,这些按键编码就会被自动采集到 IRIS 服务后台,并且进行品牌、按键的对应分析。待用户确认之后,便可以加以利用。


    环境准备

    1. 下载免费虚拟机运行环境,部署于个人电脑 (针对 Windows、MacOS 和 Linux 桌面用户) 。

    2. 下载虚拟机镜像:

    3. 下载 IRIS APP Android 客户端安装包。


    虚拟机安装向导

    1. 按照环境准备的说明和链接下载好虚拟机平台、IRIS VM 镜像以及 IRIS APP。

    2. 从下面的链接下载不同平台的 Android Platform Tools:

    3. 安装好 Android Platform Tools 之后,在系统 PATH 环境变量中添加 Platform Tools 目录的路径。

    4. 启动系统的命令行控制台,输入 adb connect 127.0.0.1 即可连接到虚拟机。

    5. 输入 adb install iris_client_latest.apk 即可安装或者升级下载的 IRIS APP。

    6. 开启虚拟机,打开 IRIS APP 并使用 IRext 管理员账号登录,即可将万能遥控的数据采集到 IRIS 码库。


    IRIS VM 设置演示


    使用 IRIS VM

    请参考编码采集中的说明使用 IRIS VM 进行码库扩展。


    简介

    IRIS Kit 是一个基于 ESP8285 的在线红外工具模块组件,具有红外发送和学习的基本功能。

    它内置与 IRext 服务相连接的固件,可通过 IRext 控制台向它远程发送遥控二进制编码,用于验证位于终端侧的解码和发送能力、实际对电器的控制效果。

    它同时也可以和 IRIS 的编码采集服务进行协同,通过终端侧的红外学习能力,远程学习用户的传统遥控器编码并汇集到 IRIS 的编码库。

    IRIS Kit

    利用 IRIS Kit 可以帮助你解决以下问题:

    • 直接通过 IRext 的控制台远程发送选中的遥控编码二进制码库到 IRIS Kit,进行解码和即时发射,用于验证遥控码是否能够真实的控制家电设备。
    • 利用 IRIS Kit 的红外学习能力,将 IRext 库当中不存在而手持传统遥控器上的遥控码实时学习到 IRIS 的码库当中,并可立即部署到你的智能家居控制方案中。
    • 可以参考 IRext 嵌入式设备最佳开发实践,刷写你自己的基于 IRext 解码算法的产品固件,进行产品初期的原型验证。

    获取 IRIS Kit 模块

    开发者可在线申请升级权限至管理员,可使用包括码库扩充、远程协议分析等功能,并可获赠 1 个试用版 IRIS Kit 模块。

    也可以自行购买 IRIS Kit 兼容的第三方 ESP8285 和 ESP8266 红外收发一体模块。

    同时需要购买配套的 USB 转串口转接器以及至少 4 根 Female - Female 杜邦线。


    获取接入凭据并将 IRIS Kit 接入云服务

    1. 获得 IRIS Kit 后,可以在应用栏目中创建 IRIS Kit 类型的应用,并可免费申请至多 3 个接入凭据,如果需要更多,可以通过邮件方式联系作者

    2. 用你的手机扫描下面的二维码,采用 IRext 账号登录之后,查阅你申请的可用的接入凭据,可选中并复制接入凭据到手机剪贴板。

    iris_kit_reg_qr

    3. 将 IRIS Kit 置于稳定的、具有 Internet 访问的 路由器信号覆盖范围内,路由器开启 DHCP 功能,并用 MicroUSB 接入 5V 直流电源。

    4. 打开手机 Wi-Fi 网络设置页面,查找前缀为 ESPXXXX 的热点并接入,接入后将自动弹出 IRIS Kit 配置页面。

    5. 在配置页面中选择 Configure Wi-Fi 接入,输入第 3 步中的 Wi-Fi 热点名称和密码,并将第 2 步当中复制的接入凭据粘贴到 Credential Token 栏目,点击确认。

    6. 如果上述信息输入均正确,那么稍等片刻之后,就可以在“应用 → 客户端”列表中看到已经激活上线的 IRIS Kit 了。

    iris_init_09

    注意: IRIS Kit 和接入凭据是 1:1 绑定的,一旦绑定之后将无法将接入凭据用于其它 IRIS Kit,请谨慎申请和使用。


    获取 IRIS Kit 源码并进行二次开发

    1. 请访问 Gitea,从仓库 iris-kit 获取源代码,导入 VSCode + PlatformIO 即可构建和二次开发。

    2. 从 Espressif 下载 Flash Download Tools 用于固件刷写。

    3. 可以自行使用 PlatformIO 构建固件,也可以从 SDK 页面下载和 IRext 联动的官方固件,使用 Flash Download Tools 进行刷写。

    4. IRIS Kit 固件刷写时需要借助 CH340 USB Serial TTL 刷写器,可在这里获取 Windows 驱动程序,连线方式如下图(图中的连线颜色和标注仅供参考,请关注 TTL 和 IRIS Kit 背面印刷的接口名称以及相同颜色杜邦线的连通性,实际颜色以你收到的 IRIS Kit 附带的线色为准):

    IRIS_Kit_Connect

    5. 短路跳线进入刷写模式,在 Flash Download Tool 中选择 ESP8285 芯片类型,并选择使用 PlatformIO 构建出来的 firmware.bin 或者官方 binary,选择合适的串口进行升级。

    IRIS_flash_1

    IRIS_flash_2

    6. 刷写完成后去掉跳线重新上电,如果是官方固件则可以直接连接到 IRext,具体步骤请参考上面的使用教程。

    7. 如果你希望重新配置 Wi-Fi 热点,可以在 Flash Download Tools 当中选择对 IRIS Kit 进行擦除,并重新刷写固件,重新配置网络。

    IRIS_flash_2


    使用 IRIS Kit

    请参考编码采集中的说明使用 IRIS Kit 进行编码扩展。

    请参考遥控验证中的说明使用 IRIS Kit 进行遥控验证。


    简介

    IRIS 是围绕 IRext 编码库提供的编码采集和验证工具系统,它设计的主旨之一是让你在日常开发过程中不断积累 IRext 所不具备的新的红外遥控码。

    你可以使用 IRIS Kit,基于实体遥控器或者带有红外发射装置的手机进行编码学习扩展;也可以直接使用 IRIS VM 的帮助下在不实际发射红外信号的环境中进行学习。

    关于 IRIS VM 和 IRIS Kit 的获取和设置请参考前面章节的内容。


    利用 IRIS VM 进行采集

    1. 进入 IRIS VM Android 系统并安装好 IRIS APP 之后,打开 IRIS APP,使用管理员账号登录。

    2. 正常打开第三方完成红外 APP,任意选择需要创建的电器类别 (目前不支持空调) ,并且按照如下规则进行采集:

    3. 家电的命名规则需要以默认的“品牌名”--“品类名”--“编号”格式存储,例如“夏普电视机-1”,“美的空气净化器-2”等。

    对于不同家电,有着不同的“按键映射”,请尽量寻找匹配的按键。

    在 IRIS APP 当中可以查看编码采集的日志信息。

    4. 按下万能遥控器面板上的任意按键,即可将它的遥控码采集并同步到 IRext 服务后台,在 IRIS 编码采集管理功能中可以刷新获得最新上报的家电品牌以及家电实例,并可进行编辑和删除操作。

    5. 如果 IRIS APP 当中采集不到一些按键面板里展示的按键,可以在按键键位上右击以留白该按键,留白的按键指示为橙色。

    6. 当采集或者留白了所有的该遥控器下的按键后,以此点击按键面板下方的“留白无效按键”以确认所有按键采集完毕。

    7. 最后,点击按键面板下方的“提交”完成这个遥控器的所有采集工作,提交过程中 IRIS 后台会自动进行编码重复扫描,并给出提示。

    至此已经完成从 IRIS VM 采集编码的所有过程,你可以通过万能遥控 APP 创建其它遥控器,并且继续采集。


    利用 IRIS Kit 进行采集

    1. 准备好 IRIS Kit。并准备好要进行学习的实体遥控器,用遥控器的发射端对准 IRIS Kit 的红外接收器。

    2. 在编码采集管理控制台上创建一个全新的空白遥控码实例。

    3. 点击这个新创建的空白遥控码项,在弹出的对话框里选择已经上线,并且即将要用来学习编码的 IRIS Kit,点击“连接”。

    如果 IRIS Kit 和编码采集管理控制台成功连接,页面右上角会弹出“连接成功”提示。

    4. 由于遥控按键面板上的按键只能逐一进行学习,因此每当学习一个按键编码时,需要先指定键位。

    点击要学习的键位,如果页面右上角显示提示“按键正在等待从 IRIS Kit 进行学习...”,表示 IRIS Kit 已经进入红外编码接收状态,同时该键位颜色变为深蓝色。

    5. 按下实体遥控器上需要学习的按键,红外信号将发射至 IRIS Kit 接收器,并将滤波后的时间序列码上传到云端的 IRext 后台,此时按键颜色由深蓝色变为浅蓝色,并在右上角提示学习到编码。

    6. 再次点击面板上的按键可以观察到已经学习的遥控时间序列码,在弹出的操作对话框中可以选择“提交此按键编码”用于将学习到的编码值记录到 IRext 数据库,也可以选择“重置此按键编码”重新学习。

    7. 提交成功之后,按键会变为绿色,此时点击按键仍可以放弃本次学习到的值并重新学习。

    对于不同家电,有着不同的“按键映射”,请尽量寻找匹配的按键。

    如果 IRIS APP 当中采集不到一些按键面板里展示的按键,可以在按键键位上右击以留白该按键,留白的按键指示为橙色。

    8. 当采集或者留白了所有的该遥控器下的按键后,以此点击按键面板下方的“留白无效按键”以确认所有按键采集完毕。

    9. 最后,点击按键面板下方的“提交”完成这个遥控器的所有采集工作,提交过程中 IRIS 后台会自动进行编码重复扫描,并给出提示。

    下面是一个使用 IRIS Kit 采集实体遥控器按键码的演示视频:


    使用新采集到的编码

    通过 IRIS VM 和 Kit 采集到的编码可以立即投入使用,你可以通过 IRext 控制台查看到你和他人采集到的编码。

    这些编码的索引也会被包含在 'IRext Web API /irext-server/indexing/list_indexes' 的响应当中。

    注意: 当前由 IRIS 采集的遥控编码并没有采用 IRext 的压缩格式进行压缩,因此在使用时请直接使用时间序列即可,无需调用本地解码算法进行解码。


    简介

    成功解码并且可以通过协议分析的编码不一定可以实际控制家电设备。

    IRext 以及 IRIS 同时也提供红外码实际验证功能,帮助你通过从云端往终端上发送红外遥控码以验证 IRext 二进制遥控编码或者 IRIS 采集的遥控码是否可以切实的控制家电。

    如果你有可以发射红外遥控码的 Android 系统手机,可以在手机上安装 IRIS APP 并且配合 IRext 控制台以及 IRIS 编码采集管理控制台进行遥控发射验证。

    如果你有 IRIS Kit,也可以通过 IRIS Kit 配合 IRext 控制台以及 IRIS 编码采集管理控制台进行遥控发射验证。


    通过 Android 手机进行编码发射验证

    1. 以管理员身份登入。

    2. 使用手机扫描下方二维码下载并安装 IRIS APP。

    qr

    3. 启动应用并使用 IRext 账号登录。

    4. 切换到“遥控测试”面板,确认 APP 上线。

    emit_01

    5. 进入 IRext 控制台,选中需要测试的家电种类 -- 品牌 (机顶盒请选择城市) -- 勾选要进行解码的码库项。

    emit_02

    6. 点击“发射编码”按钮,打开在线解码对话框,并选择当前使用的在线 IRIS APP (如果有多个 APP,请注意其 ID)。

    emit_03

    7. 点击想要解码的遥控按键,可以从波形表和解码结果当中获得解码后的时间序列,并且实时发送到 IRIS APP。

    emit_04

    8. 此时如果将手机对准想要测试的家用电器设备,如果选择的编码正确,可以依照遥控按键进行控制。


    通过 IRIS Kit 进行编码发射验证

    1. 以管理员身份登入。

    2. 按照设置说明接入 IRIS Kit。

    3. 进入 IRext 控制台,选中需要测试的家电种类 -- 品牌 (机顶盒请选择城市) -- 勾选要进行解码的码库项。

    4. 点击“发射编码”按钮,打开在线解码对话框,并选择当前使用的在线 IRIS Kit (如果有多个 IRIS Kit,请注意其 ID)。

    5. 点击想要解码的遥控按键,可以从波形表和解码结果当中获得解码后的时间序列,并且实时发送到 IRIS Kit 端。

    6. 此时如果将 IRIS Kit 的红外二极管对准想要测试的家用电器设备,如果选择的编码正确,可以依照遥控按键进行控制。


    简介

    红外遥控遵循一定的编码协议规范。从 IRIS VM 和 Kit 采集到的时间序列信息,可通过协议分析将其转换映射为遥控编码规范定义的编码格式。

    IRIS 提供的红外遥控协议分析:

    • 对于智能家居软硬件开发者,在没有可供实际测试的家电的环境中,通过协议分析功能验证已经采集到的编码的完整性。
    • 对于遥控器生产厂商,也可以结合 IRIS Kit 和协议分析功能来验证遥控器的功能。
    • 此外,遥控协议分析是 IRext 命令码编码的基础,可以用以进一步的遥控码压缩等优化。

    利用 IRext 控制台进行协议分析

    1. 以管理员身份登入。

    2. 进入 IRext 控制台,选中需要测试的家电种类 -- 品牌 (机顶盒请选择城市)-- 勾选要进行解码的码库项。

    3. 点击“在线解码”按钮,打开在线解码对话框。

    4. 点击想要解码的遥控按键,可以从波形表和解码结果当中获得解码后的时间序列。

    5. 在获得时间序列后,点击“在线协议分析”按钮,可以在协议分析栏目当中看到分析结果。

    pa_from_irext


    利用 IRIS 编码采集管理进行协议分析

    1. 以管理员身份登入。

    2. 进入编码采集管理控制台,选中需要测试的家电种类 -- 品牌 (机顶盒请选择城市)-- 勾选要进行解码的码库项。

    3. 在采集的编码详情对话框点按任意遥控按键,可以从波形表和解码结果当中获得解码后的时间序列。

    4. 点击想要解码的遥控按键,可以从波形表和解码结果当中获得解码后的时间序列。

    5. 在获得时间序列后,点击“在线协议分析”按钮,可以在协议分析栏目当中看到分析结果。

    pa_from_iris


    调用协议分析 Web API

    1. 在应用程序中使用 SDK 注册信息登入。

    2. 请参考 IRext 在线或者离线解码库 API 传入适当的编码库和按键参数,获得遥控时间序列。

    3. 参考 IRext 文档 - WebAPI - 协议分析进行调用(需要先调用 app_login)。


    遥控码压缩

    IRext 提供一种特殊的编码格式,可以将采集到的时间序列格式编码压缩为二进制编码,配合 IRext 的核心解码算法,从而减少遥控家电时,码库在终端设备,尤其是嵌入式设备上的存储和运行开销。

    这种编码格式可以参考编码协议规范所表述的内容。它是基于协议分析的结果进行编码的。

    在 IRIS 的编码管理控制台中,点击相应的编码,并在遥控按键面板里支持对采集到的时间序列格式编码进行一键压缩。

    remote_encode_panel

    支持一键压缩的协议正在陆续的开发当中,详情可参阅 “帮助” 栏目中的记录。也可以在编码管理控制台中对支持压缩的协议进行过滤。

    压缩编码的前提条件为: (1) 该编码的所有按键要经过协议分析,(2) 同一个遥控索引中的按键协议一致并受到压缩编码算法支持。

    在该遥控索引编码压缩成功之后,可以在 IRext 控制台的同一品牌的列表当中找到它,并且处于 “待验证” 状态,此时需要进一步验证编码压缩的结果,才能正式发布到 IRext 的共有云码库。

    选中这个待验证的编码,并且点击验证按钮进行验证,如果验证成功可自动发布,并为所有 IRext 的用户共享。

    remote_verify_panel

    🌻 IRext 开源社区非常欢迎,同时也非常感谢您可以使用 IRIS 提供的工具套件和服务为千千万万的智能家居产品贡献新的遥控码库。🌻


    在线分析工具

    protocol:
    full code:
    custom code:
    key code:

    类型

    品牌


    按键面板帮助

    IRIS 提供的大部分功能均可以通过编码采集管理控制台的按键面板进行使用,包括:

  • 对采集到的编码的家电品类和品牌进行规范化管理,合并与 IRext 存量库相重复的品牌。
  • 对采集到的编码进行解码、协议分析测试。
  • 按键建码的修正和留白,搜索和排除遥控键码重复。
  • 实时的和 IRIS Kit 进行交互,把控编码学习和采集流程。
  • 按键面板各个功能块的说明如下图所示:

    key_panel_inst

    标题和状态栏

    标题和状态栏展示了当前选中的遥控编码的品类-品牌 (机顶盒的城市-运营商) 和当前编码采集状态等信息。

    IRIS 终端 (涵盖 APP 和 Kit) 列表

    如果当前正在从一个实体遥控器进行编码学习时,在创建新的遥控器项目后可以在这里选择 IRIS Kit 作为红外学习端点。

    如果当前正在从一个 VM 进行编码学习时,可以连接到正在学习编码的 IRIS APP,按键的学习状况会实时更新到按键面板上。

    如果当前遥控编码已经发布,可以通过选中终端进行发射编码测试。

    按键面板

    遥控按键面板是编码采集管理的主要界面接口,面板上的按键会根据不同的家电类型呈现出不同的功能键盘布局,可参考 “按键映射” 进一步详细了解。

    每个按键采用不同的颜色表示当前不同的状态:

    未采集 表示这个按键当前没有任何采集到任何按键值。

    学习中 在 IRIS Kit 学习模式下,表示正在准备采集该按键码,下一次 IRIS Kit 学习到的键值将记录到这个键位。

    已学习 IRIS VM 或者 IRIS Kit 已经学习到键值,但此键值尚未上传到数据库,仅缓存在前台,可重新学习或者重置。

    已采集 这个按键的值已经采集到后台数据库。

    已留白 这个按键没有对应的遥控功能,已经标记留白。

    在遥控码采过程中,可以通过鼠标右击对不具备此功能的按键进行留白。没有完整采集/留白的遥控编码将无法最终上传至服务端数据库。

    按键码

    对于已经录入完成的遥控码,点击按键时将会自动解码并将结果和波形展示在按键码面板上。

    如果在 IRIS 终端列表中选中并连接了发射编码的终端,那么解码的同时也会将实际的遥控编码通过终端进行发射。

    协议分析

    点击“在线协议分析”可以得到按键码的协议类型,full code,custom code 和 key code 信息,并且可以将协议信息作为按键属性永久记录到数据库。

    管理操作

    对当前遥控码索引(并非单个按键码)进行管理,可以对它的名称,所属品牌和优先排序进行修改,或者整体进行删除。

    如果要向 IRIS 后台提交这个遥控码并投入使用,需要首先确认“留白无效按键”,然后“提交”即可。


    常见问题

    Q: 为什么协议解析总是提示失败?

    A: 请先注册并登录你的账户,然后再尝试协议分析功能。


    为什么有一些遥控按键协议会解析失败?

    A: 是因为部分遥控控制码的协议解析暂时不支持,IRext 会持续补充遥控协议解析库。


    Q: 我获取 IRIS Kit 并接通电源后,并没有发现以 ESP 开头的 Wi-Fi 热点。

    A: IRIS Kit 默认是不带固件的,请参阅“编码采集”的相关说明进行首次固件刷写。


    Q: IRIS Kit 配置好网络并且接入 IRIS 平台之后,如何更换 Wi-Fi 热点?

    A: 需要使用 Flash Download Tool 擦除 IRIS Kit,并重新刷写固件,才能重新配置 Wi-Fi 热点,请注意 IRIS Kit 和接入凭据是一一对应的。


    支持编码压缩的协议