reef-pi :: An opensource reef tank controller based on Raspberry Pi.

GaryE

Well-Known Member
View Badges
Joined
Mar 12, 2020
Messages
992
Reaction score
1,321
Location
Coatesville, Indiana
Rating - 0%
0   0   0
I wish I could do a dedicated blog/docs on this, but here is the tldr version;
- I have one dashboard each for individual tanks. That shows ato, ph, temp, light etc.. whatever that build has
- I have a global dashboard that consolidated all key parameters (ph, temperature, ato) and some ambient readings (temperature for example). I use this as Home Screen, to get a glimpse of fleet wide stats
- I have the stock node exporter dashboard , imported from grafana community hub that shows low level system metrics (it requires node exporter installed and running on all pi )

Other than these keyed dashboard I also use a whole bunch of adhoc dashboard to test things like light profile, psu setup (under voltage detection ).
I do use alerting from several of these dashboard


I've been playing with variables and whatnot to setup some "template" type dashboards.. It's coming along pretty nice for someone who never heard of prometheus or grafana two years ago..
 

GaryE

Well-Known Member
View Badges
Joined
Mar 12, 2020
Messages
992
Reaction score
1,321
Location
Coatesville, Indiana
Rating - 0%
0   0   0
@Ranjib how difficult would it be to expose the "name" of the reef-pi install via prometheus??


1643840660295.png
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,409
Reaction score
1,726
Location
Missouri
Rating - 0%
0   0   0
@Ranjib how difficult would it be to expose the "name" of the reef-pi install via prometheus??


1643840660295.png
I have multiple and what I have learned to do in order to make it easier in grafana is I include the name in each of the function. For example I have a coral QT tank and I include coral in each of the name like this...

Screenshot at 2022-02-02 16-40-45.png


repeat for ato etc, just include the name in the object that you are defining then it will show up that way in grafana. :)
 

GaryE

Well-Known Member
View Badges
Joined
Mar 12, 2020
Messages
992
Reaction score
1,321
Location
Coatesville, Indiana
Rating - 0%
0   0   0
I have multiple and what I have learned to do in order to make it easier in grafana is I include the name in each of the function. For example I have a coral QT tank and I include coral in each of the name like this...

Screenshot at 2022-02-02 16-40-45.png


repeat for ato etc, just include the name in the object that you are defining then it will show up that way in grafana. :)

Yeah, I do that too, but I want the name of the device running for something else... ;)
 
OP
OP
Ranjib

Ranjib

7500 Club Member
View Badges
Joined
Apr 16, 2016
Messages
9,876
Reaction score
16,680
Location
Pleasant Hill, Concord
Rating - 0%
0   0   0
@Ranjib how difficult would it be to expose the "name" of the reef-pi install via prometheus??


1643840660295.png
Prometheus is a metric system , hence it only supports numeric values. We can use the labels feature for this instead.

I configure Prometheus config with the job name same as the reef-pi controller name , and then use the built in “job” label to display the controller name as job label value
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,409
Reaction score
1,726
Location
Missouri
Rating - 0%
0   0   0
Looking to get some of @Michael Lane goby hat boards made up and looks like pca9685pw are OOS everywhere, I assume @robsworld78 you are seeing the same thing, where are folks ordering from etc...just thought I would ask.
 

GaryE

Well-Known Member
View Badges
Joined
Mar 12, 2020
Messages
992
Reaction score
1,321
Location
Coatesville, Indiana
Rating - 0%
0   0   0

theatrus

Valuable Member
View Badges
Joined
Mar 26, 2016
Messages
2,253
Reaction score
3,603
Location
Sacramento, CA area
Rating - 0%
0   0   0
Yeah they have a couple of versions in stock, was wanting to order the boards assy, if I go this path I have to hand solder the SMT and not sure I have the skill to do it. :)
No time like the present to try :)

With some liquid or tacky flux this goes down very quickly with any old iron. You need the flux.
 

ColoredRock

Well-Known Member
View Badges
Joined
Aug 9, 2021
Messages
856
Reaction score
976
Location
Murrieta, CA (North of San Diego)
Rating - 0%
0   0   0
This is my current dashboard, in progress of course.. I have it setup to be somewhat dynamic.. I need that "hostname" to be emitted from prometheus so that I can replace the IP address with the hostname..
Very nice... here is mine:
1643908360557.png

.. and the JASON code to follow. pH is off by around .20 ( have not calibrated it yet.. waiting on new probe) Spikes are me playing around.
 

ColoredRock

Well-Known Member
View Badges
Joined
Aug 9, 2021
Messages
856
Reaction score
976
Location
Murrieta, CA (North of San Diego)
Rating - 0%
0   0   0
Code:
[ICODE]

{

  "annotations": {

    "list": [

      {

        "builtIn": 1,

        "datasource": "-- Grafana --",

        "enable": true,

        "hide": true,

        "iconColor": "rgba(0, 211, 255, 1)",

        "name": "Annotations & Alerts",

        "target": {

          "limit": 100,

          "matchAny": false,

          "tags": [],

          "type": "dashboard"

        },

        "type": "dashboard"

      }

    ]

  },

  "editable": true,

  "fiscalYearStartMonth": 0,

  "graphTooltip": 0,

  "id": 4,

  "links": [],

  "liveNow": false,

  "panels": [

    {

      "fieldConfig": {

        "defaults": {

          "color": {

            "mode": "palette-classic"

          },

          "custom": {

            "axisLabel": "",

            "axisPlacement": "auto",

            "barAlignment": 0,

            "drawStyle": "line",

            "fillOpacity": 0,

            "gradientMode": "none",

            "hideFrom": {

              "legend": false,

              "tooltip": false,

              "viz": false

            },

            "lineInterpolation": "linear",

            "lineWidth": 1,

            "pointSize": 5,

            "scaleDistribution": {

              "type": "linear"

            },

            "showPoints": "auto",

            "spanNulls": false,

            "stacking": {

              "group": "A",

              "mode": "none"

            },

            "thresholdsStyle": {

              "mode": "off"

            }

          },

          "mappings": [],

          "thresholds": {

            "mode": "absolute",

            "steps": [

              {

                "color": "green",

                "value": null

              },

              {

                "color": "red",

                "value": 80

              }

            ]

          }

        },

        "overrides": []

      },

      "gridPos": {

        "h": 8,

        "w": 12,

        "x": 0,

        "y": 0

      },

      "id": 18,

      "options": {

        "legend": {

          "calcs": [],

          "displayMode": "list",

          "placement": "bottom"

        },

        "tooltip": {

          "mode": "single"

        }

      },

      "targets": [

        {

          "datasource": {

            "type": "prometheus",

            "uid": "FvND3Zigz"

          },

          "exemplar": false,

          "expr": "equipment_3_skimmer_state ",

          "hide": false,

          "interval": "",

          "legendFormat": "",

          "refId": "A"

        }

      ],

      "title": "Panel Title",

      "type": "timeseries"

    },

    {

      "description": "",

      "gridPos": {

        "h": 3,

        "w": 15,

        "x": 2,

        "y": 8

      },

      "id": 14,

      "options": {

        "bgColor": "transparent",

        "clockType": "12 hour",

        "countdownSettings": {

          "endCountdownTime": "2022-02-03T10:26:59-08:00",

          "endText": "00:00:00"

        },

        "dateSettings": {

          "dateFormat": "DD-MM-YYYY",

          "fontSize": "20px",

          "fontWeight": "normal",

          "locale": "",

          "showDate": true

        },

        "mode": "time",

        "refresh": "sec",

        "timeSettings": {

          "fontSize": "26",

          "fontWeight": "normal"

        },

        "timezone": "",

        "timezoneSettings": {

          "fontSize": "12px",

          "fontWeight": "normal",

          "showTimezone": false,

          "zoneFormat": "offsetAbbv"

        }

      },

      "pluginVersion": "1.2.0",

      "targets": [

        {

          "datasource": {

            "type": "prometheus",

            "uid": "FvND3Zigz"

          },

          "exemplar": false,

          "expr": "",

          "interval": "",

          "legendFormat": "",

          "refId": "A"

        }

      ],

      "transparent": true,

      "type": "grafana-clock-panel"

    },

    {

      "fieldConfig": {

        "defaults": {

          "color": {

            "mode": "thresholds"

          },

          "mappings": [],

          "max": 8.6,

          "min": 7.5,

          "thresholds": {

            "mode": "absolute",

            "steps": [

              {

                "color": "orange",

                "value": null

              },

              {

                "color": "semi-dark-orange",

                "value": 7.5

              },

              {

                "color": "super-light-green",

                "value": 7.8

              },

              {

                "color": "semi-dark-green",

                "value": 8

              },

              {

                "color": "dark-green",

                "value": 8.3

              },

              {

                "color": "semi-dark-orange",

                "value": 8.4

              },

              {

                "color": "dark-red",

                "value": 8.5

              }

            ]

          }

        },

        "overrides": []

      },

      "gridPos": {

        "h": 5,

        "w": 4,

        "x": 2,

        "y": 11

      },

      "id": 4,

      "options": {

        "orientation": "auto",

        "reduceOptions": {

          "calcs": [

            "lastNotNull"

          ],

          "fields": "",

          "values": false

        },

        "showThresholdLabels": false,

        "showThresholdMarkers": true

      },

      "pluginVersion": "8.3.4",

      "targets": [

        {

          "datasource": {

            "type": "prometheus",

            "uid": "FvND3Zigz"

          },

          "exemplar": true,

          "expr": "ph_ph_probe ",

          "interval": "",

          "legendFormat": "",

          "refId": "A"

        }

      ],

      "title": "pH",

      "transparent": true,

      "type": "gauge"

    },

    {

      "fieldConfig": {

        "defaults": {

          "color": {

            "mode": "thresholds"

          },

          "mappings": [],

          "max": 80,

          "min": 75,

          "thresholds": {

            "mode": "absolute",

            "steps": [

              {

                "color": "red",

                "value": null

              },

              {

                "color": "transparent",

                "value": 60

              },

              {

                "color": "light-blue",

                "value": 75

              },

              {

                "color": "dark-blue",

                "value": 76

              },

              {

                "color": "semi-dark-green",

                "value": 77

              },

              {

                "color": "dark-green",

                "value": 78

              },

              {

                "color": "semi-dark-red",

                "value": 79

              },

              {

                "color": "dark-red",

                "value": 80

              },

              {

                "color": "transparent",

                "value": 85

              }

            ]

          }

        },

        "overrides": []

      },

      "gridPos": {

        "h": 5,

        "w": 4,

        "x": 11,

        "y": 11

      },

      "id": 10,

      "options": {

        "orientation": "auto",

        "reduceOptions": {

          "calcs": [

            "lastNotNull"

          ],

          "fields": "",

          "values": false

        },

        "showThresholdLabels": false,

        "showThresholdMarkers": true

      },

      "pluginVersion": "8.3.4",

      "targets": [

        {

          "datasource": {

            "type": "prometheus",

            "uid": "FvND3Zigz"

          },

          "exemplar": true,

          "expr": "temperature_reading",

          "interval": "",

          "legendFormat": "",

          "refId": "A"

        }

      ],

      "title": "Temperature",

      "transparent": true,

      "type": "gauge"

    },

    {

      "fieldConfig": {

        "defaults": {

          "color": {

            "mode": "continuous-GrYlRd",

            "seriesBy": "last"

          },

          "custom": {

            "axisGridShow": false,

            "axisLabel": "",

            "axisPlacement": "auto",

            "barAlignment": 0,

            "drawStyle": "line",

            "fillOpacity": 40,

            "gradientMode": "scheme",

            "hideFrom": {

              "legend": false,

              "tooltip": false,

              "viz": false

            },

            "lineInterpolation": "linear",

            "lineWidth": 2,

            "pointSize": 5,

            "scaleDistribution": {

              "type": "linear"

            },

            "showPoints": "never",

            "spanNulls": false,

            "stacking": {

              "group": "A",

              "mode": "none"

            },

            "thresholdsStyle": {

              "mode": "line+area"

            }

          },

          "mappings": [],

          "max": 8.6,

          "min": 7.5,

          "thresholds": {

            "mode": "absolute",

            "steps": [

              {

                "color": "transparent",

                "value": null

              },

              {

                "color": "#EAB839",

                "value": 7.8

              },

              {

                "color": "semi-dark-green",

                "value": 8

              },

              {

                "color": "dark-red",

                "value": 8.6

              }

            ]

          }

        },

        "overrides": []

      },

      "gridPos": {

        "h": 7,

        "w": 8,

        "x": 0,

        "y": 16

      },

      "id": 6,

      "options": {

        "legend": {

          "calcs": [],

          "displayMode": "hidden",

          "placement": "bottom"

        },

        "tooltip": {

          "mode": "single"

        }

      },

      "pluginVersion": "8.3.4",

      "targets": [

        {

          "datasource": {

            "type": "prometheus",

            "uid": "FvND3Zigz"

          },

          "exemplar": false,

          "expr": "ph_ph_probe",

          "interval": "",

          "legendFormat": "",

          "refId": "A"

        }

      ],

      "transparent": true,

      "type": "timeseries"

    },

    {

      "fieldConfig": {

        "defaults": {

          "color": {

            "mode": "continuous-BlYlRd",

            "seriesBy": "last"

          },

          "custom": {

            "axisGridShow": false,

            "axisLabel": "",

            "axisPlacement": "auto",

            "barAlignment": 0,

            "drawStyle": "line",

            "fillOpacity": 36,

            "gradientMode": "scheme",

            "hideFrom": {

              "legend": false,

              "tooltip": false,

              "viz": false

            },

            "lineInterpolation": "linear",

            "lineWidth": 2,

            "pointSize": 5,

            "scaleDistribution": {

              "type": "linear"

            },

            "showPoints": "never",

            "spanNulls": false,

            "stacking": {

              "group": "A",

              "mode": "none"

            },

            "thresholdsStyle": {

              "mode": "line+area"

            }

          },

          "mappings": [],

          "max": 79,

          "min": 77,

          "thresholds": {

            "mode": "absolute",

            "steps": [

              {

                "color": "transparent",

                "value": null

              },

              {

                "color": "semi-dark-blue",

                "value": 77

              },

              {

                "color": "semi-dark-green",

                "value": 78

              },

              {

                "color": "semi-dark-orange",

                "value": 79

              },

              {

                "color": "red",

                "value": 80

              }

            ]

          }

        },

        "overrides": []

      },

      "gridPos": {

        "h": 7,

        "w": 8,

        "x": 9,

        "y": 16

      },

      "id": 16,

      "options": {

        "legend": {

          "calcs": [],

          "displayMode": "hidden",

          "placement": "bottom"

        },

        "tooltip": {

          "mode": "single"

        }

      },

      "pluginVersion": "8.3.4",

      "targets": [

        {

          "datasource": {

            "type": "prometheus",

            "uid": "FvND3Zigz"

          },

          "exemplar": false,

          "expr": "temperature_reading",

          "interval": "",

          "legendFormat": "",

          "refId": "A"

        }

      ],

      "transparent": true,

      "type": "timeseries"

    }

  ],

  "refresh": "1m",

  "schemaVersion": 34,

  "style": "dark",

  "tags": [],

  "templating": {

    "list": []

  },

  "time": {

    "from": "now-6h",

    "to": "now"

  },

  "timepicker": {},

  "timezone": "",

  "title": "Tank",

  "uid": "78PsugWRz",

  "version": 14,

  "weekStart": ""

}

[/ICODE]
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,409
Reaction score
1,726
Location
Missouri
Rating - 0%
0   0   0
No time like the present to try :)

With some liquid or tacky flux this goes down very quickly with any old iron. You need the flux.
Yeah I have kester tacky flux in a syringe, its good stuff. Did you see my PM, anyway you could take a look at the parts I have laid out from JLPCB. I think I have things covered but would be nice before pulling the trigger.

I found some on pc9685 on newark and going to add some more parts and give it a go.
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,409
Reaction score
1,726
Location
Missouri
Rating - 0%
0   0   0
Sorry for the newby questions. I can get a 3A+ starter kit from local micro center. Anything wrong with jumping in the water with this?
Ive been running 3a+ for several years now, they work just fine. :)

Keep in mind that the starter kit has stuff in it that you will not need, it's a shame the rpi's are so hard to come by these days.
 

TOP 10 Trending Threads

WHAT AMOUNT OF LIVE ROCK AND SAND SHOULD BE PRIORITIZED FOR OPTIMAL BIODIVERSITY/FILTRATION?

  • 100% live rock + bagged sand

    Votes: 38 27.3%
  • 100% dry rock + 100% live sand

    Votes: 47 33.8%
  • 50/50 live/dry rock, 50/50 live/bagged sand

    Votes: 30 21.6%
  • 75% live rock, 25% live sand

    Votes: 14 10.1%
  • 25% live rock, 75% live sand

    Votes: 10 7.2%
Back
Top