Create Grafana dashboard ConfigMap for Shelly WS90 weather console

This commit is contained in:
Moritz Graf 2026-07-12 08:04:48 +02:00
parent f012a3e049
commit e3bca38dfd
1 changed files with 482 additions and 0 deletions

View File

@ -0,0 +1,482 @@
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" }
}
}
]
}