All new buildings with large roofs must have solar panels installed. The law will apply to all new builds with a roof space of more than 300 m2.
But parliament has rejected a campaign to also include renovations and is still discussing solar panels for parking spaces.
The move comes after voters in canton Valais rejected building solar farms in the Alps.
Commentators suggested the people wanted buildings to be prioritized for solar panels before installing them in the mountains.