Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2016, Temboo Inc.
// Copyright 2017, Temboo Inc.

#include <Process.h>

Expand Down
99 changes: 99 additions & 0 deletions examples/YunShield/TembooDeviceConfig/TembooDeviceConfig.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
// Copyright 2017, Temboo Inc.

#include <Process.h>

void setup() {
// initialize the Bridge
Bridge.begin();
Serial.begin(9600);
Process p;

//intro message
Serial.println("**** Temboo Cloud Controls ****\n");

// update the package list
Serial.print("Updating package listings...");
p.runShellCommand("opkg update");
int returnCode = p.exitValue();
if (returnCode == 0) {
Serial.println("Success!");
} else {
Serial.println("Failed. Make sure your device is connected to the internet properly.");
while(p.available()) {
char c = p.read();
Serial.print(c);
}
return;
}
Serial.println();
// upgrade the Temboo package
Serial.print("Updating Temboo...");
p.runShellCommand("opkg install http://downloads.arduino.cc/openwrtyun/1/packages/temboo_1.3.1-1_ar71xx.ipk --force-depends");
returnCode = p.exitValue();
if (returnCode == 0) {
Serial.println("Success!");
} else {
Serial.println("Failed.");
Serial.println("Error number: " +String(returnCode));
while(p.available()) {
char c = p.read();
Serial.print(c);
}
return;
}
Serial.println();

// install python openssl to allow for for ssl connections
Serial.print("Installing python-openssl...");
p.runShellCommand("opkg install python-openssl");
returnCode = p.exitValue();
if (returnCode == 0) {
Serial.println("Success!");
} else {
Serial.println("Failed.");
while(p.available()) {
char c = p.read();
Serial.print(c);
}
return;
}
Serial.println();

// Installing twisted web to work with CoAP gateway
Serial.print("Installing twisted-web...");
p.runShellCommand("opkg install http://downloads.arduino.cc/openwrtyun/1/packages/twisted-web_2.5.0-1_ar71xx.ipk --force-depends");
returnCode = p.exitValue();
if (returnCode == 0) {
Serial.println("Success!");
} else {
Serial.println("Failed.");
while(p.available()) {
char c = p.read();
Serial.print(c);
}
return;
}
Serial.println();

// Configuring zope
Serial.print("Configuring zope...");
p.runShellCommand("opkg install http://downloads.arduino.cc/openwrtyun/1/packages/zope-interface_2.5.0-1_ar71xx.ipk --force-depends");
returnCode = p.exitValue();
if (returnCode == 0) {
p.runShellCommand("touch /usr/lib/python2.7/site-packages/zope/__init__.py");
Serial.println("Success!");
} else {
Serial.println("Failed.");
while(p.available()) {
char c = p.read();
Serial.print(c);
}
return;
}

Serial.println("Update Complete - your Yun is ready for Cloud Controls!");
}

void loop() {
// do nothing
}
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ paragraph=Use this library to connect your Arduino or Genuino board to Temboo, m
category=Communication
url=http://www.temboo.com/arduino
architectures=*
version=1.2.0
version=1.2.1
core-dependencies=arduino (>=1.5.0)
28 changes: 28 additions & 0 deletions src/Temboo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,18 @@ void TembooChoreo::addInput(const String& inputName, const char* inputValue) {
m_inputs.put(inputName.c_str(), inputValue);
}

void TembooChoreo::addInputWithSensor(const String& inputName, const String& inputValue) {
m_expressions.put(inputName.c_str(), inputValue.c_str());
}

void TembooChoreo::addInputWithSensor(const char* inputName, const String& inputValue) {
m_expressions.put(inputName, inputValue.c_str());
}

void TembooChoreo::addInputWithSensor(const char* inputName, const char* inputValue) {
m_expressions.put(inputName, inputValue);
}

void TembooChoreo::addInputExpression(const String& inputName, const String& inputValue) {
m_expressions.put(inputName.c_str(), inputValue.c_str());
}
Expand All @@ -168,6 +180,22 @@ void TembooChoreo::addInputExpression(const char* inputName, const char* inputVa
m_expressions.put(inputName, inputValue);
}

void TembooChoreo::addSensorValue(const char* sensorName, int sensorValue, const char* conversion) {
m_sensors.put(sensorName, sensorValue, conversion, NULL, NULL, NULL, NULL, NULL);
}

void TembooChoreo::addSensorValue(const char* sensorName, int sensorValue) {
m_sensors.put(sensorName, sensorValue, NULL, NULL, NULL, NULL, NULL, NULL);
}

void TembooChoreo::addSensorValue(const char* sensorName, int sensorValue, const char* conversion, const char* calibrationValue) {
m_sensors.put(sensorName, sensorValue, conversion, NULL, NULL, NULL, NULL, calibrationValue);
}

void TembooChoreo::addSensorValue(const char* sensorName, int sensorValue, const char* rawLow, const char* rawHigh, const char* scaleLow, const char* scaleHigh) {
m_sensors.put(sensorName, sensorValue, NULL, rawLow, rawHigh, scaleLow, scaleHigh, NULL);
}

void TembooChoreo::addSensorInput(const char* sensorName, int sensorValue, const char* conversion) {
m_sensors.put(sensorName, sensorValue, conversion, NULL, NULL, NULL, NULL, NULL);
}
Expand Down
33 changes: 24 additions & 9 deletions src/Temboo.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,15 @@ class TembooChoreo : public Process {
void setSettingsFileToRead(const String& filePath) { addParameter("-r" + filePath);}
void setGatewayAddress(const String& addr) { addParameter("-s" + addr);}
void addInputExpression(const String& inputName, const String& inputValue) { addParameter("-f" + inputName + ":" + inputValue);}
void addInputWithSensor(const String& inputName, const String& inputValue) { addParameter("-f" + inputName + ":" + inputValue);}
void addSensorInput(const String& sensorName, long sensorValue, const String& conversion) {addParameter("-n" + sensorName + ":" + String(sensorValue) + ":" + conversion);}
void addSensorInput(const String& sensorName, long sensorValue) {addParameter("-v" + sensorName + ":" + String(sensorValue));}
void addSensorInput(const String& sensorName, long sensorValue, const String& conversion, const String& calibrationValue) {addParameter("-b" + sensorName + ":" + String(sensorValue) + ":" + conversion + ":" + calibrationValue);}
void addSensorInput(const String& sensorName, long sensorValue, const String& rawLow, const String& rawHigh, const String& scaleLow, const String& scaleHigh) {addParameter("-m" + sensorName + ":" + String(sensorValue) + ":" + rawLow+ ":" + rawHigh+ ":" + scaleLow+ ":" + scaleHigh);}
void addSensorValue(const String& sensorName, long sensorValue, const String& conversion) {addParameter("-n" + sensorName + ":" + String(sensorValue) + ":" + conversion);}
void addSensorValue(const String& sensorName, long sensorValue) {addParameter("-v" + sensorName + ":" + String(sensorValue));}
void addSensorValue(const String& sensorName, long sensorValue, const String& conversion, const String& calibrationValue) {addParameter("-b" + sensorName + ":" + String(sensorValue) + ":" + conversion + ":" + calibrationValue);}
void addSensorValue(const String& sensorName, long sensorValue, const String& rawLow, const String& rawHigh, const String& scaleLow, const String& scaleHigh) {addParameter("-m" + sensorName + ":" + String(sensorValue) + ":" + rawLow+ ":" + rawHigh+ ":" + scaleLow+ ":" + scaleHigh);}
void setDeviceName(const String& deviceName) {addParameter("-d" + deviceName);}
void setDeviceType(const String& deviceType) {addParameter("-t" + deviceType);}
};
Expand Down Expand Up @@ -112,12 +117,12 @@ class TembooChoreo : public Stream {
void setAppKey(const String& appKey);
void setAppKey(const char* appKey);

// sets the name of the choreo to be executed.
// Sets the name of the choreo to be executed.
// (required)
void setChoreo(const String& choreoPath);
void setChoreo(const char* choreoPath);

// sets the name of the saved inputs to use when executing the choreo
// Sets the name of the saved inputs to use when executing the choreo
// (optional)
void setSavedInputs(const String& savedInputsName);
void setSavedInputs(const char* savedInputsName);
Expand All @@ -134,25 +139,35 @@ class TembooChoreo : public Stream {
void setDeviceName(const String& deviceName);
void setDeviceName(const char* deviceName);

// sets an input to be used when executing a choreo.
// Sets an input to be used when executing a choreo.
// (optional or required, depending on the choreo being executed.)
void addInput(const String& inputName, const String& inputValue);
void addInput(const char* inputName, const char* inputValue);
void addInput(const char* inputName, const String& inputValue);
void addInput(const String& inputName, const char* inputValue);

// Sets a Choreo input that contains a sensor value to be converted by Temboo
void addInputWithSensor(const String& inputName, const String& inputValue);
void addInputWithSensor(const char* inputName, const String& inputValue);
void addInputWithSensor(const char* inputName, const char* inputValue);
// Keeping legacy methods
void addInputExpression(const String& inputName, const String& inputValue);
void addInputExpression(const char* inputName, const String& inputValue);
void addInputExpression(const char* inputName, const char* inputValue);

// sets in input that is using a sensor value. Different parameters are needed depending
// Sets in input that is using a sensor value. Different parameters are needed depending
// on the type of sensor being used.
void addSensorValue(const char* sensorName, int sensorValue, const char* conversion);
void addSensorValue(const char* sensorName, int sensorValue);
void addSensorValue(const char* sensorName, int sensorValue, const char* conversion, const char* calibrationValue);
void addSensorValue(const char* sensorName, int sensorValue, const char* rawLow, const char* rawHigh, const char* scaleLow, const char* scaleHigh);
// Keeping legacy methods
void addSensorInput(const char* sensorName, int sensorValue, const char* conversion);
void addSensorInput(const char* sensorName, int sensorValue);
void addSensorInput(const char* sensorName, int sensorValue, const char* conversion, const char* calibrationValue);
void addSensorInput(const char* sensorName, int sensorValue, const char* rawLow, const char* rawHigh, const char* scaleLow, const char* scaleHigh);
// sets an output filter to be used to process the choreo output

// Sets an output filter to be used to process the choreo output
// (optional)
void addOutputFilter(const char* filterName, const char* filterPath, const char* variableName);
void addOutputFilter(const String& filterName, const char* filterPath, const char* variableName);
Expand All @@ -163,12 +178,12 @@ class TembooChoreo : public Stream {
void addOutputFilter(const char* filterName, const String& filterPath, const String& variableName);
void addOutputFilter(const String& filterName, const String& filterPath, const String& variableName);

// run the choreo using the current input info
// Run the choreo using the current input info
int run();
// run the choreo with a user specified timeout
// Run the choreo with a user specified timeout
int run(uint16_t timeoutSecs);

// run the choreo on the Temboo server at the given IP address and port
// Run the choreo on the Temboo server at the given IP address and port
int run(IPAddress addr, uint16_t port);
int run(IPAddress addr, uint16_t port, uint16_t timeoutSecs);

Expand Down
2 changes: 1 addition & 1 deletion src/TembooMQTTEdgeDevice.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
###############################################################################
#
# Temboo MQTT edge device library
# Temboo MQTT Edge Device library
#
# Copyright (C) 2017, Temboo Inc.
#
Expand Down
2 changes: 1 addition & 1 deletion src/TembooMonitoring.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

#include <Arduino.h>
#include <Mailbox.h>
#ifdef ARDUINO_ARCH_SAMD
#if defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_SAM)
#include "avr/dtostrf.h"
#endif
#include "utility/TembooGlobal.h"
Expand Down
7 changes: 6 additions & 1 deletion src/TembooYunShield.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,15 @@ class TembooYunShieldChoreo : public Process {
void setSettingsFileToRead(const String& filePath) { addParameter("-r" + filePath);}
void setGatewayAddress(const String& addr) { addParameter("-s" + addr);}
void addInputExpression(const String& inputName, const String& inputValue) { addParameter("-f" + inputName + ":" + inputValue);}
void addInputWithSensor(const String& inputName, const String& inputValue) { addParameter("-f" + inputName + ":" + inputValue);}
void addSensorInput(const String& sensorName, long sensorValue, const String& conversion) {addParameter("-n" + sensorName + ":" + String(sensorValue) + ":" + conversion);}
void addSensorInput(const String& sensorName, long sensorValue) {addParameter("-v" + sensorName + ":" + String(sensorValue));}
void addSensorInput(const String& sensorName, long sensorValue, const String& rawLow, const String& rawHigh, const String& scaleLow, const String& scaleHigh) {addParameter("-m" + sensorName + ":" + String(sensorValue) + ":" + rawLow+ ":" + rawHigh+ ":" + scaleLow+ ":" + scaleHigh);}
void addSensorInput(const String& sensorName, long sensorValue, const String& conversion, const String& calibrationValue) {addParameter("-b" + sensorName + ":" + String(sensorValue) + ":" + conversion + ":" + calibrationValue);}
void addSensorInput(const String& sensorName, long sensorValue, const String& rawLow, const String& rawHigh, const String& scaleLow, const String& scaleHigh) {addParameter("-m" + sensorName + ":" + String(sensorValue) + ":" + rawLow+ ":" + rawHigh+ ":" + scaleLow+ ":" + scaleHigh);}
void addSensorValue(const String& sensorName, long sensorValue, const String& conversion) {addParameter("-n" + sensorName + ":" + String(sensorValue) + ":" + conversion);}
void addSensorValue(const String& sensorName, long sensorValue) {addParameter("-v" + sensorName + ":" + String(sensorValue));}
void addSensorValue(const String& sensorName, long sensorValue, const String& conversion, const String& calibrationValue) {addParameter("-b" + sensorName + ":" + String(sensorValue) + ":" + conversion + ":" + calibrationValue);}
void addSensorValue(const String& sensorName, long sensorValue, const String& rawLow, const String& rawHigh, const String& scaleLow, const String& scaleHigh) {addParameter("-m" + sensorName + ":" + String(sensorValue) + ":" + rawLow+ ":" + rawHigh+ ":" + scaleLow+ ":" + scaleHigh);}
void setDeviceName(const String& deviceName) {addParameter("-d" + deviceName);}
void setDeviceType(const String& deviceType) {addParameter("-t" + deviceType);}
};
Expand Down
4 changes: 0 additions & 4 deletions src/utility/TembooGPIO.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,6 @@ void tembooDigitalGPIOInit(TembooGPIOConfig* sensorConfig, TembooSensor* tembooS
tembooDigitalWrite(sensorConfig, defaultValue);
tembooSensor->write = tembooDigitalWrite;
} else {
// probably don't need to do this, but best go on and set it
// TODO: remove /comment after review
sensorConfig->currentValue = tembooDigitalRead(sensorConfig);
tembooSensor->write = NULL;
}
Expand All @@ -99,8 +97,6 @@ void tembooAnalogGPIOInit(TembooGPIOConfig* sensorConfig, TembooSensor* tembooSe
tembooAnalogWrite(sensorConfig, defaultValue);
tembooSensor->write = tembooAnalogWrite;
} else {
// probably don't need to do this, but best go on and set it
// TODO: remove /comment after review
sensorConfig->currentValue = tembooAnalogRead(sensorConfig);
tembooSensor->write = NULL;
}
Expand Down
2 changes: 2 additions & 0 deletions src/utility/TembooWebSocketRequestHandles.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ typedef struct TembooSensor{
int defaultValue;
} TembooSensor;

typedef TembooSensor TembooActuator;

void addWebSocketPinData(int pin, int pinVal, bool requestResponse);
void updateIntervalTime(int intervalTime);

Expand Down