       aJsonObject *poLabel = aJson.getObjectItem(poPinVals, "label");
       if (poLabel)
       {
-        snprintf(sPinState, sizeof(sPinState), "%s", poLabel->valuestring);
-        Serial.println(sPinState);
+        //snprintf(sPinState, sizeof(sPinState), "%s", poLabel->valuestring);
+        //Serial.println(sPinState);
+        snprintf(g_aPins[i].label, PIN_LABEL_SIZE, "%s", poLabel->valuestring);
+        //       Serial.println(g_aPins[i].label);
+        //        g_aPins[i].label[PIN_LABEL_SIZE]
       }
 
       aJsonObject *poIsAnalog = aJson.getObjectItem(poPinVals, "is_analog");
       if (poIsAnalog)
       {
-        snprintf(sPinState, sizeof(sPinState), "%i", poIsAnalog->valuebool);
-        Serial.println(sPinState);
+        //        snprintf(sPinState, sizeof(sPinState), "%s", poIsAnalog->valuestring);
+        //       Serial.println(sPinState);
+        if( 0 == strcmp(poIsAnalog->valuestring,"true") )
+          g_aPins[i].is_analog = 1;
+        else if( 0 == strcmp(poIsAnalog->valuestring,"false") )
+          g_aPins[i].is_analog = 0;
+        else
+          g_aPins[i].is_analog = -1;
       }       
-   
+
       aJsonObject *poIsInput = aJson.getObjectItem(poPinVals, "is_input");
       if (poIsInput)
       {
-        snprintf(sPinState, sizeof(sPinState), "%i", poIsInput->valuebool);
-        Serial.println(sPinState);
+        // snprintf(sPinState, sizeof(sPinState), "%s", poIsInput->valuestring);
+        // Serial.println(sPinState);
+        //  g_aPins[i].is_input = 
+        if( 0 == strcmp(poIsInput->valuestring,"true") )
+          g_aPins[i].is_input = 1;
+        else if( 0 == strcmp(poIsInput->valuestring,"false") )
+          g_aPins[i].is_input = 0;
+        else
+          g_aPins[i].is_input = -1;
       }
-      
+
       aJsonObject *poValue = aJson.getObjectItem(poPinVals, "value");
       if (poValue)
       {
-        snprintf(sPinState, sizeof(sPinState), "%f", poValue->valuefloat);
-        Serial.println(sPinState);
+        //snprintf(sPinState, sizeof(sPinState), "%s", poValue->valuestring);
+        //Serial.println(sPinState);
+        g_aPins[i].value = atof(poValue->valuestring);
       }
+
+      /* 
+       //        g_aPins[i].is_analog = poLabel->valuebool;
+       // g_aPins[i].label[PIN_LABEL_SIZE] = 
        
-       /* 
-//        g_aPins[i].is_analog = poLabel->valuebool;
-      // g_aPins[i].label[PIN_LABEL_SIZE] = 
-
-      aJsonObject *poIsAnalog = aJson.getObjectItem(poPinVals, "is_analog");
-      if (poPinVals)
-        g_aPins[i].is_analog = poIsAnalog->valuebool;
-*/
+       aJsonObject *poIsAnalog = aJson.getObjectItem(poPinVals, "is_analog");
+       if (poPinVals)
+       g_aPins[i].is_analog = poIsAnalog->valuebool;
+       */
 
       // g_aPins[i].is_input = 
 


typedef struct Pin {
  char label[PIN_LABEL_SIZE];
  boolean is_analog;
  boolean is_input;
  float value;
  boolean connections[TOTAL_NUM_OF_PINS];
} 

static struct option options[] = {

  { 
    NULL, 0, 0, 0                                           }
};

/*
