Structuring Things from KNX

Hello Guys…
I am migrating from the KNX v1 to v2 binding, then i need to change all my “Things” to link to items…
so far i created a lot o things, one thing for each knx component i have, but that seems to be generating a lot of unstructured Things that is created…

Was thinking maybe it was better making one “Thing” called “Control Cabinet” - then create all the components i have inside the Control Cabinet here?
Then create another Thing called “PushButtons” and in here make all the pushbuttons…

What has you guys done?

Thing device gulvvarme_control "Gulvvarme aktuator" @ "KNX" [ address="1.1.220", fetch=false, pingInterval=600, readInterval=0 ]
	{
			Type    number  :       Ch_A              "Channel A"   [ ga="5.001:0/3/101+<0/3/102" ]
			Type    number  :       Ch_B              "Channel B"   [ ga="5.001:0/2/101+<0/2/103" ]
			Type    number  :       Ch_C              "Channel C"   [ ga="5.001:0/7/101+<0/7/102" ]
			Type    number  :       Ch_D              "Channel D"   [ ga="5.001:0/1/103+<0/1/104" ]
			Type    number  :       Ch_E              "Channel E"   [ ga="5.001:1/1/101+<1/1/102" ]
			Type    number  :       Ch_F              "Channel F"   [ ga="5.001:1/0/101+<1/0/102" ]
			Type    number  :       Ch_G              "Channel G"   [ ga="5.001:1/3/101+<1/3/102" ]
			Type    number  :       Ch_H              "Channel H"   [ ga="5.001:1/2/103+<1/2/102" ]
			Type    number  :       Ch_I              "Channel I"   [ ga="5.001:2/0/102+<2/0/103" ]
			Type    number  :       Ch_J              "Channel J"   [ ga="5.001:0/3/104+<0/3/103" ]
			Type    number  :       Ch_K              "Channel K"   [ ga="5.001:1/1/103+<1/1/104" ]

	}		

	//Tryk:
	Thing device tp_1 "Tryk ved Hoveddør" @ "KNX" [ address="1.1.100", fetch=false, pingInterval=600, readInterval=0 ]
	{
			Type    number  :       Act_Temp          	"Actual Temperature"   	[ ga="0/5/100" ]
			Type	switch	:		Button_3_R			"Button 3 Right 0"		[ ga="2/0/2" ]
	}	
	
	Thing device tp_2 "Tryk Garage Vest" @ "KNX" [ address="1.1.101", fetch=false, pingInterval=600, readInterval=0 ]
	{
			Type    number  :       Act_Temp          	"Actual Temperature"   	[ ga="2/0/100" ]
			Type	switch	:		Button_1_L			"Button 1 Left"			[ ga="2/0/10" ]
			Type	switch	:		Button_1_R			"Button 1 Right"		[ ga="2/0/2" ]
			Type	switch	:		Button_3_0_R		"Button 3.0 Right"		[ ga="2/0/40" ]
			Type	switch	:		Button_3_1_R		"Button 3.1 Right"		[ ga="2/0/41" ]
	}

But in the begginning when defining a Thing, the KNX device address is entered - what happens if all in this thing is mixed from multiple knx devices?

Thy physical adress is only used for polling a device to determine if it is reachable.
You can completely leave out the physical adresses in your things, if you don’t need such a check.

General structuring:

This is completely up to you. as the binding documentation states, the thing is just a wrapper for channels which then are configured to special group adresses.
See: KNX - Bindings | openHAB

You could add all group adresses in one Thing or split them up on a logical base.
For example you could split the things up in light related group adresses, heating related group adresses, …
You could also go for a cabinet way, like you explained above, or go for a floor related system.
So a logical structure also depends a bit on your knx group address structure.

I have just some testing knx stuff lying around so i cant speak about bigger projects,
but personally i would try to get a structure which follows my ETS Group structure.
I think this goes in the same direction as your pushbutton approach.
You would then use a thing for all 2/0/XXX group adresses.