Symfonisk Tag Reader

I have modified an Ikea Symfonisk speaker to integrate a tag reader, based on @adonno’s project. I’m fairly happy with the result and thought I’d share.


The entire project is self-contained as the ESP8266 is powered directly from the speaker’s PCB, thanks to a MP1584 buck converter. A dab of paint to hide the led on the PN532 and you can’t tell the reader is there.


My sons love their new speaker. A few NFC tags inside homemade flashcards, and they can play their favorite albums whenever they want. Now, even my one year old can control the Sonos system.


Helpful teardown instructions: https://www.youtube.com/watch?v=ZB413S8KDmo

16 Likes

Very nice project. Not sure I want a 1 year old changing to the wiggles over my own music, but I do see the value for some :slight_smile:

Yeah I know how kids can be, I tried to avoid things getting out of control.

It’s configured to only play music on their room speaker and any speaker grouped to it. All their music is on a local NAS to avoid messing with a Spotify stream playing downstairs.

I also modified the tagreader.yaml to control when the reader is enabled. This way I can avoid the kids playing music at night/naptime and set limits if necessary. If a card is scanned when disabled, they get an error tone.

...

switch:
- platform: template
  name: "Symfonisk Reader Enabled"
  id: reader_enabled

pn532_i2c:
  id: pn532_board
  on_tag:
    then:
      - if:
          condition:
            switch.is_off: reader_enabled
          then:
            - rtttl.play: "denied:d=32,o=6,b=100:4a,a,2p"
          else:
            - homeassistant.tag_scanned:
              ...
2 Likes

Love it , very very good idea all in one
Thank you for the pictures i love when kids have fun with these devices. That was also the initial goal

Thank you, that means a lot.

This was my first experience with Esphome and I can’t believe how easy it was to use. Well done on the tagreader project

@EtienneMD
Would you be willing to share your automation with me? I build the tag reader in a 3D printed housing. Now trying to use Spotify with a Google Hub and the NFC chip. I can’t get it to work.

Absolutely. I’m currently using something like this, and it’s been working really well.

- alias: Sonos Tag
  trigger:
    - platform: event
      event_type: tag_scanned
  variables:
    spotify:
      AA-AA-AA-AA-AA-AA: https://open.spotify.com/playlist/xxxxxxxxxxxxxx
      BB-BB-BB-BB-BB-BB: https://open.spotify.com/playlist/xxxxxxxxxxxxxx
    nas_albums:
      CC-CC-CC-CC-CC-CC: "Aladdin%20(Original%20Motion%20Picture%20Soundtrack)"
      DD-DD-DD-DD-DD-DD: "Moana%20(Original%20Motion%20Picture%20Soundtrack)"
  action:
    - choose:
      - conditions: "{{ trigger.event.data.tag_id in nas_albums }}"
        sequence:
          - service: media_player.play_media
            entity_id: media_player.sonos
            data:
              media_content_id: "A:ALBUM/{{ nas_albums[trigger.event.data.tag_id] }}"
              media_content_type: album
      - conditions: "{{ trigger.event.data.tag_id in spotify }}"
        sequence:
          - service: media_player.play_media
            entity_id: media_player.sonos
            data:
              media_content_id: "{{ spotify[trigger.event.data.tag_id] }}"
              media_content_type: music

Every tag is contained in a variable with the corresponding album or playlist as its key.
I don’t know how that translates from Sonos to a Google Hub. All you need to do is find the correct service call to play Spotify on the Google Hub and adapt this to your needs.

Let me know how things works out.

Thank you very much! I’ll let you know how it works out.

Yes, it works! Thanks for pointing me in the right direction. Ended up with using the HACS Spotcast integration. Otherwise you can’t start an idle Google Hub.