June 4, 2015 at 9:23 am #38197
Why does my OS connect to IP address 184.108.40.206 (hostname: ec2-54-149-227-151.us-west-2.compute.amazonaws.com)?
In a different thread Ray said, “Also, it periodically send requests to the cloud server,…”
Based on the hostname this seems like a ‘cloud’ server so this is probably the connection that Ray is referring to.
The only external service that I’ve configured on the OS is NTP. I don’t use automatic weather adjustment.
What does OS get from a cloud server if automatic weather adjustment isn’t configured?
The other part that was a bit concerning is that the SPT being used varies a lot. So far 14 different ports in the range from 2817 – 3064. (DPT is always 80). Assuming the regular connection to the server is ‘normal’, is the port usage ‘normal’?
ThanksJune 4, 2015 at 9:28 am #38198
The IP you are showing is our cloud server, weather.opensprinkler.com. This is used for more than weather adjustments though as the timezone resolution and daylight saving time calculations are done on the cloud server. We also use the cloud server to provide sunrise and sunset data. Basically, this server allows us to extend features without OpenSprinkler having to depend on many 3rd party services and delaying the query time.
Thanks!June 4, 2015 at 3:39 pm #38209
Thanks for info on what OS depends on from the cloud. Why do I care so much?
#1: I want a reliable irrigation system that will run correctly regardless of the state of my local network and connectivity to the internet. No matter what else happens, except a loss of power, the controller will execute its program just like a traditional controller will. All the ease of use features and scheduling optimizations are great but it should be my choice to use features that carry additional risk. My system does not need to be dependent on them to water the landscape. Users should know what those dependencies are and what risk they take in using them. A simple and relatively insignificant example: If one uses sunrise to start a program, but the internet is down and has been down for a day or more, will the controller use a default value or the last value it had for sunrise? Is assume so. A few days difference in that time doesn’t matter but failing to execute because it couldn’t get a value would be bad.
I want any device that I put on my local network to behave reasonably well because bad behavior can affect other devices and capabilities that I depend on. I want to know what the devices in my network do and what if any security or privacy issues exist as a result so that I can take appropriate action. A simple example: I do not open ports up for external access. I use a vpn. Bit of a PIA, but worth it from my perspective. In any case, I get to make the choice about what capability I take advance of and what risk I’m willing to take.
I think that using the cloud for some capabilities is fine as long people who want to know what is done externally have the info and that it does not compromise #1. I can easily see that it’s easier, safer and in some case only possible to provide some features in the cloud vs having to do regular FW updates to deliver them and keep them up to date.June 4, 2015 at 4:32 pm #38210
We both understand your concern and we have the same priorities. OpenSprinkler should and will work without an Internet connection. Everything the Internet and our cloud server provide is optional. Let me go through the data and clarify how it’s used and what happens if the controller can’t update.
Time (NTP): The controller has a real time clock which will keep time if the NTP server cannot be reached and only minimal drifting will occur with this alone.
Time (timezone): The timezone is set once by the cloud per location and is not modified after that. The cloud resolves the locations timezone however if you empty the location field the app will let you change the timezone manually. Furthermore, the cloud does resolve the state of daylights saving time so this will not change if the cloud cannot be reached.
Sunset/Sunrise: This will update daily the values from the cloud however if they cannot be updated, the previous values are used.
Weather Adjustment: If the cloud cannot be reached, the water level will stay at it’s current value otherwise it will be adjusted based on the method (Zimmerman) and the conditions. Of course the water level can also be manually adjusted.
As you can see nothing is critical to the cloud but it does offer extras. As you have noticed, the controller forgoes network checks during running programs to ensure no interruption is incurred. I hope this helps clarify the use of cloud and also helps reassure you we have the same philosophy in mind with regard to working regardless of Internet connection, etc.June 4, 2015 at 5:09 pm #38211
To add to what Samer said: the main reason to query the cloud is to enable features such as automatic time zone and DST detection, and getting sunrise/sunset times. In the past we’ve always had users who complain that every year when DST changes the controller could not automatically update time. This is the main motivation behind adding the support. But as Samer said, the cloud connection is not critical to the operation of the controller — if there is no connection, it simply won’t perform NTP sync, won’t auto-detect DST, sunrise sunset times will be set to a default value, sprinkler programs will run as usual.
Of course as the firmware becomes more complex, to accommodate all different scenarios, there are inevitably some bugs that we may not have discovered during testing. But it has always been our intention to make OpenSprinkler a device that works independent of the existence of Internet. If there is any feature you don’t like about the firmware, feel free to modify the source code — the project is made open-source to provide flexibility and any customization you may need.June 4, 2015 at 6:18 pm #38213
Samer and Ray,
Thanks for the detailed info cloud functions. It’s very helpful to know what your development philosophy is for OS. It’s also nice that it aligns with what I’m looking for.
It is a non-goal of mine to create custom OS FW. I have no desire to create a special version that I somehow have to keep in sync with the main code as it evolves and addresses bugs. OS is going to become my irrigation controller and its job will be to reliability water my landscaping. If I found it necessary to go my own way, I’d probably start looking for different device. I’m a fan of the open source approach. I’ll contribute testing and make suggestions and, if get familiar enough with the main code, maybe even propose code changes for bugs or enhancements that you can use, modify or discard.
Thanks for responding to my questions as I go through the discovery and testing stage.
- You must be logged in to reply to this topic.