I’ve got my hands on a set of pre-programmed NFC tags (decommissioned Disney Infinity Figurines, actually) which I intended to use with HA, using an old Samsung Galaxy phone with the Android Mobile App as a reader.
The app doesn’t even try to read those pre-programmed tags, at all.
It works smoothly with recently bought NFC stickers, but it completely ignores those Infinity figurines, as well as a chipcard and a keychain fob I found in my odds-and-ends box.
Funny enough, NFC tools can read all of those, no problem.
Looks like the app doesn’t support MifareClassic, only MifareUltralight?
Also, if the app were to support pre-programmed (and possibly write-only) tags, would it send the tags’ hard coded serial numbers instead of HA-written ID?
the app can only read NFC tags that it writes…it cannot just read another NFC tag and automate on it. You need to create a tag specifically for home assistant in order for it to work.
Tags need to work on both iOS and Android so a new tag needs to be created with the same data so both devices can use it. You need to create a tag for home assistant, thats how the feature is designed to work.
Can you please expand on this?
Nfc reader can read the tag id. How this differs between ios and android?
Can’t the app just extract the reported tag id read by phone nfc reader and call the hass tag read service or whatever? I already have an esphome- based external reader that works exactly the same way.
It really puzzles me why we need to write the hass.io url to the tags.
Is the app reaching out to that url every time? Even if I self-host my local instance?
My bad, perhaps.
I should’ve named this post “Companion app:expand tag support”…
I still think I made the point:
NFC tags should trigger a HA event in any case, and send the tag’s serial number along with any later imprinted ID (by HA or otherwise).
I will try to explain this again. The tag needs to be created by either the apps or HA core for the ID. The ID is used by not just the android app but iOS as well as anything else that uses tag. We cant just read any tag and send that data over as we need to know the format and it needs to be available for all devices and not just some. The reason why there is a URL used as the ID is so it can be translated by all supported apps, you can’t do that if you pick any random tag and its ID.
If you are really after this functionality your best bet is to use Tasker or something similar and send those events over yourself.
The tags need to be created by the apps so they can be properly translated and registered. For example you can have tags that trigger different servers. You can’t do that when you read any other random tag unless you go for your own solution.
I’d think the NFC reader wouldn’t care what it reads and just tells HA when it does.
But then, I have no idea how this is implemented and why it does what it does.
Doesn’t matter.
I’ve shelved my Disney figurines until I can bother myself to take a deeper look into this.