GARDENA Automatic 6 Zone Mechanical Water Distributor

I have a single station which is connected with a hose pipe to a GARDENA Automatic 6 Zone Mechanical Water Distributor. I have 4 (of a possible 6) hose pipes hooked up to this. The 4 hose pipes run 1 by one. Each time the water turns on, it switched to the next hose pipe. If I used fixed times, I can do a full watering with it on for 9 min and off for 1 min and then repeating three times.

If I introduce variable length watering (Zimmerman, etc), then I’d really like to say run for 9min * 100%, delay 1 min, and then repeat that three times. What is the best way to achieve this, or is it not possible?

Both methods of repeating seem to require fixed start times and if Zimmerman set the watering to 200%, then the programs would run into one another and I guess would result is longer runs on fewer zones maybe.

My fallback would be to spread the watering out to account for the 200% max clamping rule, that would work, but would just make the start-end full cycle longer for every run instead of just the >100% runs.

i.e. 100% = 9 + 1 + 9 + 1 + 9 + 1 9 vs 200% = 18 + 1 + 18 + 1 + 18 + 1 + 18

Notes:


Clamping Rule:
    * The final watering percentage is always limited between 0% and 200%.
    * https://openthings.freshdesk.com/support/solutions/articles/5000823370-use-weather-adjustments#zimmerman
Mechanical Water Distributor
    * https://www.amazon.com/Gardena-Automatic-Mechanical-Water-Distributor/dp/B006MWDQGA

Special Station Auto-Refresh causes pulsing with two remote stations

Okay, hive mind, that is happening here? I believe this is a firmware issue, having taken the steps to eliminate other causes.

Background: I have two controllers: a remote controller (Hardware v3.0 – AC) with 24 stations (configured as an extender), and a ‘master’ controller (Hardware v3.2 – AC) with 40 stations including the 24 remote ones. Both controllers have the latest firmware v2.2.1(1) and are on my local wireless network.

Everything works very well EXCEPT two remote stations: stations 5 & 6 on the remote controller.

With ‘Special Station Auto-Refresh’ enabled on the master controller, remote stations 5 & 6 ‘pulse’ on & off at regular intervals. Typically the station will turn OFF after 47 seconds and turn back ON 25 seconds later. Please see screenshot of logs from remote controller. With ‘Special Station Auto-Refresh’ disabled (Off – unchecked), the pulsing does NOT occur. Again, with ‘Special Station Auto-Refresh’ enabled (On – checked), the pulsing always occurs BUT ONLY WITH TWO of the 22 remote stations, stations 5 & 6.

(Note that ALL control is done from the master controller. I use the remote controller ONLY to monitor the logs. The master controller’s log is blissfully unaware of the on-off pulsing of the station.)

I’ve done many tests and this behavior is reproducible always, but with stations 5 & 6 only. None of the other 22 stations on the remote controller pulse like this, regardless of the setting on ‘Special Station Auto-Refresh’.

What I have tried: added a new access point closer to the remote controller in case the pulsing was related to wireless signal strength (made no change), updated the firmware on both the remote and master controllers to 2.2.1 (1) (made no change), and swapped the wires between station 5 (pulses) and station 7 (doesn’t pulse) to eliminate any possibility that it is a ‘downstream’ wiring issue between the controller and the valves. Swapping the wires between a pulsing station and a non-pulsing station produces no change: Stations 5 & 6 ‘pulse’ (with ‘Special Station Auto-Refresh’ on) regardless of which valve they address.

This is likely a very specific firmware issue with how ‘Special Station Auto-Refresh’ is handled on the remote controller for the two stations 5 & 6. Any thoughts?

Brand new OSPi not turning off zones

Hey,

I just installed my brand new OSPi. It is replacing a working OpenSprinkler 3.0. I am running firmware 2.2.1(1). My zones aren’t turning off with the OSPi. I’m manually turning on a zone for 3 minutes, the zone turns on and runs, the timer stops in the app after 3 minutes and shows the zone off, but the water is still running. In order to get the water to stop running I have to pull the 24 volt power. The water stays stopped when the 24 volt power is reapplied until the next time I manually turn on a zone then the problem repeats.

Secondary Relay Recommendations For Creative Uses

Folks,
I don’t know if this is the correct thread to post this question, so please let me know if I need to move it, or if you are a moderator, just move it appropriately within the backend.

I have a standard OpenSprinkler setup, but I needed one more valve. I purchased the expansion module, and it works great! Thank you!!

I now have a lot of extra trigger capability and want to trigger other things programmatically. Ideas include replacing my legacy mechanical 240VAC pool timer; on/off bird feeder fountain for my wife; low voltage landscape lighting control; granular 120VAC attic fan control (we live in Arizona); and countless other ideas.

I have searched the forum and read several creative posts. My question to the group is…

What manufacturer/model relays have proven themselves to be both compatible with OpenSprinkler and reliable under most conditions?

Thank you for any guidance provided.

Mike

Trouble Compiling 2.2.1(1)

Hi all,
I have been able to download and compile 2.1.9 in the past.
I’m having trouble with 2.2.1(1).

First questions: Is there a min version required for vscode and platformio?

I’m using a Linux VM,
VS code 1.74.2
Platformio v3.3.3

2nd question: (Assuming the above versions should be OK)
I’ve downloaded the code opened VSCode, waited for platformio to do its thing, and hit the checkmark at the bottom of the vscode window to do a build.
I get several warnings and finally an error.
Below are some of them:

  • OpenSprinkler.cpp: In static member function ‘static void OpenSprinkler::switch_remotestation(RemoteOTCStationData*, bool, uint16_t)’:
    OpenSprinkler.cpp:2136:6: warning: unused variable ‘x’ [-Wunused-variable]
    2136 | int x = send_http_request(DEFAULT_OTC_SERVER_APP, DEFAULT_OTC_PORT_APP, p, remote_http_callback, true);
    | ^
    OpenSprinkler.cpp: In static member function ‘static void OpenSprinkler::detect_expanders()’:
    OpenSprinkler.cpp:3157:26: warning: deleting object of polymorphic class type ‘IOEXP’ which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor]
    3157 | if(expanders[i]!=NULL) delete expanders[i];
  • mqtt.cpp: In static member function ‘static int OSMqtt::_init()’:
    mqtt.cpp:474:21: warning: deleting object of polymorphic class type ‘PubSubClient’ which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor]
    474 | if (mqtt_client) { delete mqtt_client; mqtt_client = 0; }…

  • opensprinkler_server.cpp:519:27: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=]
    519 | snprintf(tbuf2+1, 3, “%d”, bid);
  • In file included from .pio/libdeps/sanguino_atmega1284p/UIPEthernet/utility/mempool_conf.h:5:0,
    from .pio/libdeps/sanguino_atmega1284p/UIPEthernet/utility/mempool.h:28,
    from .pio/libdeps/sanguino_atmega1284p/UIPEthernet/utility/Enc28J60Network.h:28,
    from .pio/libdeps/sanguino_atmega1284p/UIPEthernet/UIPEthernet.h:35,
    from .pio/libdeps/sanguino_atmega1284p/UIPEthernet/UIPUdp.cpp:20:
    .pio/libdeps/sanguino_atmega1284p/UIPEthernet/utility/uipopt.h:97:4: warning: #warning “Endianness configured automaticaly.” [-Wcpp]
    #warning “Endianness configured automatically.”
  • Compiling .pio/build/linux/src/I2CRTC.o
    In file included from EMailSender.cpp:35:
    EMailSender.h:43:10: fatal error: WProgram.h: No such file or directory
  • Compiling .pio/build/linux/src/I2CRTC.o
    In file included from EMailSender.cpp:35:
    EMailSender.h:43:10: fatal error: WProgram.h: No such file or directory
  • Any suggestions on what I’m doing wrong?
    I’ve tried with the zip file of the code and also cloned the repo directly (master)

    Thanks for your help, I appreciate it.
    Brian

    Can’t get to UI after firmware update to 2.2.1(1)

    I have the OpenSprinkler 3 AC-powered and a single zone expander that I bought 5 years ago, and it has been working great until today.

    I just barely updated the firmware to 2.2.1(1) to prepare for the summer season (and made a backup of my configuration). After the update, I got the controller back onto my wifi and went into the web UI to restore my configuration, only now with the default password when I log in, it says “Loading” for a brief second, and then drops back at the login screen. There was a group of issues I saw in the console, but I don’t know if they’re related to OpenSprinkler (see screenshot) so I am at a loss as to what’s causing the issue. I tried in multiple browsers after deleting cookies and cache, and even poked around in the API to see if it was still responding in any way.

    It looks like after the firmware update some of the settings (like station names) were preserved but others weren’t, and the JSON that is returned from /ja endpoint throws this error in the developer console (and I wonder if this is part of what may be causing the UI issue):

    SyntaxError: JSON.parse: bad control character in string literal at line 1 column 1582 of the JSON data

    This is the raw output from /ja:

    {"settings":{"devt":1744823482,"nbrd":1,"en":1,"sn1":0,"sn2":0,"rd":0,"rdst":0,"sunrise":362,"sunset":1167,"eip":2890298241,"lwc":1744822618,"lswc":1744822618,"lupt":1744822615,"lrbtc":7,"lrun":[0,0,0,0],"pq":0,"pt":0,"nq":0,"RSSI":-66,"otc":{},"otcs":0,"mac":"EC:FA:BC:62:23:2D","loc":"42.36,-71.06","jsp":"https://ui.opensprinkler.com/js","wsp":"weather.opensprinkler.com","wto":{},"ifkey":"","mqtt":{},"wtdata":{"wp":"Manual"},"wterr":0,"dname":"My OpenSprinkler","email":{},"curr":0,"sbits":[0,0],"ps":[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],"gpio":[]},"programs":{"nprogs":0,"nboards":1,"mnp":40,"mnst":4,"pnsize":32,"pd":[]},"options":{"fwv":221,"tz":32,"ntp":1,"dhcp":1,"ip1":10,"ip2":1,"ip3":1,"ip4":151,"gw1":10,"gw2":1,"gw3":1,"gw4":1,"hp0":80,"hp1":0,"hwv":32,"ext":0,"sdt":0,"mas":0,"mton":0,"mtof":0,"wl":100,"den":1,"ipas":0,"devid":0,"dim":15,"uwt":0,"ntp1":0,"ntp2":0,"ntp3":0,"ntp4":0,"lg":1,"mas2":0,"mton2":0,"mtof2":0,"fwm":1,"fpr0":100,"fpr1":0,"re":0,"dns1":10,"dns2":1,"dns3":1,"dns4":1,"sar":0,"ife":0,"sn1t":0,"sn1o":1,"sn2t":0,"sn2o":1,"sn1on":0,"sn1of":0,"sn2on":0,"sn2of":0,"subn1":255,"subn2":255,"subn3":255,"subn4":0,"fwire":1,"ife2":0,"resv4":0,"resv5":0,"resv6":0,"resv7":0,"resv8":0,"wimod":42,"reset":0,"dexp":2,"mexp":8,"hwt":172,"ms":[0,120,120,0,120,120]},"status":{"sn":[0,0,0,0,0,0,0,0],"nstations":8},"stations":{"masop":[1],"masop2":[0],"ignore_rain":[0],"ignore_sn1":[0],"ignore_sn2":[0],"stn_dis":[0],"stn_spe":[0],"stn_grp":[0,0,0,0,0,0,0,0],"snames":["FY N Lawn","","",""," Strip (facing west)","","",""],"maxlen":32}}

    I haven’t found any previous posts with my exact issue, but I would love to be able to solve this and restore my original settings. Thanks!

    Firmware Confusion

    Hello –

    I recently (during the off season) updated my 2.3 DC hardware’s firmware to 2.2.1 (1). I did this in response to the device oftentimes falling off the network. While I didn’t see anything in the release notes about this, my problem subsided! Win!

    Today I went to start my sprinkler system and noted my master valve (normal 24vac) would not engage.

    Looking at my version in the App, it lists the device as Hardware Version: 2.3 – AC.

    I’m considering buying a new controller as this one is pretty old (but has been solid). Before I do, could the above be an issue? I just used the os_221_rev1.hex file that’s available to download. I didn’t see a different file for AC vs DC.

    Thanks.

    Request to Add Overall Run Time Clock to App

    Hey Samer & Ray

    Not sure if this is more App related or Firmware related but I have a request that I think wouldn’t be too hard to add and would be very helpful for those of us that use multiple controllers and stations at the same time.

    I often run 3 zones at a time, queuing up 30-40 zones back to back, manually. This would be for one controller. I then have to do the mental math to figure out how long it will take all these zones to run total. Lets use the example of 2 hours 35 mins total run time. I then go to my next controller and set a Pause Station Runs to 2 hours 35 mins so that I can proceed with manually setting the next 30-40 stations on this second controller. This prevents the second controller from running its 3 zones at a time at the same time as the first controller (not enough water flow to do that). I then proceed to do the mental math again and then do the same with my 3rd controller (4th and so on).

    Its hard to do, I have to estimate based on what I think the average time of each 3 zones running will be (I don’t always run each zone at the same durations so it can get complicated). So I pad out the time a little which ends up wasting time where nothing is running just to avoid both controllers trying to run at same time (think 6 zones…no water flow for that). I need to run water pretty much all day during my peak season so any waiting time when zones are not running puts me behind (drying plants).

    MY REQUEST:
    I have noticed when you set up a program, there is now a Total Program Run Time Calculation. This helps a lot for planning my schedules. Can we please put a calculation in the green status bar at the bottom that indicates how much time it will take for all the queued zones to run. Or perhaps at the top of the app screen by the weather? This would be all manually queued and programed queued zones combined so we always know how much time it will take to “get it all done.” This would be very helpful and I believe the logic is there since programs can figure out their start times in relation to each other when they run back to back.

    Great work on the app and controller guys, they have always been very useful and keep getting better. We that rely on them really appreciate it!