For the viessmann heatpump, take a look at GitHub - open3e/open3e: connects E3 (Vitocal, Vitodens, VX3/Vitocharge etc) controller through CAN or DoIP via local access · GitHub. Haven’t tried it myself yet, but planning to, because even though the vicare integration is getting better, it’s cloud bound and so doomed to be shutdown sooner or later.
I’m also seconding KNX for base functionality. According to my electrician, a “dumb” installation is not really much cheaper than a KNX one, because you can go for touch or multi-button switches instead of having 2-5 switch arrays hanging at every door for light/blinds/room thermostats. And you can always remap the functions of your KNX switches, with dumb switches you’re stuck with what you planned.
As for dimmer switches, you have those integrated into the room controller, for example on my busch+jaeger tenton I can freely map functions to buttons, like pre-defined light switching, scenes, dimming, blinds, thermostat setttings.
I went with KNX for light, heating and blinds, integrated in HA via the great KNX integration, so my logic lives in HA, but the basic functions will still work even if I die an nobody can be bothered to take over.
Basically, I made sure to have 5-wire light cabling, so that I have at least one line switched by the light actor and one permanent line for my zigbee lights. So pressing the button on the light switch turns on the black wire, the state change is detected by HA and HA then turns on my zigbee light. Re-wiring the light fixture to use the black wire instead of the brown will make it switchable without HA.
I still have to prepare a project version which has thermostat controls enabled locally, because I ran out of buttons for other comfort functions (like controlling my 5 blinds and 4 lights from every corner of the combined living space), but that’s something for a later stage. And if you go with touch switches, the number of functions is nearly infinite. I’m just old-school and like tactile buttons.
I wouldn’t write off battery sensors for non-essential stuff though. Zigbee door/window contacts (with vibration, those without don’t report the battery correctly, at least not via z2m) running on CR2032 and hygrometers running on CR2040 last about a year on a single cell, so I’m not seeing it as much of a chore. The installation effort (and cost) for a fully wired KNX version is much higher, and KNX-RF sensors are more expensive than the tuya zigbee stuff, but that’s another option if you want to go full KNX. Bonus is that you can add them as you go instead of having to plan it beforehand (and inevitably forget something).
Definitely run CAT6e cables to each room at least, maybe even a dual line here and there. I currently regret not putting more than one LAN socket into my living room.
Since you use unifi, make sure to run enough cables for hotspots. Depending on your wall materials at least one per floor. Unifi has a planning tool for that in the UDM web portal where you can draw your floor plan and specify wall materials and thickness, then position your AP on it and see if you get enough coverage or any blind spots.
As @Dmitrydr says, make sure all your cables run back to a single room, no weird daisy-chaining.
And don’t skimp on sockets, at least 2 in each corner of a room. Having to buy and hide power strips is a pain and won’t save you much in the end.
Oh and about KNX programming: buying the ETS Home programming software is much cheaper than asking your electrician to do the programming. Providing you’re willing to learn how KNX works, but it’s not really that hard and there are enough guides on youtube to walk you through. As an example, just creating a base project structure would have cost me around 500€, that’s already more than the ETS6 Home license which is available with a discount regularly. The only con to programming KNX yourself is having mutual blaming sessions with the electrician when something doesn’t work. (“Your programming is wrong!” “No, your wiring is wrong!” yada yada yada)