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.
I just picked up a couple of Chinese Black Box LED fixtures for cheap.. They came with two of these LED Drivers in them, so it got me thinking.. How can I connect these to the reef-pi to control them....
I'm thinking I should be able to connect the PWM wire to an open pin on the pca9685 and control it that way....
If so, this opens up a nice lighting option..
Amazon product
theres a setting under telemetry configuration on the maximum alerts of an individual type in an hour. Set it to 3 or something you like..I finally got around to add a low sump level incase ATO fails and I set up notifications and have it set to run a dummy outlet I'm not using the outlet triggers as it should on and off but the notifications never stop? Has anyone else had this trouble and how did you fix it? Thanks in advance..
theres a setting under telemetry configuration on the maximum alerts of an individual type in an hour. Set it to 3 or something you like..
This sounds great, on behalf of many thanks for your hard work.Thanksgiving is on the way, and that means a major release of reef-pi.
I had a few remaining wish list , other than what has already been shipped part of 4.1/4.2/4.3,
- Reset ATO usage
- Light graph
- Ability to control light enable/disable from macro
- ph control chart (similar to temperature)
I dont expect any breaking changes, i.e. 4.0 users should be able to upgrade without any hiccups. I am expecting most of these to be done within next two weeks, after which we'll have release candidate, or direct general availability release if we feel confident on the build/test.
Let me know if you folks have any thoughts, particularly any major bugs that we should be focusing on instead.
Yeah, that's a very scary failure mode, had it twice before, I've made a bandaid solution by wiring the enable pins on the l293n boards to the pi and enable and disable the motor drivers on a timer, not relying on i2cThis sounds great, on behalf of many thanks for your hard work.
This isn't a bug but yesterday I got a sad email where someone's dosing pump didn't turn off, thankfully no harm was done. He restarted things which immediately turned off the pump. The control for the pump was coming from the pca9685, my guess is reef-pi sent out the command to turn off the pump but that command didn't make it to the pca9685 in tact. Unfortunately this is the problem with I2C, it'll never be 100% perfect as it has no acknowledge system.
I didn't think it was possible to read the current value of a specific pca9685 pin as I've looked into this in the past however after hearing this I thought I would try again. I stumbled across a new c++ Arduino based library from Rob Tillaart last updated early this year. Again it looks like he did what few could and added a function to read the set value of a pin. I've tested it out and it works perfectly. You're able to set the value normally then immediately check and verify if it in fact changed.
So now I'm wondering if you're able to incorporate a verification on mainly the dosing pumps as they are critical. When reef-pi turns on/off the pump it could check the pin to verify it's set proper and move on, if not try again.
The function is call getPWM and is located in the PCA9685.cpp file here.
PCA9685_RT/PCA9685.cpp at master · RobTillaart/PCA9685_RT
Arduino library for I2C PCA9685 16 channel PWM extender, 12 bit - RobTillaart/PCA9685_RTgithub.com
GitHub - RobTillaart/PCA9685_RT: Arduino library for I2C PCA9685 16 channel PWM extender, 12 bit
Arduino library for I2C PCA9685 16 channel PWM extender, 12 bit - RobTillaart/PCA9685_RTgithub.com
Unfortunately I'm still not comfortable poking in the code yet, would be great if you could start adding comments, that's my feature request.
If it helps any I can convert this function to work with pure c++ and drop the Arduino based libraries.
Nevermind, finally figured it out...not sure how much storage it actually uses but set it up for a year and I guess I can increase that if needed.Does anyone know how to configure Prometheus for persistent storage, I have a vm running Prometheus and grafana but when I went back to look at some data for this summer no data was found. I'm pretty sure I need to have Prom set up to keep the data and not roll over but not sure how to configure it to do that, tried googling but lots of container based stuff and still trying to find the right how to....Thanks in advanced
Yup. Prometheus is a persistent storage. You just have to tune the retention time per your requirementsNevermind, finally figured it out...not sure how much storage it actually uses but set it up for a year and I guess I can increase that if needed.
Yup finally found the option and where I needed to make it. How long are you setting the retention period for? I upped it to 1y but just curious on what you are using.Yup. Prometheus is a persistent storage. You just have to tune the retention time per your requirements
#sudo apt-get install libxml2-dev libxslt-dev python-dev
#pip install requests
#pip install bs4
#pip install lxml
import requests
from bs4 import BeautifulSoup
#put the address for your apex here.
#you probably don't have a DNS entry for it
#so you should set a static IP and enter it here
#See your apex's configuration > network setup section
apexAddress = "apex"
#Get the data from the Apex. You need to enable "Open XML Access"
#See your apex's configuration > network setup section
apexData = requests.get("http://" + apexAddress + "/cgi-bin/status.xml")
xml_soup = BeautifulSoup(apexData.content, 'xml')
#Write the data into files for reef-pi to ingest
for probe in xml_soup.find_all('probe'):
name = probe.find("name").contents[0]
value = probe.find("value").contents[0]
probeType = probe.find("type").contents[0]
filename = name + ".txt"
f = open(filename, "w")
f.write(value)
f.close()
use file analog driver to associate this file with a driver. then create an analog input connector using the new driver. after than you can use the analog input connector under ph module to read it and control equipment/alert etc.Wanted to use some of the probes I have on my old Apex until I can replace them with native ones, so I enabled 'Open XML Access' and wrote this python3 script. You might also find it useful. It just writes the value of each probe to a file named the same as that probe's name. This might exist somewhere else, but I couldn't find it in ten minutes, so...
How can I actually use these values, though? I've tried adding the file-analog and file-digital drivers, but I'm not sure where to go from there. I tried adding the file-analog driver as an analog input and then adding it on the temperature tab, but that doesn't seem to work, I can't select it as an input.
Python:#sudo apt-get install libxml2-dev libxslt-dev python-dev #pip install requests #pip install bs4 #pip install lxml import requests from bs4 import BeautifulSoup #put the address for your apex here. #you probably don't have a DNS entry for it #so you should set a static IP and enter it here #See your apex's configuration > network setup section apexAddress = "apex" #Get the data from the Apex. You need to enable "Open XML Access" #See your apex's configuration > network setup section apexData = requests.get("http://" + apexAddress + "/cgi-bin/status.xml") xml_soup = BeautifulSoup(apexData.content, 'xml') #Write the data into files for reef-pi to ingest for probe in xml_soup.find_all('probe'): name = probe.find("name").contents[0] value = probe.find("value").contents[0] probeType = probe.find("type").contents[0] filename = name + ".txt" f = open(filename, "w") f.write(value) f.close()
you mean equipment state chart? we can do that right now with prometheus metric. for a native chart inside reef-pi, i have to think about it. It will cost some memory to store the historical state. we do this for the control systems (ph, temperature, ato etc) and not just independent equipmenthi
Ranjib can you add a diagram like the one for ATO to see when one of my Equipment turned on or off? one exemple is I want to know when my heater turned on or off
Yes. If you have hs300 or 110 units then the driver will provide analog input connectors (pin 0-5 for hs300, and only 0 for hs110) to read the current draw, that you can use in ph module to monitor and control other thingsPretty sure this has come up just not finding much with search, but is it possible to have power monitoring with the Kasa strips? I'd like to get notified if the power dips on the return pump, wasn't sure if possible and if so what did you need to do to enable it.
I agree with @robsworld78 on the need to verify if the dosing pumps are on and off when using pca9685. Dosing pumps failures are scary; having the peace of mind they are working appropriately would be wonderful.This sounds great, on behalf of many thanks for your hard work.
This isn't a bug but yesterday I got a sad email where someone's dosing pump didn't turn off, thankfully no harm was done. He restarted things which immediately turned off the pump. The control for the pump was coming from the pca9685, my guess is reef-pi sent out the command to turn off the pump but that command didn't make it to the pca9685 in tact. Unfortunately this is the problem with I2C, it'll never be 100% perfect as it has no acknowledge system.
I didn't think it was possible to read the current value of a specific pca9685 pin as I've looked into this in the past however after hearing this I thought I would try again. I stumbled across a new c++ Arduino based library from Rob Tillaart last updated early this year. Again it looks like he did what few could and added a function to read the set value of a pin. I've tested it out and it works perfectly. You're able to set the value normally then immediately check and verify if it in fact changed.
So now I'm wondering if you're able to incorporate a verification on mainly the dosing pumps as they are critical. When reef-pi turns on/off the pump it could check the pin to verify it's set proper and move on, if not try again.
The function is call getPWM and is located in the PCA9685.cpp file here.
PCA9685_RT/PCA9685.cpp at master · RobTillaart/PCA9685_RT
Arduino library for I2C PCA9685 16 channel PWM extender, 12 bit - RobTillaart/PCA9685_RTgithub.com
GitHub - RobTillaart/PCA9685_RT: Arduino library for I2C PCA9685 16 channel PWM extender, 12 bit
Arduino library for I2C PCA9685 16 channel PWM extender, 12 bit - RobTillaart/PCA9685_RTgithub.com
Unfortunately I'm still not comfortable poking in the code yet, would be great if you could start adding comments, that's my feature request.
If it helps any I can convert this function to work with pure c++ and drop the Arduino based libraries.