|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
import { Component, } from '@angular/core';
|
|
|
|
|
import { IonicPage, NavController, NavParams, ModalController} from 'ionic-angular';
|
|
|
|
|
import { IonicPage, NavController, NavParams, ModalController } from 'ionic-angular';
|
|
|
|
|
import { OtaWizardPage } from '../ota-wizard/ota-wizard';
|
|
|
|
|
import { HttpClient } from '@angular/common/http';
|
|
|
|
|
import { AddItemPage } from '../add-item/add-item';
|
|
|
|
@ -17,19 +17,19 @@ import { SensorDetailPage } from '../sensor-detail/sensor-detail';
|
|
|
|
|
templateUrl: 'configuration.html',
|
|
|
|
|
})
|
|
|
|
|
export class ConfigurationPage {
|
|
|
|
|
public sensors=[];
|
|
|
|
|
temp : string;
|
|
|
|
|
humi : string;
|
|
|
|
|
lux : string;
|
|
|
|
|
uv : string;
|
|
|
|
|
pm10 : string;
|
|
|
|
|
pm25 : string;
|
|
|
|
|
ssid:string;
|
|
|
|
|
pw:string;
|
|
|
|
|
pressure:string;
|
|
|
|
|
rain:string;
|
|
|
|
|
senseboxid:string;
|
|
|
|
|
constructor(public navCtrl: NavController, public navParams: NavParams,private http:HttpClient,public modalCtrl:ModalController) {
|
|
|
|
|
public sensors = [];
|
|
|
|
|
temp: string;
|
|
|
|
|
humi: string;
|
|
|
|
|
lux: string;
|
|
|
|
|
uv: string;
|
|
|
|
|
pm10: string;
|
|
|
|
|
pm25: string;
|
|
|
|
|
ssid: string;
|
|
|
|
|
pw: string;
|
|
|
|
|
pressure: string;
|
|
|
|
|
rain: string;
|
|
|
|
|
senseboxid: string;
|
|
|
|
|
constructor(public navCtrl: NavController, public navParams: NavParams, private http: HttpClient, public modalCtrl: ModalController) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
applyTemplate(template, properties) {
|
|
|
|
@ -39,49 +39,64 @@ export class ConfigurationPage {
|
|
|
|
|
returnValue += templateFragments[0];
|
|
|
|
|
|
|
|
|
|
for (var i = 1; i < templateFragments.length; i++) {
|
|
|
|
|
var fragmentSections = templateFragments[i].split("}@", 2);
|
|
|
|
|
returnValue += properties[fragmentSections[0]];
|
|
|
|
|
returnValue += fragmentSections[1];
|
|
|
|
|
}
|
|
|
|
|
var fragmentSections = templateFragments[i].split("}@", 2);
|
|
|
|
|
returnValue += properties[fragmentSections[0]];
|
|
|
|
|
returnValue += fragmentSections[1];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return returnValue;
|
|
|
|
|
}
|
|
|
|
|
async uploadStandardSketch(){
|
|
|
|
|
}
|
|
|
|
|
uploadStandardSketch() {
|
|
|
|
|
var values = {
|
|
|
|
|
SSID: this.ssid,
|
|
|
|
|
PASSWORD:this.pw,
|
|
|
|
|
INGRESS_DOMAIN:"ingress.opensensemap.org",
|
|
|
|
|
SENSEBOX_ID:this.senseboxid,
|
|
|
|
|
defineSensors:this.buildDefines(),
|
|
|
|
|
NUM_SENSORS:this.sensors.length,
|
|
|
|
|
TEMPERSENSOR_ID:this.temp,
|
|
|
|
|
RELLUFSENSOR_ID:this.humi,
|
|
|
|
|
BELEUCSENSOR_ID:this.lux,
|
|
|
|
|
UVINTESENSOR_ID:this.uv,
|
|
|
|
|
LUFTDRSENOSR_ID:this.pressure,
|
|
|
|
|
REGENMSENSOR_ID:this.rain,
|
|
|
|
|
PM10SENSOR_ID:this.pm10,
|
|
|
|
|
PM25SENSOR_ID:this.pm25
|
|
|
|
|
|
|
|
|
|
PASSWORD: this.pw,
|
|
|
|
|
INGRESS_DOMAIN: "ingress.opensensemap.org",
|
|
|
|
|
SENSEBOX_ID: this.senseboxid,
|
|
|
|
|
defineSensors: this.buildDefines(),
|
|
|
|
|
NUM_SENSORS: this.sensors.length,
|
|
|
|
|
};
|
|
|
|
|
this.http.get("assets/templates/homev2Wifi.tpl",{responseType:"text"}).subscribe(data=>{
|
|
|
|
|
let sketch = this.applyTemplate(data,values);
|
|
|
|
|
this.sensors.map((sensor)=>{
|
|
|
|
|
switch (sensor.typ) {
|
|
|
|
|
case "HDC1080":
|
|
|
|
|
values["TEMPERSENSOR_ID"] = sensor.id
|
|
|
|
|
values["RELLUFSENSOR_ID"] = sensor.id2
|
|
|
|
|
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["PM10SENSORID"] = sensor.id
|
|
|
|
|
values["PM25SENSOR_ID"] = sensor.id2
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
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.type+"_CONNECTED\n"
|
|
|
|
|
buildDefines() {
|
|
|
|
|
let defineString = ""
|
|
|
|
|
this.sensors.map((sensor) => {
|
|
|
|
|
defineString += "#define " + sensor.typ + "_CONNECTED\n"
|
|
|
|
|
})
|
|
|
|
|
return defineString;
|
|
|
|
|
}
|
|
|
|
|
addSensor(){
|
|
|
|
|
addSensor() {
|
|
|
|
|
let addModal = this.modalCtrl.create(AddItemPage);
|
|
|
|
|
|
|
|
|
|
addModal.onDidDismiss((sensor)=>{
|
|
|
|
|
if(sensor){
|
|
|
|
|
addModal.onDidDismiss((sensor) => {
|
|
|
|
|
if (sensor) {
|
|
|
|
|
this.saveSensor(sensor);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
@ -90,26 +105,26 @@ export class ConfigurationPage {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
saveSensor(sensor){
|
|
|
|
|
saveSensor(sensor) {
|
|
|
|
|
this.sensors.push(sensor);
|
|
|
|
|
// add define statements
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
viewSensor(sensor){
|
|
|
|
|
this.navCtrl.push(SensorDetailPage,{
|
|
|
|
|
sensor:sensor
|
|
|
|
|
viewSensor(sensor) {
|
|
|
|
|
this.navCtrl.push(SensorDetailPage, {
|
|
|
|
|
sensor: sensor
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
removeSensor(sensor){
|
|
|
|
|
this.sensors = this.sensors.filter((sensorF)=>{
|
|
|
|
|
return sensor!=sensorF
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
removeSensor(sensor) {
|
|
|
|
|
this.sensors = this.sensors.filter((sensorF) => {
|
|
|
|
|
return sensor != sensorF
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ionViewDidLoad() {
|
|
|
|
|
this.sensors =[
|
|
|
|
|
{title:"Temperatur",type:"HDC1080",id:"09327523"},
|
|
|
|
|
this.sensors = [
|
|
|
|
|
{ typ: "HDC1080", id: "5bb610bf043f3f001b6a4c55" },
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|