Patent Publication Number: US-2015081113-A1

Title: Communicating with users through controller outputs

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Patent Application No. 61/841,828, filed on Jul. 1, 2013, and U.S. Provisional Patent Application No. 61/924,154, filed on Jan. 6, 2014, which are hereby incorporated by reference herein in their entireties, including but not limited to those portions that specifically appear hereinafter, the incorporation by reference being made with the following exception: In the event that any portion of the above-referenced applications is inconsistent with this application, this application supersedes said above-referenced applications. 
     This application is a continuation-in-part of co-pending U.S. patent application Ser. No. 14/315,264, filed Jun. 25, 2014, entitled “COMPENSATING FOR MUNICIPAL RESTRICTIONS WITHIN IRRIGATION PROTOCOLS,” and this application is also a continuation-in-part of co-pending U.S. patent application Ser. No. 14/315,267, filed Jun. 25, 2014, entitled “BACKUP WATERING INSTRUCTIONS AND IRRIGATION PROTOCOLS WHEN CONNECTION TO A NETWORK IS LOST,” which are hereby incorporated by reference herein in their entireties, including but not limited to those portions that specifically appear hereinafter, the incorporation by reference being made with the following exception: In the event that any portion of the above-referenced applications is inconsistent with this application, this application supersedes said portion of said above-referenced applications. 
    
    
     FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
     Not Applicable. 
     BACKGROUND 
     With the increased desire for water conservation while maintaining healthy yard and crops, it has become important to use the advances in technology and communication systems to provide efficient use of water resources. 
     What is needed are methods, systems, devices, and computer program implemented products for regulating the use of water in areas that are predictable and often over watered because caretakers and/or older irrigations systems are not responsive enough to effectively conserve water while maintaining aesthetically pleasing or healthy landscapes. What is needed are methods, systems, devices, and computer program products for generating and optimizing irrigation protocols, optimizing water usage in growing plants for yard and crops, and providing status notifications to a user identifying the current status of the irrigation system. 
     The disclosure addresses the above needs by providing methods, systems, and computer program implemented products for regulating the use of water over a computer network by generating irrigation protocols and sending those protocols over the computer network. The disclosure also provides backup protocols for instances when connectivity to the computer network is not established for any reason. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Non-limiting and non-exhaustive implementations of the disclosure are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified. Advantages of the disclosure will become better understood with regard to the following description and accompanying drawings where: 
         FIG. 1  illustrates an overhead view of a landscaped yard surrounding a house with a zoned irrigation system in accordance with the teachings and principles of the disclosure; 
         FIG. 2  illustrates a schematic diagram of an optimized irrigation control system that communicates over network in accordance with the teachings and principles of the disclosure; 
         FIG. 3  illustrates a schematic diagram of a pairing between a control unit and an account in accordance with the teachings and principles of the disclosure; 
         FIG. 4  illustrates a schematic diagram of a pairing between a control unit and an account in accordance with the teachings and principles of the disclosure; 
         FIG. 5  illustrates a method for initiating an irrigation optimization system in accordance with the teachings and principles of the disclosure; 
         FIG. 6  illustrates a method of initiating a smart irrigation system in accordance with the teachings and principles of the disclosure; 
         FIG. 7  illustrates a method for setting up each zone of a smart irrigation system in accordance with the teachings and principles of the disclosure; 
         FIG. 8  illustrates a schematic diagram of a database and protocol generator in accordance with the teachings and principles of the disclosure; 
         FIG. 9  illustrates a block diagram of an example computing device in accordance with the teachings and principles of the disclosure; 
         FIG. 10  illustrates a schematic diagram of a system for optimizing irrigation in an irrigation system having a controller connected to an irrigation server over computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 11  illustrates an implementation of a system and method for optimizing irrigation in an irrigation system having a controller connected to an irrigation server over computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 12  illustrates an implementation of a system and method for optimizing irrigation in an irrigation system having a controller connected to an irrigation server over computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 13  is a schematic diagram illustrating communication from a cloud service or a network with a weather service in accordance with the teachings and principles of the disclosure; 
         FIG. 14  illustrates an implementation of a system and method for optimizing irrigation in an irrigation system having a controller connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 15  illustrates an implementation of a system and method for optimizing irrigation in an irrigation system having a controller connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 16  illustrates an implementation of a system and method for optimizing irrigation in an irrigation system having a controller connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 17  illustrates an implementation of a system and method for providing optimal irrigation in an irrigation system having a controller configured to be connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 18  illustrates an implementation of a system and method for providing optimal irrigation in an irrigation system having a controller configured to be connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 19  illustrates an implementation of a system and method for providing optimal irrigation in an irrigation system having a controller configured to be connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 20  illustrates an implementation of a system and method for providing optimal irrigation in an irrigation system having a controller configured to be connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 21  illustrates an implementation of a system and method of communicating with a user of an irrigation system having a controller configured to be connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 22  illustrates an implementation of a system and method of communicating with a user of an irrigation system having a controller configured to be connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure; 
         FIG. 23  illustrates an implementation of a controller device configured to be connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure; and 
         FIG. 24  illustrates an implementation of a controller device configured to be connected to an irrigation server over a computer network in accordance with the teachings and principles of the disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     The disclosure extends to methods, systems, and computer program products for optimizing water usage in growing plants for yard and crops. The disclosure also extends to methods, systems, and computer program implemented products for regulating the use of water over a computer network by generating irrigation protocols and sending those protocols over the computer network. The disclosure also provides backup protocols for instances when connectivity to the computer network is not established for any reason. The disclosure also extends to methods, systems devices, and computer program products for providing status notifications to a user identifying the current status of the irrigation system. 
     In the following description of the disclosure, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific implementations in which the disclosure may be practiced. It is to be understood that other implementations may be utilized and structural changes may be made without departing from the scope of the disclosure. 
     It will be appreciated that the disclosure also extends to methods, systems, and computer program products for smart watering utilizing up-to-date weather data, interpreting that weather data, and using that interpreted weather data to send irrigation protocols with computer implemented instructions to a controller. The controller may be electronically and directly connected to a plumbing system that may have at least one electronically actuated control valve for controlling the flow of water through the plumbing system, where the controller may be configured for sending actuation signals to the at least one control valve thereby controlling water flow through the plumbing system in an efficient and elegant manner to effectively conserve water while maintaining aesthetically pleasing or healthy landscapes. 
       FIG. 1  illustrates an overhead view of a landscaped yard surrounding a house. As can be seen in the figure, the yard has been divided into a plurality of zones. For example, the figure is illustrated as having ten zones, but it will be appreciated that any number of zones may be implemented by the disclosure. It will be appreciated that the number of zones may be determined based on a number of factors, including soil type, plant type, slope type, area to be irrigated, etc. which will help determine the duration that needed for each zone. It will be appreciated that the controller and its zonal capacity may determine the number of zones that may be irrigated. For example, a controller may have a capacity of eight, meaning that the controller can optimize eight zones (i.e., Zone 1-Zone 8). However, it will be appreciated that any zonal capacity may be utilized by the disclosure. 
     In an implementation, each zone may have different watering needs. Each zone may be associated with a certain control valve  115  that allows water into the plumbing that services each area, which corresponds to each zone. As can be seen in the figure, a zone may be a lawn area, a garden area, a tree area, a flower bed area, a shrub area, another plant type area, or any combination of the above. It will be appreciated that zones may be designated using various factors. In an implementation, zones may be designated by the amount of shade an area gets. In an implementation, zones may be defined according to soil type, amount of slope present, plant or crop type and the like. In some implementations, one or more zones may comprise drip systems, or one or more sprinkler systems, thereby providing alternative methods of delivering water to a zone. 
     It will be appreciated, as illustrated in  FIG. 1 , that a landscape may have a complex mix of zones or zone types, with each zone having separate watering needs. Many current watering systems employ a controller  110  for controlling the timing of the opening and closing of the valves within the plumbing system, such that each zone may be watered separately. These controllers  110  or control systems usually run on low voltage platforms and control solenoid type valves that are either completely open or completely closed by the actuation from a control signal. Often control systems may have a timing device to aid in the water intervals and watering times. Controllers have remained relatively simple, but as disclosed herein below in more detail, more sophisticated controllers or systems will provide optimization of the amount of water used through networked connectivity and user interaction as initiated by the system. 
       FIG. 2  illustrates a schematic diagram of an optimized irrigation control system  200  that communicates over network in order to benefit from user entered and crowd sourced irrigation related data stored and accessed from a database  226 . As illustrated in the figure, a system  200  for providing automated irrigation may comprise a plumbing system, such as a sprinkler system (all elements are not shown specifically, but the system is conceptualized in landscape  200 ), having at least one electronically actuated control valve  215 . The system  200  may also comprise a controller  210  that may be electronically connected to or in electronic communication with the control valve  215 . The controller  210  may have a display or control panel and an input for providing information to and receiving information from the user. The controller  210  may comprise a display or a user interface  211  for allowing a user to enter commands that control the operation of the plumbing system. The system  200  may also comprise a network interface  212  that may be in electronic communication with the controller  210 . The network interface  212  may provide network  222  access to the controller  210 . The system  200  may further comprise an irrigation protocol server  225  providing a web based user interface  231  on a display or computer  230 . The system  200  may comprise a database  226  that may comprise data such as weather data, location data, user data, operational historical data, and other data that may be used in optimizing an irrigation protocol from an irrigation protocol generator  228 . 
     The system  200  may further comprise a rule/protocol generator  228  using data from a plurality of databases for generating an irrigation protocol, wherein the generation of an irrigation protocol is initiated in part in response to at least an input by a user. It should be noted that the network  222  mentioned above could be a cloud-computing network, and/or the Internet, and/or part of a closed/private network without departing from the scope of the disclosure. 
     Additionally, as illustrated in  FIG. 2 , access may be granted to third party service providers through worker terminals  234  that may connect to the system through the network  222 . The service providers may be granted pro-status on the system and may be shown more options through a user interface because of their knowledge and experience, for example, in landscaping, plumbing, and/or other experience. In an implementation, worker terminals may be a portable computing device such as portable computer, tablet, smart phone, PDA, and/or the like. 
     An additional feature of the system  200  may be to provide notices or notifications to users of changes that impact their irrigation protocol. For example, an implementation may provide notice to a home owner/user that its professional lawn service has made changes through a worker terminal  234 . An implementation may provide a user the ability to ratify changes made by others or to reject any changes. 
     In an implementation, an irrigation system  200  may comprise a plurality of control valves  215 , wherein each control valve corresponds to a zone of irrigation. 
     In an implementation, user communication may be facilitated through a mobile application on a mobile device configured for communicating with the irrigation protocol server  225 . One or more notifications may be provided as push notifications to provide real time responsiveness from the users to the system  200 . 
     The system  200  may further comprise an interval timer for controlling the timing of when the notifications are sent to users or customers, such that users/customers are contacted at useful intervals. For example, the system  200  may initiate contact with a user after predetermined interval of time has passed for the modifications to the irrigation protocol to take effect in the landscape, for example in plants, shrubs, grass, trees and other landscape. 
     In an implementation, the notifications may ask the user to provide information or indicia regarding such things as: soil type of a zone, crop type of a zone, irrigation start time, time intervals during which irrigation is occurring, the condition of each zone, or other types of information or objective indicia. 
     Illustrated in  FIGS. 3 and 4  are schematic diagrams of a pairing between a user&#39;s control unit and an account, such as a web account. In an implementation illustrated in  FIG. 3 , the system may comprise a pairing operation  333  between the controller  310  and a web based service in order to initiate the system  300 . As is illustrated in  FIG. 3 , a user may electronically connect (pair) a controller  310  to an associated web account  315  viewed on a computer  320  in order to ease the collection of user data. It will be appreciated that a user would not be required to enter the desired user data through the limited input capabilities of a feasible irrigation controller  310 , although it is possible for a user to enter information via the controller  310 . Rather, a user/customer could conveniently enter data from a computer  320  having a web interface  315  representing a user account. A pairing operation  333  may be used to connect the web account  315  and the controller  310 . Once the pairing is complete the data entered into the user account may be used to generate irrigation protocols for the controller  310  to execute. It will be appreciated that pairing process or operation  333  may involve user interaction. This user interaction may be the basis for confirming the identity of the controller  310  and the web account  315 . Once pairing successfully completes, a bond will have been formed between the controller  310  and the web account  315 , enabling the controller  310  and the web account  315  to connect to each other in the future without requiring the pairing process in order to confirm the identity of the devices. 
     Referring now to  FIG. 4 , there is illustrated an implementation pairing between a user&#39;s control unit and an account, such as a web account. As is illustrated in  FIG. 4 , a user may electronically connect (pair) a controller  410  to an associated web account  415  viewed on a computer  420  in order to ease the collection of user data. A user/customer may conveniently enter data from a computer  420  having a web interface  415  representing a user account. A pairing operation  433  may be used to connect the web account  415  and the controller  410 . In an implementation, the pairing operation  433  may comprise Once the pairing is complete the data entered into the user account may be used to generate irrigation protocols for the controller  410  to execute. 
     In an implementation, the pairing process  333  or  433  may involve establishing a relationship between the controller  310 ,  410  and the account  315 ,  415 . During the pairing process, the device(s) and the account involved establish a relationship by creating a shared secret code or a link key. If the code or link key is stored by both the device and the account they are said to be paired or bonded. A device that wants to communicate only with a bonded device can cryptographically authenticate the identity of the other device or account, and so be sure that it is the same device or account it previously paired with. Once a link key has been generated, an authenticated Asynchronous Connection-Less (ACL) link between the devices may be encrypted so that the data that they exchange over the airwaves is protected against eavesdropping. 
     Link keys may be deleted at any time by either the controller device or the account. If done by either the controller or the account, then such action will remove the bonding between the controller and the account. Thus, it is possible for one of the controller or the account to have a link key stored, but not be aware that it is no longer bonded to the controller or account associated with the given link key depending upon whether the link key was deleted from the controller or the account. 
     The paired controller and account may require either encryption or authentication, and as such require pairing before they allow a remote device to use the given service. In some implementations, the system may elect not to require encryption or authentication so that pairing does not interfere with the user experience associated with the service. 
     It will be appreciated that the disclosure may utilize any pairing process or mechanism that are known or that may become known without departing from the scope of the disclosure. Pairing mechanisms may include legacy pairing, secure simple pairing (SSP), or other pairing mechanisms. 
     The mechanism known as legacy pairing may include entering a PIN code to each device and account to be paired. Pairing may only be successful if both the device and the account (or multiple devices and the account) enter the same PIN code. It will be appreciated that any 16-byte UTF-8 string may be used as a PIN code. It will likewise be appreciated that any number of alpha-numeric characters may be used as a PIN code, e.g., 6-digit, 7-digit, 8-digit, 9-digit, 10-digit, etc., without departing from the scope of the disclosure. However, it will be appreciated that not all devices may be capable of entering all possible PIN codes. For example, limited input devices are not capable of entering PIN codes because they generally have few inputs for a user. These devices usually have a fixed PIN, for example “0000” or “1234” that are hard-coded into the device. Numeric input devices, such as mobile phones or controllers  310 ,  410  may allow a user to enter a numeric value up to 16 digits in length into the device or account. Alpha-numeric input devices, such as computers, controllers  310 ,  410  and smartphones are examples of these devices. They allow a user to enter full UTF-8 text as a PIN code. 
     In an implementation of the disclosure, the pairing mechanism may be Secure Simple Pairing (SSP). Secure Simple Pairing (SSP) may use a form of public key cryptography. It will be understood that SSP does not necessarily require any user interaction. However, a device, such as controller  310 ,  410 , may prompt the user to confirm the pairing process. Such a method may be used by devices with limited input/output capabilities, and may be more secure than the fixed PIN mechanism described above, which is typically used for legacy pairing by this set of limited devices. 
     SSP may use a numeric comparison as part of the pairing process. If both the device and the account have a display and at least one can accept a binary Yes/No user input, then numeric comparison may be used. This method displays a 6-digit numeric code on each device and account to be paired. The user should compare the numbers to ensure they are identical. If the comparison succeeds, then the user may confirm pairing on the device(s) and/or the account that can accept an input. This method provides some security protection, assuming the user confirms on both paired devices (or a paired device and account) and actually performs the comparison properly. 
     SSP may also use a passkey entry method. This method may be used between a device with a display and a device with numeric keypad entry (such as a keyboard), or two devices with numeric keypad entry. In the first case, when the controller  310 ,  410  is connected to the network (whether through Wi-Fi or otherwise) the controller may provide a unique identifier over a network to identify itself to the protocol server  225 . The protocol server  225  may randomly generate a code using a serial generator and provide the code back to the controller  310 ,  410  over the network. The display of the controller  310 ,  410  may be used to show the code, which may be a 6-digit numeric code for example, to the user who then enters the code on the computing device or smartphone with a keypad or other input mechanism. In the second case, the user of each device enters the same 6-digit number. Both of these cases provide some security protection. It is to be understood that any number of alpha-numeric characters may be used as a code that may be randomly generated, e.g., 6-digit, 7-digit, 8-digit, 9-digit, 10-digit, etc., without departing from the scope of the disclosure. 
     It will be appreciated that any pairing mechanism may be used by the disclosure without departing from the scope of the disclosure. The above implementations are exemplary of the pairing mechanisms that may be utilized by the disclosure. 
       FIG. 5  illustrates a method  500  for initiation of an irrigation optimization system having the features of the disclosure. The method  500 , may initiate at  510  by determining the language the user will use in interacting with the system. The user selection will be recorded into computer memory on the system. At  520 , the geo graphical location of the user may then be determined, and at  530  the geographical location of the zones may be further refined using more specific questions about the geographical location, such as querying about a postal code or equivalent thereof in different areas of the world. Once the location has been established, the system  500  may then establish connectivity with a cloud network at  540 . 
     At  550 , the network connectivity may be skipped and at  551  a user may be asked to manually set up a watering protocol by responding to questions from the controller. At  552 , a watering protocol of instructions will be generated and stored for the controllers use and at  569  the controller is ready for use and irrigation may begin automatically based on the protocol of instructions provided to the controller. 
     Alternatively, at  560  a user may be presented with available Wi-Fi connection options and may choose the desired connection, or at  570  a user may enter custom network settings directly. At  563 , the controller or unit may be connected to the network or cloud. 
     Once connected to the network or cloud, at  565  the controller may be paired with an online account previously (or concurrently) set up through a web interface or other interface as seen in  FIGS. 3 and 4 . 
     At  567 , a watering protocol may be generated by an irrigation protocol generator (illustrated best in  FIG. 8 ). The protocol may be sent and transmitted through the network or cloud to the paired controller. The watering instructions or protocol may be formulated and generated, at least in part, based on user responses to queries output from the system through the web account or through the control panel user interface of the controller. 
     At  569 , the controller is ready for use and irrigation may begin automatically based on the protocol of instructions provided to and received by the controller from the network or cloud. 
       FIG. 6  illustrates a method  600  of initiating a smart irrigation system comprising specific logic when initializing a new controller having a controller. After a controller has been wired to a plurality of control valves, the user/customer may be led through a series of queries on a control panel or user interface. In order to initialize the system, the interface may show a query about the language of communication to be used. The user may input or select the language of communication at  601 . Next at  603 , the user may be prompted to input or select the country in which the zones, which represent the real estate or landscape to be watered, reside. The user may be further prompted for information about its geographic location for refining the location of the zones at  605 . For example, a user may be queried to input or select a zip code or other geographical area information to refine the geographical location of the watering zones. 
     At  607 , the user may be prompted to set up a connection to a network/cloud through a Wi-Fi internet connection. At  609 , the user may be prompted to input or select whether or not to connect to the network/cloud or run the irrigation system manually from the controller and control panel. 
     If the user decides not to connect to the network/cloud, at  615 , the user will be prompted to enter data in manually, such as soil texture data, plant type data, sprinkler type data, slope type data, shade data, and duration of watering per zone. At  617 , the user may be prompted to manually select or enter an irrigation interval or days to water. If the user chooses to input or enter an interval, at  619 , the user will be prompted to enter the interval. Alternatively, if the user inputs or selects to irrigate according to days, at  623 , the user will be prompted to enter the days for irrigation. It should be noted that in an implementation the user may be able to select both irrigation days and irrigation intervals without departing from the scope of the disclosure. Whether the user inputs or selects a watering interval or watering days or some combination thereof, at  617 , the user will be prompted to input or select a duration and/or day for each of the zones controlled by the controller at  621 . 
     At  609 , if the user selected or entered that Wi-Fi is available to connect to a network then the user may be prompted to select from available networks at  610 , or enter network name and security information in order to add a custom network at  612 . At  614 , the user may be prompted for a password. At  616 , if the password fails the user will be redirected to  610  or  612  to retry the network security information or  614  to re-enter the password information. At  616 , if connecting to the Wi-Fi network or internet is successful, at  625  a pairing request may be sent from the controller to a server on the network/cloud. The controller may authenticate itself with the server by providing a unique identifier to the server. The server may then receive the request from the controller. At  627 , the server may then send and communicate instructions to a pairing code generator where a pairing code is generated. The pairing code may then be sent to the controller in order to pair a cloud based web account to the controller. Additionally, at  627 , pairing codes may be established for a plurality of computing devices that may comprise additional controllers, control modules, mobile devices, computers, and the like. At  629 , the system may set up each zone individually as shown in more detail in  FIG. 7 . 
     Referring now to  FIG. 7 , there is illustrated a method for setting up each zone of a smart irrigation system. At  729 , the system may set up each zone individually. The system may prompt the user to input or select various parameters or criteria for each zone. At  731 , the system may prompt the user to input or select data relating to the soil texture type. For example, the system may ask the user to input or select clay, sand, silt, or other soil texture type at  741 . At  733 , the system may prompt the user to input or select data relating to the plant type. For example, at  743 , the system may ask the user to input or select grass, trees, shrubs, flowers, or other plant type data in order to determine the amount of water that may be lost through evapotranspiration. At  735 , the system may prompt the user to input or select data relating to the sprinkler or plumbing fixture type. For example, the system may ask the user to input or select a spray sprinkler, a rotary sprinkler, a drip system, or other sprinkler or plumbing fixture type at  745 . At  737 , the system may prompt the user to input or select data relating to the slope type. For example, the system may ask the user to input or select steep slope, slight slope, flat slope, or a certain degree of slope at  747 . At  739 , the system may prompt the user to input or select data relating to the shade type. For example, the system may ask the user to input or select full shade, partial shade, no shade, or other shade data at  749 . At  751 , the system utilizes the inputs and selections from the user and runs the information through a duration protocol generator to generate and suggest a protocol for watering each zone for a specified duration. At  753 , the protocol or instructions may be sent to the controller. At  755 , the protocol or instructions may be stored in memory in the controller for automatically initiating the irrigation system. 
       FIG. 8  illustrates a schematic diagram of a database  800  and protocol generator  810  in accordance with the features of the disclosure. For example, as can be seen in the figure, a database  800  may comprise weather data  820 , operational historic data  830 , location data  840 , time limitation data  850 , user zone data  860 , and other data  870 , such as crop or plant type data. The time and date may also be generated by a time generator and/or supplied by a database. The network or cloud may supply such data to a server or database to generate operating instructions, which in turn may be sent to the controller. In various implementations, one or more databases may be spread over a plurality of computers and computing devices that are in communication over the network. In an implementation, some data may be supplied by third party providers and may be aggregated from many sources. In an implementation, some data may be entered by users such as customers and service personnel. 
     It will be appreciated that implementations of the disclosure may comprise or utilize a special purpose or general-purpose computer, including computer hardware, such as, for example, one or more processors and system memory as discussed in greater detail below. Implementations within the scope of the disclosure also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system. Computer-readable media that store computer-executable instructions are computer storage media (devices). Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example, and not limitation, implementations of the disclosure can comprise at least two distinctly different kinds of computer-readable media: computer storage media (devices) and transmission media. 
     Computer storage media (devices) includes RAM, ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM), Flash memory, phase-change memory (“PCM”), other types of memory, other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. 
     A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a transmission medium. Transmission media can include a network and/or data links, which can be used to carry desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media. 
     Further, upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (devices) (or vice-versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile computer storage media (devices) at a computer system. RAM can also include solid-state drives (SSDs or PCIx based real time memory tiered storage, such as FusionIO). Thus, it should be understood that computer storage media (devices) can be included in computer system components that also (or even primarily) utilize transmission media. 
     Computer-executable instructions comprise, for example, instructions and data, which, when executed at a processor, cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code. 
     Those skilled in the art will appreciate that the disclosure may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, pagers, routers, switches, various storage devices, commodity hardware, commodity computers, and the like. The disclosure may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices. 
     Implementations of the disclosure can also be used in cloud computing environments. In this description and the following claims, “cloud computing” is defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned via virtualization and released with minimal management effort or service provider interaction, and then scaled accordingly. A cloud model can be composed of various characteristics (e.g., on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, or any suitable characteristic now known to those of ordinary skill in the field, or later discovered), service models (e.g., Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS)), and deployment models (e.g., private cloud, community cloud, public cloud, hybrid cloud, or any suitable service type model now known to those of ordinary skill in the field, or later discovered). Databases and servers described with respect to the disclosure can be included in a cloud model. 
     Further, where appropriate, functions described herein can be performed in one or more of: hardware, software, firmware, digital components, or analog components. For example, one or more application specific integrated circuits (ASICs) can be programmed to carry out one or more of the systems and procedures described herein. Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, components may be referred to by different names. This document does not intend to distinguish between components that differ in name, but not function. 
     Referring now to  FIG. 9 , a block diagram of an example computing device  900  is illustrated. Computing device  900  may be used to perform various procedures, such as those discussed herein. Computing device  900  can function as a server, a client, or any other computing entity. Computing device  900  can perform various monitoring functions as discussed herein, and can execute one or more application programs, such as the application programs described herein. Computing device  900  can be any of a wide variety of computing devices, such as a desktop computer, a notebook computer, a server computer, a handheld computer, tablet computer and the like. 
     Computing device  900  includes one or more processor(s)  902 , one or more memory device(s)  904 , one or more interface(s)  906 , one or more mass storage device(s)  908 , one or more Input/Output (I/O) device(s)  910 , and a display device  930  all of which are coupled to a bus  912 . Processor(s)  902  include one or more processors or controllers that execute instructions stored in memory device(s)  904  and/or mass storage device(s)  908 . Processor(s)  902  may also include various types of computer-readable media, such as cache memory. 
     Memory device(s)  904  include various computer-readable media, such as volatile memory (e.g., random access memory (RAM)  914 ) and/or nonvolatile memory (e.g., read-only memory (ROM)  916 ). Memory device(s)  904  may also include rewritable ROM, such as Flash memory. 
     Mass storage device(s)  908  include various computer readable media, such as magnetic tapes, magnetic disks, optical disks, solid-state memory (e.g., Flash memory), and so forth. As shown in  FIG. 9 , a particular mass storage device is a hard disk drive  924 . Various drives may also be included in mass storage device(s)  908  to enable reading from and/or writing to the various computer readable media. Mass storage device(s)  908  include removable media  926  and/or non-removable media. 
     I/O device(s)  910  include various devices that allow data and/or other information to be input to or retrieved from computing device  900 . Example I/O device(s)  910  include cursor control devices, keyboards, keypads, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, and the like. 
     Display device  930  includes any type of device capable of displaying information to one or more users of computing device  900 . Examples of display device  930  include a monitor, display terminal, video projection device, and the like. 
     Interface(s)  906  include various interfaces that allow computing device  900  to interact with other systems, devices, or computing environments. Example interface(s)  906  may include any number of different network interfaces  920 , such as interfaces to local area networks (LANs), wide area networks (WANs), wireless networks, and the Internet. Other interface(s) include user interface  918  and peripheral device interface  922 . The interface(s)  906  may also include one or more user interface elements  918 . The interface(s)  906  may also include one or more peripheral interfaces such as interfaces for printers, pointing devices (mice, track pad, or any suitable user interface now known to those of ordinary skill in the field, or later discovered), keyboards, and the like. 
     Bus  912  allows processor(s)  902 , memory device(s)  904 , interface(s)  906 , mass storage device(s)  908 , and I/O device(s)  910  to communicate with one another, as well as other devices or components coupled to bus  912 . Bus  912  represents one or more of several types of bus structures, such as a system bus, PCI bus, IEEE 1394 bus, USB bus, and so forth. 
     For purposes of illustration, programs and other executable program components are shown herein as discrete blocks, although it is understood that such programs and components may reside at various times in different storage components of computing device  900 , and are executed by processor(s)  902 . Alternatively, the systems and procedures described herein can be implemented in hardware, or a combination of hardware, software, and/or firmware. For example, one or more application specific integrated circuits (ASICs) can be programmed to carry out one or more of the systems and procedures described herein. 
     Referring now to  FIG. 10 , there is illustrated a schematic diagram of a system for optimizing irrigation in an irrigation system having a controller connected to an irrigation server over computer network in accordance with the teachings and principles of the disclosure. The system  1000  may comprise a plumbing system  1050  having at least one, and may comprise a plurality of, electronically actuated control valve  1040  for controlling the flow of water through the plumbing system  1050 . It will be appreciated that the system  1000  may comprise an irrigation server  1030  comprising one or more processors and memory for executing computing instructions. The system  1000  may comprise a web account  1020  that may be facilitated by the irrigation server  1030  and may be provided to a user  1005  for receiving inputted data from the user  1005 . 
     It will be appreciated that the user  1005  may input data via a controller  1025  or via the web account  1020  without departing from the scope of the disclosure. The controller  1025  may be a dedicated controller that may be electronically and directly connected to the one or more control valves  1040   a ,  1040   b ,  1040   c  and may be configured for sending actuation signals to the one or more control valves, thereby controlling water flow through the plumbing system  1050 . It will be appreciated that the controller  1025  may comprise a user interface  1010  that may allow the user  1005  to enter irrigation related data into the system  1000 . 
     The system  1000  may further comprise a network interface  1022  that may be in electronic communication with the controller  1025 , which may provide communication with the web account  1020  such that the web account  1020  and the controller  1025  may be securely paired over a network. It will be appreciated that the pairing process  1045  between the controller  1025  and the web account  1020  may aggregate user input data entered at the controller  1025  and through the web account  1020 . 
     The system  1000  may comprise a clock configured to provide time stamp data to events within the system  1000 . The system  1000  may further comprise a notice generator that generates notifications for users  1005  regarding events within the system  1000  and transmits the notifications to users  1005 . The system  1000  may comprise an irrigation protocol that itself may comprise instructions for the controller  1025  derived in part from user responses to the notifications and time stamp data. 
     In an implementation, the system  1000  may further comprise a plurality of control valves  1040   a ,  1040   b ,  1040   c , wherein each control valve corresponds to a zone of irrigation. In an implementation, the system  1000  may further comprise a mobile application on a mobile device configured for communicating with the irrigation protocol server  1030 , wherein the server  1030  may comprise or communicate with one or more databases  1031 ,  1032 . In an implementation, the system  1000  may further comprise a notification protocol for providing push notifications to a user over the mobile application. In an implementation, the system  1000  may further comprise an interval timer for determining the timing of when the notification may be sent to customers or users  1005 . 
     It will be appreciated that the type of user data that may be entered and shared with the system  1000  may include the information provided herein, including without limitation soil type, crop or plant type, sprinkler type, slope type, shade type, irrigation start time, an irrigation interval of time in which irrigation may take place for one or more zones. 
     In an implementation, the system  1000  may further comprise a predetermined interval for initiating queries to users  1005 . In an implementation, the system  1000  may further comprise a serviceman portal for third party landscaping service providers to specially enter the system  1000 . 
     In an implementation, the system  1000  may further comprise a pairing process between the controller  1025  and a web based network or service, such as a cloud service. 
       FIG. 11  illustrates an implementation of a system and method for optimizing irrigation in an irrigation system having a controller connected to an irrigation server over computer network in accordance with the teachings and principles of the disclosure. The method  1100  may comprise, at  1110 , prompting a user through a user interface on a computing device to select a given zone. At  1115 , the method may further comprise receiving a zone selection and storing the selection in computer memory  1105 . The method  1100  may further comprise prompting a user for zone characteristic data and receiving zone characteristic data from the user. The method may comprise storing that zone characteristic data in computer memory. At  1170 , the method  1100  may comprise receiving and aggregating weather data from a plurality of databases. It will be appreciated that the weather data may be related to each zone, or to a plurality of zones, or to all of the zones in the system. The method may further comprise generating a suggested irrigation protocol at  1172  based, at least in part, on the zone characteristic data and the aggregated weather data. The method may comprise transmitting or sending the irrigation protocol to the controller at  1174 . The method may comprise receiving a confirmation of the suggested irrigation protocol from the user and writing the confirmed irrigation protocol into computer memory of a controller that is in electronic communication with pluming of the irrigation system. 
     At  1176 , the method may comprise generating a notification regarding the suggested irrigation protocol, such as a notification inquiring or querying the user about the success of the protocol in terms of how the landscape appears from an aesthetics stand point or the like. The method may comprise conveying the notification to a corresponding user for confirmation of the success of the protocol and the like. The method may further comprise terminating a connection between an irrigation server and the controller at  1178 . It will be appreciated that terminating communication between the controller and the irrigation server may be done after the irrigation protocol has been written to controller memory. 
     The method may further comprise starting a feedback tracking clock or calendar at  1182 . The method may comprise generating prompts to the user regarding current watering protocol and various calendared or timed intervals at  1184 . The method may comprise executing the irrigation protocol thereby actuating the irrigation system to irrigate each of the zones in the system or at least the zones in the protocol. 
     In an implementation, the method may further comprise providing a schedule for events within the irrigation system. In an implementation, the method may comprise an event that may be a reduction in water usage. In an implementation, the method may comprise an event that is a modification of the irrigation protocol requested by a user. In an implementation, the method may comprise an event that is a notification to be sent to the user. In an implementation, the method may comprise an event that is a predetermined set of queries regarding current characteristics of the zone. 
     In an implementation, the method may further comprise starting a feedback clock that may correspond to the schedule of events, such that notifications may be sent to users in accordance to the schedule of events. In an implementation, the method may comprise modifying the schedule of events to accommodate an unscheduled event. 
     In an implementation, the method may comprise suggesting a first water reduction followed by a scheduled query to a user regarding the health of plants within the corresponding zone. In an implementation, the method may comprise suggesting a second water reduction followed by second scheduled query to a user regarding the health of plants within the corresponding zone. 
     In an implementation, the method may comprise zone querying or prompting the user to enter zone characteristic data. At  1120 , the method may prompt the user to enter soil type data for each zone in the system. At  1125 , the user may enter and send information or data relating to the query or prompt, where the data is received by the system and written to memory  1105 . At  1130 , the method may prompt the user to enter plant type data for each zone in the system. At  1135 , the user may enter and send information or data relating to the query or prompt, where the data is received by the system and written to memory  1105 . At  1140 , the method may prompt the user to enter shade type data for each zone in the system. At  1145 , the user may enter and send information or data relating to the query or prompt, where the data is received by the system and written to memory  1105 . At  1150 , the method may prompt the user to enter sprinkler or sprinkler head type data for each zone in the system. At  1155 , the user may enter and send information or data relating to the query or prompt, where the data is received by the system and written to memory  1105 . At  1160 , the method may prompt the user to enter slope type data for each zone in the system. At  1165 , the user may enter and send information or data relating to the query or prompt, where the data is received by the system and written to memory  1105 . 
       FIG. 12  illustrates an implementation of a system and method for optimizing irrigation in an irrigation system having a controller connected to an irrigation server over computer network in accordance with the teachings and principles of the disclosure. The method  1200  may comprise determining an elapsed time from initialization of the system at  1210 . At  1220 , the method may comprise retrieving current irrigation protocol data from memory. At  1230 , the method may comprise generating prompts for a user to analyze and assess the landscape and the health of the plants or other landscape for each zone. At  1240 , the system and method may transmit prompts to the user. It will be appreciated that the transmission of the notification or the prompt to the user may be done through a web account  1245   a , a mobile device  1245   b  or through the controller  1245   c  or a combination of the above without departing from the scope of the disclosure. At  1241 , the system may initiate a connection with a server and the controller before sending the prompt or notification. At  1250 , the system and method may receive the user response(s) to the prompt or notification and write the response(s) to memory. The system and method may generate a new protocol reflecting the user responses to the query, prompt or notification at  1260 . At  1262 , the user may be queried or asked to determine whether or not the user is pleased or otherwise satisfied with the health of the landscape. If the user is satisfied, the system and method may reduce the amount of water at  1264  provided to that specific zone or group of zones. At  1265 , the system and method may generate a first start time that may act as a calendar item to send a follow-up query or notification to the user, for example a week later, to determine whether the user is pleased or otherwise satisfied with the health of the landscape, and if so, the system may reduce the amount of water a second time. The system and method may generate a calendar item to send a follow-up query or notification to the user, for example a week later, to determine whether the user is pleased or otherwise satisfied with the health of the landscape. If the user is satisfied, then the system may maintain the current duration for that zone. 
     If at  1262 , the user is not satisfied with the health of the landscape, whether initially or anytime during the process of finding the right amount of water for each zone, then the system and method may formulate or generate prompts for the trouble zone at  1266  to determine the extent of the problem. The system and method may receive the user&#39;s response and may formulate a new protocol that adjusts the duration of the zone to address the severity of the problem identified by the user. At  1267 , the system and method may generate a second start time that may act as a calendar item to send a follow-up query or notification to the user, for example a week later, to determine whether the user is pleased or otherwise satisfied with the health of the landscape. If not, the user will respond accordingly and the system and method may receive the user&#39;s response and may formulate a new protocol that adjusts the duration of the zone to address the severity of the problem identified by the user. If the user is satisfied with the current duration, then the system may maintain the current duration for that zone. It will be appreciated that the interaction between the user and the system may operate or function to provide the best quality landscape that the user is satisfied with the least amount of water possible, thereby conserving water on a micro-level at each user. 
       FIGS. 13-16  illustrate implementations of a system and method for optimizing irrigation in an irrigation system having a controller connected to an irrigation server over a computer network. Illustrated in  FIGS. 13-16  are certain methods, systems, and computer program products that may be utilized for smart watering purposes. The methods, systems, and computer program products may utilize up-to-date or current weather data, interpretation of that weather data, and use of that interpreted weather data to send irrigation protocols, including computer implemented instructions, to the controller. It will be appreciated that the controller may be electronically and directly connected to a plumbing system, such as an irrigation sprinkler or drip system, that may have at least one electronically actuated control valve for controlling the flow of water through the plumbing system. The controller may be configured for sending actuation signals to the at least one control valve thereby controlling water flow through the plumbing system in an efficient and elegant manner to effectively conserve water while maintaining aesthetically pleasing or healthy landscapes. 
       FIG. 13  is a schematic diagram of a system and method  1300  illustrating communication from a cloud service or a network  1320  with a weather service  1310 . The weather service  1310  may be a third party service or may be provided by the same entity providing the cloud or network service  1320  without departing from the scope of the disclosure. The weather service  1310  may comprise one or more databases  1312 ,  1314  containing weather information. The weather information may include current weather information and may be for a specific location that corresponds with the location of the controller of the plumbing system. The weather information may include data relating to current humidity, current temperature, current solar radiation, and/or current wind speed. The weather information may also provide additional data without departing from the scope of the disclosure. 
     The cloud or network service  1320  may comprise an irrigation server  1322  and a protocol generator  1324 . When data is obtained from the weather service  1310 , the cloud or network service  1320  may interpret the received weather data. The interpreted weather data may then be used to generate one or more irrigation protocols  1326  using the protocol generator  1324 . The irrigation protocol(s)  1326  may comprise instructions for the controller  1330  relating to irrigation run times for at least one zone of the irrigation system. The irrigation protocol(s)  1326  may be sent by the irrigation server  1322 , including computer implemented instructions, over the computer network to the controller  1330  for execution of the instructions by the controller at  1332 . It will be appreciated that the computer network may be in electronic communication with the controller  1330  and the irrigation server  1322 . The irrigation server  1322  may comprise processors and memory for executing computing the irrigation protocol(s)  1326 , including computer implemented instructions, received from the irrigation server  1322  of the cloud or network service  1320 . Once the irrigation protocol(s)  1326  have been executed by the controller  1330 , a transcript of the irrigation or watering is sent to the irrigation server  1322  and the cloud or network service  1320 . 
     Referring to  FIG. 14 , it will be appreciated that the optimization of the irrigation and plumbing system is to provide the requisite water needed to maintain a healthy landscape and no more. Thus, the general understanding is that the amount of water that is lost during evapotranspiration per zone must be replenished at each irrigation start and run time. It will be appreciated that evapotranspiration is the amount of water lost from the sum of transpiration and evaporation. The U.S. Geological Survey defines evapotranspiration as water lost to the atmosphere from the ground surface, evaporation from the capillary fringe of the groundwater table, and the transpiration of groundwater by plants whose roots tap the capillary fringe of the groundwater table. Evapotranspiration may be defined as loss of water from the soil both by evaporation from the soil surface and by transpiration from the leaves of the plants growing on it. It will be appreciated and understood that factors that affect the rate of evapotranspiration include the amount of solar radiation, atmospheric vapor pressure, temperature, wind, and soil moisture. Evapotranspiration accounts for most of the water lost from the soil during the growth of a plant or crop. Accurately estimating evapotranspiration rates is an advantageous factor in not only planning irrigation schemes, but also in formulating irrigation protocols to be executed by a controller to efficiently use water resources. 
     Illustrated in  FIG. 14  is an example of grass  1410  and its root zone  1420 . Also illustrated is an example of the various soil types that may be present per zone, such as clay  1432 , silt  1434 , or sand  1436 , etc. It will be appreciated that the landscape may be considered healthy and water use and conservation may be considered optimal, when the irrigation and plumbing system function or operate to replenish the water in the root zone  1420  when water is present at about 50% in the root zone  1420 . Thus, when water is present in the root zone  1420  in an amount greater than about 50% then the duration of the watering for that zone is shortened. Conversely, when water is present in the root zone  1420  in an amount less than about 50% then the duration of the watering for that zone is increased. The objective is to replenish the soil with water in the root zone  1420  to 100% and no more to optimize and conserve the amount the water used to maintain a healthy landscape. It will be appreciated that any amount of water over 100% saturation in the root zone  1420  leads to water runoff that is not efficiently used. Thus, it will be appreciated that the ability to accurately determine the amount of water present in the soil may be advantageous for optimizing irrigation in an irrigation system. 
     Referring specifically to  FIGS. 15 and 16 , an implementation of a method and system for optimizing irrigation in an irrigation system may comprise a plumbing system having an electronically actuated control valve for controlling the flow of water through the plumbing system. The system may also comprise a dedicated controller that may be electronically and directly connected to the control valve and configured for sending actuation signals to the control valve, thereby controlling water flow through the plumbing system. 
     In an implementation, it will be appreciated that the irrigation server may operate by sending a query over the computer network to a database containing weather data at a predetermined interval at  1510 . In an implementation, the cloud or network service, via the irrigation server or otherwise, queries the database for current humidity, temperature, solar radiation, and/or wind speed at  1512 . At  1514 , the irrigation server may receive the queried weather data from the database and stores the weather data in computer memory. 
     At  1516 , a determination is made by the irrigation server and/or the protocol generator as to whether or not information relating to solar radiation or other weather data has been received or provided as part of the weather data in order to accurately determine and generate the evapotranspiration for that given zone during the interval or period in question. If no such solar radiation or weather data has been provided, then at  1520  the cloud or network service, via the irrigation server or otherwise, determines or takes into consideration the angle of earth at  1522 , temperature at  1524 , and/or the geographical region type, such as tropical wet, tropical wet and dry, semiarid, arid, moderate, humid subtropical, marine coastal, humid continental etc. to determine the amount of water needed to replenish the root zone at  1530 . 
     It will be appreciated that at  1530  the protocol generator may determine an amount of water needed to replenish the root zone for a given irrigation zone, or a plurality of irrigation zones, to raise the amount of water in the root zone back to or near 100% based on the weather data (illustrated best in  FIG. 14 ) based on the solar radiation data and/or other weather data. In an implementation, at  1532 , the cloud or network service, through the protocol generator or otherwise, may determine the evapotranspiration or the amount of water lost for the irrigation zone as part of generating the irrigation protocol that is sent to the controller. The data relating to the amount of water needed to replenish the root zone for the given irrigation zone back to or near 100% may be stored in computer memory for later retrieval and use. In an implementation, the duration for running a certain irrigation zone may be determined based on the amount of water lost due to evapotranspiration. If the root zone is determined to be less than 50% saturated at the start or run time, then the duration may be increased. If the root zone is determined to be greater than 50% saturated at start or run time, then the duration may be decreased. 
     At  1534  the weather data may be recorded in computer memory on the irrigation server or otherwise for the specific interval in question. The weather data may include time, day, month and year for that data packet. At  1536 , the cloud or network service, whether through the protocol generator or otherwise, may build a table of changes relating to the weather data based at least in part on weather data received during a plurality of predetermined intervals. For example, the predetermined interval may be one every 15 minutes, once per 30 minutes, once per 45 minutes, once per hour, or any other interval. The cloud or network service, through the protocol generator or otherwise, may store the weather data received from each predetermined interval and the table is built based on those changes. It will be appreciated that the data in the table may be consulted and used when providing irrigation protocols to the controller. 
     In an implementation, at  1540  the cloud or network service, through the irrigation server or otherwise, may communicate with the controller and determine whether a start time for the controller to initiate actuation of the irrigation system is within one hour. In an implementation, if the start time for the controller is greater than one hour away from a current date and time then the weather updates may be provided or conveyed to the table of changes at  1546 . In an implementation, if the start time for the controller is one hour or less away from a current date and time then weather updates may be provided or conveyed to the protocol generator at  1542 , where the irrigation protocol implements the data in the table relating to weather conditions over a period of time since the last irrigation protocol was sent to the controller. The irrigation server may then send the current irrigation protocol to the controller if the start time for the controller is one hour or less away from a current date and time at  1544 . 
     In an implementation, the irrigation server may aggregate weather data from a single source or from a plurality of sources. In an implementation, the system and method may comprise a user web account, wherein the user web account is paired with the controller. In an implementation, the system may further comprise a notice generator that generates notifications for a user regarding events within the system, wherein the irrigation server transmits the notifications to the user prompting the user to enter data relating to the irrigation system and/or one or more irrigation zones of the irrigation system. In an implementation, the irrigation server may electronically communicate with the user through the web account located on a database and displayed using a general purpose computer, through a mobile device, and/or through the controller to send the notifications to the user. 
     It will be appreciated that the cloud or network service may perform many of the calculations and generate the irrigation protocols and other instructions that may be sent directly to the controller. Thus, it is the cloud or network service that provides the processing via one or more servers of the data obtained from one or more various aggregated weather sources or databases. In an implementation, the irrigation server may perform various computer implemented steps to utilize the current weather data that is provided at a regular predetermined interval, such as at one hour intervals, and generate the irrigation protocols that may be sent to the controller for actuation of the irrigation or plumbing system. 
     The irrigation server may electronically communicate with the controller. The irrigation server may also send one or more irrigation protocols to the controller over the computer network where the irrigation protocol is written into computer memory of the controller for execution by the controller. In an implementation, the system and method may utilize a clock that may be configured for providing time stamp data to events within the system. The one or more irrigation protocols may comprise time stamp data. Once the controller has received the one or more irrigation protocols, the controller executes the irrigation protocols to thereby actuate the irrigation or plumbing system. 
     In an implementation, the system and method the irrigation server may determine a slope of the ground, current temperature, and/or the geographical region type if there is no solar radiation data provided to the protocol generator. In an implementation, the irrigation server determines the slope of the ground, temperature, and/or the geographical region type prior to the protocol generator determining the amount of water needed to replenish the root zone for the given irrigation zone. 
     Referring now to  FIGS. 17-20 , systems and methods for providing optimal irrigation in an irrigation system having a controller configured to be connected to an irrigation server over a computer network are illustrated. 
     Referring specifically to  FIG. 17 , the system and method  1700  may include the irrigation server receiving zone characteristic data at  1702  and receiving aggregated weather data at  1704  from various sources. Such data sources may include third party sources, such as weather services, and data from the controller. The system and method may further comprise at  1710  generating an irrigation protocol within an irrigation server based at least in part on the zone characteristic data and the aggregated weather data. At  1720 , a communication connection may be established between the controller and the irrigation server. At  1730 , the generated irrigation protocol may be sent over the computer network to the controller, where the irrigation protocol is written into computer memory of the controller. It will be appreciated that the controller may be in electronic communication with the plumbing system of the irrigation system, including sprinkler parts that are commonly used in sprinkling and drip systems, such as piping or tubing, sprinkler valves and solenoids, and other parts needed to irrigate one or more zones of the irrigation system. 
     At  1740 , the system and method may further comprise generating a historical backup protocol. At  1750 , the historical backup protocol may be sent to the controller from the irrigation server, wherein the historical protocol is written to the computer memory of the controller. It will be appreciated that the controller may retrieve the historical backup protocol from memory and execute the historical protocol if a connection between the server and the controller is not established for any reason. Thus, it will be appreciated that the backup instructions may be used whenever there is not a connection between the network, such as the irrigation server, and the controller established. 
     In an implementation, the system and method may further comprise confirming the irrigation protocol has been sent to the controller and writing the confirmed irrigation protocol into computer memory of the controller, which may be in electronic communication with plumbing of the irrigation system. 
     In an implementation, the historical backup data may comprise data relating to a historical weather almanac for a specific area or zip code. In an implementation, the historical backup data may comprise data relating to a historical weather almanac for a specific area or zip code in addition to specific data received from the controller relating to that particular irrigation system. 
     In an implementation, the system and method may further comprise receiving operational historical data from the controller by the irrigation server. The operational historical data may be generated at least in part by the controller executing an iteration of the irrigation protocol to thereby actuate the irrigation system. In an implementation, the system and method may further comprise generating the historical backup protocol based at least in part on a previous execution of at least one previous irrigation protocol (illustrated best in  FIG. 20 ). In an implementation, the system and method may further comprise recording irrigation iteration data into controller memory after the irrigation protocol has been executed by the controller. In an implementation, the system and method may further comprise recording irrigation iteration data into controller memory until communication between the irrigation server and controller is reestablished. In an implementation, the system and method may further comprise recording irrigation iteration data for a plurality of iterations into controller memory after a plurality of irrigation protocols have been executed. In an implementation, the system and method may further comprise recording irrigation iteration data into controller memory until communication between the irrigation server and controller is reestablished. 
     In an implementation, the system and method may further comprise initiating a notification to a user&#39;s communication device regarding the connection that was not established. In an implementation, the user communication device may be a computing device connected over a network. In an implementation, the network may comprise cellular network functionality. In an implementation, the user communication device may be a mobile device or other communication device capable of receiving notifications from a network. In an implementation, the system and method may further comprise initiating and receiving a notification output from the controller regarding the connection that was not established. It will be appreciated that in an implementation, the notification may be a visual output from the controller. In an implementation, the notification may be an audible signal output from the controller. In an implementation, the system and method may further comprise rechecking for network connectivity between the irrigation server and the controller. 
     In an implementation, the system and method may further comprise receiving transmitted irrigation iteration data at the server from the controller if network connectivity is reestablished. In an implementation, the system and method may further comprise averaging a plurality of previous iterations to generate the historical protocol. In an implementation, the system and method may further comprise weighting more recent iterations higher than less recent iterations when generating the historical protocol. 
     In an implementation, the system and method may further comprise generating the historical protocol comprising new irrigation protocols on the server and downloading the historical protocol to the controller for use as a backup if connection to the server is not established. In an implementation, the system and method may further comprise generating historical protocols at the controller. In an implementation, when a connection is found, the method and system may further comprise transmitting the generated irrigation protocol from the irrigation server to the controller over the network. 
     Referring specifically to  FIG. 18 , the system and method  1800  for providing optimal irrigation in an irrigation system having a controller configured to be connected to an irrigation server over a computer network may comprise receiving zone characteristic data at  1802  and receiving aggregated weather data at  1804 . It will be understood that the network or cloud service may provide the irrigation server and the irrigation server may receive the zone characteristic data, aggregated weather data and other sources of data. It will be appreciated that the irrigation server may be more than one computer and may comprise a plurality of databases and processors as needed without departing from the scope of the disclosure. 
     In an implementation, the system and method may further comprise at  1810  generating an irrigation protocol within the irrigation server based at least in part on the zone characteristic data and the aggregated weather data. At  1820  a network communication connection may be established between the controller and the server. At  1830 , the irrigation protocol may be sent to the controller, wherein the irrigation protocol is written into computer memory of the controller, which may be in electronic communication with plumbing of the irrigation system. In an implementation, the system and method may further comprise confirming the irrigation protocol has been sent to the controller. At  1840 , operational historical data may be received by the server from the controller, wherein the operational historical data may be generated at least in part on the controller executing an iteration of the irrigation protocol to thereby actuate the irrigation system. At  1850 , the historical backup protocol may be generated. The historical backup protocol may be based, at least in part, on one or more previous executions of at least one previous irrigation protocol. At  1860 , the historical backup protocol may be sent to the controller wherein the historical protocol is written to the computer memory of the controller, such that the controller retrieves the historical backup protocol from memory and executes the historical backup protocol if a connection between the server and the controller is not established. 
     Referring now to  FIGS. 19 and 20 , it will be appreciated that during the steps noted above, there is a time when data and information must be sent or received between the network or cloud service and the controller. Whether or not the historical backup protocol, which may have been written to and stored in the controller&#39;s memory, may be run is largely dependent upon whether or not a communication connection has been established between the network or cloud service, e.g., the irrigation server over the computer network, and the controller. At  1920 ,  2020  the system and method determine whether that communication connection has been established. If a communication connection has been established, then at  1930 ,  2030  the irrigation protocol and/or the historical backup protocol may be sent to the controller, where they may be written into memory of the controller for execution at an appropriate time (at  2032  in  FIG. 20 ). As illustrated best in  FIG. 20  at  2034 , the controller may generate and send a transcript to the irrigation server located on the network or cloud service reporting about the particular irrigation iteration that was just run. The transcript may include all of the protocol details that the controller executed along with date and time information. It may also include actual weather data for that particular date along with other relevant information. 
     If at  1920 ,  2020  it is determined that a communication connection has not been established, then at  1940 ,  2040  the controller may retrieve the historical backup protocol from its memory. At  1950 ,  2050 , the controller may execute the historical backup protocol. Finally, at  2060 , the controller may send a transcript to the irrigation server of the network or cloud service, once the communication connection has been reestablished. 
     It will be appreciated that as the system runs over a period of time, the system gets smarter and smarter as more and more data is shared between the controller and the network or cloud service. Thus, the backup instruction protocols may use the historic averages from a weather almanac service, use the actual data obtained from the transcripts sent from the controller, or a combination of the above without departing from the scope of the disclosure. It will be appreciated that there may be some weighting of one of the above noted factors over the others. 
     It will be appreciated that a system of providing optimal irrigation in an irrigation system having a controller configured to be connected to an irrigation server over a computer network may comprise a computer network that itself may comprise an irrigation server and a protocol generator. The system may further comprise a controller. The irrigation server may be connected to the computer network for receiving zone characteristic data and aggregated weather data from various sources, including third party sources and the controller. The protocol generator may be located within or may be part of the irrigation server. The protocol generator may generate one or more irrigation protocols based, at least in part, on the zone characteristic data and the aggregated weather data. It will be appreciated that the controller may be in electronic communication with the plumbing of the irrigation system. The controller may also be in communication with the irrigation server over the computer network. Thus, when a communication connection between the controller and the server is established information and data may be exchanged between the server and the controller. For example, the server may formulate, generate and otherwise develop an irrigation protocol and/or a historical operational backup protocol and may send one or more of those protocols to the controller. The controller, in return, may generate a transcript or other data relating to an iteration of the irrigation or watering event that may have just occurred. The transcript or other operational data may be sent from the controller to the irrigation server and the cloud or network service. 
     It will be appreciated that the irrigation server may send and receive data, such as the irrigation protocol, the operational historical data, and the historical backup protocol, over the computer network to and from the controller. Data may be stored and written, such as the irrigation protocol, into computer memory of the controller and/or server. The irrigation server may receive data reported back from the controller relating to an iteration of the irrigation protocol that has been executed. The protocol generator may use the reported back data to generate a historical backup protocol. The irrigation server may send the historical backup protocol to the controller wherein the historical backup protocol may be stored or written to the computer memory of the controller. The controller may retrieve the historical backup protocol from memory and may then execute the historical protocol if or when a connection between the irrigation server and the controller is not established. 
     In an implementation, the irrigation server may confirm with the controller that the irrigation protocol has been sent to the controller. The confirmed irrigation protocol may be written into computer memory of the controller. In an implementation, the controller may send operational historical data to the irrigation server where it is received by the irrigation server and used generate the historical backup protocol. The historical backup protocol may be based at least in part on the controller executing an iteration of the irrigation protocol to thereby actuate the irrigation system, and the historical backup protocol may be generated by the protocol generator and is based at least in part on a previous execution of at least one previous irrigation protocol. 
     In an implementation, the controller records irrigation iteration data into computer memory after the irrigation protocol has been executed by the controller. In an implementation, the controller records irrigation iteration data into computer memory until communication between the irrigation server and controller is reestablished. In an implementation, the controller may record irrigation iteration data for a plurality of iterations into computer memory after a plurality of irrigation protocols have been executed by the controller. In an implementation, the controller may record irrigation iteration data into computer memory until communication between the irrigation server and controller is reestablished. 
     In an implementation, the system may further comprise a notice generator. The notice generator may generate one or more notifications that may be sent by the irrigation server to a user&#39;s communication device regarding the connection that was not established. In an implementation, the user&#39;s communication device is a computing device connected over a network. In an implementation, the network comprises cellular network functionality. In an implementation, the user&#39;s communication device is a mobile device. 
     In an implementation, the irrigation server may initiate and receive one or more notifications that may be output from the controller regarding the connection that was not established. In an implementation, the notification may be a visual output from the controller that operates as a visual cue to a user. In an implementation, the notification may be an audible signal output from the controller that operates as an audio cue to a user. 
     In an implementation, the system may include rechecking for network connectivity. In an implementation, the system may further comprise receiving transmitted irrigation iteration data at the server from the controller if network connectivity is reestablished. 
     In an implementation, the system may further comprise averaging a plurality of previous iterations to generate the historical protocol. The system may further comprise weighting more recent iterations higher than less recent iterations when generating the historical protocol. The system may further comprise generating the historical protocol comprising new irrigation protocols on the server and downloading the historical protocol to the controller for use as a backup if connection to the server is not established. In an implementation, the system further comprises generating historical protocols at the controller. In an implementation, when a connection is found, the generated irrigation protocol may be transmitted from the irrigation server to the controller over the network. 
     Referring now to  FIGS. 21-24 , a system, device and method of communicating with a user of an irrigation system is illustrated. It will be appreciated that the system and method may have a controller  2300  and  2400  configured to be connected to an irrigation server over a computer network. The system and method  2100 ,  2200  may comprise establishing a communication connection between the controller and the irrigation server and actuating the controller of the irrigation system at  2110 ,  2210 . It will be appreciated that the controller may comprise an awake or active mode where the controller is fully operational and a sleep or inactive mode where less power is needed to maintain operations of the controller. The sleep mode refers to a low power mode for electronic devices. The sleep mode saves significantly on electrical consumption compared to leaving a device fully operational and, upon starting, resuming, awakening, powering on etc., allow the user to avoid having to reissue instructions or to wait for a machine to reboot. Many devices signify this power or power saving mode with a pulsed or red colored LED power light. 
     At  2120 ,  2220 , the controller may receive operational data regarding a current status of the irrigation system. Upon receiving a status or other update, one or more status notifications identifying the current status of the irrigation system may be generated at  2130   a ,  2130   b ,  2130   c ,  2130   d ; or  2230   a ,  2230   b ,  2230   c ,  2230   d . For example, the controller may receive updates regarding its operational status or otherwise providing feedback about whether it is running properly; or whether there is some need to issue a warning to a user regarding the status of the system or a warning indicating action or attention is needed from the user; or whether there is a need to issue an error regarding the status of the system. Upon receiving the status or other update, the status notification may be displayed to the user through an interface of the controller (as illustrated best in  FIGS. 23-24 ). It will be appreciated that the controller may continually update or continually check the status of the system as illustrated in  FIG. 22 . 
     In an implementation, a display on the controller provides a status notification to the user of a change in status of the system or the components within the system. For example, the status change or update may be directed to changes in water pressure within the plumbing of the system, changes in number of solenoids connected to the system, electrical changes within the system, network connectivity changes, such as wi-fi or cellular connectivity changes, weather changes, or other changes that affect the operation of the irrigation system and/or the components of the irrigation system. 
     Referring more specifically to  FIGS. 23-24 , in an implementation, the system and method may further comprise receiving information entered into the system through a circular dial  2420  located on the controller  2300 . The circular dial  2420  may have an opening  2322  therethrough. The opening  2322  may be defined by a sidewall  2324  that may extend in a generally orthogonal direction with respect to a plane of the faceplate  2314  of the controller  2300 . 
     In an implementation, the controller  2300  may comprise the circular dial  2320 , which may be a jog dial, and may comprise a colored light display as the status notification to the user. In an implementation, the colored light emanates from the circular dial. In an implementation, a different colored light represents a different status of the irrigation system. For example, in an implementation, green light may represent a status wherein the system is operational, but is not actively running an irrigation protocol. In an implementation, blue light may represent a status wherein the system is operational and is actively running an irrigation protocol. In an implementation, red light may represent a status wherein there is an error within the system. In an implementation, yellow light may represent a status warning the user that there is an issue within the system. It will be appreciated that any color or any color combination may be used to identify one or more statuses of the system or controller without departing from the scope of the disclosure. By way of example only, it will be appreciated that any color of light may represent an error status, a warning status, an operational status, or any other status that a user or manufacturer may desire without departing from the scope of the disclosure. 
     Illustrated best in  FIG. 24 , is an exploded view of the working components of the controller, including a dial which may be an annular user input that interacts with a circuit board housed within the controller. In an implementation, the dial may be illuminated such that the opening glows in an attractive and oft informative manner, such that the illumination patterns could be employed to convey the status of the system. The dial may be configured to correspond with the display, such that manipulation of the dial causes corresponding changes in the display. The dial may provide/receive a plurality of input movements, such as for example, rotation, speed of rotation, push and click, click duration, double click, and the like. 
     The controller may further comprise an electronic visual display, either digital or analog, for visually outputting information to a user. Additionally, it should be noted that an implementation may comprise a plurality of visual outputs, and other components of the controller, such as the dial that may be configured to output visual information. Analog visual outputs may be provided by components such as bulbs and the like. Digital visual outputs may be provided by components such as, liquid crystal displays, light emitting diodes, electro-luminescent devices, to name a few. In an implementation, the controller may further comprise an electronic audible device, either digital or analog, for audibly outputting information to a user. Additionally, it should be noted that an embodiment may comprise a plurality of audible outputs, and other components of the controller may be configured to output audible information. Analog audible outputs may be provided by components such as speakers, mechanical clicks, etc. Digital audible outputs may be provided by components such as, pezio-electric circuits and speakers. 
     It should also be appreciated that the housing of the controller may be configured to be substantially weather resistant such that it can be installed and used outdoors. It will be appreciated that the controller may be electronically and directly connected to a plumbing system, such as an irrigation sprinkler system, that may have at least one electronically actuated control valve for controlling the flow of water through the plumbing system. Additionally, the controller may be configured for sending actuation signals to the at least one control valve thereby controlling water flow through the plumbing system in an efficient and elegant manner to effectively conserve water while maintaining aesthetically pleasing or healthy landscapes. 
     It should be understood that in an implementation, the controller may further comprise memory for recording irrigation iteration data for a plurality of iterations after a plurality of irrigation protocols have been executed. In an implementation, the controller of a system and method may further record irrigation iteration data into memory in case communication with an irrigation server is interrupted. 
     The circuit board of the controller may comprise a single substrate supporting a plurality of light emitting diodes and at least one positions sensing circuit. The light emitting diodes may provide light to the annular user input to provide ease of use and visual cues. The user input may comprise a light tube for collecting the light of the LEDs. A diffuser ring may be employed to evenly distribute the light from the LEDs. The user input may comprise a position ring having a plurality of evenly placed protrusions thereon that correspond to one or more positions sensor to detect the rotation of the position ring in order to digitize a user&#39;s desired information for storage in computer memory within the system. 
     The user input may also comprise a float ring that provides smooth and consistent operation of the user input by producing predictable friction and even spacing during operation. Additionally, the float ring may comprise selection protrusions  1635  thereon for actuating receptors on the circuit board when a user pushes the user input to make a selection. It should be appreciated that a float ring may comprise a plurality of selection protrusions in order to provide consistent selection operation throughout the entire circumference of the annular user input. 
     In an implementation, the status notification may be light. In an implementation, the colored light display may be a digital light source. For example, the digital light source may be an LED, laser, or other digital light source. In an implementation, the colored light display may be an analog light source. In an implementation, the status notification may be a pulsing light. 
     In an implementation, the status notification may be an audio cue to alert a user of a status change. In an implementation, the status notification may be a visual cue to alert a user of a status change. 
     In an implementation, the system and method may further comprise facilitating communication with the controller through a user web account by pairing the web account with the controller. The method may further comprise electronically connecting a network interface with the controller to provide communication with the web account, such that the web account and the controller are securely paired over a network, and wherein the status notification is also communicated through the paired web account. 
     In an implementation, the system and method may further comprise setting a predetermined operational threshold and storing that threshold within the memory of the controller, such that when a response to a query returns a value, or a value is reported to the controller that is above or below the predetermined operational threshold then a warning status notification is provided. In an implementation, when a response to the query returns a value, or a value is reported to the controller that is magnitudes above or below the predetermined operational threshold then an error status notification is provided. 
     Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims. 
     The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. Further, it should be noted that any or all of the aforementioned alternate implementations may be used in any combination desired to form additional hybrid implementations of the disclosure. 
     Further, although specific implementations of the disclosure have been described and illustrated, the disclosure is not to be limited to the specific forms or arrangements of parts so described and illustrated. The scope of the disclosure is to be defined by the claims appended hereto, any future claims submitted here and in different applications, and their equivalents.