It sounds like I'm having a similar problem to the OP. Let me see if I can clarify things a little:
My Nexus 7 isn't showing cards when I'm at home. As far as I can tell I have all the location / history settings setup correct (f you continue reading you'll see why I made this assumption!). No matter what I do, when I'm home the default cards will not show up, even through, like the OP, I have at least the weather card set to "Always". Despite this, it never shows up, at least when I'm connected to my home network. I've tried resetting my Google Now to no avail. Cards, including the weather card, will show up correctly after searching in Google Now, and voice search is working great.
The reason I'm assuming I have my Nexus 7 set up correctly is that whenever I'm connected to another WIFI network (ie, my work network), the weather card shows up as expected. From this I'm inferring that it's actually nothing to do with my Nexus 7, and is due to a quirk somewhere in my WIFI setup / internet connection.
If others are experiencing a similar problem to me, try connecting to a different WIFI network, and see if that helps. If it does, please let me know, as it would be great to narrow down the cause of this issue. If you've come up with a solution let the people of the internet know below, or, if not, post the details of your home internet connection. Let's see if we can find something in common between our connections!
My connection details are as follows:
LOCATION: Oxford, UK
PACKAGE: BT Infinity Unlimited
ROUTER: BT Home Hub 3