Ayuda con context variable


#1

Hola a todos
Estoy trabajando con la version Educacional y usando particle Photon.
En el intento the usar el ejemplo existente de UBidots para “context variabl”, me encuento un poco perdido. Tengo un insignificante backgroud en HTML, JS, CSS ext. pero lo incrementare.
Estoy tratando de Adaptar el ejemplo de :


al codigo que sigue:

// This example is to save multiple variables with context to the Ubidots API with TCP method


/****************************************
 * Include Libraries
 ****************************************/

#include "Ubidots.h"

/****************************************
 * Define Constants
 ****************************************/

#ifndef TOKEN
#define TOKEN "A1E-aqMXpkP85LiFUJWtmHuTLRID5X9eTc"  // Put here your Ubidots TOKEN
#endif

Ubidots ubidots(TOKEN);


/****************************************
 * Auxiliar Functions
 ****************************************/

//Put here your auxiliar functions


/****************************************
 * Main Functions
 ****************************************/

void setup() {
  Serial.begin(115200);
  //ubidots.setDebug(true); //Uncomment this line for printing debug messages
}
void loop() {
  float value1 = 0.5;
  char context[25];
  sprintf(context, "Motor Failure"); 
  ubidots.add("Data0", value1, context);  

  bool bufferSent = false;
  if(ubidots.isDirty()){  // There are stored values in buffer
      bufferSent = ubidots.sendAll();
  }

  if(bufferSent){
      // Do something if values were sent properly
      Serial.println("Values sent by the device");
  }

  delay(40000);
}

Por ejemplo no estoy seguro como relacionar lo siguiente:

Context {{item_shared}} …supongo que debe ser el nombre de la variable que uso en el codigo de arriba: " Data0"
Muchas gracias por alguna ayuda !!!

Luego que acerca de lo que sigue.
{{context.name}}

Entiendo que la libreria de Ubidots para Photon en background debe estar haciendo lo mismo
pero no logro asociarlo a {{context.name}}.


#2

Hola, la librería de Particle utiliza TCP por lo cual la estructura del mensaje del contexto es la siguiente:

key_1=key_value_1$key_2=key_value_2$...$key_n=key_value_n

Las llaves de los contextos no pueden tener espacios en blanco y deben estar separadas por el signo ‘$’. Con base en esto, tu código debería verse como algo así:

  float value1 = 0.5;
  char context[40];
  sprintf(context, "motorStatus=\"MotorFailure\""); 
  ubidots.add("Data0", value1, context);  

  bool bufferSent = false;
  if(ubidots.isDirty()){  // There are stored values in buffer
      bufferSent = ubidots.sendAll();
  }

Saludos.


#3

Muchisimas gracias por tu respuesta
Estoy planeando usar Electron posteriormente, pero para debugging uso Photon.
Electron usa UDP.
Que variacion habria?