Can a raspberry pi Pico be used. Those seem to be always available on Adafruit or whatever site you choose?
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Unfortunately no. Not for running the main reef-pi software.Can a raspberry pi Pico be used. Those seem to be always available on Adafruit or whatever site you choose?
Hive mind
I am pleased to announce the immediate availability of 5.3 . This release ships with a decent size of the changelog. Primary focus of this release was to address several UI/UX bugs around calibration , charts, control setting that was annoying. We addressed bulk of those reported issues. As usual, there was community contributions as well. Many hugs goes to the contributors. Following are the highlights:
New features and enhancements:
- Users can now specify a transform expression to be applied on raw analog sensor reading (e.g. to convert Celsius to Fahrenheit). The transform function takes the shape of an arithmatic expression with a variable "v" interpreted as the raw analog sensor value. This feature is implemented using govaluate library that allows numerical values, arithmetic operators, parenthesis and more. Check the library manual for details. Just remember that reef-pi will inject the value of "v" as raw reading in the transform expression provided.
- Doser subsystem will now emit metrics and doser charts will reflect the same
- Error summary in the footer section now links to error section in configuration tab . Users can now just click and check the details of errors conveniently. contributed by @richievos
- Footer section will now show if the controller is running in dev mode, in red as warning. We hope this makes it easy to detect cases where users inadvertently enabled dev mode.
- Footer section will now include "year" information to represent current time. My personal requirement. Now after running reef-pi for 5+ years i miss the years in older screenshots. I felt given reef tanks last years.. it makes sense to have the year info in footer. Any screenshot that way will be amortized
- Driver loading error will be logged under errors section for users to review and assess. No more silent driver failures. Kasa powerstrip load failure like cases were harder to detect due to this. We hope this will make it easier for users to detect driver issues (since it also has timestamp, other than the exact error details).
- Connectors addition/update operation will now prompt only relevant driver choices (e.g. analog connectors will show only drivers with analog input pins in the driver options). Before this all drivers were being listed. This is a small user experience enhancements, suggested by another community member.
Chores
Bug fixes
- Equipment entries will show outlet name (restoring older behavior)
- Get rid of spurious log section in the UI. It was there to capture UI errors and causes confusion with Configuration -> Errors tab.
Release builds are available at usual location:
- Fixed doser calibration bug. Support volume based stepper motor calibration. Make calibration UI reflective of doser type (speed, duration for dcpumps and volume for steppers)
- Sort chart data with timestamp across all entities (ph, temperatures, ato etc). Unsorted data was causing bogus charts where new data would not line up on the time axis.
- Fix cpu usage notify target setting type.
- Make temperature target thresholds optional when control is not being used - contributed by @richievos
- Cron job validation through backend instead of ui - fix spurious cron schedule validation errors in the ui. Acceptable cron syntax like "*/3" was being rejected by UI validation. Given cron expression is rich and we have backend based validation, we decided to not do the cron syntax validation in ui and just use the backend. This is more sustainable and does not reduce the awesome cron capabilities
Release Analog sensor reading transformation · reef-pi/reef-pi
[feat] Users can now specify a transform expression to be applied on raw sensor reading (e.g. to convert Celsius to Fahrenheit) Doser subsystem will now emit metrics and doser charts will reflect...github.com
reef-pi 4.0 or above users should be able to upgrade their installs directly through the UI. If you can please test and let us know if you have any feedback.
It doesn't even stay set to disable. Reverts back to enabled. The more I click on items the more I find doesn't work.Maybe it’s misleading. I remember a similar „enable“ setting for macros, but I think that only disables the Macro itself, not the equipment it’s connected to.
I guess it might be similar with lights, in that it only enables/disables the automatic intensity profiles, but not the light itself ?
You can change either reef-pi via the ui to use 443 or any other port like 8080 etc, and you should be able to do the same for pi-hole. I will say though that while you can combine stuff I would not recommend it, rpi's are cheap and I tend to keep reef-pi by itself but thats a personal decision they can coexist as long as memory and cpu are not an issue.Hey everyone, I've been working on my Reef-Pi project for a few weeks, and I really like the software. It started for me when my LED controller died, and instead of spending $100 on a new one, I was able to use a Pi 2 I had sitting in a drawer. This week I decided I wanted to do a little multitasking with my Pi, and installed Pi Hole for my network. Unfortunately when I installed it, it took over port 80 for it's interface, so I can't get to my Reef-Pi page anymore. Is there a config file I can edit to change the port that the Reef-Pi interface uses? Thanks, this thread has been an awesome source of information.
Great to hear ! What features are you using ?Just here to say that my reef-pi has been running flawlessly this whole time... thanks @Ranjib !!!
Ive used most of them over the years, but with my current set up its fairly simple. Temperature, dosing, all equipment controlled by reef-pi, a bunch of timers, auto top off, a bunch of float switches protecting different things, email alerts which have definitely saved my tank at least one time!Great to hear ! What features are you using ?
I’ll try to build one myself for my freshwater aquarium. If that works we could try adapting it to saltwaterIve used most of them over the years, but with my current set up its fairly simple. Temperature, dosing, all equipment controlled by reef-pi, a bunch of timers, auto top off, a bunch of float switches protecting different things, email alerts which have definitely saved my tank at least one time!
I would love a salinity monitor / alert if its ever an option.
Nice one! Ill keep an eye on your threadI’ll try to build one myself for my freshwater aquarium. If that works we could try adapting it to saltwater
hmm.. i have never tried names with period. i cant think of any code that will break due to this.. but i have to test it outThis is the entry that I think I need to update using the reef-pi db command:
"8": {
"id": "8",
"name": "Doser Yellow 1.1ml h202 dj5",
"outlet": "8",
"on": false
Well I took the easy path and just deleted the ID 8, easy enough to re-create, so here is what I did:
sudo reef-pi db delete equipment 8
Then restarted reef-pi service and this time it started right up, so I assume I cannot use "." in the name/labels? I have a doser that is 1.1ml/min and was trying to use that in the name but I could do 1_1ml.
Here is the output from the journal...hmm.. i have never tried names with period. i cant think of any code that will break due to this.. but i have to test it out
http2: panic serving 10.99.99.146:52016: descriptor Desc{fqName: "equipment_doser_yellow_1.1ml_dj5_state", help: "Module:equipment Ite
m:Doser Yellow 1.1ml dj5-state", constLabels: {}, variableLabels: []} is invalid: "equipment_doser_yellow_1.1ml_dj5_state" is not a valid metric name
Aug 13 19:57:51 octopi reef-pi[12763]: goroutine 6080056 [running]:
Aug 13 19:57:51 octopi reef-pi[12763]: net/http.(*http2serverConn).runHandler.func1(0x2e68560, 0x33a3fc4, 0x35376c0)
Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/h2_bundle.go:5713 +0x11c
Aug 13 19:57:51 octopi reef-pi[12763]: panic(0x618bc8, 0x310d480)
Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/runtime/panic.go:969 +0x118
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/prometheus/client_golang/prometheus.(*Registry).MustRegister(0x2d3f340, 0x310d468, 0x1, 0x1)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/pkg/mod/github.com/prometheus/[email protected]/prometheus/registry.go:403 +0x80
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/prometheus/client_golang/prometheus/promauto.Factory.NewGauge(0x7aaff0, 0x2d3f340, 0x0, 0x0, 0x0, 0x0, 0x308a4e0, 0x26, 0x2edf380, 0x32, ...)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/pkg/mod/github.com/prometheus/[email protected]/prometheus/promauto/auto.go:297 +0xc0
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/prometheus/client_golang/prometheus/promauto.NewGauge(...)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/pkg/mod/github.com/prometheus/[email protected]/prometheus/promauto/auto.go:191
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/telemetry.(*telemetry).EmitMetric(0x2dd8000, 0x6b03ad, 0x9, 0x2dc95e0, 0x1c, 0x0, 0x0)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/telemetry/telemetry.go:189 +0x510
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/modules/equipment.(*Controller).updateOutlet(0x2d09e60, 0x31f904f, 0x1, 0x2dc9540, 0x16, 0xbb8070, 0x1, 0x0, 0x0, 0x
0)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/modules/equipment/controller.go:83 +0xd8
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/modules/equipment.(*Controller).Update(0x2d09e60, 0x31f904f, 0x1, 0x31f904f, 0x1, 0x2dc9540, 0x16, 0xbb8070, 0x1, 0x
0, ...)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/modules/equipment/equipment.go:58 +0xcc
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/modules/equipment.(*Controller).UpdateEquipment.func1(0x31f904f, 0x1, 0x2f6a300, 0x0)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/modules/equipment/api.go:166 +0x4c
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/utils.JSONUpdateResponse(0x5d66c0, 0x2f6a300, 0x33a3d00, 0x7ab770, 0x2e68560, 0x32d4d00)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/utils/http_json.go:95 +0x124
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/modules/equipment.(*Controller).UpdateEquipment(0x2d09e60, 0x7ab770, 0x2e68560, 0x32d4d00)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/modules/equipment/api.go:168 +0x7c
Aug 13 19:57:51 octopi reef-pi[12763]: net/http.HandlerFunc.ServeHTTP(0x2f4c880, 0x7ab770, 0x2e68560, 0x32d4d00)
Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/server.go:2012 +0x34
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/gorilla/mux.(*Router).ServeHTTP(0x2d2f7a0, 0x7ab770, 0x2e68560, 0x34acc80)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/pkg/mod/github.com/gorilla/[email protected]/mux.go:210 +0xac
Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/utils.(*auth).Authenticate.func1(0x7ab770, 0x2e68560, 0x34acc80)
Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/utils/auth.go:57 +0x294
Aug 13 19:57:51 octopi reef-pi[12763]: net/http.HandlerFunc.ServeHTTP(0x304eb70, 0x7ab770, 0x2e68560, 0x34acc80)
Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/server.go:2012 +0x34
Aug 13 19:57:51 octopi reef-pi[12763]: net/http.(*ServeMux).ServeHTTP(0xbf40b0, 0x7ab770, 0x2e68560, 0x34acc80)
Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/server.go:2387 +0x16c
Aug 13 19:57:51 octopi reef-pi[12763]: net/http.serverHandler.ServeHTTP(0x2d80120, 0x7ab770, 0x2e68560, 0x34acc80)
Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/server.go:2807 +0x88
Aug 13 19:57:51 octopi reef-pi[12763]: net/http.initALPNRequest.ServeHTTP(0x7aca10, 0x2f56dc0, 0x2cf7e00, 0x2d80120, 0x7ab770, 0x2e68560, 0x34acc80)
Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/server.go:3381 +0x5c
Aug 13 19:57:51 octopi reef-pi[12763]: net/http.(*http2serverConn).runHandler(0x35376c0, 0x2e68560, 0x34acc80, 0x3103430)
Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/h2_bundle.go:5720 +0x74
Aug 13 19:57:51 octopi reef-pi[12763]: created by net/http.(*http2serverConn).processHeaders
Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/h2_bundle.go:5454 +0x418
you are using grafana /prometheus? . is not allowed by prometheus, thats what causing the crash. im bit surprised though, this should not happen as we sanitize the metric name in code,. may be this version didnt had that fixHere is the output from the journal...
Code:http2: panic serving 10.99.99.146:52016: descriptor Desc{fqName: "equipment_doser_yellow_1.1ml_dj5_state", help: "Module:equipment Ite m:Doser Yellow 1.1ml dj5-state", constLabels: {}, variableLabels: []} is invalid: "equipment_doser_yellow_1.1ml_dj5_state" is not a valid metric name Aug 13 19:57:51 octopi reef-pi[12763]: goroutine 6080056 [running]: Aug 13 19:57:51 octopi reef-pi[12763]: net/http.(*http2serverConn).runHandler.func1(0x2e68560, 0x33a3fc4, 0x35376c0) Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/h2_bundle.go:5713 +0x11c Aug 13 19:57:51 octopi reef-pi[12763]: panic(0x618bc8, 0x310d480) Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/runtime/panic.go:969 +0x118 Aug 13 19:57:51 octopi reef-pi[12763]: github.com/prometheus/client_golang/prometheus.(*Registry).MustRegister(0x2d3f340, 0x310d468, 0x1, 0x1) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/pkg/mod/github.com/prometheus/[email protected]/prometheus/registry.go:403 +0x80 Aug 13 19:57:51 octopi reef-pi[12763]: github.com/prometheus/client_golang/prometheus/promauto.Factory.NewGauge(0x7aaff0, 0x2d3f340, 0x0, 0x0, 0x0, 0x0, 0x308a4e0, 0x26, 0x2edf380, 0x32, ...) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/pkg/mod/github.com/prometheus/[email protected]/prometheus/promauto/auto.go:297 +0xc0 Aug 13 19:57:51 octopi reef-pi[12763]: github.com/prometheus/client_golang/prometheus/promauto.NewGauge(...) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/pkg/mod/github.com/prometheus/[email protected]/prometheus/promauto/auto.go:191 Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/telemetry.(*telemetry).EmitMetric(0x2dd8000, 0x6b03ad, 0x9, 0x2dc95e0, 0x1c, 0x0, 0x0) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/telemetry/telemetry.go:189 +0x510 Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/modules/equipment.(*Controller).updateOutlet(0x2d09e60, 0x31f904f, 0x1, 0x2dc9540, 0x16, 0xbb8070, 0x1, 0x0, 0x0, 0x 0) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/modules/equipment/controller.go:83 +0xd8 Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/modules/equipment.(*Controller).Update(0x2d09e60, 0x31f904f, 0x1, 0x31f904f, 0x1, 0x2dc9540, 0x16, 0xbb8070, 0x1, 0x 0, ...) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/modules/equipment/equipment.go:58 +0xcc Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/modules/equipment.(*Controller).UpdateEquipment.func1(0x31f904f, 0x1, 0x2f6a300, 0x0) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/modules/equipment/api.go:166 +0x4c Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/utils.JSONUpdateResponse(0x5d66c0, 0x2f6a300, 0x33a3d00, 0x7ab770, 0x2e68560, 0x32d4d00) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/utils/http_json.go:95 +0x124 Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/modules/equipment.(*Controller).UpdateEquipment(0x2d09e60, 0x7ab770, 0x2e68560, 0x32d4d00) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/modules/equipment/api.go:168 +0x7c Aug 13 19:57:51 octopi reef-pi[12763]: net/http.HandlerFunc.ServeHTTP(0x2f4c880, 0x7ab770, 0x2e68560, 0x32d4d00) Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/server.go:2012 +0x34 Aug 13 19:57:51 octopi reef-pi[12763]: github.com/gorilla/mux.(*Router).ServeHTTP(0x2d2f7a0, 0x7ab770, 0x2e68560, 0x34acc80) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/pkg/mod/github.com/gorilla/[email protected]/mux.go:210 +0xac Aug 13 19:57:51 octopi reef-pi[12763]: github.com/reef-pi/reef-pi/controller/utils.(*auth).Authenticate.func1(0x7ab770, 0x2e68560, 0x34acc80) Aug 13 19:57:51 octopi reef-pi[12763]: /Users/ranjib/gocode/src/github.com/reef-pi/reef-pi/controller/utils/auth.go:57 +0x294 Aug 13 19:57:51 octopi reef-pi[12763]: net/http.HandlerFunc.ServeHTTP(0x304eb70, 0x7ab770, 0x2e68560, 0x34acc80) Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/server.go:2012 +0x34 Aug 13 19:57:51 octopi reef-pi[12763]: net/http.(*ServeMux).ServeHTTP(0xbf40b0, 0x7ab770, 0x2e68560, 0x34acc80) Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/server.go:2387 +0x16c Aug 13 19:57:51 octopi reef-pi[12763]: net/http.serverHandler.ServeHTTP(0x2d80120, 0x7ab770, 0x2e68560, 0x34acc80) Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/server.go:2807 +0x88 Aug 13 19:57:51 octopi reef-pi[12763]: net/http.initALPNRequest.ServeHTTP(0x7aca10, 0x2f56dc0, 0x2cf7e00, 0x2d80120, 0x7ab770, 0x2e68560, 0x34acc80) Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/server.go:3381 +0x5c Aug 13 19:57:51 octopi reef-pi[12763]: net/http.(*http2serverConn).runHandler(0x35376c0, 0x2e68560, 0x34acc80, 0x3103430) Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/h2_bundle.go:5720 +0x74 Aug 13 19:57:51 octopi reef-pi[12763]: created by net/http.(*http2serverConn).processHeaders Aug 13 19:57:51 octopi reef-pi[12763]: /usr/local/Cellar/go/1.14.2_1/libexec/src/net/http/h2_bundle.go:5454 +0x418
I then changed the 1.1 to 1_1 and its all good now, this was running v4.1..I should always have a backup but this stuff rarely happens since you spoiled us with good code...
AND was easy to fix with the DB commands.
Yup I am using prometheus/grafna for sure, allows me to keep track of things and really is the dashboard that I use daily vs the reef-pi dashboard. Yeah I'm on a pretty old version, I'm kind of stubborn since if it works and I don't need any of the new features then I tend to stay put. I keep meaning to get my test unit up and working where I can run newer versions but just haven't spent the time to do it. Really wasn't an issue once I figured out what the issue was and gave me an opportunity to use the database command and it worked like a treat.you are using grafana /prometheus? . is not allowed by prometheus, thats what causing the crash. im bit surprised though, this should not happen as we sanitize the metric name in code,. may be this version didnt had that fix