NFC Tags gebruiken

Wat zijn NFC stickers?

NFC-stickers, of liever gezegd NFC-Tags, zijn stickers met hierin een chip waarmee gecommuniceerd kan worden. NFC staat voor ‘Near Field Communications‘ en zoals de naam al zegt, kan het gebruikt worden voor communicatie met korte afstanden (10 cm). NFC Tags kun je eenvoudig via Internet aanschaffen en ze kosten zo’n 1 Euro per stuk. Geschikt voor Home Assistant zijn de NTAG213 stickers, bijvoorbeeld die van NFCSupply of NFCw.nl

Programmeren

Met behulp van de Home Assistant Companion App kunnen NFC tags geschreven worden. Hiermee krijgen de NFC tags een Naam en een ID. Selecteer hiervoor ‘Tags‘ via Instellingen.

Hier kan een Tag toegevoegd worden

Als voorbeeld schrijf ik ‘Sublime FM’ als tag naam en het ID wordt automatisch gegenereerd dus dat laat ik zo.

Selecteer vervolgens onderaan ‘CREEËR EN SCHRIJF‘ en houd de telefoon dicht boven de NFC tag om te schrijven.

Als dat gedaan is volgt een bevestiging:

en dan is de tag gereed om gebruikt te worden in Home Assistant.


De NFC tags zouden gebruikt kunnen worden om met je telefoon acties uit te voeren op Home Assistant zoals het aan-/uitzetten van verlichting of het alarm.

De reden dan ik deze tag de naam van een muziekzender heb gegeven is dat ik diverse stickers kan gaan gebruiken als Jukebox om muziekzenders af te spelen op MediaPlayer(s). Ik doe dat met behulp van Node-RED. Mooier is om hiervoor ‘printbare NFC labels‘ voor te gebruiken, maar de procedure blijft hetzelfde.

Het voordeel van de Node-RED Add-On via Home-Assistant is de koppeling met HA en de nodes die vervolgens gebruikt kunnen worden. Eén van die nodes is Tag node, en daar kan een flow mee gemaakt worden:

Via de Debug node krijg ik de volgende informatie:

tag_name: "Sublime FM" 
user_id: "4c3a…af6a7b0d" 
tag_id: "bad2…abb2c" 
device_id: "DC0867A…E65AB6"

Waarbij de Switch node de juiste zender uit de msg.payload.tag_name haalt.

Via de user_id of device_id kan een verdere selectie gemaakt worden zoals een vaste NFC-Reader per ruimte om een media_player te selecteren of de functie alleen beschikbaar maken voor een bepaalde gebruiker, maar voor nu wordt alleen de tag_name gebruikt.

Aan de uitgang komen dan de Service nodes die de media_player aanstuurt:

Met de juiste zender in de JSON-data, bijvoorbeeld:

{
  "media_content_id":"https://playerservices.streamtheworld.com/api/livestream-redirect/SUBLIME.mp3",
  "media_content_type":"music"
}

Zodra de tag gescanned wordt (met mijn iPhone) verschijnt de volgende melding:

Hiermee wordt Home Assistant geactiveerd en doorgegeven welke tag gescanned is, met welk device en welke gebruiker. Nu nog even uitzoeken hoe ik deze functie kan uitvoeren zonder de noodzaak om handmatig Home Assistant te activeren…