BGG Sync - BoardGameGeek integration with Play Logging support

Hello HA Community!

I’ve created a new integration for BoardGameGeek called BGG Sync that focuses on reliability and two-way interaction.

With BGG’s API changes (requiring tokens) I lost some of my automations which I’ve shared to the community previously, so I’ve been wanted to do this integration for a while to get everything back and bring my 2 biggest hobbies together again!

Repo: github.com/seanmccabe/bgg-sync

Key Features for HA Users:

  • Full config_flow: Set up everything via the UI.
  • Services:
bgg_sync.record_play

lets you log plays via scripts/automations.

  • Dynamic Entity Creation: Use
bgg_sync.track_game

to create sensors for new games on the fly without restarting HA.

  • Device Info: properly groups all sensors under a “BGG Sync {user}” device.

Installation: Grab it from the Repo and add it to HACS. I’m hoping to do HACS submission in the future.

Future Plans: I am currently working on more “Board Game Shelf” sensors and other sensors so you can track your collection in greater detail.

This is my first integration, so I’m excited to share this with the two communities I’m part of.

Looking forward to your feedback and feature requests!

1 Like

Now available in HACS!!!

BoardGameGeek (BGG Sync) been accepted into HACS, so you can find us in there without needing to take manual steps.

Update: v1.2.0 Released! :rocket:

Big update today! The integration has been bumped to v1.2.0 with some highly requested features.

What’s New:

  • :books: Collection Tracking: You can now track your entire collection (or specific subsets like ‘Wishlist’ or ‘Want to Play’) as individual sensors.
  • :game_die: Enhanced Play Logging: The record_play service is now much more powerful. You can now specify:
    • Players (with scores, roles/colors, and win status!)
    • Location and Comments
    • Incomplete / No-win-stats flags
  • :label: NFC & Music Automation: The track_game service allows you to attach custom nfc_tag and music (Spotify/URL) attributes to games dynamically. Perfect for setting the scene when you scan a game box with your phone!
  • :framed_picture: Rich Metadata: Game sensors now include Box Art, Weight, Rank, Rating, Year, Play Counts and more.
  • :zap: Performance: Moved to a fully async architecture for better stability and performance.

Updating:
This release is available now. If you don’t see it yet, check for updates in the HACS dashboard.

Full changelog: Release 1.2.0

This is really cool - I was just thinking a couple weeks ago if I could bring BGG into HA!

Are you using any of this data in a dashboard view or with any specific cards? I’d be curious to see your setup.

Worlds collide ha…

This is pretty great. I don’t keep my collection on BGG, but if you add an action that returns the collection as a response only, then you could use flex-table-card to populate a table of your full collection or any other list that you get back.

I am doing this with another integration and it works really well. A bit complicated to get set up, but responsive and searchable, so it could be an easy way to find games in your collection to play on game night.

Yer I do have a dashboard, but this integration I made cos I really want to sort it out.

I was previously tracking everything seperate from BGG then occasionally needing to update the values.
I’ve also been using another integration for having my collection in HA Variables+History, but it’s gotten to the point it’s a lot of manual work, getting images, building the attributes etc. So this integration solves all that and I can keep my existing boardgame automations, like Scan to play, track wins, play a random boardgame, suggest an unplayed boardgame.

Plan is to make an eInk display with the data and it updates when playing a game with things like QR codes for how to play videos and rulebooks.

I am going to get a Wiki going with this stuff as examples of things you can do.

So have anything you would like, shout out!

This looks like it can be populated from a todo list, if so this integration already provides that by default.


Hopefully that should work with it. Otherwise, I’m sure you can use a template sensor to create the output, I did something similar to get my old setup and create a list usable for a select list.

Interesting. The result is different, but looks like it works for you.

The issue with creating sensors is that there is a limit to size of the state and attributes. I imagine some collections can exceed the limits quite easily.

Regardless, nice work on the integration!

That’s just my todo list, I’ve not got that card setup, but might be able to look at it properly and see what I get.

Depending on that I could look to make a special sensor that works for this that could be enabled.