Advertisement
Guest User

grafanamap

a guest
Apr 11th, 2025
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.79 KB | None | 0 0
  1. {
  2. "annotations": {
  3. "list": [
  4. {
  5. "builtIn": 1,
  6. "datasource": {
  7. "type": "grafana",
  8. "uid": "-- Grafana --"
  9. },
  10. "enable": true,
  11. "hide": true,
  12. "iconColor": "rgba(0, 211, 255, 1)",
  13. "name": "Annotations & Alerts",
  14. "type": "dashboard"
  15. }
  16. ]
  17. },
  18. "editable": true,
  19. "fiscalYearStartMonth": 0,
  20. "graphTooltip": 0,
  21. "id": 12,
  22. "links": [],
  23. "panels": [
  24. {
  25. "datasource": {
  26. "type": "influxdb",
  27. "uid": "aegwpflul1rswc"
  28. },
  29. "fieldConfig": {
  30. "defaults": {},
  31. "overrides": []
  32. },
  33. "gridPos": {
  34. "h": 22,
  35. "w": 12,
  36. "x": 0,
  37. "y": 0
  38. },
  39. "id": 1,
  40. "options": {
  41. "autoZoom": true,
  42. "customLayer": {
  43. "attribution": "&copy; <a href=\"http://www.openstreetmap.org/copyright\">OpenStreetMap</a>",
  44. "enabled": false,
  45. "template": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
  46. },
  47. "defaultLayer": "Satellite",
  48. "lineColor": "red",
  49. "pointColor": "royalblue",
  50. "scrollWheelZoom": true,
  51. "showLayerChanger": true
  52. },
  53. "pluginVersion": "3.0.2",
  54. "targets": [
  55. {
  56. "datasource": {
  57. "type": "influxdb",
  58. "uid": "aegwpflul1rswc"
  59. },
  60. "query": "from(bucket: \"homeassistant\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r._measurement == \"device_tracker.sm_s911b\")\r\n |> pivot(rowKey:[\"_time\"], columnKey: [\"_field\"], valueColumn: \"_value\")\r\n |> keep(columns: [\"_time\", \"latitude\", \"longitude\"])\r\n |> sort(columns: [\"_time\"], desc: false)",
  61. "refId": "A"
  62. }
  63. ],
  64. "title": "Map",
  65. "type": "pr0ps-trackmap-panel"
  66. },
  67. {
  68. "datasource": {
  69. "type": "influxdb",
  70. "uid": "ddohdqpqjy6f4e"
  71. },
  72. "fieldConfig": {
  73. "defaults": {
  74. "color": {
  75. "mode": "thresholds"
  76. },
  77. "mappings": [],
  78. "thresholds": {
  79. "mode": "absolute",
  80. "steps": [
  81. {
  82. "color": "green",
  83. "value": null
  84. },
  85. {
  86. "color": "red",
  87. "value": 80
  88. }
  89. ]
  90. },
  91. "unit": "lengthkm"
  92. },
  93. "overrides": [
  94. {
  95. "matcher": {
  96. "id": "byName",
  97. "options": ""
  98. },
  99. "properties": []
  100. }
  101. ]
  102. },
  103. "gridPos": {
  104. "h": 7,
  105. "w": 12,
  106. "x": 12,
  107. "y": 0
  108. },
  109. "id": 2,
  110. "options": {
  111. "colorMode": "value",
  112. "graphMode": "area",
  113. "justifyMode": "auto",
  114. "orientation": "auto",
  115. "percentChangeColorMode": "standard",
  116. "reduceOptions": {
  117. "calcs": [
  118. "lastNotNull"
  119. ],
  120. "fields": "/.*/",
  121. "values": false
  122. },
  123. "showPercentChange": false,
  124. "textMode": "auto",
  125. "wideLayout": true
  126. },
  127. "pluginVersion": "11.5.2",
  128. "targets": [
  129. {
  130. "query": "import \"array\"\r\nimport \"experimental/geo\"\r\n\r\n// Retrieve data\r\ndata =\r\n from(bucket: \"homeassistant\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r._measurement == \"device_tracker.sm_s911b\")\r\n |> filter(fn: (r) => r._field == \"latitude\" or r._field == \"longitude\")\r\n |> pivot(rowKey: [\"_time\"], columnKey: [\"_field\"], valueColumn: \"_value\") // Ensure lat/lon are in same row\r\n |> sort(columns: [\"_time\"], desc: false) // Sort by time\r\n\r\n// Compute total distance using the Haversine function\r\ntotalDistance = data\r\n |> reduce(\r\n identity: {\r\n lastLat: 0.0,\r\n lastLon: 0.0,\r\n totalDistance: 0.0,\r\n first: true,\r\n },\r\n fn: (r, accumulator) => {\r\n distance = if accumulator.first then\r\n 0.0\r\n else\r\n geo.ST_Distance(\r\n region: {lat: accumulator.lastLat, lon: accumulator.lastLon},\r\n geometry: {lat: r.latitude, lon: r.longitude}\r\n )\r\n\r\n return {\r\n lastLat: r.latitude,\r\n lastLon: r.longitude,\r\n totalDistance: accumulator.totalDistance + distance,\r\n first: false,\r\n }\r\n }\r\n )\r\n |> drop(columns: [\"lastLat\", \"lastLon\", \"first\"]) // Keep only totalDistance\r\n\r\ntotalDistance",
  131. "refId": "A"
  132. }
  133. ],
  134. "title": "Total Distance",
  135. "type": "stat"
  136. },
  137. {
  138. "datasource": {
  139. "type": "influxdb",
  140. "uid": "ddohdqpqjy6f4e"
  141. },
  142. "fieldConfig": {
  143. "defaults": {
  144. "color": {
  145. "mode": "palette-classic"
  146. },
  147. "custom": {
  148. "axisBorderShow": false,
  149. "axisCenteredZero": false,
  150. "axisColorMode": "text",
  151. "axisLabel": "",
  152. "axisPlacement": "auto",
  153. "barAlignment": 0,
  154. "barWidthFactor": 0.6,
  155. "drawStyle": "line",
  156. "fillOpacity": 100,
  157. "gradientMode": "hue",
  158. "hideFrom": {
  159. "legend": false,
  160. "tooltip": false,
  161. "viz": false
  162. },
  163. "insertNulls": false,
  164. "lineInterpolation": "linear",
  165. "lineStyle": {
  166. "fill": "solid"
  167. },
  168. "lineWidth": 1,
  169. "pointSize": 5,
  170. "scaleDistribution": {
  171. "type": "linear"
  172. },
  173. "showPoints": "auto",
  174. "spanNulls": false,
  175. "stacking": {
  176. "group": "A",
  177. "mode": "none"
  178. },
  179. "thresholdsStyle": {
  180. "mode": "off"
  181. }
  182. },
  183. "mappings": [],
  184. "thresholds": {
  185. "mode": "absolute",
  186. "steps": [
  187. {
  188. "color": "green",
  189. "value": null
  190. },
  191. {
  192. "color": "red",
  193. "value": 80
  194. }
  195. ]
  196. }
  197. },
  198. "overrides": []
  199. },
  200. "gridPos": {
  201. "h": 15,
  202. "w": 12,
  203. "x": 12,
  204. "y": 7
  205. },
  206. "id": 3,
  207. "options": {
  208. "legend": {
  209. "calcs": [],
  210. "displayMode": "list",
  211. "placement": "bottom",
  212. "showLegend": true
  213. },
  214. "tooltip": {
  215. "hideZeros": false,
  216. "mode": "single",
  217. "sort": "none"
  218. }
  219. },
  220. "pluginVersion": "11.5.2",
  221. "targets": [
  222. {
  223. "query": "from(bucket: \"homeassistant\")\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r._measurement == \"device_tracker.sm_s911b\")\r\n |> pivot(rowKey:[\"_time\"], columnKey: [\"_field\"], valueColumn: \"_value\")\r\n |> keep(columns: [\"_time\", \"altitude\"])\r\n |> sort(columns: [\"_time\"], desc: false)",
  224. "refId": "A"
  225. }
  226. ],
  227. "title": "Altitude",
  228. "type": "timeseries"
  229. }
  230. ],
  231. "preload": false,
  232. "refresh": "",
  233. "schemaVersion": 40,
  234. "tags": [],
  235. "templating": {
  236. "list": []
  237. },
  238. "time": {
  239. "from": "now-24h",
  240. "to": "now"
  241. },
  242. "timepicker": {},
  243. "timezone": "browser",
  244. "title": "Map 2",
  245. "uid": "fehbv8ukobt34b",
  246. "version": 4,
  247. "weekStart": ""
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement