483 lines
16 KiB
YAML
483 lines
16 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: grafana-dashboard-shelly-ws90
|
|
namespace: monitoring
|
|
labels:
|
|
grafana_dashboard: "1"
|
|
annotations:
|
|
grafana_dashboard_folder: "🏡 Home"
|
|
data:
|
|
shelly-ws90.json: |
|
|
{
|
|
"uid": "shelly-ws90",
|
|
"title": "🌦️ Shelly WS90 Weather Console",
|
|
"tags": ["home", "weather", "outdoor", "prometheus"],
|
|
"timezone": "browser",
|
|
"schemaVersion": 39,
|
|
"version": 1,
|
|
"refresh": "30s",
|
|
"editable": false,
|
|
"graphTooltip": 2,
|
|
"time": { "from": "now-24h", "to": "now" },
|
|
"panels": [
|
|
{
|
|
"id": 1,
|
|
"type": "stat",
|
|
"title": "📶 Signal Strength",
|
|
"gridPos": { "x": 0, "y": 0, "w": 4, "h": 3 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_linkquality_lqi{entity_id=\"sensor.shelly_ws90_linkquality\"}",
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "none",
|
|
"min": 0,
|
|
"max": 255,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "red", "value": null },
|
|
{ "color": "orange", "value": 50 },
|
|
{ "color": "yellow", "value": 100 },
|
|
{ "color": "green", "value": 150 }
|
|
]
|
|
},
|
|
"color": { "mode": "thresholds" }
|
|
}
|
|
},
|
|
"options": {
|
|
"graphMode": "none",
|
|
"colorMode": "value",
|
|
"textMode": "auto",
|
|
"reduceOptions": { "values": false, "calcs": ["lastNotNull"] }
|
|
}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"type": "stat",
|
|
"title": "🔋 Battery Level",
|
|
"gridPos": { "x": 4, "y": 0, "w": 4, "h": 3 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_battery_percent{entity_id=\"sensor.shelly_ws90_battery\"}",
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"min": 0,
|
|
"max": 100,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "red", "value": null },
|
|
{ "color": "orange", "value": 20 },
|
|
{ "color": "green", "value": 50 }
|
|
]
|
|
},
|
|
"color": { "mode": "thresholds" }
|
|
}
|
|
},
|
|
"options": {
|
|
"graphMode": "none",
|
|
"colorMode": "value",
|
|
"textMode": "auto",
|
|
"reduceOptions": { "values": false, "calcs": ["lastNotNull"] }
|
|
}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"type": "stat",
|
|
"title": "🧭 Barometric Pressure",
|
|
"gridPos": { "x": 8, "y": 0, "w": 8, "h": 3 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_pressure_kpa{entity_id=\"sensor.shelly_ws90_pressure\"} * 10",
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "pressurehpa",
|
|
"decimals": 1,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "blue", "value": null },
|
|
{ "color": "green", "value": 1000 },
|
|
{ "color": "orange", "value": 1020 }
|
|
]
|
|
},
|
|
"color": { "mode": "value" }
|
|
}
|
|
},
|
|
"options": {
|
|
"graphMode": "none",
|
|
"colorMode": "value",
|
|
"textMode": "auto",
|
|
"reduceOptions": { "values": false, "calcs": ["lastNotNull"] }
|
|
}
|
|
},
|
|
{
|
|
"id": 4,
|
|
"type": "stat",
|
|
"title": "☀️ Light Level",
|
|
"gridPos": { "x": 16, "y": 0, "w": 8, "h": 3 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_illuminance_lux_lx{entity_id=\"sensor.shelly_ws90_illuminance_lux\"}",
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "lux",
|
|
"decimals": 0,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "purple", "value": null },
|
|
{ "color": "orange", "value": 1000 },
|
|
{ "color": "yellow", "value": 5000 }
|
|
]
|
|
},
|
|
"color": { "mode": "value" }
|
|
}
|
|
},
|
|
"options": {
|
|
"graphMode": "none",
|
|
"colorMode": "value",
|
|
"textMode": "auto",
|
|
"reduceOptions": { "values": false, "calcs": ["lastNotNull"] }
|
|
}
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "stat",
|
|
"title": "🌡️ Outdoor Temperature",
|
|
"gridPos": { "x": 0, "y": 3, "w": 12, "h": 8 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_temperature_celsius{entity_id=\"sensor.shelly_ws90_temperature\"}",
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "celsius",
|
|
"decimals": 1,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "#5794F2", "value": null },
|
|
{ "color": "#73BF69", "value": 15 },
|
|
{ "color": "#FFD700", "value": 22 },
|
|
{ "color": "#FF7383", "value": 26 },
|
|
{ "color": "#C4162A", "value": 30 }
|
|
]
|
|
},
|
|
"color": { "mode": "thresholds" }
|
|
}
|
|
},
|
|
"options": {
|
|
"graphMode": "area",
|
|
"colorMode": "background",
|
|
"textMode": "auto",
|
|
"reduceOptions": { "values": false, "calcs": ["lastNotNull"] }
|
|
}
|
|
},
|
|
{
|
|
"id": 6,
|
|
"type": "stat",
|
|
"title": "💧 Outdoor Humidity",
|
|
"gridPos": { "x": 12, "y": 3, "w": 12, "h": 8 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_humidity_percent{entity_id=\"sensor.shelly_ws90_humidity\"}",
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "percent",
|
|
"decimals": 0,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "#FF7383", "value": null },
|
|
{ "color": "#FFD700", "value": 30 },
|
|
{ "color": "#73BF69", "value": 40 },
|
|
{ "color": "#5794F2", "value": 70 }
|
|
]
|
|
},
|
|
"color": { "mode": "thresholds" }
|
|
}
|
|
},
|
|
"options": {
|
|
"graphMode": "area",
|
|
"colorMode": "background",
|
|
"textMode": "auto",
|
|
"reduceOptions": { "values": false, "calcs": ["lastNotNull"] }
|
|
}
|
|
},
|
|
{
|
|
"id": 7,
|
|
"type": "gauge",
|
|
"title": "💨 Wind Speed",
|
|
"gridPos": { "x": 0, "y": 11, "w": 6, "h": 6 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_wind_speed_km_per_h{entity_id=~\"sensor.shelly_ws90_wind_speed.*\"} or on() vector(0)",
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "velocitykmh",
|
|
"min": 0,
|
|
"max": 100,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "green", "value": null },
|
|
{ "color": "yellow", "value": 15 },
|
|
{ "color": "orange", "value": 30 },
|
|
{ "color": "red", "value": 50 }
|
|
]
|
|
},
|
|
"color": { "mode": "thresholds" }
|
|
}
|
|
},
|
|
"options": {
|
|
"reduceOptions": { "values": false, "calcs": ["lastNotNull"] },
|
|
"orientation": "auto",
|
|
"showThresholdLabels": true,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 8,
|
|
"type": "gauge",
|
|
"title": "🧭 Wind Direction",
|
|
"gridPos": { "x": 6, "y": 11, "w": 6, "h": 6 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_wind_direction{entity_id=~\"sensor.shelly_ws90_wind_direction.*\"} or on() vector(0)",
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "deg",
|
|
"min": 0,
|
|
"max": 360,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "blue", "value": null }
|
|
]
|
|
},
|
|
"color": { "mode": "fixed" }
|
|
}
|
|
},
|
|
"options": {
|
|
"reduceOptions": { "values": false, "calcs": ["lastNotNull"] },
|
|
"orientation": "auto",
|
|
"showThresholdLabels": true,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 9,
|
|
"type": "gauge",
|
|
"title": "🌧️ Precipitation Rate",
|
|
"gridPos": { "x": 12, "y": 11, "w": 6, "h": 6 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_precipitation_intensity_mm_per_h{entity_id=~\"sensor.shelly_ws90_precipitation.*|sensor.shelly_ws90_rain.*\"} or on() vector(0)",
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "lengthmm",
|
|
"min": 0,
|
|
"max": 50,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "green", "value": null },
|
|
{ "color": "blue", "value": 0.1 },
|
|
{ "color": "dark-blue", "value": 5 }
|
|
]
|
|
},
|
|
"color": { "mode": "thresholds" }
|
|
}
|
|
},
|
|
"options": {
|
|
"reduceOptions": { "values": false, "calcs": ["lastNotNull"] },
|
|
"orientation": "auto",
|
|
"showThresholdLabels": true,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 10,
|
|
"type": "gauge",
|
|
"title": "🔆 Solar Illuminance",
|
|
"gridPos": { "x": 18, "y": 11, "w": 6, "h": 6 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_illuminance_lux_lx{entity_id=\"sensor.shelly_ws90_illuminance_lux\"}",
|
|
"refId": "A"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"unit": "lux",
|
|
"min": 0,
|
|
"max": 100000,
|
|
"thresholds": {
|
|
"mode": "absolute",
|
|
"steps": [
|
|
{ "color": "blue", "value": null },
|
|
{ "color": "orange", "value": 1000 },
|
|
{ "color": "yellow", "value": 10000 }
|
|
]
|
|
},
|
|
"color": { "mode": "thresholds" }
|
|
}
|
|
},
|
|
"options": {
|
|
"reduceOptions": { "values": false, "calcs": ["lastNotNull"] },
|
|
"orientation": "auto",
|
|
"showThresholdLabels": true,
|
|
"showThresholdMarkers": true
|
|
}
|
|
},
|
|
{
|
|
"id": 11,
|
|
"type": "timeseries",
|
|
"title": "📈 Temperature & Humidity History (24h)",
|
|
"gridPos": { "x": 0, "y": 17, "w": 12, "h": 8 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_temperature_celsius{entity_id=\"sensor.shelly_ws90_temperature\"}",
|
|
"legendFormat": "Temperature",
|
|
"refId": "A"
|
|
},
|
|
{
|
|
"expr": "homeassistant_sensor_humidity_percent{entity_id=\"sensor.shelly_ws90_humidity\"}",
|
|
"legendFormat": "Humidity",
|
|
"refId": "B"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"custom": {
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": true,
|
|
"showPoints": "never"
|
|
}
|
|
},
|
|
"overrides": [
|
|
{
|
|
"matcher": { "id": "byName", "options": "Temperature" },
|
|
"properties": [
|
|
{ "id": "unit", "value": "celsius" },
|
|
{ "id": "color", "value": { "fixedColor": "orange", "mode": "fixed" } }
|
|
]
|
|
},
|
|
{
|
|
"matcher": { "id": "byName", "options": "Humidity" },
|
|
"properties": [
|
|
{ "id": "unit", "value": "percent" },
|
|
{ "id": "color", "value": { "fixedColor": "blue", "mode": "fixed" } },
|
|
{ "id": "custom.axisPlacement", "value": "right" }
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "table",
|
|
"placement": "bottom",
|
|
"calcs": ["lastNotNull", "min", "max", "mean"]
|
|
},
|
|
"tooltip": { "mode": "multi", "sort": "desc" }
|
|
}
|
|
},
|
|
{
|
|
"id": 12,
|
|
"type": "timeseries",
|
|
"title": "📉 Pressure & Precipitation History (24h)",
|
|
"gridPos": { "x": 12, "y": 17, "w": 12, "h": 8 },
|
|
"datasource": { "type": "prometheus", "uid": "prometheus" },
|
|
"targets": [
|
|
{
|
|
"expr": "homeassistant_sensor_pressure_kpa{entity_id=\"sensor.shelly_ws90_pressure\"} * 10",
|
|
"legendFormat": "Pressure",
|
|
"refId": "A"
|
|
},
|
|
{
|
|
"expr": "homeassistant_sensor_precipitation_intensity_mm_per_h{entity_id=~\"sensor.shelly_ws90_precipitation.*|sensor.shelly_ws90_rain.*\"} or on() vector(0)",
|
|
"legendFormat": "Rain Intensity",
|
|
"refId": "B"
|
|
}
|
|
],
|
|
"fieldConfig": {
|
|
"defaults": {
|
|
"custom": {
|
|
"lineWidth": 2,
|
|
"fillOpacity": 10,
|
|
"spanNulls": true,
|
|
"showPoints": "never"
|
|
}
|
|
},
|
|
"overrides": [
|
|
{
|
|
"matcher": { "id": "byName", "options": "Pressure" },
|
|
"properties": [
|
|
{ "id": "unit", "value": "pressurehpa" },
|
|
{ "id": "color", "value": { "fixedColor": "purple", "mode": "fixed" } }
|
|
]
|
|
},
|
|
{
|
|
"matcher": { "id": "byName", "options": "Rain Intensity" },
|
|
"properties": [
|
|
{ "id": "unit", "value": "lengthmm" },
|
|
{ "id": "color", "value": { "fixedColor": "dark-blue", "mode": "fixed" } },
|
|
{ "id": "custom.axisPlacement", "value": "right" }
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"options": {
|
|
"legend": {
|
|
"displayMode": "table",
|
|
"placement": "bottom",
|
|
"calcs": ["lastNotNull", "min", "max", "mean"]
|
|
},
|
|
"tooltip": { "mode": "multi", "sort": "desc" }
|
|
}
|
|
}
|
|
]
|
|
}
|