One last little bit that can further simplify the rule is if you make Bad1SonosSelector become a String Item and have it populated with the values in sonos.map instead of a number, you can get rid of the MAP and just:
Bad1_Sonos_PlayPlaylist.sendCommand(Bad1SonosSelector.state.toString)
That is what I meant by “Or a String Item and skip the MAP and just make the String Item use the values you would have put into the MAP in the first place” in my posting above.