RainMachine and Davis Weather Stations
Does RainMachine get weather data from a Davis USB Logger and/or the Davis IP Logger on my local network?
Please see this thread on this very topic:
Thanks for the reply. I have seen that post and others wanting support of Davis Weather Stations without the WeatherUnderground feed. What I would like to see RainMachine programmers do is provide support for a direct connection through a local network to the Davis IP Logger. Davis' Serial Protocol document which was published over 5 years ago provides the protocol for both a serial/USB connection as well as an IP connection. There are programmers on GitHub that have done this and made their code available to others which would give RainMachine a jump start on developing the necessary code to make their claim that they support Davis Weather Stations a reality. Here is a link with the code for reading the Davis data: https://github.com/mkeymolen/DavisVantage.WeatherReader
RainMachine has responded to me and said the Davis is an acceptable weather source. I imagine that applied when WeatherUnderground was still a viable option for an Internet source. It probably still is with OWM.
RainMachine needs a solution that would allow direct transfer of data from local weather stations. This is not only more reliable from a connectivity stand point (IP or serial vs Internet) but provides more accurate local data. For those of us that operate large automatic Et based irrigation systems, accurate LOCAL weather data is critical. Forecast data should come from the Internet and using a current data from a local weather station with a direct connection is the most reliable approach.
The difficulty is that there are many weather stations manufacturers and no standard for data delivery. RM would have to acquire one of each weather station to do this and they probably have a very small staff of programmers to develop the code. It's probably not possible given all the other priorities. If RM could at least develop and integrate an XML and csv parser into their product then a product such as Cumulus or WeatherDisplay and others could provide the XML or csv file. This is a workable compromise in my opinion.
Your statement of "The difficulty is that there are many weather stations manufacturers and no standard for data delivery." says it all. Even within the Davis product family, there is more than method. The serial/USB would pretty much be a no go. Many people their controller is either outside or in the garage; that probably is not where they have their control unit for their PWS. Can you extend the serial or OSB connection? It is possible but people may not be able to get wiring in place to accomplish that. Without a standard in terms of the data, there is just no way that RM could support everything. Add in the cost of some of the PWS units, their complexity, size, etc. and may people won't buy them. So you already have a smaller market and then you need to figure out how many of that small market would buy a RM.
The best that RM can do, allow you to send a csv file or some other format for the RM to process. Getting that file would be up to the user. The RM platform is pretty open, so it can be done.
I have a Davis Envoy that I have used for many years to connect via a Davis USB/Serial Logger connected to a small computer running Cumulus. Cumulus generates a csv file which I have used to feed weather data to another program that controls my sprinklers. It all works great, but when I sell my house it's probably going to be a problem for the new owner unless he has a technical background and the desire to mess with it...not likely. So I am looking for a solution to take it's place down the road. RM is a good candidate since it has a control panel that can be used like a conventional timer controller. Like you, I think that if RM could build a software module that would read current weather data from a csv or XML file that they would find an increased demand from users like myself.
There is a extension for weewx that was written by RainMachine developers that will push your local data to your RM.
Of course, you have to have weewx up and running, but if you have a weather station, why not?
Then you currently need to be on the beta RM release.
I've been running this for a couple of weeks and it works well.
Excellent. That would be very useful for some users.
I'm helping RM with a new project so they can write the code to connect directly to a Davis IP Data Logger and download weather data from my weather station directly into RM. I would rather not have to rely on some other program like WeeWx or the Internet for local weather. When they get this working, I'll be getting line to buy a couple of their boxes for my 22 zone sprinkler system.
Less of anything is always good in my experience.
A counter to that is how many people already have a weather station that is not a Davis that can take advantage of a 'universal' method of getting their weather data into their RM.
Except for running a little Pi or other Linux box, there's no overhead. Mine sits in the basement quietly doing its thing. I do run a website with my weather data but that is also a no maintenance thing and not needed for the RainMachine connection.
Anyway, as I said, here's an option that exists and works on nearly any PWS I can think of.
Where I'm headed is to simplify my complicated JDS Stargate and HomeSeer driven home automation system that consists of several Winx and Linux computers bit by bit so that when I sell the home I can leave it with something that the new owner can cope with. Having the independently controlled 22 zone sprinkler system run with a control panel for manual control and automatic control using local weather data independent of the Internet is just the ticket.
RM is working on the code now which will allow a RM to Davis weather stations directly.
Thanks to Noopara we now have a alpha version of a parser for Davis WeatherLinkIP module here.
For Davis there is also a WiFiLogger Parser and WeatherLink API service Parser.
I was just thinking about this last night again. I really do appreciate your efforts here, as well as the fact that you've bypassed the cloud necessity of the offsite upload and return loop, as well as required the paid account access demanded by Davis just to provide this simple data which is available on the LAN. Although I like WeeWX and REST-API, too many Raspberry Pis with unique one-off apps & scripts to link simple data do not provide the suitability to the average-Joe user/consumer.
I'm excited to begin to integrate my onsite data into the algorithm!
I've got it working now.
Here's the data from the log:
2018-11-21 08:06:50,612 - INFO - user-weatherlinkip-parser.py:55 - Sent LOOP command 2018-11-21 08:06:55,620 - INFO - user-weatherlinkip-parser.py:66 - Recv timeout (timed out) retrying. 2018-11-21 08:06:57,626 - INFO - user-weatherlinkip-parser.py:69 - Sent LOOP command 2018-11-21 08:06:57,991 - INFO - user-weatherlinkip-parser.py:77 - Parsing Response 2018-11-21 08:06:57,993 - INFO - user-weatherlinkip-parser.py:118 - Barometer: 98.194 2018-11-21 08:06:57,995 - INFO - user-weatherlinkip-parser.py:123 - Outside Temp: 6.66666666667 2018-11-21 08:06:57,997 - INFO - user-weatherlinkip-parser.py:130 - Wind Speed (10min avg): 0.0 2018-11-21 08:06:58,014 - INFO - user-weatherlinkip-parser.py:133 - Humidity: 93 2018-11-21 08:06:58,016 - INFO - user-weatherlinkip-parser.py:139 - Solar Radiation: 7 2018-11-21 08:06:58,018 - INFO - user-weatherlinkip-parser.py:144 - Day Rain: 0.254 2018-11-21 08:06:58,020 - INFO - user-weatherlinkip-parser.py:150 - Day EvapoTranspiration: 0.0 2018-11-21 08:06:58,022 - INFO - user-weatherlinkip-parser.py:157 - Condition: 3 -> 18
The weather station console shows the following:
Barometer = 29.69 (not same as parser, parser reported 98.194)
Humidity = 93 (same as parser)
Temp = 44 F (parser reported 6.111 which is close to what it would be in Celsius. It should be 6.666)
Wind = 0 (same as parser)
Day Rain = .01 (parser reported .254 which must be in mm)
Solar = 7 (same as parser)
ET = 0 (same as parser)
Seems that the parser is not using the set units from the settings table and perhaps there is a problem with the F to C conversion factor??
The Barometric pressure reading looks like a problem. Parser got 98.194 and the station is showing 29.69???
I don't know if these variances would affect irrigation schedules or not, but anyone looking at the log might be concerned.
I notice that the parser is hard coded for gathering solar radiation from the weather station. Is this value being used by RainMachine to compute ET or is it using the ET value from the weather station? (Or, perhaps RainMachine is using the solar radiation value from some other reason??) The Davis weather stations can compute ET from solar radiation or from UV radiation depending on which sensor the station is configured with. I would prefer that RainMachine use the Daily ET value that is downloaded from the weather station. Is this possible?
Davis weather stations users have the option to use solar radiation or UV radiation sensor for the purpose of computing ET. Also, they can use moisture sensors to report soil moisture. Some irrigation control systems use soil moisture readings from the Davis weather stations to control irrigation. You should consider building in the capability to use the moisture sensor data from the Davis weather stations.
Perhaps the settings for the weatherlinkip parser should provide for enabling solar radiation, UV radiation and moisture sensor data collection.
The parser is hard coded for an interval of 6 * 3600. Is this 21,600 milliseconds or 21.6 seconds or is it some other period of time? Would it be possible to allow this to be set by the user?
It looks like we are very close to having this working.
Thank you for working on this.
Station sends barometer pressure in inchHg we convert it to kPa and looks like it's a correct value. The interval is 6 hours, you could lower by editing the file to 1 hour (1 * 3600)
anything lower than that won't help much since the RainMachine mixer runs on hourly intervals.
Solar Radiation is added as an option on the parser because I've seen many station report bad radiation which result in wrong ET values.
As for the moisture sensors, this could be interesting but apart from expensive professional sensors none of the rest actually give useful readings.
Thanks for your quick response and the explanations.
I first came up with the conversion to 6 hours but didn't think that the interval could possibly be that long. The weather here in western Washington and a lot of other locals can change a lot in 6 hours. Would there be a problem if it was changed to 300 seconds? I would like to stop irrigation as soon as possible with a heavy rain fall.
With regard to the solar radiation and ET values from the weather station, does RainMachine use the ET value from the station only if the solar radiation value from the station is within some range and then if it is not, use an Internet or historical value? Some Davis weather station users don't have a solar radiation sensor. Instead they have a UV sensor. A Davis weather station will use which ever sensor is installed.
I agree with your comment about moisture sensors in that most of them are not very reliable. I have tried using them over the years and have always been disappointed with their performance. My suggestion was for the benefit of others that may have had better luck with them.
I now have an HD-12 and an HD-16 up and running. I am in the process of loading my 24 zone info into them.
I noticed that the weatherlinkip-parser.py file on github has been changed since I last downloaded it. According to the history info on github the last change to the file was made on Nov 12th. The version that I tested back then was downloaded after that, but it's different than the latest version that I just downloaded. So, it would appear that another change was made but not documented. It would help a great deal if the programmer (Nicu Pavel) would date each new version or assign a version number to them.
What problems were found that made these changes necessary?
Yes RainMachine will use the wind data as long as it's sent in correct units (meters/second) but it will be averaged with the NOAA report. But it would matter less since if you use the ET from your station (which might be better that what we calculate) then as far as I know this ET already includes wind factor in it.
As for cut off irrigation on wind, we don't have this yet implemented, there are ways to do it (like sending API command to stop watering from parser). We want to implement this for the next update but instead of cutting irrigation we want to delay irrigation until wind speed is again below a user settable threshold.
The wind sensitivity that you mention works differently, it says "Only consider 80% or wind speed when calculating ET instead of 100% of the value". That setting is useful your zones are protected from wind by fences or other large buildings around.
OK. Thanks. I would guess that the Davis weather station is using mph for the wind speed units. Wind is included in the ET calculated value from the weather station.
I have a question regarding the API command to stop watering. If the command is sent to stop watering, is it then possible after that to turn on and off a zone? I have been using several zones to scare off deer using strategically placed motion detectors. I use HomeSeer (home automation software) to manage this. It detects the motion and can turn RM zones on an off. The problem is that I need to turn off any zone that might be running at the time a deer is detected. All of my zones are self draining zone. When a deer is detected and a zone valve is opened the rush of water causes air to escape and make a squealing sound which is what scares the deer off. It has worked great for over 15 years now. I need to get it to work with RM. So, to do this, I need to be able to suspend any running zone for a short time before the motion triggered zone turns on and then resume the irrigation program. Can this be done with RM?
I tested and what I was proposing it doesn't work, because during PAUSE RainMachine won't allow new zones to be scheduled even manually.
So the only way would be to use /watering/stopall call before starting the zone that detected motion, but this will interrupt the scheduled program (if any).
Could the API be changed to allow manual operation during pause?
Another use for it would be for troubleshooting problems with zones and specific heads such as adjusting heads that have a problem. For example, if during normal operation while running a program it is noticed that a head needs adjusting, one could pause the program, adjust the head, turn on the head manually, repeat if necessary, and then un-pause the program. That would be a great feature to have.
I just discovered a major problem with this parser. It doesn't load automatically after power cycling the RM as if there were a power failure. This needs to be fixed. If I can't use the data from my local weather station after a power failure then I can't use RM.
I see this in the log:
rmParserManager:228 - *** BEGIN Loading parsers from '/rainmachine-app/RMParserFramework/parsers' 2019-02-11 12:43:09,614 - INFO - rmParser:69 - *** Registering parser METNO Parser with interval 21600 2019-02-11 12:43:09,681 - INFO - rmParser:69 - *** Registering parser Simulator Parser with interval 10800 2019-02-11 12:43:09,742 - INFO - rmParser:69 - *** Registering parser My Example Parser with interval 21600 2019-02-11 12:43:09,764 - INFO - rmParser:69 - *** Registering parser Netatmo Parser with interval 21600 2019-02-11 12:43:09,816 - INFO - rmParser:69 - *** Registering parser FAWN Parser with interval 21600 2019-02-11 12:43:09,856 - INFO - rmParser:69 - *** Registering parser ForecastIO Parser with interval 21600 2019-02-11 12:43:09,904 - INFO - rmParser:69 - *** Registering parser WeatherDisplay Parser with interval 21600 2019-02-11 12:43:09,964 - INFO - rmParser:69 - *** Registering parser WUnderground Parser with interval 21600 2019-02-11 12:43:10,017 - INFO - rmParser:69 - *** Registering parser CIMIS Parser with interval 21600 2019-02-11 12:43:10,069 - INFO - rmParser:69 - *** Registering parser NOAA Parser with interval 21600 2019-02-11 12:43:10,107 - INFO - rmParser:69 - *** Registering parser OpenWeatherMap Parser with interval 21600 2019-02-11 12:43:10,210 - INFO - rmParser:69 - *** Registering parser Weather Rules Parser with interval 3600 2019-02-11 12:43:10,275 - INFO - rmParserManager:313 - *** END Loading parsers
...but it doesn't include the the Weatherlinkip parser. It needs to load any that were loaded by the user.
Please sign in to leave a comment.