More air quality sensors
@ -182,6 +182,8 @@ QString Types::toUiUnit(Types::Unit unit) const
|
||||
return "%";
|
||||
case Types::UnitPartsPerMillion:
|
||||
return "ppm";
|
||||
case Types::UnitPartsPerBillion:
|
||||
return "ppb";
|
||||
case Types::UnitEuro:
|
||||
return "€";
|
||||
case Types::UnitDollar:
|
||||
@ -238,6 +240,8 @@ QString Types::toUiUnit(Types::Unit unit) const
|
||||
return "l";
|
||||
case Types::UnitFluidOunce:
|
||||
return "fl oz";
|
||||
case Types::UnitMicroGrammPerCubicalMeter:
|
||||
return "µg/m³";
|
||||
}
|
||||
|
||||
return "";
|
||||
|
||||
@ -95,6 +95,7 @@ public:
|
||||
UnitEuroCentPerKiloWattHour,
|
||||
UnitPercentage,
|
||||
UnitPartsPerMillion,
|
||||
UnitPartsPerBillion,
|
||||
UnitEuro,
|
||||
UnitDollar,
|
||||
UnitHertz,
|
||||
@ -112,6 +113,7 @@ public:
|
||||
UnitRpm,
|
||||
UnitMilligramPerLiter,
|
||||
UnitLiter,
|
||||
UnitMicroGrammPerCubicalMeter,
|
||||
|
||||
// Those do not exist in nymea:core at this point, Adding them for easier conversion to imperial
|
||||
UnitDegreeFahrenheit,
|
||||
|
||||
@ -289,5 +289,10 @@
|
||||
<file>ui/images/zigbee/zigbee-sibling.svg</file>
|
||||
<file>ui/images/zigbee/zigbee-previous-child.svg</file>
|
||||
<file>ui/images/arrow-down.svg</file>
|
||||
<file>ui/images/sensors/voc.svg</file>
|
||||
<file>ui/images/sensors/pm25.svg</file>
|
||||
<file>ui/images/sensors/o3.svg</file>
|
||||
<file>ui/images/sensors/pm10.svg</file>
|
||||
<file>ui/images/sensors/no2.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@ -174,6 +174,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
qmlRegisterSingletonType<PushNotifications>("Nymea", 1, 0, "PushNotifications", PushNotifications::pushNotificationsProvider);
|
||||
qmlRegisterSingletonType(QUrl("qrc:///ui/utils/NymeaUtils.qml"), "Nymea", 1, 0, "NymeaUtils" );
|
||||
qmlRegisterSingletonType(QUrl("qrc:///ui/utils/AirQualityIndex.qml"), "Nymea", 1, 0, "AirQualityIndex" );
|
||||
|
||||
qmlRegisterType<DashboardModel>("Nymea", 1, 0, "DashboardModel");
|
||||
qmlRegisterUncreatableType<DashboardItem>("Nymea", 1, 0, "DashboardItem", "");
|
||||
|
||||
@ -278,5 +278,6 @@
|
||||
<file>ui/system/zwave/ZWaveNetworkSettingsPage.qml</file>
|
||||
<file>ui/components/ActivityIndicator.qml</file>
|
||||
<file>ui/system/zigbee/ZigbeeNodePage.qml</file>
|
||||
<file>ui/utils/AirQualityIndex.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@ -198,8 +198,12 @@ ApplicationWindow {
|
||||
return qsTr("CO level")
|
||||
case "co2sensor":
|
||||
return qsTr("CO2 level")
|
||||
case "no2sensor":
|
||||
return qsTr("Nitrogen dioxide leve")
|
||||
case "gassensor":
|
||||
return qsTr("Flammable gas level")
|
||||
case "vocsensor":
|
||||
return qsTr("VOC level")
|
||||
case "inputtrigger":
|
||||
return qsTr("Incoming Events");
|
||||
case "outputtrigger":
|
||||
@ -298,6 +302,16 @@ ApplicationWindow {
|
||||
return Qt.resolvedUrl("images/sensors/co.svg")
|
||||
case "co2sensor":
|
||||
return Qt.resolvedUrl("images/sensors/co2.svg")
|
||||
case "no2sensor":
|
||||
return Qt.resolvedUrl("images/sensors/no2.svg")
|
||||
case "o3sensor":
|
||||
return Qt.resolvedUrl("images/sensors/o3.svg")
|
||||
case "vocsensor":
|
||||
return Qt.resolvedUrl("images/sensors/voc.svg")
|
||||
case "pm10sensor":
|
||||
return Qt.resolvedUrl("images/sensors/pm10.svg")
|
||||
case "pm25sensor":
|
||||
return Qt.resolvedUrl("images/sensors/pm25.svg")
|
||||
case "gassensor":
|
||||
return Qt.resolvedUrl("images/sensors/gas.svg")
|
||||
case "daylightsensor":
|
||||
|
||||
@ -84,6 +84,7 @@ Item {
|
||||
property color blue: "#5c95cd"
|
||||
property color purple: "#955ccd"
|
||||
property color rose: "#cd5c95"
|
||||
property color darkGreen: "#5ccd5e"
|
||||
|
||||
// Icon/graph colors for various interfaces
|
||||
property var interfaceColors: {
|
||||
@ -96,6 +97,8 @@ Item {
|
||||
"noisesensor": purple,
|
||||
"cosensor": darkGray,
|
||||
"co2sensor": turquoise,
|
||||
"pm10sensor": lightGray,
|
||||
"pm25sensor": gray,
|
||||
"gassensor": orange,
|
||||
"daylightsensor": yellow,
|
||||
"presencesensor": darkBlue,
|
||||
@ -117,7 +120,10 @@ Item {
|
||||
"orpsensor": yellow,
|
||||
"powersocket": lime,
|
||||
"evcharger": lime,
|
||||
"energystorage": lime
|
||||
"energystorage": lime,
|
||||
"vocsensor": green,
|
||||
"o3sensor": blue,
|
||||
"no2sensor": purple
|
||||
}
|
||||
|
||||
property var stateColors: {
|
||||
|
||||
@ -94,6 +94,11 @@ ThingsListPageBase {
|
||||
ListElement { interfaceName: "o2sensor"; stateName: "o2saturation" }
|
||||
ListElement { interfaceName: "phsensor"; stateName: "ph" }
|
||||
ListElement { interfaceName: "orpsensor"; stateName: "orp" }
|
||||
ListElement { interfaceName: "vocsensor"; stateName: "voc" }
|
||||
ListElement { interfaceName: "pm10sensor"; stateName: "pm10" }
|
||||
ListElement { interfaceName: "pm25sensor"; stateName: "pm25" }
|
||||
ListElement { interfaceName: "no2sensor"; stateName: "no2" }
|
||||
ListElement { interfaceName: "o3sensor"; stateName: "o3" }
|
||||
}
|
||||
|
||||
delegate: RowLayout {
|
||||
|
||||
@ -57,9 +57,13 @@ ThingPageBase {
|
||||
"waterlevelsensor": "waterLevel",
|
||||
"phsensor": "ph",
|
||||
"o2sensor": "o2saturation",
|
||||
"o3sensor": "o3",
|
||||
"orpsensor": "orp",
|
||||
"airquality": "airQuality",
|
||||
"indoorairquality": "indoorAirQuality"
|
||||
"vocsensor": "voc",
|
||||
"cosensor": "co",
|
||||
"pm10sensor": "pm10",
|
||||
"pm25sensor": "pm25",
|
||||
"no2sensor": "no2"
|
||||
}
|
||||
|
||||
ListModel {
|
||||
@ -141,25 +145,29 @@ ThingPageBase {
|
||||
if (["temperaturesensor"].indexOf(modelData) >= 0) {
|
||||
return Types.toUiValue(-50, Types.UnitDegreeCelsius)
|
||||
}
|
||||
if (["pressuresensor"].indexOf(modelData) >= 0) {
|
||||
return Types.toUiValue(900, Types.UnitMilliBar)
|
||||
}
|
||||
|
||||
return state.minValue
|
||||
}
|
||||
property var maxValue: {
|
||||
if (["temperaturesensor"].indexOf(modelData) >= 0) {
|
||||
return Types.toUiValue(50, Types.UnitDegreeCelsius)
|
||||
}
|
||||
if (["pressuresensor"].indexOf(modelData) >= 0) {
|
||||
return Types.toUiValue(1100, Types.UnitMilliBar)
|
||||
}
|
||||
return state.maxValue
|
||||
}
|
||||
|
||||
sourceComponent: {
|
||||
var handledInterfaces = [
|
||||
var progressInterfaces = [
|
||||
"humiditysensor",
|
||||
"o2sensor",
|
||||
"temperaturesensor",
|
||||
"moisturesensor",
|
||||
"co2sensor",
|
||||
"conductivitysensor",
|
||||
"cosensor",
|
||||
"co2sensor",
|
||||
"gassensor",
|
||||
"lightsensor",
|
||||
"orpsensor",
|
||||
@ -168,9 +176,21 @@ ThingPageBase {
|
||||
"waterlevelsensor",
|
||||
"windspeedsensor"
|
||||
]
|
||||
if (handledInterfaces.indexOf(modelData) >= 0) {
|
||||
if (progressInterfaces.indexOf(modelData) >= 0) {
|
||||
return progressComponent
|
||||
}
|
||||
var scaleInterfaces = [
|
||||
"vocsensor",
|
||||
"cosensor",
|
||||
"co2sensor",
|
||||
"o3sensor",
|
||||
"pm10sensor",
|
||||
"pm25sensor",
|
||||
"no2sensor"
|
||||
]
|
||||
if (scaleInterfaces.indexOf(modelData) >= 0) {
|
||||
return scaleComponent
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -344,11 +364,13 @@ ThingPageBase {
|
||||
|
||||
Label {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenter: -Style.smallMargins
|
||||
width: parent.width * 0.6
|
||||
text: Types.toUiValue(progressCanvas.state.value, progressCanvas.stateType.unit).toFixed(1) + " " + Types.toUiUnit(progressCanvas.stateType.unit)
|
||||
font.pixelSize: Math.min(Style.hugeFont.pixelSize, parent.height / 6)
|
||||
font.pixelSize: Math.min(Style.largeFont.pixelSize, parent.height / 6)
|
||||
wrapMode: Text.WordWrap
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
maximumLineCount: 2
|
||||
}
|
||||
|
||||
onPaint: {
|
||||
@ -383,8 +405,9 @@ ThingPageBase {
|
||||
}
|
||||
|
||||
ColorIcon {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: progressCanvas.height / 2 - height
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: Style.smallMargins
|
||||
name: app.interfaceToIcon(progressCanvas.interfaceName)
|
||||
size: Math.min(Style.bigIconSize, parent.height / 5)
|
||||
color: app.interfaceToColor(progressCanvas.interfaceName)
|
||||
@ -392,5 +415,177 @@ ThingPageBase {
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: scaleComponent
|
||||
Canvas {
|
||||
id: scaleCanvas
|
||||
property string interfaceName: parent.interfaceName
|
||||
property StateType stateType: parent.stateType
|
||||
property State state: parent.state
|
||||
property var minValue: parent.minValue
|
||||
property var maxValue: parent.maxValue
|
||||
|
||||
property int scaleWidth: width * .1
|
||||
|
||||
property var scale: {
|
||||
switch (interfaceName) {
|
||||
case "vocsensor":
|
||||
return AirQualityIndex.iaqVoc
|
||||
case "cosensor":
|
||||
return AirQualityIndex.caqiCo
|
||||
case "o3sensor":
|
||||
return AirQualityIndex.caqiO3
|
||||
case "pm10sensor":
|
||||
return AirQualityIndex.caqiPm10
|
||||
case "pm25sensor":
|
||||
return AirQualityIndex.caqiPm25
|
||||
case "no2sensor":
|
||||
return AirQualityIndex.caqiNo2
|
||||
}
|
||||
return baseScale
|
||||
}
|
||||
property var baseScale: [
|
||||
{
|
||||
"value": maxValue,
|
||||
"angle": 270,
|
||||
"color": Style.tileOverlayColor
|
||||
}
|
||||
]
|
||||
|
||||
property var currentIndex: {
|
||||
for (var i = 0; i < scale.length; i++) {
|
||||
if (state.value <= scale[i].value) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
log.warn("Value out of scale!")
|
||||
return -1
|
||||
}
|
||||
|
||||
property double angle: {
|
||||
var baseAngle = 0
|
||||
var baseValue = 0;
|
||||
if (currentIndex > 0) {
|
||||
baseAngle = scale[currentIndex-1].angle
|
||||
baseValue = scale[currentIndex-1].value
|
||||
}
|
||||
var valueRange = scale[currentIndex].value - baseValue
|
||||
var angleRange = scale[currentIndex].angle - baseAngle
|
||||
var progress = (state.value - baseValue) / (scale[currentIndex].value - baseValue)
|
||||
return baseAngle + angleRange * progress
|
||||
}
|
||||
Behavior on angle { NumberAnimation { duration: Style.slowAnimationDuration; easing.type: Easing.InOutQuad } }
|
||||
onAngleChanged: requestPaint();
|
||||
|
||||
ColumnLayout {
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: -Style.smallMargins
|
||||
width: parent.width * 0.6
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: scaleCanvas.scale[scaleCanvas.currentIndex].text
|
||||
font.pixelSize: Math.min(Style.largeFont.pixelSize, scaleCanvas.height / 6)
|
||||
wrapMode: Text.WordWrap
|
||||
// color: scaleCanvas.scale[scaleCanvas.currentIndex].color
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
maximumLineCount: 2
|
||||
}
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
text: Types.toUiValue(scaleCanvas.state.value, scaleCanvas.stateType.unit).toFixed(1) + " " + Types.toUiUnit(scaleCanvas.stateType.unit)
|
||||
font.pixelSize: Math.min(Style.smallFont.pixelSize, scaleCanvas.height / 12)
|
||||
wrapMode: Text.WordWrap
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onPaint: {
|
||||
var ctx = getContext("2d");
|
||||
ctx.reset();
|
||||
|
||||
ctx.beginPath()
|
||||
ctx.fillStyle = Style.foregroundColor
|
||||
|
||||
ctx.translate(width / 2, height / 2)
|
||||
ctx.rotate(135 * Math.PI / 180)
|
||||
|
||||
ctx.lineCap = "round"
|
||||
ctx.lineWidth = scaleCanvas.scaleWidth
|
||||
|
||||
// paint first rounded
|
||||
ctx.beginPath()
|
||||
ctx.strokeStyle = scaleCanvas.scale[0].color
|
||||
var startAngle = 0
|
||||
var endAngle = scaleCanvas.scale[0].angle * Math.PI/180
|
||||
ctx.arc(0, 0, width / 2 - ctx.lineWidth / 2, startAngle, endAngle)
|
||||
ctx.stroke()
|
||||
ctx.closePath()
|
||||
|
||||
// paint last rounded
|
||||
ctx.beginPath()
|
||||
ctx.strokeStyle = scaleCanvas.scale[scaleCanvas.scale.length - 1].color
|
||||
startAngle = scaleCanvas.scale[scaleCanvas.scale.length - 2].angle * Math.PI/180
|
||||
endAngle = scaleCanvas.scale[scaleCanvas.scale.length - 1].angle * Math.PI/180
|
||||
ctx.arc(0, 0, width / 2 - ctx.lineWidth / 2, startAngle, endAngle)
|
||||
ctx.stroke()
|
||||
ctx.closePath()
|
||||
|
||||
// paint inner parts
|
||||
ctx.lineCap = "butt"
|
||||
for (var i = 1; i < scaleCanvas.scale.length - 1; i++) {
|
||||
ctx.beginPath()
|
||||
ctx.strokeStyle = scaleCanvas.scale[i].color
|
||||
startAngle = scaleCanvas.scale[i - 1].angle * Math.PI/180
|
||||
endAngle = scaleCanvas.scale[i].angle * Math.PI/180
|
||||
ctx.arc(0, 0, width / 2 - ctx.lineWidth / 2, startAngle, endAngle)
|
||||
ctx.stroke()
|
||||
ctx.closePath()
|
||||
}
|
||||
|
||||
var tipRadius = width / 2 - scaleCanvas.scaleWidth
|
||||
var baseRadius = tipRadius - scaleCanvas.scaleWidth / 2
|
||||
|
||||
var tipX = tipRadius * Math.cos(scaleCanvas.angle * Math.PI/180)
|
||||
var tipY = tipRadius * Math.sin(scaleCanvas.angle * Math.PI/180)
|
||||
|
||||
var base1X = baseRadius * Math.cos((scaleCanvas.angle - 5) * Math.PI/180)
|
||||
var base1Y = baseRadius * Math.sin((scaleCanvas.angle - 5) * Math.PI/180)
|
||||
var base2X = baseRadius * Math.cos((scaleCanvas.angle + 5) * Math.PI/180)
|
||||
var base2Y = baseRadius * Math.sin((scaleCanvas.angle + 5) * Math.PI/180)
|
||||
|
||||
|
||||
ctx.lineWidth = 1
|
||||
ctx.fillStyle = Style.foregroundColor
|
||||
ctx.beginPath()
|
||||
ctx.moveTo(tipX, tipY)
|
||||
ctx.lineTo(base1X, base1Y)
|
||||
ctx.lineTo(base2X, base2Y)
|
||||
ctx.moveTo(tipX, tipY)
|
||||
ctx.stroke()
|
||||
ctx.fill()
|
||||
ctx.closePath()
|
||||
|
||||
|
||||
// ctx.beginPath()
|
||||
// ctx.strokeStyle = app.interfaceToColor(progressCanvas.interfaceName)
|
||||
// radEnd *= progressCanvas.progress
|
||||
// ctx.arc(0, 0, width / 2 - ctx.lineWidth / 2, radStart, radEnd)
|
||||
// ctx.stroke()
|
||||
// ctx.closePath()
|
||||
}
|
||||
|
||||
ColorIcon {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: Style.smallMargins
|
||||
// anchors.verticalCenterOffset: scaleCanvas.height / 2 - height
|
||||
name: app.interfaceToIcon(scaleCanvas.interfaceName)
|
||||
size: Math.min(Style.bigIconSize, parent.height / 5)
|
||||
color: app.interfaceToColor(scaleCanvas.interfaceName)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2,20 +2,20 @@
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="90"
|
||||
height="90"
|
||||
id="svg6138"
|
||||
version="1.1"
|
||||
inkscape:version="0.91+devel r"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
viewBox="0 0 90 90.000001"
|
||||
sodipodi:docname="sync-error.svg">
|
||||
sodipodi:docname="co.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs6140" />
|
||||
<sodipodi:namedview
|
||||
@ -25,9 +25,9 @@
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.6077032"
|
||||
inkscape:cx="-148.24923"
|
||||
inkscape:cy="56.003297"
|
||||
inkscape:zoom="3.7787338"
|
||||
inkscape:cx="32.153628"
|
||||
inkscape:cy="57.162005"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g6253"
|
||||
showgrid="true"
|
||||
@ -50,7 +50,13 @@
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-center="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true">
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:window-width="1462"
|
||||
inkscape:window-height="933"
|
||||
inkscape:window-x="74"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid6700"
|
||||
@ -112,7 +118,6 @@
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
@ -134,21 +139,23 @@
|
||||
height="90"
|
||||
x="174"
|
||||
y="1700.3622" />
|
||||
<path
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.99999988"
|
||||
d="m 221.99999,1732.3622 0,8.5799 c 0,2.5213 -0.0933,4.8561 -0.2793,7.0086 -0.18602,2.1215 -0.43607,4.2591 -0.74609,6.4114 l -3.99805,0 c -0.27903,-2.1523 -0.51126,-4.2899 -0.69726,-6.4114 -0.18602,-2.1217 -0.2793,-4.4565 -0.2793,-7.0086 l 0,-8.5799 6,0 z"
|
||||
id="path4185"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.99999994"
|
||||
d="m 218.99999,1758.3622 c 1.10006,0 2.04956,0.3867 2.84961,1.1582 0.76673,0.738 1.15039,1.6912 1.15039,2.8653 0,1.174 -0.38366,2.1311 -1.15039,2.8691 -0.80005,0.738 -1.74955,1.1074 -2.84961,1.1074 -1.13341,0 -2.08291,-0.3694 -2.84961,-1.1074 -0.76673,-0.738 -1.15039,-1.6951 -1.15039,-2.8691 0,-1.1741 0.38366,-2.1273 1.15039,-2.8653 0.7667,-0.7715 1.7162,-1.1582 2.84961,-1.1582 z"
|
||||
id="path4942" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 212.5,1714.3613 c -11.29815,0 -20.5,9.2019 -20.5,20.5 l 0,0.01 0,0.01 c 0.002,0.2497 0.0454,0.4967 0.0566,0.7461 -10.15029,1.2279 -18.0494,9.7961 -18.05664,20.2363 0,11.2982 9.20185,20.5 20.5,20.5 l 49,0 c 11.29815,0 20.5,-9.2018 20.5,-20.5 l 0,-0 c -0.0116,-8.9301 -5.844,-16.696 -14.21094,-19.4063 0.0644,-0.5317 0.21041,-1.0527 0.21094,-1.5898 l 0,-0 c 0,-7.4321 -6.06785,-13.5 -13.5,-13.5 l -0.002,0 -0.002,0 c -2.55665,0 -4.93658,0.9271 -7.07421,2.2754 -3.76777,-5.6712 -10.02107,-9.2653 -16.91993,-9.2754 l -0.002,0 z m -0.002,4 0.002,0 c 6.1355,0.01 11.75025,3.4089 14.59766,8.8418 l 1.18945,2.2676 1.91211,-1.7031 c 1.73553,-1.5457 3.97683,-2.4018 6.30078,-2.4063 5.27039,0 9.5,4.2296 9.5,9.5 -0.001,0.8309 -0.11279,1.6591 -0.33008,2.4629 l -0.54297,2.0117 2.03125,0.461 c 7.51333,1.7082 12.82999,8.3597 12.8418,16.0644 0,7e-4 0,0 0,0 0,6e-4 0,0 0,0 -0.002,9.1346 -7.36493,16.4961 -16.5,16.4961 l -49,0 c -9.13573,0 -16.49893,-7.3625 -16.5,-16.498 l 0,-0 c 0.007,-9.023 7.2045,-16.3348 16.22656,-16.4843 l 2.27539,-0.037 -0.33007,-2.25 c -0.10801,-0.7397 -0.16511,-1.4866 -0.17188,-2.2343 0.003,-9.133 7.36456,-16.4931 16.49805,-16.4942 z"
|
||||
id="path4154"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none"
|
||||
x="-237.37332"
|
||||
y="1764.6155"
|
||||
id="text2000"
|
||||
transform="scale(-1,1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1998"
|
||||
x="-237.37332"
|
||||
y="1764.6155"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#808080;fill-opacity:1">CO</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 6.8 KiB |
@ -2,20 +2,20 @@
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="90"
|
||||
height="90"
|
||||
id="svg6138"
|
||||
version="1.1"
|
||||
inkscape:version="0.91+devel r"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
viewBox="0 0 90 90.000001"
|
||||
sodipodi:docname="sync-error.svg">
|
||||
sodipodi:docname="co2.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs6140" />
|
||||
<sodipodi:namedview
|
||||
@ -25,9 +25,9 @@
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.6077032"
|
||||
inkscape:cx="-148.24923"
|
||||
inkscape:cy="56.003297"
|
||||
inkscape:zoom="3.7079942"
|
||||
inkscape:cx="54.072361"
|
||||
inkscape:cy="65.803771"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g6253"
|
||||
showgrid="true"
|
||||
@ -50,7 +50,13 @@
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-center="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true">
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:window-width="1462"
|
||||
inkscape:window-height="933"
|
||||
inkscape:window-x="74"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid6700"
|
||||
@ -112,7 +118,6 @@
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
@ -134,21 +139,23 @@
|
||||
height="90"
|
||||
x="174"
|
||||
y="1700.3622" />
|
||||
<path
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.99999988"
|
||||
d="m 221.99999,1732.3622 0,8.5799 c 0,2.5213 -0.0933,4.8561 -0.2793,7.0086 -0.18602,2.1215 -0.43607,4.2591 -0.74609,6.4114 l -3.99805,0 c -0.27903,-2.1523 -0.51126,-4.2899 -0.69726,-6.4114 -0.18602,-2.1217 -0.2793,-4.4565 -0.2793,-7.0086 l 0,-8.5799 6,0 z"
|
||||
id="path4185"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;display:inline;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.99999994"
|
||||
d="m 218.99999,1758.3622 c 1.10006,0 2.04956,0.3867 2.84961,1.1582 0.76673,0.738 1.15039,1.6912 1.15039,2.8653 0,1.174 -0.38366,2.1311 -1.15039,2.8691 -0.80005,0.738 -1.74955,1.1074 -2.84961,1.1074 -1.13341,0 -2.08291,-0.3694 -2.84961,-1.1074 -0.76673,-0.738 -1.15039,-1.6951 -1.15039,-2.8691 0,-1.1741 0.38366,-2.1273 1.15039,-2.8653 0.7667,-0.7715 1.7162,-1.1582 2.84961,-1.1582 z"
|
||||
id="path4942" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 212.5,1714.3613 c -11.29815,0 -20.5,9.2019 -20.5,20.5 l 0,0.01 0,0.01 c 0.002,0.2497 0.0454,0.4967 0.0566,0.7461 -10.15029,1.2279 -18.0494,9.7961 -18.05664,20.2363 0,11.2982 9.20185,20.5 20.5,20.5 l 49,0 c 11.29815,0 20.5,-9.2018 20.5,-20.5 l 0,-0 c -0.0116,-8.9301 -5.844,-16.696 -14.21094,-19.4063 0.0644,-0.5317 0.21041,-1.0527 0.21094,-1.5898 l 0,-0 c 0,-7.4321 -6.06785,-13.5 -13.5,-13.5 l -0.002,0 -0.002,0 c -2.55665,0 -4.93658,0.9271 -7.07421,2.2754 -3.76777,-5.6712 -10.02107,-9.2653 -16.91993,-9.2754 l -0.002,0 z m -0.002,4 0.002,0 c 6.1355,0.01 11.75025,3.4089 14.59766,8.8418 l 1.18945,2.2676 1.91211,-1.7031 c 1.73553,-1.5457 3.97683,-2.4018 6.30078,-2.4063 5.27039,0 9.5,4.2296 9.5,9.5 -0.001,0.8309 -0.11279,1.6591 -0.33008,2.4629 l -0.54297,2.0117 2.03125,0.461 c 7.51333,1.7082 12.82999,8.3597 12.8418,16.0644 0,7e-4 0,0 0,0 0,6e-4 0,0 0,0 -0.002,9.1346 -7.36493,16.4961 -16.5,16.4961 l -49,0 c -9.13573,0 -16.49893,-7.3625 -16.5,-16.498 l 0,-0 c 0.007,-9.023 7.2045,-16.3348 16.22656,-16.4843 l 2.27539,-0.037 -0.33007,-2.25 c -0.10801,-0.7397 -0.16511,-1.4866 -0.17188,-2.2343 0.003,-9.133 7.36456,-16.4931 16.49805,-16.4942 z"
|
||||
id="path4154"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;fill:#808080;fill-opacity:1;stroke:none"
|
||||
x="-244.68001"
|
||||
y="1764.6155"
|
||||
id="text1788"
|
||||
transform="scale(-1,1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1786"
|
||||
x="-244.68001"
|
||||
y="1764.6155"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:ubuntu;-inkscape-font-specification:ubuntu;fill:#808080;fill-opacity:1">CO2</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 6.8 KiB |
161
nymea-app/ui/images/sensors/no2.svg
Normal file
@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="90"
|
||||
id="svg6138"
|
||||
version="1.1"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
viewBox="0 0 90 90.000001"
|
||||
sodipodi:docname="no2.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs6140" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="4.534967"
|
||||
inkscape:cx="35.832675"
|
||||
inkscape:cy="71.224333"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g6253"
|
||||
showgrid="true"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:snap-global="true"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:snap-bbox-midpoints="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:object-paths="true"
|
||||
inkscape:snap-intersection-paths="true"
|
||||
inkscape:object-nodes="true"
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:snap-others="true"
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-center="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:window-width="1462"
|
||||
inkscape:window-height="933"
|
||||
inkscape:window-x="74"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid6700"
|
||||
empspacing="6" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="62,87"
|
||||
id="guide4084" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="63,84"
|
||||
id="guide4086" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="63,81"
|
||||
id="guide4088" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="3,70"
|
||||
id="guide4090" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="6,66"
|
||||
id="guide4092" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="9,59"
|
||||
id="guide4094" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="87,63"
|
||||
id="guide4096" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="84,64"
|
||||
id="guide4098" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="81,55"
|
||||
id="guide4100" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="60,3"
|
||||
id="guide4102" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="61,6"
|
||||
id="guide4104" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="62,9"
|
||||
id="guide4106" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata6143">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-283.57144,-358.79068)">
|
||||
<g
|
||||
id="g6253"
|
||||
inkscape:export-filename="planemode01.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
transform="matrix(-1,0,0,1,547.57143,-1341.5715)">
|
||||
<rect
|
||||
style="fill:none;stroke:none"
|
||||
id="rect6257"
|
||||
width="90"
|
||||
height="90"
|
||||
x="174"
|
||||
y="1700.3622" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 212.5,1714.3613 c -11.29815,0 -20.5,9.2019 -20.5,20.5 l 0,0.01 0,0.01 c 0.002,0.2497 0.0454,0.4967 0.0566,0.7461 -10.15029,1.2279 -18.0494,9.7961 -18.05664,20.2363 0,11.2982 9.20185,20.5 20.5,20.5 l 49,0 c 11.29815,0 20.5,-9.2018 20.5,-20.5 l 0,-0 c -0.0116,-8.9301 -5.844,-16.696 -14.21094,-19.4063 0.0644,-0.5317 0.21041,-1.0527 0.21094,-1.5898 l 0,-0 c 0,-7.4321 -6.06785,-13.5 -13.5,-13.5 l -0.002,0 -0.002,0 c -2.55665,0 -4.93658,0.9271 -7.07421,2.2754 -3.76777,-5.6712 -10.02107,-9.2653 -16.91993,-9.2754 l -0.002,0 z m -0.002,4 0.002,0 c 6.1355,0.01 11.75025,3.4089 14.59766,8.8418 l 1.18945,2.2676 1.91211,-1.7031 c 1.73553,-1.5457 3.97683,-2.4018 6.30078,-2.4063 5.27039,0 9.5,4.2296 9.5,9.5 -0.001,0.8309 -0.11279,1.6591 -0.33008,2.4629 l -0.54297,2.0117 2.03125,0.461 c 7.51333,1.7082 12.82999,8.3597 12.8418,16.0644 0,7e-4 0,0 0,0 0,6e-4 0,0 0,0 -0.002,9.1346 -7.36493,16.4961 -16.5,16.4961 l -49,0 c -9.13573,0 -16.49893,-7.3625 -16.5,-16.498 l 0,-0 c 0.007,-9.023 7.2045,-16.3348 16.22656,-16.4843 l 2.27539,-0.037 -0.33007,-2.25 c -0.10801,-0.7397 -0.16511,-1.4866 -0.17188,-2.2343 0.003,-9.133 7.36456,-16.4931 16.49805,-16.4942 z"
|
||||
id="path4154"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;fill:#808080;fill-opacity:1;stroke:none"
|
||||
x="-246.76001"
|
||||
y="1764.5826"
|
||||
id="text2250"
|
||||
transform="scale(-1,1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2248"
|
||||
x="-246.76001"
|
||||
y="1764.5826"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#808080;fill-opacity:1">NO2</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.8 KiB |
161
nymea-app/ui/images/sensors/o3.svg
Normal file
@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="90"
|
||||
id="svg6138"
|
||||
version="1.1"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
viewBox="0 0 90 90.000001"
|
||||
sodipodi:docname="03.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs6140" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.7787338"
|
||||
inkscape:cx="25.537655"
|
||||
inkscape:cy="57.162005"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g6253"
|
||||
showgrid="true"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:snap-global="true"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:snap-bbox-midpoints="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:object-paths="true"
|
||||
inkscape:snap-intersection-paths="true"
|
||||
inkscape:object-nodes="true"
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:snap-others="true"
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-center="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:window-width="1462"
|
||||
inkscape:window-height="933"
|
||||
inkscape:window-x="74"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid6700"
|
||||
empspacing="6" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="62,87"
|
||||
id="guide4084" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="63,84"
|
||||
id="guide4086" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="63,81"
|
||||
id="guide4088" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="3,70"
|
||||
id="guide4090" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="6,66"
|
||||
id="guide4092" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="9,59"
|
||||
id="guide4094" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="87,63"
|
||||
id="guide4096" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="84,64"
|
||||
id="guide4098" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="81,55"
|
||||
id="guide4100" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="60,3"
|
||||
id="guide4102" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="61,6"
|
||||
id="guide4104" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="62,9"
|
||||
id="guide4106" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata6143">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-283.57144,-358.79068)">
|
||||
<g
|
||||
id="g6253"
|
||||
inkscape:export-filename="planemode01.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
transform="matrix(-1,0,0,1,547.57143,-1341.5715)">
|
||||
<rect
|
||||
style="fill:none;stroke:none"
|
||||
id="rect6257"
|
||||
width="90"
|
||||
height="90"
|
||||
x="174"
|
||||
y="1700.3622" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 212.5,1714.3613 c -11.29815,0 -20.5,9.2019 -20.5,20.5 l 0,0.01 0,0.01 c 0.002,0.2497 0.0454,0.4967 0.0566,0.7461 -10.15029,1.2279 -18.0494,9.7961 -18.05664,20.2363 0,11.2982 9.20185,20.5 20.5,20.5 l 49,0 c 11.29815,0 20.5,-9.2018 20.5,-20.5 l 0,-0 c -0.0116,-8.9301 -5.844,-16.696 -14.21094,-19.4063 0.0644,-0.5317 0.21041,-1.0527 0.21094,-1.5898 l 0,-0 c 0,-7.4321 -6.06785,-13.5 -13.5,-13.5 l -0.002,0 -0.002,0 c -2.55665,0 -4.93658,0.9271 -7.07421,2.2754 -3.76777,-5.6712 -10.02107,-9.2653 -16.91993,-9.2754 l -0.002,0 z m -0.002,4 0.002,0 c 6.1355,0.01 11.75025,3.4089 14.59766,8.8418 l 1.18945,2.2676 1.91211,-1.7031 c 1.73553,-1.5457 3.97683,-2.4018 6.30078,-2.4063 5.27039,0 9.5,4.2296 9.5,9.5 -0.001,0.8309 -0.11279,1.6591 -0.33008,2.4629 l -0.54297,2.0117 2.03125,0.461 c 7.51333,1.7082 12.82999,8.3597 12.8418,16.0644 0,7e-4 0,0 0,0 0,6e-4 0,0 0,0 -0.002,9.1346 -7.36493,16.4961 -16.5,16.4961 l -49,0 c -9.13573,0 -16.49893,-7.3625 -16.5,-16.498 l 0,-0 c 0.007,-9.023 7.2045,-16.3348 16.22656,-16.4843 l 2.27539,-0.037 -0.33007,-2.25 c -0.10801,-0.7397 -0.16511,-1.4866 -0.17188,-2.2343 0.003,-9.133 7.36456,-16.4931 16.49805,-16.4942 z"
|
||||
id="path4154"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none"
|
||||
x="-236.66667"
|
||||
y="1764.6155"
|
||||
id="text2000"
|
||||
transform="scale(-1,1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1998"
|
||||
x="-236.66667"
|
||||
y="1764.6155"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#808080;fill-opacity:1">O3</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.8 KiB |
161
nymea-app/ui/images/sensors/pm10.svg
Normal file
@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="90"
|
||||
id="svg6138"
|
||||
version="1.1"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
viewBox="0 0 90 90.000001"
|
||||
sodipodi:docname="pm10.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs6140" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="4.534967"
|
||||
inkscape:cx="25.909781"
|
||||
inkscape:cy="71.224333"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g6253"
|
||||
showgrid="true"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:snap-global="true"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:snap-bbox-midpoints="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:object-paths="true"
|
||||
inkscape:snap-intersection-paths="true"
|
||||
inkscape:object-nodes="true"
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:snap-others="true"
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-center="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:window-width="1462"
|
||||
inkscape:window-height="933"
|
||||
inkscape:window-x="74"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid6700"
|
||||
empspacing="6" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="62,87"
|
||||
id="guide4084" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="63,84"
|
||||
id="guide4086" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="63,81"
|
||||
id="guide4088" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="3,70"
|
||||
id="guide4090" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="6,66"
|
||||
id="guide4092" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="9,59"
|
||||
id="guide4094" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="87,63"
|
||||
id="guide4096" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="84,64"
|
||||
id="guide4098" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="81,55"
|
||||
id="guide4100" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="60,3"
|
||||
id="guide4102" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="61,6"
|
||||
id="guide4104" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="62,9"
|
||||
id="guide4106" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata6143">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-283.57144,-358.79068)">
|
||||
<g
|
||||
id="g6253"
|
||||
inkscape:export-filename="planemode01.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
transform="matrix(-1,0,0,1,547.57143,-1341.5715)">
|
||||
<rect
|
||||
style="fill:none;stroke:none"
|
||||
id="rect6257"
|
||||
width="90"
|
||||
height="90"
|
||||
x="174"
|
||||
y="1700.3622" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 212.5,1714.3613 c -11.29815,0 -20.5,9.2019 -20.5,20.5 l 0,0.01 0,0.01 c 0.002,0.2497 0.0454,0.4967 0.0566,0.7461 -10.15029,1.2279 -18.0494,9.7961 -18.05664,20.2363 0,11.2982 9.20185,20.5 20.5,20.5 l 49,0 c 11.29815,0 20.5,-9.2018 20.5,-20.5 l 0,-0 c -0.0116,-8.9301 -5.844,-16.696 -14.21094,-19.4063 0.0644,-0.5317 0.21041,-1.0527 0.21094,-1.5898 l 0,-0 c 0,-7.4321 -6.06785,-13.5 -13.5,-13.5 l -0.002,0 -0.002,0 c -2.55665,0 -4.93658,0.9271 -7.07421,2.2754 -3.76777,-5.6712 -10.02107,-9.2653 -16.91993,-9.2754 l -0.002,0 z m -0.002,4 0.002,0 c 6.1355,0.01 11.75025,3.4089 14.59766,8.8418 l 1.18945,2.2676 1.91211,-1.7031 c 1.73553,-1.5457 3.97683,-2.4018 6.30078,-2.4063 5.27039,0 9.5,4.2296 9.5,9.5 -0.001,0.8309 -0.11279,1.6591 -0.33008,2.4629 l -0.54297,2.0117 2.03125,0.461 c 7.51333,1.7082 12.82999,8.3597 12.8418,16.0644 0,7e-4 0,0 0,0 0,6e-4 0,0 0,0 -0.002,9.1346 -7.36493,16.4961 -16.5,16.4961 l -49,0 c -9.13573,0 -16.49893,-7.3625 -16.5,-16.498 l 0,-0 c 0.007,-9.023 7.2045,-16.3348 16.22656,-16.4843 l 2.27539,-0.037 -0.33007,-2.25 c -0.10801,-0.7397 -0.16511,-1.4866 -0.17188,-2.2343 0.003,-9.133 7.36456,-16.4931 16.49805,-16.4942 z"
|
||||
id="path4154"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;fill:#808080;fill-opacity:1;stroke:none"
|
||||
x="-254.24001"
|
||||
y="1764.5826"
|
||||
id="text2250"
|
||||
transform="scale(-1,1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2248"
|
||||
x="-254.24001"
|
||||
y="1764.5826"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#808080;fill-opacity:1">PM10</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.8 KiB |
161
nymea-app/ui/images/sensors/pm25.svg
Normal file
@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="90"
|
||||
id="svg6138"
|
||||
version="1.1"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
viewBox="0 0 90 90.000001"
|
||||
sodipodi:docname="pm25.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs6140" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="4.534967"
|
||||
inkscape:cx="69.129499"
|
||||
inkscape:cy="71.224333"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g6253"
|
||||
showgrid="true"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:snap-global="true"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:snap-bbox-midpoints="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:object-paths="true"
|
||||
inkscape:snap-intersection-paths="true"
|
||||
inkscape:object-nodes="true"
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:snap-others="true"
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-center="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:window-width="1462"
|
||||
inkscape:window-height="933"
|
||||
inkscape:window-x="74"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid6700"
|
||||
empspacing="6" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="62,87"
|
||||
id="guide4084" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="63,84"
|
||||
id="guide4086" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="63,81"
|
||||
id="guide4088" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="3,70"
|
||||
id="guide4090" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="6,66"
|
||||
id="guide4092" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="9,59"
|
||||
id="guide4094" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="87,63"
|
||||
id="guide4096" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="84,64"
|
||||
id="guide4098" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="81,55"
|
||||
id="guide4100" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="60,3"
|
||||
id="guide4102" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="61,6"
|
||||
id="guide4104" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="62,9"
|
||||
id="guide4106" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata6143">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-283.57144,-358.79068)">
|
||||
<g
|
||||
id="g6253"
|
||||
inkscape:export-filename="planemode01.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
transform="matrix(-1,0,0,1,547.57143,-1341.5715)">
|
||||
<rect
|
||||
style="fill:none;stroke:none"
|
||||
id="rect6257"
|
||||
width="90"
|
||||
height="90"
|
||||
x="174"
|
||||
y="1700.3622" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 212.5,1714.3613 c -11.29815,0 -20.5,9.2019 -20.5,20.5 l 0,0.01 0,0.01 c 0.002,0.2497 0.0454,0.4967 0.0566,0.7461 -10.15029,1.2279 -18.0494,9.7961 -18.05664,20.2363 0,11.2982 9.20185,20.5 20.5,20.5 l 49,0 c 11.29815,0 20.5,-9.2018 20.5,-20.5 l 0,-0 c -0.0116,-8.9301 -5.844,-16.696 -14.21094,-19.4063 0.0644,-0.5317 0.21041,-1.0527 0.21094,-1.5898 l 0,-0 c 0,-7.4321 -6.06785,-13.5 -13.5,-13.5 l -0.002,0 -0.002,0 c -2.55665,0 -4.93658,0.9271 -7.07421,2.2754 -3.76777,-5.6712 -10.02107,-9.2653 -16.91993,-9.2754 l -0.002,0 z m -0.002,4 0.002,0 c 6.1355,0.01 11.75025,3.4089 14.59766,8.8418 l 1.18945,2.2676 1.91211,-1.7031 c 1.73553,-1.5457 3.97683,-2.4018 6.30078,-2.4063 5.27039,0 9.5,4.2296 9.5,9.5 -0.001,0.8309 -0.11279,1.6591 -0.33008,2.4629 l -0.54297,2.0117 2.03125,0.461 c 7.51333,1.7082 12.82999,8.3597 12.8418,16.0644 0,7e-4 0,0 0,0 0,6e-4 0,0 0,0 -0.002,9.1346 -7.36493,16.4961 -16.5,16.4961 l -49,0 c -9.13573,0 -16.49893,-7.3625 -16.5,-16.498 l 0,-0 c 0.007,-9.023 7.2045,-16.3348 16.22656,-16.4843 l 2.27539,-0.037 -0.33007,-2.25 c -0.10801,-0.7397 -0.16511,-1.4866 -0.17188,-2.2343 0.003,-9.133 7.36456,-16.4931 16.49805,-16.4942 z"
|
||||
id="path4154"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;fill:#808080;fill-opacity:1;stroke:none"
|
||||
x="-257.21332"
|
||||
y="1764.5826"
|
||||
id="text2250"
|
||||
transform="scale(-1,1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2248"
|
||||
x="-257.21332"
|
||||
y="1764.5826"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#808080;fill-opacity:1">PM2.5</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.8 KiB |
161
nymea-app/ui/images/sensors/voc.svg
Normal file
@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="90"
|
||||
height="90"
|
||||
id="svg6138"
|
||||
version="1.1"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
viewBox="0 0 90 90.000001"
|
||||
sodipodi:docname="voc.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs
|
||||
id="defs6140" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.6259"
|
||||
inkscape:cx="30.750986"
|
||||
inkscape:cy="65.363083"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g6253"
|
||||
showgrid="true"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:snap-global="true"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:bbox-paths="true"
|
||||
inkscape:snap-bbox-midpoints="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:object-paths="true"
|
||||
inkscape:snap-intersection-paths="true"
|
||||
inkscape:object-nodes="true"
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:snap-others="true"
|
||||
inkscape:snap-object-midpoints="true"
|
||||
inkscape:snap-center="true"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:window-width="1462"
|
||||
inkscape:window-height="933"
|
||||
inkscape:window-x="74"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid6700"
|
||||
empspacing="6" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="62,87"
|
||||
id="guide4084" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="63,84"
|
||||
id="guide4086" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="63,81"
|
||||
id="guide4088" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="3,70"
|
||||
id="guide4090" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="6,66"
|
||||
id="guide4092" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="9,59"
|
||||
id="guide4094" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="87,63"
|
||||
id="guide4096" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="84,64"
|
||||
id="guide4098" />
|
||||
<sodipodi:guide
|
||||
orientation="1,0"
|
||||
position="81,55"
|
||||
id="guide4100" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="60,3"
|
||||
id="guide4102" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="61,6"
|
||||
id="guide4104" />
|
||||
<sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="62,9"
|
||||
id="guide4106" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata6143">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-283.57144,-358.79068)">
|
||||
<g
|
||||
id="g6253"
|
||||
inkscape:export-filename="planemode01.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
transform="matrix(-1,0,0,1,547.57143,-1341.5715)">
|
||||
<rect
|
||||
style="fill:none;stroke:none"
|
||||
id="rect6257"
|
||||
width="90"
|
||||
height="90"
|
||||
x="174"
|
||||
y="1700.3622" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 212.5,1714.3613 c -11.29815,0 -20.5,9.2019 -20.5,20.5 l 0,0.01 0,0.01 c 0.002,0.2497 0.0454,0.4967 0.0566,0.7461 -10.15029,1.2279 -18.0494,9.7961 -18.05664,20.2363 0,11.2982 9.20185,20.5 20.5,20.5 l 49,0 c 11.29815,0 20.5,-9.2018 20.5,-20.5 l 0,-0 c -0.0116,-8.9301 -5.844,-16.696 -14.21094,-19.4063 0.0644,-0.5317 0.21041,-1.0527 0.21094,-1.5898 l 0,-0 c 0,-7.4321 -6.06785,-13.5 -13.5,-13.5 l -0.002,0 -0.002,0 c -2.55665,0 -4.93658,0.9271 -7.07421,2.2754 -3.76777,-5.6712 -10.02107,-9.2653 -16.91993,-9.2754 l -0.002,0 z m -0.002,4 0.002,0 c 6.1355,0.01 11.75025,3.4089 14.59766,8.8418 l 1.18945,2.2676 1.91211,-1.7031 c 1.73553,-1.5457 3.97683,-2.4018 6.30078,-2.4063 5.27039,0 9.5,4.2296 9.5,9.5 -0.001,0.8309 -0.11279,1.6591 -0.33008,2.4629 l -0.54297,2.0117 2.03125,0.461 c 7.51333,1.7082 12.82999,8.3597 12.8418,16.0644 0,7e-4 0,0 0,0 0,6e-4 0,0 0,0 -0.002,9.1346 -7.36493,16.4961 -16.5,16.4961 l -49,0 c -9.13573,0 -16.49893,-7.3625 -16.5,-16.498 l 0,-0 c 0.007,-9.023 7.2045,-16.3348 16.22656,-16.4843 l 2.27539,-0.037 -0.33007,-2.25 c -0.10801,-0.7397 -0.16511,-1.4866 -0.17188,-2.2343 0.003,-9.133 7.36456,-16.4931 16.49805,-16.4942 z"
|
||||
id="path4154"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;fill:#808080;fill-opacity:1;stroke:none"
|
||||
x="-245.95999"
|
||||
y="1764.6155"
|
||||
id="text1722"
|
||||
transform="scale(-1,1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1720"
|
||||
x="-245.95999"
|
||||
y="1764.6155"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:ubuntu;-inkscape-font-specification:ubuntu;fill:#808080;fill-opacity:1">VOC</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.8 KiB |
244
nymea-app/ui/utils/AirQualityIndex.qml
Normal file
@ -0,0 +1,244 @@
|
||||
pragma Singleton
|
||||
import QtQuick 2.9
|
||||
import Nymea 1.0
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
property var caqiPm10: [
|
||||
{
|
||||
"value": 25,
|
||||
"angle": 54,
|
||||
"text": qsTr("Very low"),
|
||||
"color": Style.blue
|
||||
},
|
||||
{
|
||||
"value": 50,
|
||||
"angle": 108,
|
||||
"text": qsTr("Low"),
|
||||
"color": Style.green
|
||||
},
|
||||
{
|
||||
"value": 90,
|
||||
"angle": 162,
|
||||
"text": qsTr("Medium"),
|
||||
"color": Style.yellow
|
||||
},
|
||||
{
|
||||
"value": 180,
|
||||
"angle": 216,
|
||||
"text": qsTr("High"),
|
||||
"color": Style.orange
|
||||
},
|
||||
{
|
||||
"value": 500,
|
||||
"angle": 270,
|
||||
"text": qsTr("Very high"),
|
||||
"color": Style.red
|
||||
}
|
||||
]
|
||||
|
||||
property var caqiPm25: [
|
||||
{
|
||||
"value": 15,
|
||||
"angle": 54,
|
||||
"text": qsTr("Very low"),
|
||||
"color": Style.blue
|
||||
},
|
||||
{
|
||||
"value": 30,
|
||||
"angle": 108,
|
||||
"text": qsTr("Low"),
|
||||
"color": Style.green
|
||||
},
|
||||
{
|
||||
"value": 55,
|
||||
"angle": 162,
|
||||
"text": qsTr("Medium"),
|
||||
"color": Style.yellow
|
||||
},
|
||||
{
|
||||
"value": 110,
|
||||
"angle": 216,
|
||||
"text": qsTr("High"),
|
||||
"color": Style.orange
|
||||
},
|
||||
{
|
||||
"value": 500,
|
||||
"angle": 270,
|
||||
"text": qsTr("Very high"),
|
||||
"color": Style.red
|
||||
}
|
||||
]
|
||||
|
||||
property var caqiO3: [
|
||||
{
|
||||
"value": 60,
|
||||
"angle": 54,
|
||||
"text": qsTr("Very low"),
|
||||
"color": Style.blue
|
||||
},
|
||||
{
|
||||
"value": 120,
|
||||
"angle": 108,
|
||||
"text": qsTr("Low"),
|
||||
"color": Style.green
|
||||
},
|
||||
{
|
||||
"value": 180,
|
||||
"angle": 162,
|
||||
"text": qsTr("Medium"),
|
||||
"color": Style.yellow
|
||||
},
|
||||
{
|
||||
"value": 240,
|
||||
"angle": 216,
|
||||
"text": qsTr("High"),
|
||||
"color": Style.orange
|
||||
},
|
||||
{
|
||||
"value": 500,
|
||||
"angle": 270,
|
||||
"text": qsTr("Very high"),
|
||||
"color": Style.red
|
||||
}
|
||||
]
|
||||
|
||||
property var caqiNo2: [
|
||||
{
|
||||
"value": 50,
|
||||
"angle": 54,
|
||||
"text": qsTr("Very low"),
|
||||
"color": Style.blue
|
||||
},
|
||||
{
|
||||
"value": 100,
|
||||
"angle": 108,
|
||||
"text": qsTr("Low"),
|
||||
"color": Style.green
|
||||
},
|
||||
{
|
||||
"value": 200,
|
||||
"angle": 162,
|
||||
"text": qsTr("Medium"),
|
||||
"color": Style.yellow
|
||||
},
|
||||
{
|
||||
"value": 400,
|
||||
"angle": 216,
|
||||
"text": qsTr("High"),
|
||||
"color": Style.orange
|
||||
},
|
||||
{
|
||||
"value": 800,
|
||||
"angle": 270,
|
||||
"text": qsTr("Very high"),
|
||||
"color": Style.red
|
||||
}
|
||||
]
|
||||
|
||||
property var caqiCo: [
|
||||
{
|
||||
"value": 5,
|
||||
"angle": 54,
|
||||
"text": qsTr("Very low"),
|
||||
"color": Style.blue
|
||||
},
|
||||
{
|
||||
"value": 7.5,
|
||||
"angle": 108,
|
||||
"text": qsTr("Low"),
|
||||
"color": Style.green
|
||||
},
|
||||
{
|
||||
"value": 10,
|
||||
"angle": 162,
|
||||
"text": qsTr("Medium"),
|
||||
"color": Style.yellow
|
||||
},
|
||||
{
|
||||
"value": 20,
|
||||
"angle": 216,
|
||||
"text": qsTr("High"),
|
||||
"color": Style.orange
|
||||
},
|
||||
{
|
||||
"value": 50,
|
||||
"angle": 270,
|
||||
"text": qsTr("Very high"),
|
||||
"color": Style.red
|
||||
}
|
||||
]
|
||||
|
||||
property var iaqVoc: [
|
||||
{
|
||||
"value": 65,
|
||||
"angle": 54,
|
||||
"text": qsTr("Excellent"),
|
||||
"color": Style.blue
|
||||
},
|
||||
{
|
||||
"value": 220,
|
||||
"angle": 108,
|
||||
"text": qsTr("Good"),
|
||||
"color": Style.green
|
||||
},
|
||||
{
|
||||
"value": 660,
|
||||
"angle": 162,
|
||||
"text": qsTr("Moderate"),
|
||||
"color": Style.yellow
|
||||
},
|
||||
{
|
||||
"value": 2200,
|
||||
"angle": 216,
|
||||
"text": qsTr("Poor"),
|
||||
"color": Style.orange
|
||||
},
|
||||
{
|
||||
"value": 65535,
|
||||
"angle": 270,
|
||||
"text": qsTr("Unhealthy"),
|
||||
"color": Style.red
|
||||
}
|
||||
]
|
||||
|
||||
property var epaAqiO3: [
|
||||
{
|
||||
"value": 54,
|
||||
"angle": 54,
|
||||
"text": qsTr("Good"),
|
||||
"color": Style.blue
|
||||
},
|
||||
{
|
||||
"value": 70,
|
||||
"angle": 108,
|
||||
"text": qsTr("Moderate"),
|
||||
"color": Style.blue
|
||||
},
|
||||
{
|
||||
"value": 85,
|
||||
"angle": 162,
|
||||
"text": qsTr("Unhealthy for sensitive groups"),
|
||||
"color": Style.yellow
|
||||
},
|
||||
{
|
||||
"value": 105,
|
||||
"angle": 216,
|
||||
"text": qsTr("Unhealthy"),
|
||||
"color": Style.orange
|
||||
},
|
||||
{
|
||||
"value": 200,
|
||||
"angle": 270,
|
||||
"text": qsTr("Very unhealthy"),
|
||||
"color": Style.red
|
||||
},
|
||||
{
|
||||
"value": 200,
|
||||
"angle": 270,
|
||||
"text": qsTr("Hazardeous"),
|
||||
"color": Style.purple
|
||||
}
|
||||
]
|
||||
}
|
||||