Wenn die Slaves hw-eingestellte Adressen haben, kann man wenig machen.

Wenn die Devices am Bus aber programmierbar sind, hab' ich folgende Möglichkeit gewählt:

Jeder Teilnehmer sendet jede Sekunde ein "heartbeat" als GCA , Dateninhalt ist die eigene TWI-Adresse und ein Symbolischer GeräteCode (z.B 0xA5 = Ein Servocontroller). Dieser Code ändert sich natürlich nie.
Wenn ein Bus-Teilnehmer von diesem Gerät was will, trägt er sich die aktuelle Adresse ein.

Kommt ein neuer Teilnehmer auf den Bus, kann er die GCA-Heartbeats auf dem Bus abhören und kann erkennen, welche TWI-Adresse gerade frei ist. Die nimmt er sich und sendet ebenfalls GCA-Heartbeats s.o

Also: Der symbolische Gerätecode ist vereinbart und fix, die TWI adresse kann aber variieren.