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

Adahm

Community Member
View Badges
Joined
Jan 25, 2017
Messages
34
Reaction score
24
Rating - 0%
0   0   0
Hi all, I recently set up reef-pi using Robo-Tank. I am still learning to set up automation using macros and timers. I have set up some macros to run when I want to turn off and on my return pump and for feed mode.

Macro 1 - Return pump OFF, turns off ATO sensor (timer and sensor), then turn off skimmer (timer & equipment), and then the return pump (timer & equipment) - this is to prevent skimmer overflow as the water level in sump rises when return is off.

Macro 2 - Return pump ON, turn on return pump (timer), wait 300 seconds and turn on Skimmer (timer), wait 900 seconds for return chamber water level to stabilize, turn on ATO sensor timer.

Macro 3 - Feed Mode is a combination of the two above with a 15 minute wait period

Basically, my need is driven by the time it takes my full siphon to develop (almost 3 minutes). During this time the return pump chamber level drops to the point that the return pump is sucking air I prevent this by using a float switch cutoff (using feature on Robo-Tank board). After the full siphon starts, it takes about 10 minutes for the water level to stabilize. I don't want to increase the water level in the return chamber to prevent the main tank from overflowing.

All of the above is fine and good so long as the tank was running steady state. Now I am wondering how to **edited** **make** the ATO and skimmer have a delayed start in the event of a power outage and reboot.

I have left the skimmer in the equipment module to stay off on boot however, the timer will turn it on as it is set to turn on and stay on. I can remove the timer but that doesn't help. The same goes for the ATO sensor.

I thought about adding a timer to run a macro 2 however I can't get my head around how to implement this.

Is there a way to add delay for the above (equipment & ATO sensor) on boot or trigger a macro based on equipment state change?
 
Last edited:

robsworld78

Well-Known Member
View Badges
Joined
Feb 14, 2020
Messages
952
Reaction score
1,280
Location
Edmonton, Canada
Rating - 0%
0   0   0
Alrighty, aquashella vendor booth reserved. In the application form I had to choose the type of vendor we are. I was torn between "charity", "club" and "brand", as type of business. I went with "brand", hopefully its not too controversial.

We've got a 10'x10' booth. The hotel is really nice, wify and son will have a blast. Disney world and sea world is right in there too. So they should be engaged....

@theatrus @robsworld78 @Schreiber I'll be carrying the older boards I have with me from each of you, that will be on display. If you want to showcase anything else, do send them in my way. I'll DM my address.

Im thinking of not setting up any wet tank, and instead just showcase all the integration (powerbars, ATO, temperature, light, doser, ph , orp, ec probes etc). There will be several interactive reef-pi UI setup for folks to try it out. We'll have some flyers and visiting cards for contacts and reference documentation. And may be a few hand built controllers (3d printed housing) for give away. There will be many luminaries of the community, from whom I learned a lot, it will be super cool to say thanks by actually gifting a reef-pi unit . Ideas?
Sounds like a good plan, I'm sure you and your family will have a blast. :)

I can send a fully assembled package with everything needed to get running minus the Raspberry Pi for a giveaway, value around $240. I also have a variety of basic extensions that can be used with or without the controller by connecting directly to Pi GPIOs maybe good for people getting their feet wet.
 
OP
OP
Ranjib

Ranjib

7500 Club Member
View Badges
Joined
Apr 16, 2016
Messages
9,825
Reaction score
17,041
Location
Pleasant Hill, Concord
Rating - 0%
0   0   0
Sounds like a good plan, I'm sure you and your family will have a blast. :)

I can send a fully assembled package with everything needed to get running minus the Raspberry Pi for a giveaway, value around $240. I also have a variety of basic extensions that can be used with or without the controller by connecting directly to Pi GPIOs maybe good for people getting their feet wet.
awesome :cool:
 
OP
OP
Ranjib

Ranjib

7500 Club Member
View Badges
Joined
Apr 16, 2016
Messages
9,825
Reaction score
17,041
Location
Pleasant Hill, Concord
Rating - 0%
0   0   0
Sounds like a good plan, I'm sure you and your family will have a blast. :)

I can send a fully assembled package with everything needed to get running minus the Raspberry Pi for a giveaway, value around $240. I also have a variety of basic extensions that can be used with or without the controller by connecting directly to Pi GPIOs maybe good for people getting their feet wet.
awesome :cool:
Hi all, I recently set up reef-pi using Robo-Tank. I am still learning to set up automation using macros and timers. I have set up some macros to run when I want to turn off and on my return pump and for feed mode.

Macro 1 - Return pump OFF, turns off ATO sensor (timer and sensor), then turn off skimmer (timer & equipment), and then the return pump (timer & equipment) - this is to prevent skimmer overflow as the water level in sump rises when return is off.

Macro 2 - Return pump ON, turn on return pump (timer), wait 300 seconds and turn on Skimmer (timer), wait 900 seconds for return chamber water level to stabilize, turn on ATO sensor timer.

Macro 3 - Feed Mode is a combination of the two above with a 15 minute wait period

Basically, my need is driven by the time it takes my full siphon to develop (almost 3 minutes). During this time the return pump chamber level drops to the point that the return pump is sucking air I prevent this by using a float switch cutoff (using feature on Robo-Tank board). After the full siphon starts, it takes about 10 minutes for the water level to stabilize. I don't want to increase the water level in the return chamber to prevent the main tank from overflowing.

All of the above is fine and good so long as the tank was running steady state. Now I am wondering how to prevent the ATO and skimmer to have a delayed start in the event of a power outage and reboot.

I have left the skimmer in the equipment module to stay off on boot however, the timer will turn it on as it is set to turn on and stay on. I can remove the timer but that doesn't help. The same goes for the ATO sensor.

I thought about adding a timer to run a macro 2 however I can't get my head around how to implement this.

Is there a way to add delay for the above (equipment & ATO sensor) on boot or trigger a macro based on equipment state change?
I have something very similar,
Screen Shot 2022-01-09 at 11.54.29 PM.png

but i have not been reliably automate this due to number of physical uncertainties I encountered. Its almost always starts with tripping emergency overflow resulting in high usage of ATO before that and often time skimmer overdrive at the same time (i think due to water level). While this has prevented me from fully automated water chores as of now. I did find the macros useful during manual water changes or anything that requires the return pump to be off. ATO and skimmer have to be synchronized in certain ways.
Looking forward I think its safer to automate these things based on some check/trigger than wait times.
I still don't have a good answer for reliability during the failure scenarios, like power outages during macro execution etc. And will not recommend anything unless user has tested it out end to end during the build.
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,344
Reaction score
1,720
Location
Missouri
Rating - 0%
0   0   0
awesome :cool:

I have something very similar,
Screen Shot 2022-01-09 at 11.54.29 PM.png

but i have not been reliably automate this due to number of physical uncertainties I encountered. Its almost always starts with tripping emergency overflow resulting in high usage of ATO before that and often time skimmer overdrive at the same time (i think due to water level). While this has prevented me from fully automated water chores as of now. I did find the macros useful during manual water changes or anything that requires the return pump to be off. ATO and skimmer have to be synchronized in certain ways.
Looking forward I think its safer to automate these things based on some check/trigger than wait times.
I still don't have a good answer for reliability during the failure scenarios, like power outages during macro execution etc. And will not recommend anything unless user has tested it out end to end during the build.
@Adahm

I have the same type of macros that I use when cleaning the tank and they work well with wait times before having certain equipment kick on. I have thought about this for sometime in regards to timers and power outages, for the timers I have additional timers that just keep turning things off when outside of the range I want it on, that way dosers don't come back on dosing etc. But for ATO and skimmer there are not many options. On option that you can do right now is to dial in your ATO and if it pumps outside of the expected range it gets turned off. So in the case of a power outage it comes back on starts pumping but hits 30s and then gets shut off. The one problem with that configuration at least in 4.x (I have not kicked the tires with 5.x to know if they have additional options) is you will have to manually enable it, the other issue is you could have nuisances turn offs if you tune it to low. I like that option if I had a way to automatically set a timer for it to re-enable, say try again in 5min or some configurable option. The flow would be ATO kicks off over a high value gets shut off, timer hold starts to run for set time, once timer expires it re-enables the ATO and it runs, if under run time value it continues to operate etc.

The other option that is not available through the gui but may be available via API ( I have not looked) would be some kind of a cron job that continually runs and looks at the uptime of the system, or if the rpi is on UPS looks for the uptime of some reliable network device to signify power outage. Based on that event you could disable the equipment that you want and re-enable after a period of time. Not sure if you have control via API for individual equipment via API and would require scripting outside of reefpi.

Something else that I just thought of and may be possible today would be to monitor the energy usage of the retyurn pump if it is on a Kasa strip. If the device is on a kasa strip you could use power monitoring to trigger a macro etc that would put those devices in timeout. I am just thinking of this so would need testing etc, but if you have the RPI on an UPS it will see the drop in energy for the return pump and you could trigger something based on the lower and upper values. I will think about that one some more since it may be the most viable option right now if you are running Kasa strips and your return pump is on one. You use the PH function for the energy monitoring portion.

Here is the screen shot of my return pump usage, each dip shows when power was lost doing a water change.

return-pump.png


Some things to think about, I agree though would be nice to have something for when your not around for power outages.
 
Last edited:

Adahm

Community Member
View Badges
Joined
Jan 25, 2017
Messages
34
Reaction score
24
Rating - 0%
0   0   0
awesome :cool:

I have something very similar,
Screen Shot 2022-01-09 at 11.54.29 PM.png

but i have not been reliably automate this due to number of physical uncertainties I encountered. Its almost always starts with tripping emergency overflow resulting in high usage of ATO before that and often time skimmer overdrive at the same time (i think due to water level). While this has prevented me from fully automated water chores as of now. I did find the macros useful during manual water changes or anything that requires the return pump to be off. ATO and skimmer have to be synchronized in certain ways.
Looking forward I think its safer to automate these things based on some check/trigger than wait times.
I still don't have a good answer for reliability during the failure scenarios, like power outages during macro execution etc. And will not recommend anything unless user has tested it out end to end during the build.
Thanks @Ranjib , Something I tried and surprisingly was able to add my return pump outlet as an inlet, then I was able to add it to the ATO sensor module as a sensor to try and trigger a macro. This was really late at night, but I recall I did not get the desired result. I will explore this further.

As a suggestion, for the Dashboard within the equipment panel, it would be awesome to have the timer associated with the equipment as a drop-down below the equipment or make on/off button into OFF/TIMER/ON three-way button, where the equipment could be left on the timer and the associated timers automatically turned off when the switch is in the OFF or ON position.

Also would be nice to have a macro panel on the dashboard?

@Adahm

I have the same type of macros that I use when cleaning the tank and they work well with wait times before having certain equipment kick on. I have thought about this for sometime in regards to timers and power outages, for the timers I have additional timers that just keep turning things off when outside of the range I want it on, that way dosers don't come back on dosing etc. But for ATO and skimmer there are not many options. On option that you can do right now is to dial in your ATO and if it pumps outside of the expected range it gets turned off. So in the case of a power outage it comes back on starts pumping but hits 30s and then gets shut off. The one problem with that configuration at least in 4.x (I have not kicked the tires with 5.x to know if they have additional options) is you will have to manually enable it, the other issue is you could have nuisances turn offs if you tune it to low. I like that option if I had a way to automatically set a timer for it to re-enable, say try again in 5min or some configurable option. The flow would be ATO kicks off over a high value gets shut off, timer hold starts to run for set time, once timer expires it re-enables the ATO and it runs, if under run time value it continues to operate etc.

The other option that is not available through the gui but may be available via API ( I have not looked) would be some kind of a cron job that continually runs and looks at the uptime of the system, or if the rpi is on UPS looks for the uptime of some reliable network device to signify power outage. Based on that event you could disable the equipment that you want and re-enable after a period of time. Not sure if you have control via API for individual equipment via API and would require scripting outside of reefpi.

Something else that I just thought of and may be possible today would be to monitor the energy usage of the retyurn pump if it is on a Kasa strip. If the device is on a kasa strip you could use power monitoring to trigger a macro etc that would put those devices in timeout. I am just thinking of this so would need testing etc, but if you have the RPI on an UPS it will see the drop in energy for the return pump and you could trigger something based on the lower and upper values. I will think about that one some more since it may be the most viable option right now if you are running Kasa strips and your return pump is on one. You use the PH function for the energy monitoring portion.

Here is the screen shot of my return pump usage, each dip shows when power was lost doing a water change.

return-pump.png


Some things to think about, I agree though would be nice to have something for when your not around for power outages.
Thanks @Tom Bishop I am on 4.1 and also using the ATO sensor time limit and set it up to send me an alert. I have had instances of forgetting to turn it on though.

The rest API is well over my head, I am not as intimate with coding/scripting.

I didn't the Kasa strips/outlets route, I ended up getting the Robo-Tank power bar as I wanted local control and not rely on the cloud. I only have zigbee outlets lying around none are wifi ...
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,344
Reaction score
1,720
Location
Missouri
Rating - 0%
0   0   0
Thanks @Ranjib , Something I tried and surprisingly was able to add my return pump outlet as an inlet, then I was able to add it to the ATO sensor module as a sensor to try and trigger a macro. This was really late at night, but I recall I did not get the desired result. I will explore this further.

As a suggestion, for the Dashboard within the equipment panel, it would be awesome to have the timer associated with the equipment as a drop-down below the equipment or make on/off button into OFF/TIMER/ON three-way button, where the equipment could be left on the timer and the associated timers automatically turned off when the switch is in the OFF or ON position.

Also would be nice to have a macro panel on the dashboard?


Thanks @Tom Bishop I am on 4.1 and also using the ATO sensor time limit and set it up to send me an alert. I have had instances of forgetting to turn it on though.

The rest API is well over my head, I am not as intimate with coding/scripting.

I didn't the Kasa strips/outlets route, I ended up getting the Robo-Tank power bar as I wanted local control and not rely on the cloud. I only have zigbee outlets lying around none are wifi ...
Yeah I use a combination of power strips I have one of each (although I am not using robotank I use something similar), the reason is I have some stuff on Kasa like return pump in the insatance that the RPI dies, becomes unresponsive etc. The items on the Kasa will keep trucking, then I have things on the direct control power side like heaters etc that I'd rather not have working if I do not have control of them. Understand about the scripting I am thinking about it and will see if there is an easy path, I do like the ATO reset option/timeout value. Maybe @Ranjib can comment on if that would be something hard to implement, but what I would like it to do is a timer that resets the ATO if it is outside of the parameter. That way we do not have to remember to reset it manually, if the timeout gets triggered wait X time and then enable again. Now maybe you have a number of times that you can do that, say after three times it just defaults to off and has to manually be enabled since maybe there is something more serious but I think that function would go a long way to helping things come up on a power outage.

:)
 

Adahm

Community Member
View Badges
Joined
Jan 25, 2017
Messages
34
Reaction score
24
Rating - 0%
0   0   0
Yeah I use a combination of power strips I have one of each (although I am not using robotank I use something similar), the reason is I have some stuff on Kasa like return pump in the insatance that the RPI dies, becomes unresponsive etc. The items on the Kasa will keep trucking, then I have things on the direct control power side like heaters etc that I'd rather not have working if I do not have control of them.

Great point, I assumed fail mode would be “as is” for the Pi driven power bar, not sure if the signal to energize the power bar relays is persistent.
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,344
Reaction score
1,720
Location
Missouri
Rating - 0%
0   0   0
Great point, I assumed fail mode would be “as is” for the Pi driven power bar, not sure if the signal to energize the power bar relays is persistent.
Depends on the relays being used if they are normally open or normally closed, not sure what they are using in the robotank power module, the ones I use are normally open so if reefpi dies etc they will fail open and that is ok for what I have on them, it's not fool proof, with automation comes risk just try to minimize it as much as you can but it's always there.
 
OP
OP
Ranjib

Ranjib

7500 Club Member
View Badges
Joined
Apr 16, 2016
Messages
9,825
Reaction score
17,041
Location
Pleasant Hill, Concord
Rating - 0%
0   0   0
Hi all, I recently set up reef-pi using Robo-Tank. I am still learning to set up automation using macros and timers. I have set up some macros to run when I want to turn off and on my return pump and for feed mode.

Macro 1 - Return pump OFF, turns off ATO sensor (timer and sensor), then turn off skimmer (timer & equipment), and then the return pump (timer & equipment) - this is to prevent skimmer overflow as the water level in sump rises when return is off.

Macro 2 - Return pump ON, turn on return pump (timer), wait 300 seconds and turn on Skimmer (timer), wait 900 seconds for return chamber water level to stabilize, turn on ATO sensor timer.

Macro 3 - Feed Mode is a combination of the two above with a 15 minute wait period

Basically, my need is driven by the time it takes my full siphon to develop (almost 3 minutes). During this time the return pump chamber level drops to the point that the return pump is sucking air I prevent this by using a float switch cutoff (using feature on Robo-Tank board). After the full siphon starts, it takes about 10 minutes for the water level to stabilize. I don't want to increase the water level in the return chamber to prevent the main tank from overflowing.

All of the above is fine and good so long as the tank was running steady state. Now I am wondering how to prevent the ATO and skimmer to have a delayed start in the event of a power outage and reboot.

I have left the skimmer in the equipment module to stay off on boot however, the timer will turn it on as it is set to turn on and stay on. I can remove the timer but that doesn't help. The same goes for the ATO sensor.

I thought about adding a timer to run a macro 2 however I can't get my head around how to implement this.

Is there a way to add delay for the above (equipment & ATO sensor) on boot or trigger a macro based on equipment state change?
equipment state change based triggers are not there. Let me think about it.

Kasa integration do not require cloud. They are local network calls, and should work as long as local wifi is working.
 
OP
OP
Ranjib

Ranjib

7500 Club Member
View Badges
Joined
Apr 16, 2016
Messages
9,825
Reaction score
17,041
Location
Pleasant Hill, Concord
Rating - 0%
0   0   0
Yeah I use a combination of power strips I have one of each (although I am not using robotank I use something similar), the reason is I have some stuff on Kasa like return pump in the insatance that the RPI dies, becomes unresponsive etc. The items on the Kasa will keep trucking, then I have things on the direct control power side like heaters etc that I'd rather not have working if I do not have control of them. Understand about the scripting I am thinking about it and will see if there is an easy path, I do like the ATO reset option/timeout value. Maybe @Ranjib can comment on if that would be something hard to implement, but what I would like it to do is a timer that resets the ATO if it is outside of the parameter. That way we do not have to remember to reset it manually, if the timeout gets triggered wait X time and then enable again. Now maybe you have a number of times that you can do that, say after three times it just defaults to off and has to manually be enabled since maybe there is something more serious but I think that function would go a long way to helping things come up on a power outage.

:)
We can do a “reset after “ like feature that will re-enable the ato after the specified amount of time .
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,344
Reaction score
1,720
Location
Missouri
Rating - 0%
0   0   0
We can do a “reset after “ like feature that will re-enable the ato after the specified amount of time .
I think that would be a nice feature to have and allow provide some additional protection on power outages when things come back online, pad the time to give things time to settle down. At least on my nano's I think it would work very well vs just turning the ATO off.

:)
 

Adahm

Community Member
View Badges
Joined
Jan 25, 2017
Messages
34
Reaction score
24
Rating - 0%
0   0   0
Came across a Home Assistant integration for Reef-Pi made by RedViper.

Since I am already using HA for home automation this was very cool.

It took but a few minutes to get reef-pi integrated. I am able to control reef-pi entities via home assistant. Yay! This mean I can run logic based automations for my use case.

It doesn’t have the ATO sensor pulled in yet though …
 

Attachments

  • 773CB3FA-42FF-4C3C-9474-87452A033254.png
    773CB3FA-42FF-4C3C-9474-87452A033254.png
    193 KB · Views: 35
OP
OP
Ranjib

Ranjib

7500 Club Member
View Badges
Joined
Apr 16, 2016
Messages
9,825
Reaction score
17,041
Location
Pleasant Hill, Concord
Rating - 0%
0   0   0
Came across a Home Assistant integration for Reef-Pi made by RedViper.

Since I am already using HA for home automation this was very cool.

It took but a few minutes to get reef-pi integrated. I am able to control reef-pi entities via home assistant. Yay! This mean I can run logic based automations for my use case.

It doesn’t have the ATO sensor pulled in yet though …
Super cool :)
 
OP
OP
Ranjib

Ranjib

7500 Club Member
View Badges
Joined
Apr 16, 2016
Messages
9,825
Reaction score
17,041
Location
Pleasant Hill, Concord
Rating - 0%
0   0   0
I noticed this on pcbway yesterday,
Looks super cool. All through hole components. PCA9685, Ezo, etc are i2c additional, that we have to plug in. I like it a lot :),
 

dadarara

Community Member
View Badges
Joined
Nov 16, 2020
Messages
88
Reaction score
38
Location
Israel
Rating - 0%
0   0   0
guys,
basic question :how to run a macro based on a temperature sensor ?

its not a simple issue. I want to switch the chiller if it below 15 degrees , not to freeze.
but switch it on to normal operation again if its simply 0.
I have a temp sensors that disconnect once in a while. so its kind of get a 0 reading.
the temp sensor is actually switches off the chiller case its below 15 celsius , but thats the problem, I want to reverse this action in case its simply disconnect (and thus 0 reading).

I was thinking to create a macro that checks if the temp is 0 and switches on/off the equipment
in the macro setup I see temperature step and can switch it on/off. not exactly sure I understand what that means for temp sensor ???

hope its clear.

P.S the disconnecting sensors is another issue that I need to solve. but I wish to have the above as a safe measure
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,344
Reaction score
1,720
Location
Missouri
Rating - 0%
0   0   0
I noticed this on pcbway yesterday,
Looks super cool. All through hole components. PCA9685, Ezo, etc are i2c additional, that we have to plug in. I like it a lot :)Funn,
Funny I also saw that last night, I am about to pull the trigger on an order for some viparspectra boards and noticed it. I am also thinking of having some of his goby hat boards made but cannot find the latest gerber files. :(

If anyone can point me to where they may be would be appreciated, looking on githiub there are three versions but none of them match the latest version that I have from him.
 

bishoptf

Valuable Member
View Badges
Joined
Jan 1, 2019
Messages
1,344
Reaction score
1,720
Location
Missouri
Rating - 0%
0   0   0
@robsworld78 was looking through your automated script and the question I have is when using the script do you still need to go into raspi-config to complete the setup for 1-wire etc? If not using a robotank setup I assume the answer is yes but if you were using a robotank are those settings done for you also?
 

Adahm

Community Member
View Badges
Joined
Jan 25, 2017
Messages
34
Reaction score
24
Rating - 0%
0   0   0
Came across a Home Assistant integration for Reef-Pi made by RedViper.

Since I am already using HA for home automation this was very cool.

It took but a few minutes to get reef-pi integrated. I am able to control reef-pi entities via home assistant. Yay! This mean I can run logic based automations for my use case.

It doesn’t have the ATO sensor pulled in yet though …


Thanks to RedViper twho added ATO sensors upon request. Please do remember to recognize if you use the integration. The on/off controls are almost instant through Home Assistant.

2B17E44C-D564-4673-A139-56B9D4088975.png
 
Last edited:

robsworld78

Well-Known Member
View Badges
Joined
Feb 14, 2020
Messages
952
Reaction score
1,280
Location
Edmonton, Canada
Rating - 0%
0   0   0
@robsworld78 was looking through your automated script and the question I have is when using the script do you still need to go into raspi-config to complete the setup for 1-wire etc? If not using a robotank setup I assume the answer is yes but if you were using a robotank are those settings done for you also?
That script does eliminate the need to make any config changes to the Pi, it can be used on any install not just my controller. During the install it'll ask if you have controller, that's just to copy over a database setup for it.

This is what it does.
  1. Asks for time zone (it provides a clickable link to find)
  2. Updates the Pi operating system
  3. Installs I2C tools (this adds i2cdetect feature)
  4. Asks what Raspberry Pi your are using so it can install the correct reef-pi (currently installing 4.3)
  5. Asks if Robo-Tank is being used (if so it copies over a database with drivers / connectors etc added)
  6. Overwrites /boot/config.txt file on Pi (this setups 1-wire, I2C, etc)
  7. Deletes the download and install script
  8. Confirms install complete and provides link with your local IP to access reef-pi webpage
  9. After user presses Enter key when install is finished it will expand the file system on Pi and reboot
These are the 3 commands to run the script, first downloads, 2nd unzips and 3rd runs the script.
 

A worm with high fashion and practical utility: Have you ever kept feather dusters in your reef aquarium?

  • I currently have feather dusters in my tank.

    Votes: 71 37.8%
  • Not currently, but I have had feather dusters in my tank in the past.

    Votes: 63 33.5%
  • I have not had feather dusters, but I hope to in the future.

    Votes: 25 13.3%
  • I have no plans to have feather dusters in my tank.

    Votes: 28 14.9%
  • Other.

    Votes: 1 0.5%
Back
Top