Announcement

Collapse
No announcement yet.

EtherRain Zone and Controller Status for HS3

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • EtherRain Zone and Controller Status for HS3

    I'm looking for help with being able to see the status of my EtherRain controller and the individual zones. My ultimate goal is for use in HS Touch. Ideally I would have a button that represents each zone that allows me to toggle that zone on or off, and the image of the button be reflective of the current state of the zone.

    In searching some of the threads, I've found references for HS2, but my understanding is that it would be different in HS3. Has anyone looked into this yet?

  • #2
    I was looking for the same thing. There was this thread (on the third page) for HS2, but I'm not sure any more headway was made.
    Randy Prade
    Aurora, CO
    Prades.net

    PHLocation - Pushover - EasyTrigger - UltraECM3 - Ultra1Wire3 - Arduino

    Comment


    • #3
      mcsSprinklers PRO handles the EtherRain and works with HS3. It is likely more capability than you desire if your irrigation does not need to account for weather conditions to adjust when irrigation occurs.

      Comment


      • #4
        Michael, is it only the PRO version that is compatible with EtherRain, or will the BASIC or STANDARD work? Also, in using your interface, will the valves/zones appear as devices in HS and reflecct current status?

        Comment


        • #5
          I was on the last thread and know very little about how to control EtherRain to a high degree. With that being said what I did last time was create a series of virtual devices to monitor when EtherRain switched between zones. All of this was so that I could track it in HSTouch. Therefore I have just bough HS3 and set it up on a trial box so I can play with it before affecting the rest of my HS2 setup (before installing HS3 on my server). I don't always work with it but I will see if I can figure it out over the next week or so.

          With that being said, I don't think I can get it to work the way you guys want it to. I just had it run events and the events were pre-scheduled for say 10 minutes on a certain zone. Another idea that you could do is to setup a certain zone for a long period of time and then figure out a way to stop the zone. I never got far enough in on my HS2 setup to make my HSTouch screens stop a run.

          Hope this is good information. I will try to post more in the next couple of weeks.

          Comment


          • #6
            Originally posted by edstasneyjr View Post
            ...

            With that being said, I don't think I can get it to work the way you guys want it to. I just had it run events and the events were pre-scheduled for say 10 minutes on a certain zone. Another idea that you could do is to setup a certain zone for a long period of time and then figure out a way to stop the zone. I never got far enough in on my HS2 setup to make my HSTouch screens stop a run.

            Hope this is good information. I will try to post more in the next couple of weeks.
            here. The list of script functions is attached.
            Attached Files
            Randy Prade
            Aurora, CO
            Prades.net

            PHLocation - Pushover - EasyTrigger - UltraECM3 - Ultra1Wire3 - Arduino

            Comment


            • #7
              Originally posted by edstasneyjr View Post
              I was on the last thread and know very little about how to control EtherRain to a high degree. With that being said what I did last time was create a series of virtual devices to monitor when EtherRain switched between zones. All of this was so that I could track it in HSTouch. Therefore I have just bough HS3 and set it up on a trial box so I can play with it before affecting the rest of my HS2 setup (before installing HS3 on my server). I don't always work with it but I will see if I can figure it out over the next week or so.

              With that being said, I don't think I can get it to work the way you guys want it to. I just had it run events and the events were pre-scheduled for say 10 minutes on a certain zone. Another idea that you could do is to setup a certain zone for a long period of time and then figure out a way to stop the zone. I never got far enough in on my HS2 setup to make my HSTouch screens stop a run.

              Hope this is good information. I will try to post more in the next couple of weeks.
              Appreciate any help. The way I have it setup now is with buttons that represent each zone and buttons for cancelling the cycle, disabling, and re-enabling the system. They all reference events as you indicated you had done. So, I can control the system fine from HSTouch. I was hoping that I could get some type of feedback to let me know which zone was on or if the system was disabled or enabled. Sounds like this isn't available with the current script.

              Comment


              • #8
                Michael, is it only the PRO version that is compatible with EtherRain, or will the BASIC or STANDARD work? Also, in using your interface, will the valves/zones appear as devices in HS and reflecct current status?
                Only with the PRO. The valve status as well as about 100 status devices are viewable/controllable via HS. The main reason you would consider mcsSprinkles, other than the integration already done and the rich user interface, is the ability to reduce water consumption with scheduling that is adjusted based upon daily/weekly weather conditions.

                Comment


                • #9
                  The native script that Jim provides does not do status update. However you can make it do it by setting up either one or two virtual devices and just providing a value into them. I did it in my HS2 setup but I was querying it every 8 minutes. I think I have come up with a logic statement that upon turning on a virtual device and then start to query the status more often (basically reducing my log of querying all the time) once one virtual device is turned on. In my HS2 setup I could see what station it was on. As I am typing this you could also create a virtual device to hold the value of what station it is on and query every minute (and then setup a counter) and that could give you how long that station has been running for (if anyone wanted that information). All the option are there of MCS you just have to build in the logic. If you didn't want it to run when it is raining or going to rain setup WeatherXML. Inside WeatherXML you can have it so you in a event that if it is raining or going to rain not to run. Like I have it if it is a 60% chance of rain today that I don't run the sprinkler's or if it has a 80% of rain for tomorrow I don't run it. I also don't turn off the sprinkler system during the winter (I live in Texas). If the HIGH is above 80 degrees and the low is above 55 degrees and other condition are meet it can run. If you look at the old post you be able to use the logic.

                  Sorry, I have not gotten to this to provide the actual changes to Jim's VB script. I did some of my HS3 conversion of events yesterday and then found out for some that HSTouch is not responding to device changes on my iPhone when. If I click on an event it runs but not sliders or toggles. I will see if I can have it done by Monday.

                  Comment


                  • #10
                    +1 relating to mcsSprinklers

                    Here while I still have a client that is running HSTouch over the old still utilized Rainbird box; I put in the mcsSprinkler touch console into one box of the HSTouch screen to provide me all of the functionality needed for the touch console. I did though too tried to reinvent the wheel of a custom HSTouch screen with variables from the mcsSprinkler appplication but decided to short cut it. Too that I am not really good with colors or coordination of a nice flowing esthetically pleasing interface. I can also just run the interface without HSTouch.

                    That said you can easily utilize all of the variables defined in mcsSprinklers. Thinking back now most difficult was the little calendar presented on the interface issue with trying to replicate it. Thinking too nowadays you can do a dynamic or even a live streaming CCTV view of your sprinkler zones running and enable an event with a pop up window per zone utilized. So you can with mcsSprinklers see the status of the valves, water flow and gallon usage, percentage of soil moisture; timing of sprinkler valves based on said moisture and live video. What is good though if you get a stuck manifold sprinkler valve which powering off doesn't do anything you can configure a hard off with a water valve to all of the sprinkler system based on the gallon usage running willy nilly. Then again there is the "adventure" and "fun" of starting from scratch and replication of functionality built into mcsSprinklers.
                    Attached Files
                    Last edited by Pete; May 25th, 2014, 09:57 AM.
                    - Pete

                    Auto mator
                    Homeseer 3 Pro - 3.0.0.534 (Linux) - Ubuntu 18.04/W7e 64 bit Intel Haswell CPU - Mono 6.4X
                    Homeseer Zee2 (Lite) - 3.0.0.534 (Linux) - Ubuntu 18.04/W7e - CherryTrail x5-Z8350 BeeLink 4Gb BT3 Pro - Mono 6.4X

                    X10, UPB, Zigbee, ZWave and Wifi MQTT automation.

                    Comment


                    • #11
                      zone information

                      Originally posted by charbaugh View Post
                      ... I was hoping that I could get some type of feedback to let me know which zone was on or if the system was disabled or enabled. Sounds like this isn't available with the current script.
                      The getStatus command has the capability of providing the zone status, and I think Ed Stasney posted code on another thread on how to get the zone status, and then assign an on or off to a virtual device based on the zone status.

                      I might be able to add more to the script set to allow easier retrieval of zone status, though I first have to see if HS3 scripting will allow it (ie, creating virtual devices and variables on the fly). They just recently provided the capability to create an event from a script within HS3, and so I have to first update the exist script functions , before looking at extending functionality.

                      Jim

                      Comment


                      • #12
                        Thanks again to Jim for helping me out with something that I was doing wrong.

                        Lets see if I can now help out the community.

                        I have my setup now telling me when my station is "running" and if it is running it will tell me what station (or zone) it is on. If it is not running I have it resetting a virtual device back to 0 (or "off").

                        FYI, I create a copy of the original scripts and running them like they are functions even though it is just the original script modified. The first post of these series is going to be about getting status. You will notice some overlap between scripts. You can comment out the writing to log as I do that just during the testing phase.


                        I created a virtual device with ID 133 (name R15 - status) and below are the number representation of it.

                        1 running
                        2 waiting
                        3 short
                        4 unknown
                        5 ready
                        6 suspended
                        7 disabled by user




                        responsestr = devnamestr & " Working. Status: "
                        'now need to get status (ready/busy/waiting/rain/short)
                        'setup the url
                        myurl = "http://" & erdevices(j).ipPort
                        'also, make sure the password is accepted
                        qstr = "/" & resultPage & "?" & "xs"
                        url = myurl & qstr
                        rez = getPage(url)
                        If Not rez Then
                        getStatusRet = responsestr & "Unknown"
                        ' Edited by EStasney
                        ' hs.writelog ("EtherRain", "Unknown")
                        hs.SetDeviceValueByRef (133, 4, True)
                        ' End of edited by EStasney
                        Exit Function
                        End If
                        k = InStr(webstr, "os:")
                        'check operating status
                        wstr = "?"
                        If k > 0 Then
                        wstr = Mid(webstr, k + 4, 2)
                        End If
                        If wstr = "BZ" Then
                        getStatusRet = responsestr & "Running"
                        ' Edited by EStasney
                        ' Set Device 133 "Busy" or 1
                        hs.SetDeviceValueByRef (133, 1, True)
                        hs.writelog ("EtherRain", "Running")
                        ' End of edited by EStasney
                        Exit Function
                        End If
                        If wstr = "WT" Then
                        getStatusRet = responsestr & "Waiting"
                        ' Edited by EStasney
                        ' hs.writelog ("EtherRain", "Waiting")
                        hs.SetDeviceValueByRef (133, 2, True)
                        ' End of edited by EStasney
                        Exit Function
                        End If
                        If wstr = "RD" Then
                        responsestr = responsestr & "Ready"
                        ' Edited by EStasney
                        hs.writelog ("EtherRain", "Ready")
                        hs.SetDeviceValueByRef (133, 5, True)
                        ' Set 134 to zone zero or "off"
                        hs.SetDeviceValueByRef (135, 0, True)
                        hs.writelog ("Etherrain", "Zone 0")
                        ' End of edited by EStasney
                        End If
                        'but now check short
                        k = InStr(webstr, "rz:")
                        'check operating status
                        wstr = "?"
                        If k > 0 Then
                        wstr = Mid(webstr, k + 4, 2)
                        End If
                        If wstr = "SH" Then
                        getStatusRet = responsestr & "(Short)"
                        hs.SetDeviceValueByRef (133, 3, True)
                        Exit Function
                        End If

                        Comment


                        • #13
                          (follow on from above)

                          Device ID ref 144 is my status (i.e. running)

                          1 running
                          2 waiting
                          3 short
                          4 unknown
                          5 ready
                          6 suspended
                          7 disabled by user

                          Comment


                          • #14
                            This is what is needed for tracking of irrigation zones (last couple of lines are for reference):

                            k = InStr(webstr, "ri:")
                            wstr = "?"
                            If k > 0 Then
                            wstr = Mid(webstr, k + 4, 1)
                            End If
                            hs.writelog ("EtherRain-ES", wstr + 1)
                            hs.SetDeviceString (135, wstr +1, True)
                            hs.setdeviceValueByRef (135, wstr +1, True)
                            ' End of EStasney
                            k = InStr(webstr, "os:")
                            'check operating status
                            wstr = "?"
                            If k > 0 Then
                            wstr = Mid(webstr, k + 4, 2)
                            End If

                            Comment


                            • #15
                              I can't think of a clean logically way in HS3 to run an event that is looped on itself until the value of the device changes. Can someone help?

                              So I want to run an event that upon a change of a value of R15 changing the value to "running" that it starts a loop on its own event until that device value is no longer "running."

                              The only reason I want to do this is during EtherRain run of cycles. The only way to find out what station it is on is to poll it but I don't want to waste cpu cycles by polling the device all the time and HS2 and HS3 have the ability to stop and start events on status changes. If I start the event on status change to running and poll every minute until the status changes back to "ready" then I don't have to poll that device all day long just to get my stations location.

                              Hopefully I am just missing something simple to loop an event on itself until another condition occurs.

                              Thanks in advance!

                              Comment

                              Working...
                              X