2 Topic mit Arduino und MQTT

Wie ist die Nachricht eigentlich aufgebaut? Nur ein Wert oder noch eine Beschreibung dahinter? Sollen nur die Werte 0-9 übertragen werden können?

Jedenfalls gehst Du den Weg über einen String, nicht sehr günstig.
atoi() wäre eher angebracht (hier nachzulesen)
So sollte es gehen:

if (strcmp(topic, "led2") == 0) {
   led2Value=atoi(payload[0]);
 }