I have raspberry pi controlling my garage door and I want to be able to have an action to open or close it via google home / assistant.
This action is custom and only specific to my needs and I'd like to be able to leverage google to interact with it, but I don't want to publish it for others since it is custom for me. Can this be done? I believe with Alexa it is possible and a quick browse through the docs nothing jumped out at me for this scenario.
The accepted answer is incorrect as the OP specified publishing isn't required. It also provides a link to a different question, namely whether it's possible to retrieve personal information to use personalized actions per user.
The correct answer is yes, you can create a private action for your Google Home. You can create the action within API.ai and preview it locally on your Google Home also within API.ai. This doesn't publish your action, but rather it allows you to use your created action only on your Google Home. Here's a video that confirms this Actions on Google: Introduction to Conversation Actions
To do this, create your action within API.ai. For a screencast on how to do this, check out this video Actions on Google: Building Assistant Actions using API.AI. When you hit "Preview" in API.ai, your created action will be available in the web simulator and the Google Home device that has the same Google account as the one you're signed into API.ai with.