diff --git a/app/scripts/controllers/account.box.dataupload.js b/app/scripts/controllers/account.box.dataupload.js
index e779bba8..cc65b760 100644
--- a/app/scripts/controllers/account.box.dataupload.js
+++ b/app/scripts/controllers/account.box.dataupload.js
@@ -34,7 +34,6 @@
////
function activate () {
- console.log(navigator);
vm.fileReader = new FileReader();
vm.fileReader.onload = function (e) {
$scope.$apply(function () {
@@ -46,7 +45,6 @@
function onFileSelect (event, $flow, file) {
event.preventDefault();
vm.error = '';
- console.log(file);
if (mimeTypes.indexOf(file.file.type) === -1) {
vm.error = { code: 'FORMAT' };
diff --git a/app/scripts/controllers/register.js b/app/scripts/controllers/register.js
index 95ff8440..9390c410 100644
--- a/app/scripts/controllers/register.js
+++ b/app/scripts/controllers/register.js
@@ -36,7 +36,8 @@
pollution: false,
bme680: false,
co2: false,
- dps310: false
+ dps310: false,
+ sps30: false
},
serialPort: 'Serial1',
soilDigitalPort: 'A',
@@ -440,6 +441,9 @@
case 'dps310':
vm.newSenseBox.sensorTemplates.push('dps310');
break;
+ case 'sps30':
+ vm.newSenseBox.sensorTemplates.push('sps30');
+ break;
}
}
}
@@ -648,6 +652,30 @@
unit = '°C';
sensorType = 'DPS310';
break;
+ case 'SPS30_PM1':
+ icon = 'osem-cloud';
+ title = 'PM1';
+ unit = 'µg/m³';
+ sensorType = 'SPS30';
+ break;
+ case 'SPS30_PM25':
+ icon = 'osem-cloud';
+ title = 'PM25';
+ unit = 'µg/m³';
+ sensorType = 'SPS30';
+ break;
+ case 'SPS30_PM4':
+ icon = 'osem-cloud';
+ title = 'PM4';
+ unit = 'µg/m³';
+ sensorType = 'SPS30';
+ break;
+ case 'SPS30_PM10':
+ icon = 'osem-cloud';
+ title = 'PM10';
+ unit = 'µg/m³';
+ sensorType = 'SPS30';
+ break;
}
return {
@@ -913,6 +941,11 @@
} else if (newValue.dps310 && oldValue.dps310 === false) {
addSensorTemplate('DPS310_AIRPRESSURE');
addSensorTemplate('DPS310_TEMPERATURE');
+ } else if (newValue.sps30 && oldValue.sps30 === false) {
+ addSensorTemplate('SPS30_PM1');
+ addSensorTemplate('SPS30_PM25');
+ addSensorTemplate('SPS30_PM4');
+ addSensorTemplate('SPS30_PM10');
}
// Remove sensor templates
@@ -934,6 +967,11 @@
} else if (oldValue.dps310 && newValue.dps310 === '') {
removeSensorTemplate(generateSensorTemplate('DPS310_AIRPRESSURE'));
removeSensorTemplate(generateSensorTemplate('DPS310_TEMPERATURE'));
+ } else if (oldValue.sps30 && newValue.sps30 === '') {
+ removeSensorTemplate(generateSensorTemplate('SPS30_PM1'));
+ removeSensorTemplate(generateSensorTemplate('SPS30_P25'));
+ removeSensorTemplate(generateSensorTemplate('SPS30_PM4'));
+ removeSensorTemplate(generateSensorTemplate('SPS30_PM10'));
}
// Check on change for sensors with same address
diff --git a/app/views/account.box.register.html b/app/views/account.box.register.html
index 4d60cf10..e6e728c8 100644
--- a/app/views/account.box.register.html
+++ b/app/views/account.box.register.html
@@ -520,6 +520,23 @@
{{'SENSORS' | translate}}
+
+
+
+
+
+
+
+
![](https://raw.githubusercontent.com/sensebox/resources/master/images/home/sps30.png)
+
{{'SENSOR_PM_SPS'| translate }}
+
+
+
@@ -880,6 +897,66 @@ CO2
+
+
+
![](https://raw.githubusercontent.com/sensebox/resources/master/images/home/sps30.png)
+
+
Feinstaub PM1
+
(SPS30)
+
+
+
+
+
+
+
+
+
![](https://raw.githubusercontent.com/sensebox/resources/master/images/home/sps30.png)
+
+
Feinstaub PM25
+
(SPS30)
+
+
+
+
+
+
+
+
+
![](https://raw.githubusercontent.com/sensebox/resources/master/images/home/sps30.png)
+
+
Feinstaub PM4
+
(SPS30)
+
+
+
+
+
+
+
+
+
![](https://raw.githubusercontent.com/sensebox/resources/master/images/home/sps30.png)
+
+
Feinstaub PM10
+
(SPS30)
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 7e392c48..e37ce860 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18881,8 +18881,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@sensebox/eslint-config-sensebox/-/eslint-config-sensebox-1.1.0.tgz",
"integrity": "sha512-MhwFHGmt7X/Wb/aISS/pJvBuO8HqpkVfB8GsUKOosWEfvug4cTN7N/pXBOxINukG34LcKDLp1xdyxuEo64CMSw==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"@sindresorhus/is": {
"version": "0.7.0",
@@ -19021,6 +19020,16 @@
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
"dev": true
},
+ "JSONStream": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
+ "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
+ "dev": true,
+ "requires": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ }
+ },
"abbrev": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
@@ -21495,8 +21504,8 @@
"integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==",
"dev": true,
"requires": {
- "is-text-path": "^1.0.1",
"JSONStream": "^1.0.4",
+ "is-text-path": "^1.0.1",
"lodash": "^4.17.15",
"meow": "^8.0.0",
"split2": "^3.0.0",
@@ -23374,15 +23383,6 @@
"util-deprecate": "~1.0.1"
}
},
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@@ -23393,6 +23393,15 @@
"strip-ansi": "^4.0.0"
}
},
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
@@ -27583,16 +27592,6 @@
"integrity": "sha1-ZmHhYdL8RF8Z+YQwIxNDci4fy9U=",
"dev": true
},
- "JSONStream": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "dev": true,
- "requires": {
- "jsonparse": "^1.2.0",
- "through": ">=2.2.7 <3"
- }
- },
"jsprim": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
@@ -27793,15 +27792,13 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz",
"integrity": "sha1-vuWtQEAFF4Ea40u5RfdikJEIt5o=",
- "dev": true,
- "requires": {}
+ "dev": true
},
"karma-chai-sinon": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/karma-chai-sinon/-/karma-chai-sinon-0.1.5.tgz",
"integrity": "sha1-XDksqVJHgYlR1rV5AvAsNugDdTo=",
- "dev": true,
- "requires": {}
+ "dev": true
},
"karma-chrome-launcher": {
"version": "3.1.1",
@@ -27888,15 +27885,13 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz",
"integrity": "sha1-lpgqLMR9BmquccVTursoMZEVos4=",
- "dev": true,
- "requires": {}
+ "dev": true
},
"karma-sinon": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/karma-sinon/-/karma-sinon-1.0.5.tgz",
"integrity": "sha1-TjRD8oMP3s/2JNN0cWPxIX2qKpo=",
- "dev": true,
- "requires": {}
+ "dev": true
},
"kew": {
"version": "0.7.0",
@@ -31038,8 +31033,7 @@
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz",
"integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"slash": {
"version": "1.0.0",
@@ -31788,12 +31782,6 @@
"dev": true,
"optional": true
},
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- },
"string-template": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
@@ -31848,6 +31836,12 @@
"define-properties": "^1.1.3"
}
},
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
"stringify-package": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz",
@@ -32035,8 +32029,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
"integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
- "dev": true,
- "requires": {}
+ "dev": true
},
"ansi-regex": {
"version": "3.0.0",
@@ -33019,8 +33012,7 @@
"version": "8.2.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
"integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"xtend": {
"version": "2.1.2",