OpenSprinkler › Forums › OpenSprinkler Unified Firmware › First version of firmware 2.2.0 ready for testing
- This topic has 17 replies, 9 voices, and was last updated 2 months, 4 weeks ago by psmedley.
November 21, 2022 at 9:59 pm #74354
Hi All, after a long delay, we are finally getting ready to release firmware 2.2.0(0). This is a major revision from the previous firmware 2.1.9(11). Most of the new features added in this firmware are thanks to Valeriy Soltan’s work in the scheduler-feature branch; I also adopted some improvements made by rianadon. Below is a list of the major changes:
For OpenSprinkler 3.x only
Support for OpenThings Cloud (OTC) connection: this enables remote access via OpenThings cloud server. So no need to set up port forwarding anymore, which we know has been a headache for many users. OTC has been supported on OpenGarage for a while. So far it seems to be working well, and we are ready to move on to support OTC in OpenSprinkler as well. Once you upgrade to firmware 2.2.0, you can follow this support article to obtain and use the OTC token. We are in the process of updating the OpenSprinkler mobile app to support adding a device by its OTC token. When OTC is enabled, both remote access and local access are available, and it’s supported in both WiFi and wired Ethernet. If you would rather not go through cloud connection, just leave OTC disabled.
Updated ESP8266 core library to version 3.0.2: this unifies the handling of wired Ethernet and WiFi, which will likely improve the reliability of wired Ethernet connection. In addition, this unification allows over-the-air (OTA) firmware update through wired Ethernet as well (previously OTA firmware update is only available via WiFi). However, OTA firmware update is not available via OTC remote access.
For All of OpenSprinkler 2.3, 3.x and OpenSprinkler Pi
Support for Sequential Groups: zones belonging to the same sequential group are automatically serialized by the scheduler, while zones belonging to different sequential groups can run in parallel to each other. Currently the firmware supports 4 sequential groups (named A, B, C, and D in the UI), and one parallel group (P). Any zone in the parallel group can run simultaneously with any other zones. In previous firmwares, each zone has a ‘sequential’ flag, which is equivalent to having one single sequential group and one parallel group. Firmware 2.2.0 generalizes the ‘sequential’ flag concept by providing four separate sequential groups.
Support for setting a date range for each program: for each program you can now optionally specify a start date and end date. For example, you can set a program to run from May 15 to Sep 15 only, or from Nov 10 to Feb 20 the following year.
Support for pausing stations: you can pause station runs for a specified amount of time. During pausing, zones and programs will stop until the pause timer counts down to 0. The pause can be canceled at any time.
Shift zones forward: when a zone is manually turned off, you can choose to shift the start times of all remaining zones in the same sequential group forward. This way, the next zone waiting to run can start immediately instead of waiting for its originally scheduled start time.
Negative master on adjustment and positive master off adjustment: this firmware also supports a negative master on adjustment time, as well as a positive master off adjustment time. Previously the master on adjustment must be positive, and off adjustment must be negative. The new feature allows a master zone to turn on before an associate zone turns on, or turn off after an associated zone has turned off.
Upgrading to test firmware 2.2.0(0)
If you’d like to try out the test firmware 2.2.0(0), please first export a copy of your existing configurations. Because this is a major firmware revision, it’s going to trigger a factory reset and wipe out the flash (particularly for OpenSprinkler 3.x, this is inevitable as we need to switch from SPIFFS file system to LittleFS, which necessarily triggers a flash wipeout).
Before proceeding, you may want to take a look at the firmware user manual at:
which includes descriptions of the new features. The updated API document is also there.
For OpenSprinkler 3.x and 2.3, follow the standard firmware upgrade instructions:
The test firmware 2.2.0 is located in the ‘experimental’ subfolder of v3.0 and v2.3 respectively.
For OSPi, you can try out this firmware by switching to the dev/os220 branch. Assuming you’ve installed the firmware in ~/OpenSprinkler-Firmware:
git checkout dev/os220
sudo ./build.sh ospi
We are still working on updating the UI/mobile app for the new features in this firmware. The existing OpenSprinkler mobile app does not work with this firmware yet, so the test firmware has been set by default to use the test UI located at https://testui.opensprinkler.com In order for this to work, you can either access the controller using its IP in a browser window, or go to https://testui.opensprinkler.com and add a controller there, or if you use OTC cloud connection, use the cloud connection link in the form of https://cloud.openthings.io/forward/v1/otc_token where otc_token is your specific OTC token. If successful, you should see the homepage that looks like the attached screenshot below (i.e. it has a red TEST BUILD banner at the top, and for each zone you should see its sequential group label, which is A by default).
If you import a configuration file from a previous firmware, please be aware of some limitations, for example, the ‘sequential’ flag will be ignored since this firmware adopts the sequential group attribute instead. So all zones imported will appear to be in sequential group A after import.
Also, because this is a major firmware update, we expect bugs and issues to be reported and we will try to address them as quickly as we can. For example, we don’t know if adopting ESP8266 core 3.0.2 will make the wired Ethernet more reliable or less. So avoid using the testing firmware in critical applications. You can report issues either in this thread, or file a support ticket at
Attachments:November 25, 2022 at 8:55 am #74382
Great! Thanks for your continuing work. Since I won’t water my garden in winter, I’ll wait for others to test and for the final release.December 1, 2022 at 9:21 pm #74436
Just updated to the test version and set up the remote access via the site.. works perfectly for me. Great effort! As a bonus the weather calc works now and also is picking up correct time zone.. not sure why.. but hey works now!!
Had just started going down the path of port forwarding etc.. and quickly found out that it no longer works due to CGNAT implemented by the ISP’s. grrrrr. I did get port forwarding working via a VPN but was cumbersome and required more “moving” parts… this new solution much better, thanks for the work!December 17, 2022 at 4:55 pm #74513
Updated my OS 3.2 – DC to FW version 2.2.0(1) today from 2.1.9(11). It is winter here so there is no critical operation issue. I am starting the process of updating my app to the new API and testing in prep for spring.
The process to update FW and get back to my original config did not do as expected. Here’s the detail:
The FW update worked as expected. I then followed the instructions for a new install: connected to the OS in AP mode via a PC, pointed the browser to 192.168.4.1, selected the SSID and provided the appropriate WIFI password. The status on the LCD said connecting… but it didn’t complete or reboot. I normally run with an Ethernet adapter so I reconnected the adapter and rebooted the OS. I then pointed the browser at the normal OS IP and connected. Success. I then tried to import the config which failed with: ‘Unable to import configuration.’
Everything else seems OK. I could change the password. Run System Diagnostics with expected output. Ran a JSON command that worked in 2.1.9. It worked as expected with new 2.2.0 output.
Did I do something wrong? Does the new FW have trouble with some parts of an old configuration file?
Thanks, DaveDecember 17, 2022 at 7:24 pm #74514
Well, without seeing the configuration file, it’s hard to tell. I encountered one case where the configuration has MQTT enabled, the issue is that the firmware then immediately starts to connect to MQTT server and thus the rest of the import is not processed in time resulting in a time out. You can file a support ticket with your configuration attached so we can take a look. If we can identify a problem, we can edit the configuration file by deleting certain data that triggers the issue and then the import should be successful.December 20, 2022 at 8:14 pm #74535
I have been playing with the demo of the new firmware and I noticed that the sequential group displayed letter does not reorganize when stations are organized by groups. They will correctly reorganize by the group letter but the order that is displayed doesn’t seem to follow the station when reorganized. It may just be with the demo since I have yet to install the firmware on my system.
Also I would like to make suggestion. I think it would be helpful that there was the option to have “ignore pause” under the station attributes like there is an “ignore rain”. Like the “ignore rain”, I can think of some scenarios (like special stations) were it would be nice to have the option to exclude stations from the pause option.
Great work and thanks!
RyanDecember 20, 2022 at 8:51 pm #74538
@Ryan Turnquist: I can verify that the display of labels after checking ‘organize by group’ is indeed a bug in the UI, we will be fixing it asap.
I did think about ‘ignore pause’ as an additional attribute. This will have to wait till the next firmware release because it will complicate the ‘pause’ logic quite a bit, so it will need significant changes to the current code base.December 22, 2022 at 6:56 pm #74549
I’m unable to update the Weather Adjustment method to Zimmerman. Every time I pick that option and hit Submit, the saving spinner will show up and just stay there, never completing. If I refresh the page the changes were not committed.December 23, 2022 at 4:21 pm #74551
@dotMorten: I can’t reproduce the issue you reported. Tested on OS 3, OS 2.3 and OSPi, all can save weather adjustment method just fine. You should probably file a support ticket with your configurations so we can check what might be the cause.December 24, 2022 at 1:03 am #74556
@Ray Thanks will do. It’s pretty much vanilla OS3 install (reset, set password, set location, then set zimmerman).
I did a bit of network tracing and the submit button is causing a “413 The request was too large”
Here’s the request that fails on submit:
It also happens with the “Monthly” setting. Manual, ETo and Auto Rain Delay all work fine.
I tried removing a lot some of the remaining parameters after the
wtoparameter and that worked – well sort of – anything I don’t specify reverts to defaults. I found the same issue when trying to set the cloud key up as well.December 24, 2022 at 9:34 am #74559
OK, I know “413 request was too large” is caused by the request header size exceeding 1024 bytes. Are you using a browser to access the controller, or the mobile app? The parameters of the GET request itself is only about 600 bytes, so it must be that the rest of the header is fairly large.
“anything I don’t specify reverts to defaults” — I am surprised by this — this behavior is on early firmware versions. Firmware 2.1.9 and later no longer resets parameters if they don’t appear in the request. I think it’s best you submit your configurations so we can take a closer look.December 24, 2022 at 11:14 pm #74563
> “anything I don’t specify reverts to defaults” — I am surprised by this
OK I didn’t check everything – perhaps an assumption. I didn’t set watering level ‘wl’ (or anything after it), and it get set to 0 if I didn’t include it in the request. I wasn’t quite sure what the rest of the parameters were.
I filed the support ticket with the configuration attached.
Using the app does resolve the issue, but the app is missing options like the Cloud settings.December 25, 2022 at 10:01 am #74564
The water level will be auto-updated if you changed the weather adjustment method and so on. If you leave weather adjustment method to ‘manual’, then you can modify the water level manually.
The mobile app hasn’t been updated to include OTC settings, but we’ve already finished the development so the mobile app will be updated in a week of time.December 26, 2022 at 9:50 pm #74569
Trying to access bin download for 2.2.0 firmware. where is it? some reference to experimental folder where is that? only thing I see on git hub is2.1.9(9).
“The test firmware 2.2.0 is located in the ‘experimental’ subfolder of v3.0 and v2.3 respectively.” thanks richardDecember 27, 2022 at 8:58 am #74571
DaveCParticipantDecember 29, 2022 at 12:13 pm #74589
Hallo how to upload to esp32 ?December 29, 2022 at 12:48 pm #74590
The firmware is compiled for ESP8266, it’s NOT for ESP32December 31, 2022 at 12:40 am #74613
Final version seems to run OK here – except at one site running OSPi, I forgot to backup the configuration before restarting ospi 🙁
- You must be logged in to reply to this topic.
OpenSprinkler › Forums › OpenSprinkler Unified Firmware › First version of firmware 2.2.0 ready for testing