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

Des Westcott

Well-Known Member
View Badges
Joined
May 29, 2018
Messages
646
Reaction score
1,025
Location
Durban - South Africa
Rating - 0%
0   0   0
In my experience when you first set up your pi, setup the things with the 10 feeds you want first. Then set up everything else and the extra feeds will be ignored and can be deleted from adafruit.
I'm having an annoying "glitch" regarding AIO

Background :-
I have 3 x ATO's (Normal, AWC OUT, AWC IN). An AWC first turns off Normal, Turns on AWC Out, waits, turns it off then turns AWC In on , waits then turns it off and Normal back on.
I delete the ATO feeds in AIO, because they send too much data and get me throttled, but also because I fing the info they give to not be usefull. I only really want to see pH and temp on AIO

Situation :-
Avery time an AWC runs, the ATO info starts getting sent to AIO again. And I get throttled. I delete the offending feeds and all is good with the world until the next AWC. Any idea how I stop those feeds getting added back to AIO all the time?
 

Martin Lowry

Community Member
View Badges
Joined
Sep 19, 2017
Messages
60
Reaction score
65
Location
Dover, NH
Rating - 0%
0   0   0
Oops! should have thought of that... Looks like there's a bunch of Prometheus/Git related stuff at the bottom of the log and the reef-pi.service exited. log attached

@Ranjib

, not sure if the log attached so here's the last entries:
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: goroutine 1 [running]:
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: github.com/prometheus/client_golang/prometheus.(*Registry).MustRegister(0x153d340, 0x1584e00, 0x1, 0x1)
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: /home/ranjib/gocode/pkg/mod/github.com/prometheus/[email protected]/prometheus/registry.go:401 +0x80
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: github.com/prometheus/client_golang/prometheus/promauto.Factory.NewGauge(0x7a4ed0, 0x153d340, 0x0, 0x0, 0x0, 0x0, 0x158bda0, 0x20, 0x159f170, 0x2c, ...)
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: /home/ranjib/gocode/pkg/mod/github.com/prometheus/[email protected]/prometheus/promauto/auto.go:297 +0xc0
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: github.com/prometheus/client_golang/prometheus/promauto.NewGauge(...)
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: /home/ranjib/gocode/pkg/mod/github.com/prometheus/[email protected]/prometheus/promauto/auto.go:191
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: github.com/reef-pi/reef-pi/controller/telemetry.(*telemetry).EmitMetric(0x15ca000, 0x6ae08d, 0x9, 0x158bd20, 0x16, 0x0, 0x0)
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: /home/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/telemetry/telemetry.go:194 +0x528
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: github.com/reef-pi/reef-pi/controller/modules/equipment.(*Controller).updateOutlet(0x140a7a0, 0xba7f17, 0x1, 0x14268c0, 0x10, 0xba7f17, 0x1, 0x0, 0x0, 0x0)
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: /home/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/modules/equipment/controller.go:83 +0xe0
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: github.com/reef-pi/reef-pi/controller/modules/equipment.(*Controller).Start(0x140a7a0)
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: /home/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/modules/equipment/controller.go:37 +0xa8
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: github.com/reef-pi/reef-pi/controller/daemon.(*ReefPi).loadSubsystems(0x1474100, 0x0, 0x0)
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: /home/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/daemon/loader.go:193 +0x5fc
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: github.com/reef-pi/reef-pi/controller/daemon.(*ReefPi).Start(0x1474100, 0x3, 0x158a500)
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: /home/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/daemon/reef_pi.go:68 +0x74
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: main.daemonize(0x158a500, 0x1b)
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: /home/ranjib/gocode/src/github.com/reef-pi/reef-pi/commands/daemon.go:19 +0xa4
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: main.main()
Dec 12 17:00:13 reef-pi65 reef-pi[1517]: /home/ranjib/gocode/src/github.com/reef-pi/reef-pi/commands/main.go:125 +0x240
Dec 12 17:00:13 reef-pi65 systemd[1]: reef-pi.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Dec 12 17:00:13 reef-pi65 systemd[1]: reef-pi.service: Failed with result 'exit-code'

@Ranjib BUMP
 

elysics

Valuable Member
View Badges
Joined
Jan 15, 2020
Messages
1,695
Reaction score
1,607
Rating - 0%
0   0   0
I have no idea how hard this would be to implement, probably very, but i have a suggestion: Enable macros to not only switch subsystems on or off, but to alter their parameters or activate their functionalities on demand. For example, instead of switching subsystems or their channels on and off, having the ability to use a macro that sets a light channel to a particular level, or changes that level with a factor and/or offset. Having a macro that tells a dosing pump to dose for 15 seconds right now, independent of the regular dosing scheme, or up or downregulating the dosing speed/duration. Changing the temperature setpoints and hystereses.

Would be very practical for things such as moon phases, seasonal/daily temperature curves etc. to induce spawning or just giving the animals a more natural environment, using reef-pi as the brains of a DIY automatic alkalinity tester/controller, up and down regulating pwm fans to hold a particular temperature instead of flipping them on and off, and probably a bunch of other things i can't think of right now.

Would probably need a bunch of testing to make sure there aren't any very nasty and dangerous bugs though
 
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
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
I have no idea how hard this would be to implement, probably very, but i have a suggestion: Enable macros to not only switch subsystems on or off, but to alter their parameters or activate their functionalities on demand. For example, instead of switching subsystems or their channels on and off, having the ability to use a macro that sets a light channel to a particular level, or changes that level with a factor and/or offset. Having a macro that tells a dosing pump to dose for 15 seconds right now, independent of the regular dosing scheme, or up or downregulating the dosing speed/duration. Changing the temperature setpoints and hystereses.

Would be very practical for things such as moon phases, seasonal/daily temperature curves etc. to induce spawning or just giving the animals a more natural environment, using reef-pi as the brains of a DIY automatic alkalinity tester/controller, up and down regulating pwm fans to hold a particular temperature instead of flipping them on and off, and probably a bunch of other things i can't think of right now.

Would probably need a bunch of testing to make sure there aren't any very nasty and dangerous bugs though
Most things you have mentioned here, such as doser time , light strength etc are already doable with reef-pi right now, probably not in most intuitive way. It’s best to take one case at a time and practice it end to end and then do the software changes once we are confident on what software changes required. To me there are low level improvements (such as stepper driver ) that’s more important for reliably executing titration based workflows
 
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
I'm having an annoying "glitch" regarding AIO

Background :-
I have 3 x ATO's (Normal, AWC OUT, AWC IN). An AWC first turns off Normal, Turns on AWC Out, waits, turns it off then turns AWC In on , waits then turns it off and Normal back on.
I delete the ATO feeds in AIO, because they send too much data and get me throttled, but also because I fing the info they give to not be usefull. I only really want to see pH and temp on AIO

Situation :-
Avery time an AWC runs, the ATO info starts getting sent to AIO again. And I get throttled. I delete the offending feeds and all is good with the world until the next AWC. Any idea how I stop those feeds getting added back to AIO all the time?
I can’t think of any easy way to do this. The feeds get created or deleted every time those items are started or stopped.
 

elysics

Valuable Member
View Badges
Joined
Jan 15, 2020
Messages
1,695
Reaction score
1,607
Rating - 0%
0   0   0
Most things you have mentioned here, such as doser time , light strength etc are already doable with reef-pi right now, probably not in most intuitive way. It’s best to take one case at a time and practice it end to end and then do the software changes once we are confident on what software changes required. To me there are low level improvements (such as stepper driver ) that’s more important for reliably executing titration based workflows
Do you mean by creating a lookup table of dozens of dosers and lights and switching them on and off? Or i there some functionality that i don't know of?
 

elysics

Valuable Member
View Badges
Joined
Jan 15, 2020
Messages
1,695
Reaction score
1,607
Rating - 0%
0   0   0
Btw, what is supposed to show up in the "Log" tab? Whenever i look there i see the column labels "time, emitter, type, content" but nothing else?Is something supposed to show up there? I haven't got a ph sensor set up yet and no level sensors, are those what it is for?
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,409
Reaction score
1,726
Location
Missouri
Rating - 0%
0   0   0
Here is the issue I am having with my PH, I had similar issues with the one that I had prior to my Milwaukee probe. I calibrated it and it was running fine, had it running most of the week. I cleaned out my fuge yesterday which is before the return section in my sump where the probe was located. Never really touched the return section but the PH probe went crazy, see the screen shot. Unplug it and checked things over now its running consistent but really low, I know my PH is not 7.2 i have a back up pen that I can use and it reads 7.9 or at least around where it should be. I am using the isolated ph probe build from @Michael Lane and it seems solid. Maybe I have had just bad luck with probes but is it normal for it to go crazy from cleaning etc and then having to re-calibrate it? See screenshots below...

Reefpi-ph.png


I want to start dosing Kalk but want to monitor my PH and do not trust it yet. Any suggestions are welcomed jsut trying to get a reading to be reliable for PH.

Thanks :)
 

Des Westcott

Well-Known Member
View Badges
Joined
May 29, 2018
Messages
646
Reaction score
1,025
Location
Durban - South Africa
Rating - 0%
0   0   0
I can’t think of any easy way to do this. The feeds get created or deleted every time those items are started or stopped.
I make use of AIO because it's an easy way for me to access the reef-pi data when away from home. Also I find the graphing much better than that which reef-pi does.

It seems like a trip down the Grafana / Prometheus rabbithole is in my future. I was so hoping to not have to learn that. Is there no way that reef-pi could have some of the Grafana features built in? Maybe just the graphs? I know I'm probably asking something impossible, but custom graphs (and dashboard) something along the lines of what is possible in AIO would be really nice.

An old Engineer I knew said to me many years ago that information was becoming the new commodity of choice - I think I've seen that statement come of age to the point where it is overly abundant, and now it is what you do with that information that sets the different services / products apart.
 

92Miata

Valuable Member
View Badges
Joined
Feb 26, 2020
Messages
1,523
Reaction score
2,358
Location
Richmond, VA
Rating - 0%
0   0   0
Simple feature that would help me a lot - add a free text field to the dosers config page - so that after I calibrate the pump I can put down:

150s = 38ml
45ml = 1dkh

So I can quickly figure out how much I need to tweak dosing by when my alk is off.

(Or allow us to enter how many ml a calibration resulted in, and let us dose by ml)
 

Mikeneedsahobby

Well-Known Member
View Badges
Joined
Sep 16, 2018
Messages
516
Reaction score
916
Rating - 0%
0   0   0
I want to start dosing Kalk but want to monitor my PH and do not trust it yet. Any suggestions are welcomed jsut trying to get a reading to be reliable for PH.

Thanks :)
I can’t say I know what is wrong. But we do know it’s not the water ph that is changing. And doing something nearby the probe affected. So theory.

you have a insecure connection or an interference from some electrical source. The ph probe is analog, and sensitive. Try putting reef pi in ph calibration mode then move things around to see if the raw output changes. In my case I was getting interference with my lights and seeing a graph kind of like yours.
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,409
Reaction score
1,726
Location
Missouri
Rating - 0%
0   0   0
I can’t say I know what is wrong. But we do know it’s not the water ph that is changing. And doing something nearby the probe affected. So theory.

you have a insecure connection or an interference from some electrical source. The ph probe is analog, and sensitive. Try putting reef pi in ph calibration mode then move things around to see if the raw output changes. In my case I was getting interference with my lights and seeing a graph kind of like yours.
Yeah it was odd its almost like it lost it's calibration settings, I re-calibrated it and see what happens with it now, it's tracking back up to where it should be just not sure why it decided to go south.
:)
 

Mikeneedsahobby

Well-Known Member
View Badges
Joined
Sep 16, 2018
Messages
516
Reaction score
916
Rating - 0%
0   0   0
Yeah it was odd its almost like it lost it's calibration settings, I re-calibrated it and see what happens with it now, it's tracking back up to where it should be just not sure why it decided to go south.
:)
I diagnosed mine by cutting power to my lights while I was getting a strange ph reading. Within 30 seconds or so the ph stabilized back where I thought it should be.
 
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
Btw, what is supposed to show up in the "Log" tab? Whenever i look there i see the column labels "time, emitter, type, content" but nothing else?Is something supposed to show up there? I haven't got a ph sensor set up yet and no level sensors, are those what it is for?
Ui errors. If nothing is in there, then it’s good.
 
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
I make use of AIO because it's an easy way for me to access the reef-pi data when away from home. Also I find the graphing much better than that which reef-pi does.

It seems like a trip down the Grafana / Prometheus rabbithole is in my future. I was so hoping to not have to learn that. Is there no way that reef-pi could have some of the Grafana features built in? Maybe just the graphs? I know I'm probably asking something impossible, but custom graphs (and dashboard) something along the lines of what is possible in AIO would be really nice.

An old Engineer I knew said to me many years ago that information was becoming the new commodity of choice - I think I've seen that statement come of age to the point where it is overly abundant, and now it is what you do with that information that sets the different services / products apart.
Reef-pi will always have a dashboard and it will likely be improved over time but I don’t think it can ever match to even 1% of features. It’s a much bigger project with lot more developers dedicated to it, for all the good reasons.
I have plans to improve both dashboard as well as making adafruit data emission customizable , but the second one will likely be less priority . The 10 feed limit is too small to get anything useful for me, so I personally have to use the built in dashboard or grafana.
 
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
Simple feature that would help me a lot - add a free text field to the dosers config page - so that after I calibrate the pump I can put down:

150s = 38ml
45ml = 1dkh

So I can quickly figure out how much I need to tweak dosing by when my alk is off.

(Or allow us to enter how many ml a calibration resulted in, and let us dose by ml)
Yes. It would be awesome if you can file a GitHub issue on this. I would like to do this part of 4.x/5 development
 

Des Westcott

Well-Known Member
View Badges
Joined
May 29, 2018
Messages
646
Reaction score
1,025
Location
Durban - South Africa
Rating - 0%
0   0   0
Reef-pi will always have a dashboard and it will likely be improved over time but I don’t think it can ever match to even 1% of features. It’s a much bigger project with lot more developers dedicated to it, for all the good reasons.
I have plans to improve both dashboard as well as making adafruit data emission customizable , but the second one will likely be less priority . The 10 feed limit is too small to get anything useful for me, so I personally have to use the built in dashboard or grafana.
OK. All understandable.

Reading your previous post about Grafana / Prometheus, you mentioned that it needed another Pi to run it. What if I used a Pi4 8GB model. Do you think that would handle running reef-pi as well as Grafana?

For me, I only plot 4 x metrics on graphs on AIO - 3 x temps and 1 x pH, so the 10 feed limit on AIO works for that. The monitoring of usage like Heater/Chiller, ATO, Dosing etc is less important to me in real time and the alerts work for me well enough. The alert step in Macros has further helped with this, keeping track of when Macros have run etc.

Would a long term goal of a mobile app that allows access to your full reef-pi Dashboard along with a fully customisable Dashboard not be an easier solution than relying on 3rd parties like Grafana, Prometheus and AIO? (Asking because I don't know the implications of implementing either.)
 
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
OK. All understandable.

Reading your previous post about Grafana / Prometheus, you mentioned that it needed another Pi to run it. What if I used a Pi4 8GB model. Do you think that would handle running reef-pi as well as Grafana?

For me, I only plot 4 x metrics on graphs on AIO - 3 x temps and 1 x pH, so the 10 feed limit on AIO works for that. The monitoring of usage like Heater/Chiller, ATO, Dosing etc is less important to me in real time and the alerts work for me well enough. The alert step in Macros has further helped with this, keeping track of when Macros have run etc.

Would a long term goal of a mobile app that allows access to your full reef-pi Dashboard along with a fully customisable Dashboard not be an easier solution than relying on 3rd parties like Grafana, Prometheus and AIO? (Asking because I don't know the implications of implementing either.)
Setting up Prometheus and grafana on separate nodes was purely for resource isolation, as in Prometheus (the metrics store) will need 1GB ram and will do a lot of disk read/write. When you will use the dashboard, Prometheus as well as grafana will consume resources. I am pretty sure reef-pi will run fine in 8Gb /Pi4 setup, its just I have not tested and I will worry about other resources (disk in particular) that may have spiky usage which in turn can impact reef-pi. It is possible to mitigate most of these, but that will be some work (systems cgroup etc). This is more about validation and then recommendation. If any of you want to venture, I am happy to help out. I have done this (including running the pi as its own wifi hotspot) so the installation and configuration is really not that hard, also we know for sure that it works. It just about running it for longer, with realistic load and see if everything works out. As you get to decide how long you want to store metrics, and as you look at longer and longer duration dashboard, this will incur higher and higher resource usage in pi... as time goes by. Again, this too can be addressed by judicious use of dashboard (e.g. keep only 12 months of data), but we have test out some of these bounds. before recommending..

My recommendation will always be running Prometheus and Grafana on separate Pi and preferably with an 2.5" SSD attached to it. They are 20$ and adds 100G of reliable storage. Enough to run and keep all data needed for a reef-pi and more.

I have thought about mobile clients. It's definitely desirable, and there were a couple of independent attempts to make it, but it didn't happen yet. There is interest, it's all about resourcing. If we have folks who are interested in developing/testing... I can chip in. Mobile is definitely a secondary thing compare to web interface. Because of its lower development resource requirement and much higher applicability. A website will work on any mobile (not as good as native apps) as well as all other devices. But the mobile apps won't work for desktops. Mobile app by themselves will not solve the metrics/dashboard challenge, it has to be combined with cloud base storage. Also for apple and android, its extra painful to make two different apps (there are ways to make a single code generating two types of apps,. but that's another complication). Just to add to the pain apple developer certificate itself is 100$ and the app hosting also will cost $$. Same goes for all cloud based things. A pi in the cloud is 60$/month. As of now, reef-pi (app, docs etc) development and distribution do not have incur opex/recurring cost. This is something that discouraged me to not have any cloud-based integration and mobile apps.

reef-pi's strength is in its ecosystem (Pi, Linux). Something that keeps it free, open and affordable. If I get one hour to invest in this, I feel I should spend on reef keeping related features (stepper driver, doser time->volume conversion etc).. and not on that closed source, non-core functionality type things. I do not have any opposition for those other goodies, and if we get interest now or later, we'll definitely embrace those. I would absolutely love an iPhone app. I'll pay 5$ for it :-)
 

Des Westcott

Well-Known Member
View Badges
Joined
May 29, 2018
Messages
646
Reaction score
1,025
Location
Durban - South Africa
Rating - 0%
0   0   0
Setting up Prometheus and grafana on separate nodes was purely for resource isolation, as in Prometheus (the metrics store) will need 1GB ram and will do a lot of disk read/write. When you will use the dashboard, Prometheus as well as grafana will consume resources. I am pretty sure reef-pi will run fine in 8Gb /Pi4 setup, its just I have not tested and I will worry about other resources (disk in particular) that may have spiky usage which in turn can impact reef-pi. It is possible to mitigate most of these, but that will be some work (systems cgroup etc). This is more about validation and then recommendation. If any of you want to venture, I am happy to help out. I have done this (including running the pi as its own wifi hotspot) so the installation and configuration is really not that hard, also we know for sure that it works. It just about running it for longer, with realistic load and see if everything works out. As you get to decide how long you want to store metrics, and as you look at longer and longer duration dashboard, this will incur higher and higher resource usage in pi... as time goes by. Again, this too can be addressed by judicious use of dashboard (e.g. keep only 12 months of data), but we have test out some of these bounds. before recommending..

My recommendation will always be running Prometheus and Grafana on separate Pi and preferably with an 2.5" SSD attached to it. They are 20$ and adds 100G of reliable storage. Enough to run and keep all data needed for a reef-pi and more.

I have thought about mobile clients. It's definitely desirable, and there were a couple of independent attempts to make it, but it didn't happen yet. There is interest, it's all about resourcing. If we have folks who are interested in developing/testing... I can chip in. Mobile is definitely a secondary thing compare to web interface. Because of its lower development resource requirement and much higher applicability. A website will work on any mobile (not as good as native apps) as well as all other devices. But the mobile apps won't work for desktops. Mobile app by themselves will not solve the metrics/dashboard challenge, it has to be combined with cloud base storage. Also for apple and android, its extra painful to make two different apps (there are ways to make a single code generating two types of apps,. but that's another complication). Just to add to the pain apple developer certificate itself is 100$ and the app hosting also will cost $$. Same goes for all cloud based things. A pi in the cloud is 60$/month. As of now, reef-pi (app, docs etc) development and distribution do not have incur opex/recurring cost. This is something that discouraged me to not have any cloud-based integration and mobile apps.

reef-pi's strength is in its ecosystem (Pi, Linux). Something that keeps it free, open and affordable. If I get one hour to invest in this, I feel I should spend on reef keeping related features (stepper driver, doser time->volume conversion etc).. and not on that closed source, non-core functionality type things. I do not have any opposition for those other goodies, and if we get interest now or later, we'll definitely embrace those. I would absolutely love an iPhone app. I'll pay 5$ for it :)

@Ranjib thanks for taking the time to clarify all those things above - most of them issues I am not even aware of or consider when I dream up things "that would be nice to implement".

Indulge me and imagine if you will the following :-
  • Reef-pi with super duper Grafana-like capabilities
  • The ability to sync to your own cloud storage (Onedrive, Apple etc)
  • A mobile app that could access your data from your cloud storage and display on your mobile device the way you want.
I bet that's almost impossible, because it seems easy :D :D :D :)
I'd definitely pay $5 for that lol
 

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