Hello,
I'm trying to print the contents of a Temboo choreo to a web page and I'm not having any luck. The code just below works fine when I run it but it's being printed out to the Serial Monitor:
#include <Bridge.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information, as described below
int numRuns = 1; // Execution count, so this doesn't run forever
int maxRuns = 10; // Maximum number of times the Choreo should be executed
void setup() {
Serial.begin(9600);
// For debugging, wait until the serial console is connected.
delay(4000);
while(!Serial);
Bridge.begin();
}
void loop()
{
if (numRuns <= maxRuns) {
Serial.println("Running GetRecentActivities - Run #" + String(numRuns++));
TembooChoreo GetRecentActivitiesChoreo;
// Invoke the Temboo client
GetRecentActivitiesChoreo.begin();
// Set Temboo account credentials
GetRecentActivitiesChoreo.setAccountName(TEMBOO_ACCOUNT);
GetRecentActivitiesChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
GetRecentActivitiesChoreo.setAppKey(TEMBOO_APP_KEY);
// Set Choreo inputs
GetRecentActivitiesChoreo.addInput("AccessToken", "xxxxxxx");
GetRecentActivitiesChoreo.addInput("AccessTokenSecret", "xxxxx");
GetRecentActivitiesChoreo.addInput("ConsumerSecret", "xxxxxxx");
GetRecentActivitiesChoreo.addInput("ConsumerKey", "xxxxxxx");
// Identify the Choreo to run
GetRecentActivitiesChoreo.setChoreo("/Library/Fitbit/Activities/GetRecentActivities");
// Set filter for response
GetRecentActivitiesChoreo.addOutputFilter("name", "/[1]/name", "Response");
GetRecentActivitiesChoreo.addOutputFilter("duration", "/[1]/duration", "Response");
// Run the Choreo; when results are available, print them to serial
GetRecentActivitiesChoreo.run();
while(GetRecentActivitiesChoreo.available()) {
char c = GetRecentActivitiesChoreo.read();
Serial.print(c);
}
GetRecentActivitiesChoreo.close();
}
Serial.println("Waiting...");
delay(30000); // wait 30 seconds between GetRecentActivities calls
}
But when I bring in the code from TemperatureWebPanel to display on a webpage, I break and it seems like in the loop, 'if (client) {' is never getting caught, so nothing happens. Am I implementing this correctly? (lines with '// added' have been brought in from TemperatureWebPanel).
#include <Bridge.h>
#include <Temboo.h>
#include <YunServer.h> // added
#include <YunClient.h> // added
#include "TembooAccount.h" // contains Temboo account information, as described below
int numRuns = 1; // Execution count, so this doesn't run forever
int maxRuns = 10; // Maximum number of times the Choreo should be executed
YunServer server; // added
void setup() {
Serial.begin(9600);
// For debugging, wait until the serial console is connected.
delay(4000);
while(!Serial);
Bridge.begin();
server.listenOnLocalhost(); //added
server.begin(); //added
}
void loop()
{
YunClient client = server.accept(); //added
// There is a new client? // everything in this if statement has been added
if (client) {
// read the command
String command = client.readString();
command.trim(); //kill whitespace
Serial.println(command);
// is "temperature" command?
if (command == "temperature") {
// print the temperature:
client.print("Current time on the Yún: ");
client.println("");
client.print("
Current temperature: ");
client.print("");
client.print(" degrees C");
client.print("
This sketch has been running since ");
client.print("");
client.print("
Hits so far: ");
client.print("");
}
if (numRuns <= maxRuns) {
Serial.println("Running GetRecentActivities - Run #" + String(numRuns++));
TembooChoreo GetRecentActivitiesChoreo;
// Invoke the Temboo client
GetRecentActivitiesChoreo.begin();
// Set Temboo account credentials
GetRecentActivitiesChoreo.setAccountName(TEMBOO_ACCOUNT);
GetRecentActivitiesChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
GetRecentActivitiesChoreo.setAppKey(TEMBOO_APP_KEY);
// Set Choreo inputs
GetRecentActivitiesChoreo.addInput("AccessToken", "xxxxxxx");
GetRecentActivitiesChoreo.addInput("AccessTokenSecret", "xxxxxxx");
GetRecentActivitiesChoreo.addInput("ConsumerSecret", "xxxxxxx");
GetRecentActivitiesChoreo.addInput("ConsumerKey", "xxxxxxx");
// Identify the Choreo to run
GetRecentActivitiesChoreo.setChoreo("/Library/Fitbit/Activities/GetRecentActivities");
// Set filter for response
GetRecentActivitiesChoreo.addOutputFilter("name", "/[1]/name", "Response");
GetRecentActivitiesChoreo.addOutputFilter("duration", "/[1]/duration", "Response");
// Run the Choreo; when results are available, print them to serial
GetRecentActivitiesChoreo.run();
while(GetRecentActivitiesChoreo.available()) {
char c = GetRecentActivitiesChoreo.read();
client.print(c);
}
client.println("");
GetRecentActivitiesChoreo.close();
}
}
// Close connection and free resources.
client.stop();
delay(50); // Poll every 50ms
}