Create Grafana dashboard ConfigMap for Shelly WS90 weather console
This commit is contained in:
parent
f012a3e049
commit
e3bca38dfd
|
|
@ -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" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Reference in New Issue