diff --git a/esphome/components/pn532/pn532.cpp b/esphome/components/pn532/pn532.cpp index 860657329c..a20f94f162 100644 --- a/esphome/components/pn532/pn532.cpp +++ b/esphome/components/pn532/pn532.cpp @@ -494,7 +494,13 @@ void PN532::write_mode(nfc::NdefMessage *message) { } bool PN532::clean_tag_(std::vector &uid) { - uint8_t type = nfc::guess_tag_type(uid.size()); + std::vector first_page(16); + if (!this->ntag2xx_read_page(4, first_page)) { + ESP_LOGE(TAG, "Failed to read first page"); + return false; + } + + uint8_t type = nfc::guess_tag_type(uid.size(), first_page); if (type == nfc::TAG_TYPE_MIFARE_CLASSIC) { return this->format_mifare_classic_mifare_(uid); } else if (type == nfc::TAG_TYPE_2) {