Forum Replies Created
-
AuthorPosts
-
ShawnHarteParticipantThe ui and weather both need to use the veuphoria.com URL. You will no longer be able to use the app or current ui, in order to adjust settings you need to forward the Opensprinkler port on your router, and use your external IP for the site address. You can use a DDNS site as well.
Then you can access your controller by visiting ui.veuphoria.com The reason I did it this way is the script for weather data does some of the heavy lifting for calculating ET server-side and couldn’t be done on the controller. The app had to be modified and updates would have broken things so it was frozen for development, and I didn’t want to host an app that was so similar to the base app to prevent confusion. An internet connection is required for weather data, so it should be of little consequence to need one for the ui elements.
If you’d like to see the weather script and ui it is available on github with the firmware. It could be locally hosted on just about any platform that will run a basic python 2.7 script, if you would like to avoid using a secondary server. It does use weatherunderground by default so be sure the service is available in your area.
ShawnHarteParticipantWhen you are determining the initial watering times for your particular location and vegetation take note of the daily averages for temperature and humidity from a nearby weather underground personal weather station.
For instance you’d like it to water for 10minutes everyday at sunrise, this will be your idealist baseline time. Then the weather for the last week has averaged about 62F and 55% humidity if you exclude “outlier” days. Please note it is important to not include weather that should have been adjusted for. Now use the temp and humidity you found for your location in the adjustment settings with the program set for ideal times. As the weather drifts from your measured data it will adjust the time more appropriately.
The important thing to remember is the Zimmerman method needs to be set for ideal conditions initially and may take a couple of tries to nail down. Once you’ve tweaked the settings it will down a pretty good job of making adjustments for weather that would be considered abnormal, like high temp low humidity, or random afternoon thunderstorms. It isn’t perfect, but, it’s trade-off is in simplicity of setup. Just check on things once in a while and you’ll find you won’t have any problems after those first few tweaks.
I spent a while setting up an ET method that is a lot more complicated and it probably just barely outperforms the Zimmerman method in most locations. Where I live in Colorado I did see some nice water savings with ET, however, virtually no where else do they have the incredible unpredictability and crazy swings in weather patterns that we get here. End of the day, I’d recommend the Zimmerman method to anyone, and I’d encourage them to do the small amount of homework needed to see the gains they expect.
ShawnHarteParticipantYour best bet for learning how the modules all interact is going to be opening the entire project in something like notepad++ and going through the header (.h) files for which module defines the functions used. At one point I did have a pretty generalized flow chart for everything, however, I lost almost everything when my computer died. I’ll take a look at what I may still have unfortunately I don’t think it’s much.
One of my biggest problems getting everything to work was the limited space available on the older hardware I had. There was a lot of test and adjustment and I had to remove some of the newer functionality to keep the size down. It isn’t too bad once you have the basics down, and the code is pretty straightforward. Keep verbose mode on when compiling and watch for errors, then just look for whatever causes it to break. Once it compiles properly you’re usually close enough to just observe the controller and correct minor left over issues.
Good luck, it’s a fun and rewarding process to dig in and make your own changes. Just don’t give up, Ray and Samer have done a fantastic job keeping everything at the hobbyist level.
ShawnHarteParticipantSorry for never getting back to this project, but to answer your question yes, if it compiles without error it is safe to upload to the controller. It won’t cause any irreversible damage. Please do monitor it for a few days to make sure nothing pops up. For peace of mind if I ever had an error it would manifest itself immediately, with conditions like not booting, crashing immediately when trying to modify a program, or simply displaying nonsense in the LCD.
The ui.veuphoria.com will only work properly with 2.1.5-6 and the ET FW. Anything else will have changes that will not work at all. I would suggest against using it for anything other than the ET FW.
ShawnHarteParticipantI’ve been in and out of the hospital, sorry for not getting back to this sooner. I’ll update the master branch of the fork when I get a chance but for now I have created a new branch at the last point that everything compiled.
It’ll probably be a few weeks but I should have the master caught up with some of the newer features. I know this is the complete backwards way to do it, but, I’ve literally lost my spot on what the heck I was doing. So until I figure out what was going on in my head, I’ll leave the master as it was and you should be able to clone and build the CompilesProperly branch.Thanks for being patient with me,
Shawn
ShawnHarteParticipantIf you are running a sprinkler controller without a flow meter then it doesn’t matter how you set up the timers it can over or under water. ET calculations just determine how much one should water, not whether or not your system is damaged. To be completely fair does your toilet have a flow meter, because that could run for days as well, and it has nothing to do with the low flow tank.
Not sure what you believe ET calculations do, but it isn’t there to determine whether or not your system is functioning in proper mechanical fashion. That’s like blaming the oven timer for burning your food because the thermostat doesn’t work.Buy hey thanks for dragging up this thread to blame it for a problem it wasn’t meant to address. You’re more than welcome to spend your time adding a flow meter, just as I have and the system will do its best to manage your water times for you. But at the end of the day you’ll still be responsible for maintenance, and that has nothing to do with “ET world.”
Side note: Flow sensors can be added to all of the controllers that will run the ET firmware. Since hardware version 2.1 current sensing was included and can be used to determine whether or not a valve is functioning. And in both cases the logging functions would reveal the fault, for which a simple script could be used to send a warning email, as it’s unlikely the software could fix mechanical issues.
ShawnHarteParticipantIs your sensor positive or negative pulse? If you have a bad sensor and leave the sensor wire “floating” all sorts of wierd things can happen. The wire acts as an antenna and once the voltage on the wire reaches a high enough peak it will trigger a signal. The wire can get interference from just about anything, like wireless routers, your TV, the microwave, or even radio stations. So trying to tie the phantom pulse to something can be very difficult, however, it is likely you have a bad sensor and replacing it will remedy the problem.
If it’s a positive pulse setup don’t ever leave the wire hanging in the air with nothing attached, a large enough charge can build on the wire and damage the port. This is why cable TV ports left open will have terminators, a basic load, on them.
If you have a negative pulse setup, watch for bad or disconnected grounds. A partial ground fault can cause spurious signals. Leaving the wire hanging in this setup usually results in bad or no data, but can damage the port sending the signal down the wire by acting as a short circuit. Odds are this is the type of sensor you have and it is either bad or the wire going to it is damaged or improperly connected.
Short answer, you most likely need to replace your flow sensor and the problem will go away. Hope that helps a bit.
ShawnHarteParticipantI had started working on updating to include some of the newest features and I managed to update my main branch. If you discover build issues just go back a version on github and build from that. It still works fine, but as mentioned isn’t perfect and has a few minor issues.
I will probably revert my recent changes and create a test branch to mess with. Sorry I haven’t had time to work in it, I had planned to be done with it weeks ago. If you want to wait just check the dates, if not just go one version back in the history.
ShawnHarteParticipantThis could be approached 2 different ways. The first would be to set up a program with everything you want to run and start times then disable it. When the trigger level is reached have the program enabled or disabled again accordingly.
The second approach is simply scheduling a manual run with the api. This method would run the program once and then it disappears. If another program is already running it will add itself to the queue and run when your setup allows. This seems closest to what you want, but comes with the drawback of needing to externally create the program. It’s not really a big deal just putting together a string to send to OS. You could control the start time by delaying sending the command to OS until your desired time.
ShawnHarteParticipantWell not being the guy that has to work with revision of the case or boards, my if I could have everything wish would be for a pin setup like the current sensor input is designed. Maybe just another set on the top or something.
Knowing that requiring a remolding of the case could add costs, perhaps just a set of pins inside tucked up by the LCD,then if someone wants to use that connector they could figure out how to get a wire in there.
The biggest reason I ask for a change though is the capabilities that could nearly become drag and drop additions to the firmware. I’m currently working on the request to water using light accumulation, and discovered the pins and then the documentation for them over on rayshobby. Code wise I have to do very little to add the sensor and make it fully functional, however, I had to make sure the person requesting the feature could solder in pins. If they for some reason we’re unable to do it, adding the light sensor would be a pain firmware-wise because of the digital input to OS versus the analog nature or I2C output of most light sensors.
I’m super happy with the breakout right now, as a person that tinkers with everything, but I could see some pretty keen uses if more normalish people were able to take advantage of the built in functionality.
Basically I could see more uses for systems in greenhouses, or indoor plant watering. Or even off grid uses with localized weather stations. Another would be using lift or well pumps with limited supply. I2C just opens up a broader range of sensors, with simple mods to the firmware, that the current sensor port simply can’t handle. Of course cost benefit analysis would need to be addressed as I’m not a part of the financial side of things, but it seems to me more beneficial than not.
In summary, a small 4 pin (V+, GND, SDA, SCL) breakout through the side of the case somewhere would be great.
ShawnHarteParticipantI have both the 2.1 AC and 2.3 DC versions, but I can also simulate the hardware for firmware testing on my old Linux box. So as long as it runs on the old box it’ll go on any of the hardware versions.
Knowing that you are more than capable of putting in a couple of pins I should have something ready and tested on my end for you by Monday. I’m currently using the TLS2561 (the same sensor Ada fruit sells without the breakout) as the sensor. Right now I’m working out a nighttime accumulation problem. The sensor has such a great range it picks up my landscape lighting and triggers watering overnight. I would guess this isn’t a serious problem for once or twice type of triggers, but as the system scales it would run the potential for wasting a lot of water. That and the promotion of fungus growth could mean a real significant loss for small growers.
Pretty sure I can just work out a lower boundary and get it to stop, or use weather data from a connected system to get sunset time and stop watering.Okay back to the fun that pays the bills, I’ll get back at this stuff after I’m off.
ShawnHarteParticipantAlright so I was working out how to do some of the conversion from I2C data to a simple digital threshold signal for triggering the sensor port on the OS. Then I took apart the unit and low and behold it has an accessible I2C interface right above the LCD. This seems to exist on all of the units, according to documentation from Ray.
How handy are you with a soldering iron? It would literally be a 10 min addition to the unit if you could add pins to the SDA and SCL ports.
I’ll keep plugging ahead with both ways, but honestly if you were able to add some pins to those ports it open up a ton of other sensors to use as well. I2C is just a highspeed serial like interface if you aren’t super familiar.
Anywho I learned something so that’s fun, and I have what I would call a very hackish method working right now, so maybe another day to clean up code and figure out how to make it smaller so it fits on the OS for all the HW versions.
Let me know if you can solder or would be willing to send it to me and I’ll do it and send it back. I’m super interested in seeing this working for real. It works on my test unit, but I have the DC version 2.3
ShawnHarteParticipantOkay sounds like enough to run with, I actually didn’t disappear sorry just got busy yesterday and never got back on here. I did however research a few different options for sensor just so I have a good idea of what is cost effective and will actually not die the first week in action. I do like the adafruit sensor package as they have worked well for me in the past and seem to take more abuse than designed for virtually every time. I’ll get started on programming tonight and should have something working pretty quickly. Ray and Samer have done a great job of keeping things organized well enough to work with easily.
As always this project is an open-source project and I am a huge proponent of never requesting a fee of any sort, I do appreciate mention if you like to do that kind of thing but honestly I would prefer you keep attention and support going to the guys that really made this idea possible. Without them I’d simply be bored and spending the time on some other money sink. Full disclosure Ray has also been very generous to developers with getting test rigs and other assistance so please do not in any way feel obligated to ever send anything other than a well meaning thanks. I do this in my free time so you are honestly saving me tons of money giving me focus on something to do.
I actually have the exact sensor you mentioned so let me dig it up and get going. Thanks for the opportunity to help someone else in the community.
ShawnHarteParticipantPerfect explanation of what’s going on and how you’d like it to work. I am almost certain this could be accomplished by sort of modifying the current flow sensor functions. For that approach I would need to know a couple of things about your sensor and how you would like to approach the “when it needs water” problem.
First can the sensor be set to output a signal once a certain threshold of light is met? Say I reach the 10k lux limit to trigger watering does your sensor send 10k or a digital 1? If it sends 10k does it send thousands of pulses until it reaches that amount or does it figure the total and send only the total?
My assumptions are the sensor is sending an analog voltage value for the current lux, so we may need an analog to digital conversion because the standard sensor input for the OS is digital only. Then it is as simple as setting a threshold to water and counting pulses until the threshold is reached.If that is correct the next thing we need to know is how important is it to accumulate light levels during a watering event? Should we stop measuring the light while watering and then start again? Or should we keep accumulating during a watering event? If we do it the second way what happens if it triggers again while watering? Do we only focus on the current water needed, should we add to the water needed, or do we stop where we are and start again very quickly with the new information?
Okay that seems like enough questions to get the info needed to make it work for you. If I’ve missed what you are looking to do entirely don’t be afraid to let me know. I’d much rather do this right once than have to tweak everything 1000 times. Thanks again for your patience and I’ll definitely get this going for you once I know I’m looking at the problem correctly.
If you already have a light sensor you wish to use or are currently using, could you send me the model number? Then I can look up the data sheet and actually answer pretty much everything I would need to know about the sensor.
ShawnHarteParticipantIt is possible, not very likely but possible.
The adjustment will water for 74% of the time you set for the zone. It is an adjustment based on temp, humidity, and recent precipitation. If you find the argument to be off you are able to modify how much each parameter effects the adjustment in the app.
ShawnHarteParticipantThe RPi will have zero issue with heat, it will throttle the processor if it starts to become too hot. Even throttled it will run the OSPi just fine. If you really want to reduce power consumption you could under clock the processor quite a bit. Remember the RPi uses an processor that is used in cell phones. If you haven’t had to add a heatsink to your phone adding one to the RPi isn’t needed either. If fact some of the fancy colored, anodized aluminum heatsinks can actually cause overheating issues.
By underclocking my RPi3 and turning off HDMI and Bluetooth I was able to get it to run at just about 1.5A, much less than the 2.5A it requires with the base settings. I did it for a weather tracking project that automatically looks for and takes pictures of reported storms near my house. It gets some great shots of storm clouds, but I digress. It sounds like you know your way around the Pi so if you want to avoid the soldering iron just go for underclocking and you’ll be fine.
ShawnHarteParticipantMike you have posted a question regarding a 5 year old version of the firmware. The logs are built in to the firmware now for all versions of OS. They can be accessed directly from the app, however they won’t necessarily tell you why something didn’t work. The logs show run times and weather adjustment information. Lots of times this information will explain a situation where something didn’t run, but in some cases it won’t.
For the times when logs don’t help first check all of your settings again. If you find it necessary to make changes be sure to save them prior to moving to the next setting.
If none of that works find the API document on the support pages and post your settings from /ja. Just be sure to remove personal information like your weather key, and remove the decimal component of your location. This will help others help you.Also I would suggest starting a new topic as this one has very old information which will lead to confusion for others with similar issues.
ShawnHarteParticipantAre you using the weather adjustment? If so have you entered your key from weather underground? Is your location set correctly? Boston MA is the default and since they just got slammed with snow the percentage would be 0 for there. The water percentage default in the firmware is 100%. If it is showing 0 it was updated to 0.
If you go to the support pages you can find a list of all the API commands and how to use them. /jl is logs and /ja will show all settings.If after checking through everything and making sure it is correct post your result from /ja just be sure to check it for sensitive information first.
Honestly it sounds like one of your settings didn’t save correctly, so even if you are sure you set them it’s worth a second look.
ShawnHarteParticipantYa looking at the server.cpp file there appears to be a smattering of HTML_OK versus HTML_SUCCESS. OK will simply break the output before sending the result field. In this case checking the html header for 200 would suffice as a bandaid until I can get a change made and see if Ray or Samer will accept the pull.
SUCCESS will give the result:1 field that is to be expected when making a proper request for existing data.It’s honestly a quick fix but the time it takes to get it accepted may be a bit. Once the pull request is up on github you could pull from my repository and merge the changes yourself. Or if you are half decent at programming take a look at server.cpp and for now just find and replace OK with SUCCESS and save it. Then build the firmware and you should be fine.
Some stuff will come back a bit odd like random text at the bottom of the password change page, but it shouldn’t break the program, just visual errors. The functionality will be the same as most of what’s happening in the firmware goes on before the result is printed.
ShawnHarteParticipantAlright you can remove the new nvm.dat and rename the original back to nvm.dat, that should get you right back to where you were. It looks like the firmware does not properly write to the file when the firmware is upgraded. I’ll see what I can do about getting a fix proposed so at least the next version should write everything properly.
Thanks for your help, hopefully this gets things working correctly. Good catch by the way.
ShawnHarteParticipantThe output is only showing you have 5 extension boards so the output is correct, 8*(nbrd+1). That’s 48 stations so 6 sbits is correct. If you actually have 6 extension boards attached one of them is not being read and is possibly a hardware issue.
I looked through the firmware and I don’t see anything that would cause the output to be incorrect software-wise.Are you using official Opensprinkler hardware? I know sellers on Amazon have one, and if that is what you are using you may need to add a series resistor to their board to make sure it is detected properly.
****EDIT Okay never mind on that idea, the OSPi doesn’t use the detect function. So I would try renaming nvm.dat to something else and then rebooting again. It should recreate the file, and then you can check the board count again. If that changes I know where the problem is, if not I’m at a loss and would probably have to defer you back to Ray.
ShawnHarteParticipantMake sure the permissions on the nvm.dat file allow read and write, it almost sounds like the file wasn’t updated during the firmware flash. After you change the permissions make sure to restart the OS process.
ShawnHarteParticipantAnother option would be to plug the OS power supply in to an UPS. Even the most basic UPS will run the OS for a few days on just battery power. If you make use of the weather features then plugging your modem and router in to the UPS will give you about 24 hours of run time on just battery. My personal setup is like this and it’s great for keeping the system stable, and it has the side benefit of providing power smoothing to the OS, so power spikes and brownouts don’t cause hard to trace problems.
If your OS is setup in a box outside there are even UPS devices meant to be rack mounted or fit in to the Orbit style boxes. I honestly recommend it even if you don’t have power issues. The small cost does a lot to protect your devices, as even in the best areas power from the wall fluctuates and can cause problems for micro controllers that could lead to premature failure.
ShawnHarteParticipantIt is a heartbeat ping to check connectivity to the router. Honestly it is not needed, but totally harmless. Unless you impose serious restrictions to device traffic this should never cause an issue. Other devices like the nest thermostat will do the same thing to establish and maintain a certain IP address. Essentially it never let’s the connection go stale resulting in a new DHCP assignment.
ShawnHarteParticipantCould you explain the accumulated light logic a bit? Like what exactly are you looking for, the hours of sunlight till now? Or how many hours total during the day? Would cloud cover effect this drastically or would a simple cloud cover percentage adjustment work?
The reason I ask is this could likely be done by modifying the weather program and not needing an additional sensor at all. However, if it is for an indoor setup with artificial light obviously that idea would not necessarily work.
Another approach would be to have light accumulation act like a flow sensor of sorts and then the program could be adjusted based on that. What it comes down to though is exactly what you are trying to do.
So do this for me and I can probably bang out a quick modification to the firmware for you: Explain your setup, what you want to do, what you are measuring, and what you expect to happen.
For example, I have and indoor setup with artificial light that needs to be watered. I would like to water once the plants have been exposed to about 4 hours of light. I am measuring the time the lights are turned on. I want the water to only run every four hours of light exposure, even though it changes daily.
Or my outdoor greenhouse needs water whenever the sun has been shining on it for x number of hours. Clouds would change the measurement a little but estimating total exposure would be fine. -
AuthorPosts