mirror of
https://github.com/sensebox/blockly-app
synced 2025-07-02 01:30:24 +02:00
getting sketch from api instead of local
This commit is contained in:
parent
fb35733873
commit
5c7373391d
4 changed files with 18 additions and 450 deletions
|
@ -1,390 +0,0 @@
|
||||||
/*
|
|
||||||
senseBox:home - Citizen Sensingplatform
|
|
||||||
Version: wifiv2_0.3
|
|
||||||
Date: 2019-12-06
|
|
||||||
Homepage: https://www.sensebox.de https://www.opensensemap.org
|
|
||||||
Author: Reedu GmbH & Co. KG
|
|
||||||
Note: Sketch for senseBox:home WiFi MCU Edition
|
|
||||||
Model: homeV2Wifi
|
|
||||||
Email: support@sensebox.de
|
|
||||||
Code is in the public domain.
|
|
||||||
https://github.com/sensebox/node-sketch-templater
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <WiFi101.h>
|
|
||||||
#include <Wire.h>
|
|
||||||
#include <SPI.h>
|
|
||||||
#include <senseBoxIO.h>
|
|
||||||
|
|
||||||
#include <Adafruit_Sensor.h>
|
|
||||||
#include <Adafruit_HDC1000.h>
|
|
||||||
#include <Adafruit_BMP280.h>
|
|
||||||
#include <Adafruit_BME680.h>
|
|
||||||
#include <Makerblog_TSL45315.h>
|
|
||||||
#include <VEML6070.h>
|
|
||||||
|
|
||||||
// Uncomment the next line to get debugging messages printed on the Serial port
|
|
||||||
// Do not leave this enabled for long time use
|
|
||||||
@{DEBUG_ENABLED}@
|
|
||||||
|
|
||||||
#ifdef ENABLE_DEBUG
|
|
||||||
#define DEBUG(str) Serial.println(str)
|
|
||||||
#define DEBUG_ARGS(str,str1) Serial.println(str,str1)
|
|
||||||
#define DEBUG2(str) Serial.print(str)
|
|
||||||
#define DEBUG_WRITE(c) Serial.write(c)
|
|
||||||
#else
|
|
||||||
#define DEBUG(str)
|
|
||||||
#define DEBUG_ARGS(str,str1)
|
|
||||||
#define DEBUG2(str)
|
|
||||||
#define DEBUG_WRITE(c)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
/* ------------------------------Configuration------------------------------ */
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
// Wifi Credentials
|
|
||||||
const char *ssid = "@{SSID}@"; // your network SSID (name)
|
|
||||||
const char *pass = "@{PASSWORD}@"; // your network password
|
|
||||||
|
|
||||||
// Interval of measuring and submitting values in seconds
|
|
||||||
const unsigned int postingInterval = 60e3;
|
|
||||||
|
|
||||||
// address of the server to send to
|
|
||||||
const char server[] PROGMEM = "@{INGRESS_DOMAIN}@";
|
|
||||||
|
|
||||||
// senseBox ID
|
|
||||||
const char SENSEBOX_ID[] PROGMEM = "@{SENSEBOX_ID}@";
|
|
||||||
|
|
||||||
// Number of sensors
|
|
||||||
// Change this number if you add or remove sensors
|
|
||||||
// do not forget to remove or add the sensors on opensensemap.org
|
|
||||||
static const uint8_t NUM_SENSORS = @{NUM_SENSORS}@;
|
|
||||||
|
|
||||||
// Connected sensors
|
|
||||||
@{defineSensors}@
|
|
||||||
|
|
||||||
// Sensor SENSOR_IDs
|
|
||||||
// Temperatur
|
|
||||||
const char TEMPERSENSOR_ID[] PROGMEM = "@{TEMPERSENSOR_ID}@";
|
|
||||||
// rel. Luftfeuchte
|
|
||||||
const char RELLUFSENSOR_ID[] PROGMEM = "@{RELLUFSENSOR_ID}@";
|
|
||||||
// Beleuchtungsstärke
|
|
||||||
const char BELEUCSENSOR_ID[] PROGMEM = "@{BELEUCSENSOR_ID}@";
|
|
||||||
// UV-Intensität
|
|
||||||
const char UVINTESENSOR_ID[] PROGMEM = "@{UVINTESENSOR_ID}@";
|
|
||||||
// Luftdruck
|
|
||||||
const char LUFTDRSENSOR_ID[] PROGMEM = "@{LUFTDRSENSOR_ID}@";
|
|
||||||
// Regenmenge
|
|
||||||
const char REGENMSENSOR_ID[] PROGMEM = "@{REGENMSENSOR_ID}@";
|
|
||||||
// PM10
|
|
||||||
const char PM10SENSOR_ID[] PROGMEM = "@{PM10SENSOR_ID}@";
|
|
||||||
// PM2.5
|
|
||||||
const char PM25SENSOR_ID[] PROGMEM = "@{PM25SENSOR_ID}@";
|
|
||||||
WiFiSSLClient client;
|
|
||||||
|
|
||||||
//Load sensors / instances
|
|
||||||
#ifdef HDC1080_CONNECTED
|
|
||||||
Adafruit_HDC1000 HDC = Adafruit_HDC1000();
|
|
||||||
#endif
|
|
||||||
#ifdef BMP280_CONNECTED
|
|
||||||
Adafruit_BMP280 BMP;
|
|
||||||
#endif
|
|
||||||
#ifdef TSL45315_CONNECTED
|
|
||||||
Makerblog_TSL45315 TSL = Makerblog_TSL45315(TSL45315_TIME_M4);
|
|
||||||
#endif
|
|
||||||
#ifdef VEML6070_CONNECTED
|
|
||||||
VEML6070 VEML;
|
|
||||||
#endif
|
|
||||||
#ifdef BME680_CONNECTED
|
|
||||||
Adafruit_BME680 BME;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct measurement {
|
|
||||||
const char *sensorId;
|
|
||||||
float value;
|
|
||||||
} measurement;
|
|
||||||
|
|
||||||
measurement measurements[NUM_SENSORS];
|
|
||||||
uint8_t num_measurements = 0;
|
|
||||||
|
|
||||||
// buffer for sprintf
|
|
||||||
char buffer[750];
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
/* --------------------------End of Configuration--------------------------- */
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
void addMeasurement(const char *sensorId, float value) {
|
|
||||||
measurements[num_measurements].sensorId = sensorId;
|
|
||||||
measurements[num_measurements].value = value;
|
|
||||||
num_measurements++;
|
|
||||||
}
|
|
||||||
|
|
||||||
void writeMeasurementsToClient() {
|
|
||||||
// iterate throug the measurements array
|
|
||||||
for (uint8_t i = 0; i < num_measurements; i++) {
|
|
||||||
sprintf_P(buffer, PSTR("%s,%9.2f\n"), measurements[i].sensorId,
|
|
||||||
measurements[i].value);
|
|
||||||
// transmit buffer to client
|
|
||||||
client.print(buffer);
|
|
||||||
DEBUG2(buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
// reset num_measurements
|
|
||||||
num_measurements = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void submitValues() {
|
|
||||||
if (WiFi.status() != WL_CONNECTED) {
|
|
||||||
WiFi.disconnect();
|
|
||||||
delay(1000); // wait 1s
|
|
||||||
WiFi.begin(ssid, pass);
|
|
||||||
delay(5000); // wait 5s
|
|
||||||
}
|
|
||||||
// close any connection before send a new request.
|
|
||||||
// This will free the socket on the WiFi shield
|
|
||||||
if (client.connected()) {
|
|
||||||
client.stop();
|
|
||||||
delay(1000);
|
|
||||||
}
|
|
||||||
bool connected = false;
|
|
||||||
char _server[strlen_P(server)];
|
|
||||||
strcpy_P(_server, server);
|
|
||||||
for (uint8_t timeout = 2; timeout != 0; timeout--) {
|
|
||||||
Serial.println(F("connecting..."));
|
|
||||||
connected = client.connect(_server, 443);
|
|
||||||
if (connected == true) {
|
|
||||||
DEBUG(F("Connection successful, transferring..."));
|
|
||||||
// construct the HTTP POST request:
|
|
||||||
sprintf_P(buffer,
|
|
||||||
PSTR("POST /boxes/%s/data HTTP/1.1\nHost: %s\nContent-Type: "
|
|
||||||
"text/csv\nConnection: close\nContent-Length: %i\n\n"),
|
|
||||||
SENSEBOX_ID, server, num_measurements * 35);
|
|
||||||
DEBUG(buffer);
|
|
||||||
// send the HTTP POST request:
|
|
||||||
client.print(buffer);
|
|
||||||
// send measurements
|
|
||||||
writeMeasurementsToClient();
|
|
||||||
// send empty line to end the request
|
|
||||||
client.println();
|
|
||||||
uint16_t timeout = 0;
|
|
||||||
// allow the response to be computed
|
|
||||||
while (timeout <= 5000) {
|
|
||||||
delay(10);
|
|
||||||
timeout = timeout + 10;
|
|
||||||
if (client.available()) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
while (client.available()) {
|
|
||||||
char c = client.read();
|
|
||||||
DEBUG_WRITE(c);
|
|
||||||
// if the server's disconnected, stop the client:
|
|
||||||
if (!client.connected()) {
|
|
||||||
DEBUG();
|
|
||||||
DEBUG(F("disconnecting from server."));
|
|
||||||
client.stop();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
DEBUG(F("done!"));
|
|
||||||
// reset number of measurements
|
|
||||||
num_measurements = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
delay(1000);
|
|
||||||
}
|
|
||||||
if (connected == false) {
|
|
||||||
// Reset durchführen
|
|
||||||
DEBUG(F("connection failed. Restarting System."));
|
|
||||||
delay(5000);
|
|
||||||
noInterrupts();
|
|
||||||
NVIC_SystemReset();
|
|
||||||
while (1)
|
|
||||||
;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void checkI2CSensors() {
|
|
||||||
byte error;
|
|
||||||
int nDevices = 0;
|
|
||||||
byte sensorAddr[] = {41, 56, 57, 64, 118};
|
|
||||||
DEBUG(F("\nScanning..."));
|
|
||||||
for (int i = 0; i < sizeof(sensorAddr); i++) {
|
|
||||||
Wire.beginTransmission(sensorAddr[i]);
|
|
||||||
error = Wire.endTransmission();
|
|
||||||
if (error == 0) {
|
|
||||||
nDevices++;
|
|
||||||
switch (sensorAddr[i])
|
|
||||||
{
|
|
||||||
case 0x29:
|
|
||||||
DEBUG(F("TSL45315 found."));
|
|
||||||
break;
|
|
||||||
case 0x38: // &0x39
|
|
||||||
DEBUG(F("VEML6070 found."));
|
|
||||||
break;
|
|
||||||
case 0x40:
|
|
||||||
DEBUG(F("HDC1080 found."));
|
|
||||||
break;
|
|
||||||
case 0x76:
|
|
||||||
#ifdef BMP280_CONNECTED
|
|
||||||
DEBUG("BMP280 found.");
|
|
||||||
#else
|
|
||||||
DEBUG("BME680 found.");
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (error == 4)
|
|
||||||
{
|
|
||||||
DEBUG2(F("Unknown error at address 0x"));
|
|
||||||
if (sensorAddr[i] < 16)
|
|
||||||
DEBUG2(F("0"));
|
|
||||||
DEBUG_ARGS(sensorAddr[i], HEX);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (nDevices == 0) {
|
|
||||||
DEBUG(F("No I2C devices found.\nCheck cable connections and press Reset."));
|
|
||||||
while(true);
|
|
||||||
} else {
|
|
||||||
DEBUG2(nDevices);
|
|
||||||
DEBUG(F(" sensors found.\n"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void setup() {
|
|
||||||
// Initialize serial and wait for port to open:
|
|
||||||
#ifdef ENABLE_DEBUG
|
|
||||||
Serial.begin(9600);
|
|
||||||
#endif
|
|
||||||
delay(5000);
|
|
||||||
DEBUG2(F("xbee1 spi enable..."));
|
|
||||||
senseBoxIO.SPIselectXB1(); // select XBEE1 spi
|
|
||||||
DEBUG(F("done"));
|
|
||||||
senseBoxIO.powerXB1(false);
|
|
||||||
delay(200);
|
|
||||||
DEBUG2(F("xbee1 power on..."));
|
|
||||||
senseBoxIO.powerXB1(true); // power ON XBEE1
|
|
||||||
DEBUG(F("done"));
|
|
||||||
senseBoxIO.powerI2C(false);
|
|
||||||
delay(200);
|
|
||||||
senseBoxIO.powerI2C(true);
|
|
||||||
// Check WiFi Bee status
|
|
||||||
if (WiFi.status() == WL_NO_SHIELD) {
|
|
||||||
DEBUG(F("WiFi shield not present"));
|
|
||||||
// don't continue:
|
|
||||||
while (true);
|
|
||||||
}
|
|
||||||
uint8_t status = WL_IDLE_STATUS;
|
|
||||||
// attempt to connect to Wifi network:
|
|
||||||
while (status != WL_CONNECTED) {
|
|
||||||
DEBUG2(F("Attempting to connect to SSID: "));
|
|
||||||
DEBUG(ssid);
|
|
||||||
// Connect to WPA/WPA2 network. Change this line if using open or WEP
|
|
||||||
// network
|
|
||||||
status = WiFi.begin(ssid, pass);
|
|
||||||
// wait 10 seconds for connection:
|
|
||||||
DEBUG2(F("Waiting 10 seconds for connection..."));
|
|
||||||
delay(10000);
|
|
||||||
DEBUG(F("done."));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef ENABLE_DEBUG
|
|
||||||
// init I2C/wire library
|
|
||||||
Wire.begin();
|
|
||||||
checkI2CSensors();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Sensor initialization
|
|
||||||
DEBUG(F("Initializing sensors..."));
|
|
||||||
#ifdef HDC1080_CONNECTED
|
|
||||||
HDC.begin();
|
|
||||||
#endif
|
|
||||||
#ifdef BMP280_CONNECTED
|
|
||||||
BMP.begin(0x76);
|
|
||||||
#endif
|
|
||||||
#ifdef VEML6070_CONNECTED
|
|
||||||
VEML.begin();
|
|
||||||
delay(500);
|
|
||||||
#endif
|
|
||||||
#ifdef TSL45315_CONNECTED
|
|
||||||
TSL.begin();
|
|
||||||
#endif
|
|
||||||
#ifdef BME680_CONNECTED
|
|
||||||
BME.begin(0x76);
|
|
||||||
BME.setTemperatureOversampling(BME680_OS_8X);
|
|
||||||
BME.setHumidityOversampling(BME680_OS_2X);
|
|
||||||
BME.setPressureOversampling(BME680_OS_4X);
|
|
||||||
BME.setIIRFilterSize(BME680_FILTER_SIZE_3);
|
|
||||||
#endif
|
|
||||||
DEBUG(F("Initializing sensors done!"));
|
|
||||||
DEBUG(F("Starting loop in 3 seconds."));
|
|
||||||
delay(3000);
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
DEBUG(F("Starting new measurement..."));
|
|
||||||
// capture loop start timestamp
|
|
||||||
unsigned long start = millis();
|
|
||||||
//-----Temperature-----//
|
|
||||||
//-----Humidity-----//
|
|
||||||
#ifdef HDC1080_CONNECTED
|
|
||||||
addMeasurement(TEMPERSENSOR_ID, HDC.readTemperature());
|
|
||||||
delay(200);
|
|
||||||
addMeasurement(RELLUFSENSOR_ID, HDC.readHumidity());
|
|
||||||
#endif
|
|
||||||
//-----Pressure-----//
|
|
||||||
#ifdef BMP280_CONNECTED
|
|
||||||
float pressure;
|
|
||||||
pressure = BMP.readPressure()/100;
|
|
||||||
addMeasurement(LUFTDRSENSOR_ID, pressure);
|
|
||||||
#endif
|
|
||||||
//-----Lux-----//
|
|
||||||
#ifdef TSL45315_CONNECTED
|
|
||||||
addMeasurement(BELEUCSENSOR_ID, TSL.readLux());
|
|
||||||
#endif
|
|
||||||
//-----UV intensity-----//
|
|
||||||
#ifdef VEML6070_CONNECTED
|
|
||||||
addMeasurement(UVINTESENSOR_ID, VEML.getUV());
|
|
||||||
#endif
|
|
||||||
//-----Soil Temperature & Moisture-----//
|
|
||||||
#ifdef SMT50_CONNECTED
|
|
||||||
float voltage = analogRead(SOILTEMPPIN) * (3.3 / 1024.0);
|
|
||||||
float soilTemperature = (voltage - 0.5) * 100;
|
|
||||||
addMeasurement(BODENTSENSOR_ID, soilTemperature);
|
|
||||||
voltage = analogRead(SOILMOISPIN) * (3.3 / 1024.0);
|
|
||||||
float soilMoisture = (voltage * 50) / 3;
|
|
||||||
addMeasurement(BODENFSENSOR_ID, soilMoisture);
|
|
||||||
#endif
|
|
||||||
//-----dB(A) Sound Level-----//
|
|
||||||
#ifdef SOUNDLEVELMETER_CONNECTED
|
|
||||||
float v = analogRead(SOUNDMETERPIN) * (3.3 / 1024.0);
|
|
||||||
float decibel = v * 50;
|
|
||||||
addMeasurement(LAUTSTSENSOR_ID, decibel);
|
|
||||||
#endif
|
|
||||||
//-----BME680-----//
|
|
||||||
#ifdef BME680_CONNECTED
|
|
||||||
BME.setGasHeater(0, 0);
|
|
||||||
if( BME.performReading()) {
|
|
||||||
addMeasurement(LUFTTESENSOR_ID, BME.temperature-1);
|
|
||||||
addMeasurement(LUFTFESENSOR_ID, BME.humidity);
|
|
||||||
addMeasurement(ATMLUFSENSOR_ID, BME.pressure/100);
|
|
||||||
}
|
|
||||||
BME.setGasHeater(320, 150); // 320*C for 150 ms
|
|
||||||
if( BME.performReading()) {
|
|
||||||
addMeasurement(VOCSENSOR_ID, BME.gas_resistance / 1000.0);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
DEBUG(F("Submit values"));
|
|
||||||
submitValues();
|
|
||||||
|
|
||||||
// schedule next round of measurements
|
|
||||||
for (;;) {
|
|
||||||
unsigned long now = millis();
|
|
||||||
unsigned long elapsed = now - start;
|
|
||||||
if (elapsed >= postingInterval)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -4,6 +4,7 @@ import { OtaWizardPage } from '../ota-wizard/ota-wizard';
|
||||||
import { HttpClient } from '@angular/common/http';
|
import { HttpClient } from '@angular/common/http';
|
||||||
import { AddItemPage } from '../add-item/add-item';
|
import { AddItemPage } from '../add-item/add-item';
|
||||||
import { SensorDetailPage } from '../sensor-detail/sensor-detail';
|
import { SensorDetailPage } from '../sensor-detail/sensor-detail';
|
||||||
|
import { LoginProvider } from "../../providers/LoginProvider/LoginProvider"
|
||||||
/**
|
/**
|
||||||
* Generated class for the AboutPage page.
|
* Generated class for the AboutPage page.
|
||||||
*
|
*
|
||||||
|
@ -22,9 +23,10 @@ export class ConfigurationPage {
|
||||||
pw:string;
|
pw:string;
|
||||||
DEBUG_ENABLED:boolean;
|
DEBUG_ENABLED:boolean;
|
||||||
senseboxid: string;
|
senseboxid: string;
|
||||||
|
private token:string=this.navParams.data[1]
|
||||||
public box:Object = this.navParams.data
|
public box:Object = this.navParams.data[0]
|
||||||
constructor(public navCtrl: NavController, public navParams: NavParams, private http: HttpClient, public modalCtrl: ModalController) {
|
constructor(public navCtrl: NavController, public navParams: NavParams, private http: HttpClient, public modalCtrl: ModalController, private loginProvider: LoginProvider
|
||||||
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
applyTemplate(template, properties) {
|
applyTemplate(template, properties) {
|
||||||
|
@ -41,55 +43,11 @@ export class ConfigurationPage {
|
||||||
|
|
||||||
return returnValue;
|
return returnValue;
|
||||||
}
|
}
|
||||||
uploadStandardSketch() {
|
async uploadStandardSketch() {
|
||||||
var values = {
|
const sketch = await this.loginProvider.getUserSketch(this.token,this.box._id,this.ssid,this.pw)
|
||||||
SSID: this.ssid,
|
console.log(sketch);
|
||||||
PASSWORD: this.pw,
|
this.navCtrl.push(OtaWizardPage,{sketch})
|
||||||
INGRESS_DOMAIN: "ingress.opensensemap.org",
|
|
||||||
SENSEBOX_ID: this.senseboxid,
|
|
||||||
defineSensors: this.buildDefines(),
|
|
||||||
DEBUG_ENABLED:this.DEBUG_ENABLED?"#define ENABLE_DEBUG":"//#define ENABLE_DEBUG",
|
|
||||||
NUM_SENSORS: this.sensors.length,
|
|
||||||
};
|
|
||||||
this.sensors.map((sensor)=>{
|
|
||||||
switch (sensor.typ) {
|
|
||||||
case "HDC1080":
|
|
||||||
values["TEMPERSENSOR_ID"] = sensor.id
|
|
||||||
break;
|
|
||||||
case "HDC1080_r":
|
|
||||||
values["RELLUFSENSOR_ID"] = sensor.id
|
|
||||||
break;
|
|
||||||
case "BMP280":
|
|
||||||
values["LUFTDRSENSOR_ID"] = sensor.id
|
|
||||||
break;
|
|
||||||
case "TSL45315":
|
|
||||||
values["BELEUCSENSOR_ID"] = sensor.id
|
|
||||||
break;
|
|
||||||
case "VEML6070":
|
|
||||||
values["UVINTESENSOR_ID"] = sensor.id
|
|
||||||
break;
|
|
||||||
case "SDS1001":
|
|
||||||
values["PM10SENSOR_ID"] = sensor.id
|
|
||||||
break;
|
|
||||||
case "SDS1001_r":
|
|
||||||
values["PM25SENSOR_ID"] = sensor.id
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.http.get("assets/templates/homev2Wifi.tpl", { responseType: "text" }).subscribe(data => {
|
|
||||||
let sketch = this.applyTemplate(data, values);
|
|
||||||
console.log(sketch)
|
|
||||||
this.navCtrl.push(OtaWizardPage, { sketch })
|
|
||||||
})
|
|
||||||
}
|
|
||||||
buildDefines() {
|
|
||||||
let defineString = ""
|
|
||||||
this.sensors.map((sensor) => {
|
|
||||||
defineString += "#define " + sensor.typ + "_CONNECTED\n"
|
|
||||||
})
|
|
||||||
|
|
||||||
return defineString;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
addSensor() {
|
addSensor() {
|
||||||
|
@ -123,10 +81,6 @@ export class ConfigurationPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
ionViewDidLoad() {
|
ionViewDidLoad() {
|
||||||
console.log(this.navParams)
|
|
||||||
this.sensors = [
|
|
||||||
{ typ: "HDC1080", id: "5ca1e336cbf9ae001a6f1d88" },
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ export class MySenseBoxPage {
|
||||||
forwardSketch(box){
|
forwardSketch(box){
|
||||||
// Call sketch
|
// Call sketch
|
||||||
// forward to config page
|
// forward to config page
|
||||||
this.navCtrl.push(ConfigurationPage,box)
|
this.navCtrl.push(ConfigurationPage,[box,this.token])
|
||||||
}
|
}
|
||||||
|
|
||||||
ionViewDidLoad() {
|
ionViewDidLoad() {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { timeout } from 'rxjs/operators'
|
import { timeout } from 'rxjs/operators'
|
||||||
const URL_login = 'https://api.opensensemap.org/users/sign-in';
|
const URL_login = 'https://api.opensensemap.org/users/sign-in';
|
||||||
|
@ -56,11 +56,15 @@ export class LoginProvider {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async getUserSketch(token:string,id:string):Promise<string>{
|
async getUserSketch(token:string,id:string,ssid:string,password:string):Promise<string>{
|
||||||
let URL_sketch_final = URL_sketch+id+"/script";
|
let URL_sketch_final = URL_sketch+id+"/script";
|
||||||
console.log(URL_sketch_final)
|
console.log(URL_sketch_final)
|
||||||
const headers = new HttpHeaders({'Authorization':"Bearer "+token,responseType:'text'})
|
const headers = new HttpHeaders({'Authorization':"Bearer "+token,responseType:'text'})
|
||||||
return this.http.get(URL_sketch_final,{headers})
|
const params = new HttpParams({fromObject:{
|
||||||
|
ssid,
|
||||||
|
password
|
||||||
|
}})
|
||||||
|
return this.http.get(URL_sketch_final,{headers,params})
|
||||||
.pipe(timeout(30000))
|
.pipe(timeout(30000))
|
||||||
.toPromise()
|
.toPromise()
|
||||||
.catch(err=>{
|
.catch(err=>{
|
||||||
|
|
Loading…
Add table
Reference in a new issue