Forum Replies Created
-
AuthorPosts
-
RayKeymasterI forgot to mention: if you run
git log
in the firmware repository, what’s the first few lines that’s displayed?
RayKeymasterCan you check if this file exists on your system:
/sys/class/gpio/gpiochip512Basically the build script uses this file’s existence to check if it needs to link with the gpiod library (which is needed for gpio operations in bookworm):
https://github.com/OpenSprinkler/OpenSprinkler-Firmware/blob/master/build.sh#L41C11-L41C38
RayKeymasterFrom the picture, it looks like you have OpenSprinkler 3.0 AC-powered. You can point them to the OpenSprinkler support website:
support.opensprinkler.com
which has videos, user manuals, and answers to common questions.
RayKeymasterPlease follow the instructions here to update your firmware to the latest:
https://openthings.freshdesk.com/support/solutions/articles/5000631599-installing-and-updating-the-unified-firmware-on-ospi
Bookworm made breaking changes about how GPIOs are operated and we’ve updated the firmware to address that issue.
RayKeymasterMake sure the SD card is formatted to FAT32 and not other format. You can always reformat the SD card and try again.
RayKeymasterAh, ok yes, version 3.3 top board does have a 24C02 EEPROM, but it’s only used in order for the firmware to distinguish between versions 3.2 and 3.3, it’s not used to store any data. What’s going on is that 3.3 and 3.2 are otherwise the same except the pin ordering for the wired Ethernet jack are different (3.3 is for W5500 module and 3.2 is for ENC28J60 module). Without any ‘signature’ the firmware will not be able to tell these two apart. So I added a very cheap I2C EEPROM as a way for the firmware to detect which version it is. There are no other spare GPIO or analog pins for this purpose. So an I2C chip would be the easiest.
RayKeymasterOTA update itself doesn’t reset WiFi and configurations, what does is the firmware change across major revisions, such as from 2.1.9 to 2.2.0. If you are updating the firmware within the same revision (i.e only the minor revision changes), then it doesn’t reset WiFi and configurations. For example, updating from 2.2.0(1) to 2.2.0(3) will preserve all settings. The main reason updating across major revisions wipes out flash is that usually these major revisions involve major flash memory changes or partition table changes (for example, the file system on earlier firmwares used SPIFFS, now it’s LittleFS), as a result, a flash memory wipe-out is necessary and cannot be avoided.
For that reason, we try to keep new firmware updates within the same major revision, until it becomes necessary to change the flash layout again.
There is no EEPROM on ESP8266 — all files and data are stored in flash memory. The module (ESP-12F) has 4MB flash, among which 1MB is used for the firmware, 1MB is for OTA update buffer, and 2MB are left for data.
June 25, 2024 at 9:29 pm in reply to: 2.3.0(4) API commands. Not able to use commands like cm for manual turn on #79333
RayKeymasterMinor revisions (4) and (5) are on Github but they are not officially released/announced. (4) addresses the issue caused by breaking changes in GPIO controls with Raspbian Bookworm; (5) fixed an issue introduced in (4) that only affects OpenSprinkler 3.x and it’s not relevant to OSPi/RPi. So neither of these two versions changes the HTTP API which remains the same with minor revision (3).
MQTT instructions can be found on our support website:
https://openthings.freshdesk.com/support/solutions/articles/5000859089-how-to-use-mqttIt currently only supports outputting information through MQTT (i.t. MQTT publishing). You cannot yet use MQTT to trigger an action on OpenSprinkler (i.e. MQTT subscription). It’s quite easy to modify the firmware code to implement subscription. The last time we tried to do this, the developers did not agree on the APIs to use so we stalled there (then the pandemic happened and things got slowed down dramatically). So if you want to trigger an action, at the moment you need to either use the HTTP API, or implement MQTT subscription yourself.
RayKeymasterYou can’t activate master zone independently. Master zone can only be activated by another zone that is associated with it. You can use a dummy zone, set it to activate master 1 (or 2, whichever you need). Then when you activate that dummy zone, it activates the master.
June 25, 2024 at 3:52 pm in reply to: 2.3.0(4) API commands. Not able to use commands like cm for manual turn on #79324
RayKeymasterFirst, could you clarify if the firmware you installed is version 2.3.3? That’s not a firmware that we released (our most recent one is 2.2.0(3)).
Second, when you send curl command, and the http get link has & sympbols in them, you need to wrap the command in quotes like “http://blah.blah “, otherwise those & would be interpreted differently by command line.
RayKeymasterClick the lower-right corner icon, then ‘Show Disabled’. Also, ‘Show Disabled’ is available in Edit Options -> Station Handling.
RayKeymasterAll APIs use the station index and not the name, because names can be duplicate and indices are unique. The master controller does NOT query the remote controller for its zone names. Once you set up the master/remote configuration, you should only modify zones on the master controller and generally should not modify anything on the remote controller. If you want to name a remote station differently, do it on the master controller. As I said, a remote controller should be regarded as just a passive ‘expander’ for the master controller.
RayKeymasterThe firmware already uses a pool of predefined NTP servers, all defined using hostnames:
https://github.com/OpenSprinkler/OpenSprinkler-Firmware/blob/master/opensprinkler_server.cpp#L2285The custom IP address is just for users who want to use their own NTP server (typically their router) to avoid accessing the Internet. It’s certainly possible to modify the firmware (and UI) to allow hostname for the custom NTP server too, but the predefined set of servers are typically sufficient for most users.
RayKeymasterThe MQTT feature currently only supports publishing (i.e. for notification etc.), it does NOT support subscribing yet (i.e. receiving command). It’s quite easy to add support for subscription, but it hasn’t been done yet.
If you run a command using curl, you should put the command around “”, otherwise it will cut off at special characters like &. In fact, you should also use the -g option because characters like [ will also throw it off because it’s a globbing character. For example:
curl -g "https://demo.opensprinkler.com/mp?pid=0&uwt=0"
should work (note that the demo website is not password protected so I ignored the pw= parameters. Also note that the password needs to be a md5 checksum, so your ‘opendoor’ will not work. Instead, you should use the md5 checksum of opendoor, which is a6d82bced638de3def1e9bbb4983225c
RayKeymasterWhen a controller is set up as remote controller, it does not run its own programs. It only listens to the master controller. Conceptually a remote controller mimics a physical extension to the master controller (like an expander), but it’s not hardwired directly to the master controller. So the water level on the remote controller is irrelevant. Only the water level on the master controller applies. The master controller sends command to the remote controller to turn zones on and off, and those commands carry the specific zone run time.
If you want the remote controller to apply its own specific water level, then you cannot directly use the default master-controller feature. You can either modify the firmware to implement what you want, or you have to write an external script to send command to the remote controller.
RayKeymasterYou need to modify the code. Most noticeably, the ETo algorithm will throw an error if the weather data source is pws:
https://github.com/OpenSprinkler/OpenSprinkler-Weather/blob/master/routes/adjustmentMethods/EToAdjustmentMethod.ts#L20
RayKeymaster1) At the time the ET algorithm was implemented, solar radiation was not a required field by WU. So while some WU stations report solar radiations, a lot didn’t. I am not sure about what’s the current situation, whether it’s required now or not, but if you are able to host your own weather service, then
2) You can modify the weather code to allow using ET with WU. In fact, users who host their own weather service primarily because they want to customize the weather code. So what you were asking regarding the ‘difference’ is mainly that you can modify the code and enable ET with WU, or you can customize it in any other way you want. I am not familiar with Ecowitt. The OpenSprinkler weather code:
https://github.com/OpenSprinkler/OpenSprinkler-Weather
supports several weather providers, it’s relatively easy to add additional providers, as long as you have their APIs.
RayKeymasterThe NTP IP in the settings do not apply to OSPi — on OSPi and any Linux-based system, the firmware uses the system time. So these options values are ignored. However, it does use the time zone obtained from the OpenSprinkler server to calculate the local time.
RayKeymasterI thought the solar sync only works with Hunter’s own controllers. It is not a on-off type of sensor, it sends some kind of encrypted signal that encodes the solar radiation data. I don’t think this can work with OpenSprinkler or OpenSprinkler Pi.
RayKeymasterVery neat. Thanks for sharing!
RayKeymasterI can’t find the electric spec sheet of GVA-24. Everywhere I looked, it just says 24V, it doesn’t even specify if this is AC or DC.
RayKeymasterEach channel can drive up to 1 amp. Are you sure your valve draws 0.6A at holding state? Most sprinkler valves draw about 0.2 to 0.25A at holding state (and 0.6A impulse, which is only for a split second when it opens). In any case, the power adapter should be ok to drive a single 0.6A valve as long as you have only one open at a time. You can always buy a 24VAC adapter with larger current rating if needed.
May 9, 2024 at 9:19 pm in reply to: Transformers failing, probably due to load of multiple valves #78797
RayKeymasterSo exactly how many is ‘more than 2 valves’? The 500mA transformer might be able to run 3 or 4 at the same time, but it’s definitely pushing the limit. If you want to run more than 2 simultaneously, you should buy a 24VAC transformer with higher current capacity. We recommend jameco.com, you can search 24VAC transformer, make sure it’s ‘AC to AC’ transformer. Each open valve draws about 200mA, so if you want to open 4 at a time, you need about 1 amp current. We don’t recommend running more than 4 at the same time — if you do want that, you should get an external relay to help drive more current. The circuit on OpenSprinkler is not designed to drive a large amount of current.
Transformer with higher current rating will NOT damage the controller — as long as it outputs 24VAC. Current rating means how much current the transformer is capable of delivering. The actual current draw depends on how much the solenoids need. It’s analogous to say that just because your power socket is rated 15A doesn’t mean it’s pumping 15A all the time — how much is actually delivered depends on how much the device needs, or if a device is connected at all. 15A just means it’s capable of delivering 15A if needed.
RayKeymasterThe maximum length of MQTT user name and password are both 32:
https://github.com/OpenSprinkler/OpenSprinkler-Firmware/blob/master/mqtt.cpp#L78
It’s certainly possible to increase these further, but 98-character password? That seems excessively long. Is that even necessary?May 5, 2024 at 2:39 pm in reply to: Ok to hardwire 7 zones (7 x 24V AC valves in parallel) with OSPI? #78734
RayKeymasterI forgot to mention: not sure if this is anything useful to you: although you should’t insert multiple zones into one port, you CAN, however, insert one zone simultaneously into multiple ports (i.e. you split the wire into multiple, so that you can insert them to multiple ports). This allows the same physical zone to be opened by multiple logic zones, so that if any of the ports opens, the physical zone opens. This has been used by some customers in situations where the same zone needs to be associated with different pump/master zones in different programs. For example, if a physical zone A needs to trigger master 1 in program 1, but master 2 in program 2, the current firmware does not allow you to dynamically change associated masters on the fly. But if you insert zone A simultaneously to say, port 5 and 7, and have zone 5 associate with master 1, and zone 7 associate with master 2, then in program 1 you can schedule zone 5 and program 2 schedule zone 7. This way, both programs will result in physical zone A to open, but they trigger different master zones.
-
AuthorPosts