The item didn’t change states, but something probably happened. If you don’t get the result you are expecting, always check your logs to see what did happen instead. In this case, most likely, you would have found some sort of indication that the sendCommand function can’t handle an HSBtype input very well. sendCommand tends to work best when you give it a string input and let it work out how best to represent that as a command.
To get your desired HSBtype as a string all you need to do is add .toString to the end:
StehlampeWohnzimmer_Color.sendCommand(new HSBType(new DecimalType(123), new PercentType(45), new PercentType(67)).toString)
That’s getting a little convoluted and hard to read, however, so for better readability I might split that into a variable and then a command:
var lampColor = new HSBType(new DecimalType(123), new PercentType(45), new PercentType(67))