跳转到内容

NFC 二进制传感器

nfc 二进制传感器平台提供了一种简便的方式来判断 NFC 标签是否被呈现在读卡器上。 标签可以通过以下三种方式之一进行识别:

  • 通过给定的唯一 ID(uid )——例如 74-10-37-94
  • 通过给定的 NDEF 标签“名称”,或者……
  • 通过标签的 NDEF 消息/数据中包含的给定字符串

请注意,当前此平台仅支持 PN7150 和 PN716x; 在你的设备配置中必须存在这些组件之一,才能使用它。

# 示例配置条目
binary_sensor:
- platform: nfc
ndef_contains: pulse
name: "NFC 1 Tag"
- platform: nfc
tag_id: pulsed
name: "NFC 2 Tag"
- platform: nfc
uid: 74-10-37-94
name: "MFC Tag"
  • ndef_contains(可选,string):必须出现在标签 NDEF 消息中的(子)字符串。不能与 tag_id 和/或 uid(下文)一起使用。

  • tag_id(可选,string):标识标签的字符串;实际上是它的名称。具体来说,它 查找编码到标签的某个 NDEF 记录中的 Home Assistant URI,然后查找此特定字符串。不能 与 ndef_contains 和/或 uid 一起使用。

  • uid(可选,string):NFC 标签的唯一 ID。这是一个以连字符分隔的十六进制值列表。 例如:74-10-37-94。不能与 ndef_contains 和/或 tag_id(上文)一起使用。

  • 来自 Binary Sensor 的所有其他选项。

要为给定的 NFC 标签设置二进制传感器,你必须首先知道它的唯一 ID(uid )、标签 ID(如果它 是使用 Home Assistant Companion 应用准备的),或者其 NDEF 消息中包含的(部分)字符串。

要获取标签的 UID:

  • 设置一个简单的 NFC 组件(例如 PN532、PN7150 或 PN716x) 配置,不带任何二进制传感器。

  • 将 NFC 标签接近 NFC 读卡器。当标签足够接近读卡器时,你会在 ESPHome 设备的日志中看到类似这样的消息:

    Read tag type Mifare Classic with UID 1C-E5-E7-A6
  • 或者:

    • 复制此 ID 并使用它像上面的配置示例中那样创建一个 binary_sensor 条目,或者……

    • 使用标签 ID(如用 Home Assistant Companion 应用准备时所确定的)来定义上述 binary_sensor 的 tag_id 参数,或者……

    • 选择标签 NDEF 消息中包含的子字符串,并使用它来定义上面的 ndef_contains 参数 。如果存在,标签的 NDEF 记录将显示在上述消息下方几行的日志中。

对每个标签重复此过程。

请注意,由于你能够定义 NDEF 消息,因此这种方法更灵活,甚至允许多个 卡/标签共享同一条消息。