     mqttGetSubtopic = "/" + subTopic;
     getNextionAttr(subTopic);
   }
+  else if (strTopic.startsWith(mqttGroupCommandTopic) && (strPayload == ""))
+  { // '[...]/group/command/p[1].b[4].txt' -m '' == getNextionAttr("p[1].b[4].txt")
+    String subTopic = strTopic.substring(mqttGroupCommandTopic.length() + 1);
+    mqttGetSubtopic = "/" + subTopic;
+    getNextionAttr(subTopic);
+  }
   else if (strTopic.startsWith(mqttCommandTopic))
   { // '[...]/device/command/p[1].b[4].txt' -m '"Lights On"' == setNextionAttr("p[1].b[4].txt", "\"Lights On\"")
     String subTopic = strTopic.substring(mqttCommandTopic.length() + 1);
+    setNextionAttr(subTopic, strPayload);
+  }
+  else if (strTopic.startsWith(mqttGroupCommandTopic))
+  { // '[...]/group/command/p[1].b[4].txt' -m '"Lights On"' == setNextionAttr("p[1].b[4].txt", "\"Lights On\"")
+    String subTopic = strTopic.substring(mqttGroupCommandTopic.length() + 1);
     setNextionAttr(subTopic, strPayload);
   }
   else if (strTopic == mqttLightBrightCommandTopic)

  // MQTT topic string definitions
  mqttStateTopic = "hasp/" + String(haspNode) + "/state";
  mqttCommandTopic = "hasp/" + String(haspNode) + "/command";
  mqttStatusTopic = "hasp/" + String(haspNode) + "/status";
  mqttSensorTopic = "hasp/" + String(haspNode) + "/sensor";
  mqttLightCommandTopic = "hasp/" + String(haspNode) + "/light/switch";

          {
            strcpy(haspNode, configJson["haspNode"]);
          }
          if (configJson["groupName"].success())
          {
            strcpy(groupName, configJson["groupName"]);
          }
          if (configJson["configUser"].success())
          {
            strcpy(configUser, configJson["configUser"]);
