Coder Social home page Coder Social logo

opensprinkler / opensprinkler-firmware Goto Github PK

View Code? Open in Web Editor NEW
452.0 452.0 258.0 1.23 MB

OpenSprinkler Unified Firmware for OpenSprinkler, OpenSprinkler Pi, and OpenSprinkler Beagle.

Home Page: http://www.opensprinkler.com

License: GNU General Public License v3.0

C++ 82.60% C 13.69% Shell 1.60% HTML 2.11%

opensprinkler-firmware's Introduction

============================================
==== OpenSprinkler AVR/RPI/BBB Firmware ====
============================================

This is a unified OpenSprinkler firmware for Arduino, and Linux-based OpenSprinklers such as OpenSprinkler Pi.

Compilation instructions for OS (Arduino-based OpenSprinkler) 2.3 and 3.x:
* Install VS Code
* Launch VS Code, search and install the platformio extension.
* Download and unzip the OpenSprinkler firmware repository, open the folder in VS Code, at the bottom of the screen, click PlatformIO:Build. The firmware repository contains platformio.ini which has all the information needed for PlatformIO to build the firmware.
Additional details:
https://openthings.freshdesk.com/support/solutions/articles/5000165132

For OSPi/OSBO or other Linux-based OpenSprinkler:
https://openthings.freshdesk.com/support/solutions/articles/5000631599

============================================
Questions and comments:
http://www.opensprinkler.com
============================================

opensprinkler-firmware's People

Contributors

futzle avatar gpshead avatar jbaudoux avatar jdchristensen avatar ldav1s avatar lifeforce4 avatar maxgerhardt avatar mode2k avatar opensprinklershop avatar peteba avatar pinkfish avatar rayshobby avatar salbahra avatar shawnharte avatar ssancese avatar tonyrui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opensprinkler-firmware's Issues

Send Log via email

It would be great if I get notified via email when a log entry is added (including the log). So I get notified if a program was executed

Aditionally it would be great to get informed when a program is postponed because of rain delay.

Feature request: Manual program run should allow for time adjustment

Currently manual program run always runs the program at 100%. It will be nice to allow specifying run time adjustment or using the current weather data.

The use case: I have program scheduled to run 30 minutes after sunset. Yesterday, just after the program started the two puppies decided to go outside for evening routine so I had to stop the program. When I then manually run the program I couldn't run it as it was about to run with the weather data. I had to start the program at 100%.

Run once program not respecting weather adjustment

I haven't had a chance to walk through the code on this and do a verification, but it seems like run once programs, when using an existing program, seem to not take the weather adjustment into account.

If this was an intentional design decision, that's OK, but it almost seems like a bug otherwise.

WUnderground no longer supports home user API

Not a bug but an API service cessation:

WUnderground has announced they stopped issuing free APIs on 15 May 2018. The cheapest tier is now US$850/month, and that tier doesn't even include access to your own personal weather station (that is a more expensive tier). Ref: https://apicommunity.wunderground.com/weatherapi/topics/weather-underground-api-changes
To be clear: they will continue to take your user PWS data for their crowd sourced service, but you cannot access your data unless you pay more than the bottom tier of $850/month.

This impacts all new users. I believe users already with free tier access will continue to have it for the time being, but the writing is on the wall: free access is dying.

This seems a reasonable alternative: https://openweathermap.org/api
Wondering if its possible support both WUnderground (as a grandfathered service) and OpenWeather moving forward?

Ent.

How to indicate error when switching HTTP station?

First of all, thanks for creating OpenSprinkler. The HTTP valve interface makes it very easy to extend it for other applications.

I'm writing a Node.js server that's designed to receive commands from the OpenSprinkler web UI and send them to a remote sprinkler manager over an RF link. It's working great, but sometimes the remote device is unreachable and I want that to be reflected in the OpenSprinkler UI.

I've tried returning HTTP error codes, but it appears that OpenSprinkler doesn't check the response code. Is there a workaround for this, or will I have to implement it myself?

Problems binding to 8080

I have been running OSPI from a standard SD image for about 6 months. Recently I did a git pull and rebuilt the firmware. It built fine but I lost my UI at 8080. After some poking around I discovered that etherport.cpp is trying to use the IPV6 stack to open the port and this is failing. I moved etherport.cpp one commit back and the UI returned.

So an upgrade to IPv6 on the standard SD image for OSPI doesn't work for me.

Some HTTP stations continue to send 'off' every minute

Firmware Version: 1.8.2 (2)
Hardware Version: OSPi

I use OpenSprinkler as a scheduler to switch lights etc around my home as well as the sprinklers. I use HTTP stations to send on and off messages to node-red. I have noticed that some HTTP stations (not all and I have not determined why) continue to send 'off' messages to node-red every minute. This is not ideal given I also have manual switches on these lights. When I switch them on manually, OSPI kindly switches them off again.

Program length calculation includes only weather data since last midnight

When program runs over midnight stations that run before midnight use the weather data from the last day but the stations that run after midnight only use weather data after midnight. For some locations there will be significant weather differences during the day (humidity and temperature for example). This results in very different run times for stations that are open one after another in the same program. For me for example the stations before midnight opened on 90% and the remaining stations open on 47%.

Possible solution: Use 24h moving window instead of midnight cutoff for calculating run times. So when calculating runtimes consider the weather data for up to 24 hours before the run instead of the weather data from the calendar day.

Possible (even better) solution: Use all weather data (with some time cap) since last time the same station has run. This will ensure more accurate run estimation especially when stations are run on few days cadence instead of daily (a common scenario).

Add ability to set negative Master On Delay

I have a situation where turning on the master about 10-15~ seconds before the zone would help. Can we make this allow up to say -30 or -60 instead of a minimum of 0?

The use case is where I require the lines pressurized in advance to have enough back pressure to raise the popup sprinklers :) Thanks.

Please support listening on inet6 when available in addition to inet4

Hello, I would appreciate not having to use ipv4 for this service only. I don't know what consequences this will mean for the mobile applications, but availability over v6 would certainly be handy, so that I could stop allocating a v4 DNS A record for my sprinkler. I realize I may be a minority in this deployment, but if it doesn't complicate the code much, please.

later compiler/bintools/ support (avr-gcc 4.8.3)

I currently maintain a set of private patches in order to compile the OpenSprinklerGen2 code on arduino-1.0.6 with avr-gcc-4.8.3, avr-binutils-2.25 and avr-libc-1.8.1. I'm pretty sure that these are later versions than the bundled items with the Arduino IDE and at some future time will have to be supported. There are several compile-time issues:

  1. prog_char is deprecated and does not name a type.
    prog_uchar does not name a type.
  2. Several warnings regarding comparison between signed and unsigned integer expressions.
  3. non- const variable declaration with 'attribute((progmem))'
  4. adding 'attribute((progmem))' to wtopts_name results in the object name '_ZL11wtopts_name' and the linker is unable to resolve the symbol in object files where it was declared with the extern keyword.

I do not yet have a fix for (4), only a work-around that doesn't declare the variable as PROGMEM.

If you are interested and let me know what your toolchain versions are, I'll prepare a pull request for what I have now excluding (4) and then spend more time working on a proper fix for (4).

No need to wait after Wire.requestFrom()

In the file "OpenSprinkler.cpp" there is a while-loop after Wire.requestFrom() to wait for something in two places, but there is nothing to wait for. Those while-loops can be removed.

When the Wire.request() returns, the I2C transaction has completely finished and the received data is waiting in a buffer in the Wire library.

24 hour time setting

I would love to be able to set the time to a 24 hour clock instead of AM/PM. :-)

Doesn't turn on sprinklers

I have the OSpi. I was able to build this project, start it, browse to the webpage, and log in. I manually turn on a station, but the sprinklers do not turn on. If I use the interval_program, the sprinklers turn on so I know it is not a problem with my wiring, the board, or the sprinklers.

I tried both version 2.1.3 and master. What am I missing?

Problems viewing logs

Hey Ray,

Saw some posts on the forum about users experiencing errors when displaying logs in the UI. Checked my setup and I had the same situation. Looking at the logs on my OSPi I found a few strange entries over the last 6 months of files:

[254,4,120,1485693673,  inf]
[99,4,120,1485696549,  inf]
[99,4,120,1485697194,  inf]
[99,4,120,1485698351,  inf]
[4,4,108,1486404109,  inf]
[4,4,117,1487008918,  inf]

Looking at the code there is the possibility for an "inf" result on line 750 of main.cpp if flow_stop == flow_begin:

Line 750: if (flow_gallons>1) {flow_last_gpm = (float) 60000/(float)((flow_stop-flow_begin)/(flow_gallons-1)); }

Backtracking to lines 97-99 in the interrupt handler, I think this could happen under my Station 4 circumstances from the log i.e. a short duration/low flow run:

Line 97:  if ((curr-flow_start)<90000) { flow_gallons=0; } // wait 90 seconds before recording flow_begin
Line 98:  else {  if (flow_gallons==1)  {  flow_begin = curr;}}
Line 99:  flow_stop = curr; // get time in ms for stop
  • on the first pulse interrupt after the 90 seconds both flow_begin and flow_stop are set to curr
  • if the run then finishes without additional interrupts then line 750 would set flow_last_gpm to inf.

A very rare situation and I haven't managed to recreate this in live to confirm but seems to fit circumstances.

Monitoring water tank with ultrasound sensor

Hello,
On my irrigation system at home i would like to monitor a water tank of 5800L.

Just short story, my home receive a turn of water specially for irrigation (big yards) with low preasure and sometimes the turn comes at any hour even at 3times per day and sometimes turn doesnt give water in 2-3days, so it's very much better store the water on a tank and irrigate with a pump, that is the system that actually i have.

My old timer just burned. Im still waiting for my OpenSprinkler board wich i plan to use it with a Raspberry Pi 3, already tested this firmware and im very impressed with the features and hope this works.

As the title i would like to monitor the water level of the water tank with an ultrasound sensor, specifically HC-SR04, just a cheap aurduino sensor for reemplacement for any case (probably maintenance on wrong lectures or oxidation for water exposition), obviusly i need to search for a method to protect the sensor inside the tank.

The OpenSprinkler board offer a ways to access to free pins of the raspberry, so its possible to connect the sensor, but i need a little help to add the code to a forked version of the firmware.
I would like to start know wich files i should modificate and also to add it on the webpage (wich i have some expresience with html5, css and js).

My spectation is to collect data in real time of the water tank, like every 5minutes get 1 data and see on the main page the water level like 40%, 70%, 100%, and on a story line wich i can monitor and know when the tank fills, or see manual irrigation, automated irrigation, etc.
Also in a future define a condition like if the tank is bellow 15% do not irrigate (otherwise when it reach to 0% the pump will suck air).

Thats all, thank you!

Build instructions?

I'm looking into helping build out the platform for the opensprinkler project, and I'm looking for build instructions. Is there a document (or even rough notes) on the steps you take to get the image built for the osbo? I'd like to try and get the system running on Debian, for religious reasons, and package what isn't packaged. I'm happy to host a repo and such, but I think packages would make this easier from a configuration management perspective. I'd like to connect the Beagle to the rest of my Puppet infrastructure, and in the process will likely write a module for management.

It all begins with the instructions of how the Ubuntu beagle system I'm running now got into its current state though. Anything you can link would be much appreciated.

Wrong Time Zone and it can't be changed

Hello,

First all, already buy an OpenSprinkler Pi (the extension board for raspberry pi 3) and im using a RPI 3 with a fresh 2019-04-08-raspbian-stretch. full updated.

As the title i just downloaded this firmware as the tutorial and configured a basic schedule to test the software. Already im very happy with the performance and a very friendly interface BUT... defining the time by time zone (already checked with the time of the Raspberry pi wich is America/Santiago Chile) GMT / UTC -4 i couldn't change it with the actual time.
Captura
Captura1
Which is clearly a difference of 1 hour
Even trying to change the code and compiling again it shows the same diference of one hour.

I would like to change the code that the Time Zone adjust to the local machine time (wich is updated by the system). Also i think that the small battery on the OpenSprinkler Pi board is made to keep the clock running if the pi got disconected.

Add "context" to app URL

I have multiple web apps running on the same RPi, and would like to use the same hostname and port to run them. Would it be possible to add something to the path to isolate the opensprinkler app?

Right now I access it with
http://mypi:8080/

I would like to access it, and all helper apps with something like
http://mypi:8080/opensprinkler

Guidance for wiring 433mhz transmitter to beaglebone

I've seen the doc for wiring up a transmitter to the standard opensprinkler board. Are there similar docs for wiring up a beaglebone so that the program is able to send the required signals for operating remote switches? Any guidance here would be appreciated.

Allow GPIO pins to be manually entered

I only need a few stations triggered by relays. I compiled 2.1.8 OS 3.0 unified firmware on my own esp8266 with a PCF8574. I had edited the defines.h, added the address of the PCF8574 and moved the pin definitions to it. Also created an array of my free pins for the usable free pins on the esp8266. The problem is the app gives me a js error when i click on GPIO. I believe because I'm not running ospi or 2.3. So the freePins var is not defined. So right now I set them through api calls and everything works great. I don't know if the pins could be pulled from the firmware or just allow manual entry.

Master stations do not appear in the log

The log shows a row for the master station, but never actually logs when it has been turned on.

I use a mix of stations that do and do not run with the master, so logging when the master is on would be helpful.

fresh install: can't write conf

Hi,

my sdcard has died, so I resinstalled a full raspbian 2018-04-18-raspbian-stretch-lite on a new sdcard.

I installed and compiled Ospi2.

Now I try to configure it, when submitting changes it goes on forever and nothing is saved, nothing in any logs.

Build error..

On a Raspberry Pi 3... getting

pi@OpenSprinkler:/usr/local/OpenSprinklerGen2 $ sudo ./build.sh ospi
Building OpenSprinkler...
gpio.cpp: In function ‘void attachInterrupt(int, const char*, void (*)())’:
gpio.cpp:411:14: error: ‘delay’ was not declared in this scope
delay(1) ;
^

Broken HTTP Station after commit fd7cdad

Hi,

HTTP API get for running zone is broken - when saving details all data goes into server and port, on off gets undef variable. In such config HTTP is not called. Latest working commit is fd7cdad

Feature request: Temperature restriction

Currently there is a California restriction as only option.

I'd like to request a temperature restriction. When temperature drops below 5 degrees Celcius the grass doesn't grow anymore and there is a risk of freezing the nozzles.

So when temperature is below a value, do not irrigate. Would this make sense?

RF station pulse length value ignored; default value used instead

This issue relates to setting up RF stations on a recently purchased OS 3.0 (AC powered) unit.

For an RF station, the on/off codes and pulse length are set by entering a 16 digit hex value in station setup; the last 4 digits being the pulse length.

However, the pulse length parameter is effectively ignored; instead the rc_switch library default value of 350 microseconds is always used by OpenSprinkler. Testing using the rc_switch example, ReceiveDemo_Advanced, confirmed this.

I think the issue is lines 1384 and 1385 in OpenSprinkler.cpp:
. 1384 rfswitch.setPulseLength(length);
. 1385 rfswitch.setProtocol(1);

The setProtocol function call, effectively re-sets the pulse length back to the default of 350 microseconds, over-riding the prior setPulseLength call.

Two solution options are suggested. Firstly, reverse the two lines of code (set the length after setting the protocol). Secondly, combine the lines of code using the setProtocol variant that includes pulse length in the same call:
. rfswitch.setProtocol(1, length);

This issue has been replicated, and both solutions tested, using the rc_switch examples, SendDemo and ReceiveDemo_Advanced. Note that this same issue was present, and has been fixed, in the SendDemo example.

Mark

Feature request: Allow postponing the current program for certain time

It will be nice to allow pausing temporary the current program. For example "pause for 30mins or pause for 1h".

The use case: When the program is in progress sometimes there is a need to temporary postpone the program and later resume the program. I have two puppies that "use" the backyard from time to time. When the program is currently in progress I can only cancel the current program. I need to remember to latter run the program. It is also not possible to run the program manually with weather data (I have open separate feature request for this too).

HTTP Stations lose settings / no requests made

When setting up an HTTP Station in my OpenSprinkler instance using the "Advanced" tab of a station settings dialog, all settings are gone after saving settings. Instead, "default" mode is set when the settings dialog is re-opened.

Additionally, tcpdump shows that there are no HTTP requests made when enabling/disabling a station manually.

I'm using current master [d9842f6] in a test environment.

Use GPIOs 4,17,21,22 as out for zones

I’m trying to install OpenSprinkler firmware on GreenIQ hardware (It consists of a RPi 1 A and a relay board connecting to the valves). I detected, by using WiringPi gpio tool, the valves corresponding to each GPIO.

My problem is that OpenSprinkler Firmware uses some of them (4,17,21,22) for latch,data,clock,output_enable. Is there a possibility to use them for GPIO OUT? If so how? and what would I lose ?

Water level 0% doesn't stop programs

I'm using a OpenSprinkler on a raspberry Pi. I'm using the Zimmerman algorithm which works really well. However after a large amount of rain the water level in the web Ui says 0% however the scheduled programs run for 100%. Eg a 10 min schedule runs for the full 10 mins when it shouldn't run at all.

Perhaps I have configured something wrong in my schedule so any advice would be great. Thanks

Exclude GPIO for Raspberry Pi

Hi, it is possible to exclude some gpio for rapsberry? I have led strips on some gpio. It works, but they are blinking. If I stop opensprinkler, it is ok. Best it would be define only gpio for relay and rest would be free for another connection. Thanks

Build error for BeagleBone

I've attempted to update the software on my beagle bone for the first time in a while. I get the following error. Let me know if I can provide more detail.

[root@sprink1 /usr/src/opensprinklergen2]$ ./build.sh osbo
Building OpenSprinkler...
server.cpp: In function 'byte server_change_stations(char*)':
server.cpp:494:25: error: 'PIN_FREE_LIST' was not declared in this scope
       byte gpioList[] = PIN_FREE_LIST;
                         ^
Done!
[root@sprink1 /usr/src/opensprinklergen2]$ git rev-parse HEAD
09c33ec33277e2a57aca84168ac72408168dd58d

Flapping rain sensor

It seems the GPIO14 on Raspberry Pi isn't set to PULLUP mode, so when then the rain sensor (i.e. Hunter Rain Click) is connected with no rain detected GPIO14 value is flapping.
In the main OpenSprinkler.cpp file there is a line
pinMode(PIN_RAINSENSOR, INPUT_PULLUP)
but it does the same as the standard INPUT mode. See the definitions in the gpio.h

#define INPUT  1
#define INPUT_PULLUP 1

What is the solution?

Remote don't use correct api

Master:
Firmware 2.1.7
OpenSprinker2 (Arduino)
IP: 192.168.1.14
Hostname: OS-DH

Remote:
Firmware 2.1.7
OpenSprinkler Pi (Raspberry Pi 3)
IP 192.168.1.64

To reproduce:

  1. Add stations as appropriate
  2. Configure Remote as extender
  3. Run remote station from master webui
  4. Stop remote station from master webui
$ sudo tcpdump -i wlan0 -v 'host 192.168.1.14 and port 8080'

05:36:31.380865 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 140)
    OS-DH.2841 > 192.168.1.64.http-alt: Flags [P.], cksum 0xfa53 (correct), seq 1:101, ack 1, win 1024, length 100: HTTP, length: 100
        GET /cm?pw=a6d82bced638de3def1e9bbb4983225c&sid=2&en=1&t=-1 HTTP/1.0
        Host: *
        Accept: text/html

05:36:31.380913 IP (tos 0x0, ttl 64, id 14133, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.1.64.http-alt > OS-DH.2841: Flags [.], cksum 0x0c32 (correct), ack 101, win 29200, length 0
05:36:31.381092 IP (tos 0x0, ttl 64, id 14134, offset 0, flags [DF], proto TCP (6), length 57)
    192.168.1.64.http-alt > OS-DH.2841: Flags [P.], cksum 0x4c53 (correct), seq 1:18, ack 101, win 29200, length 17: HTTP, length: 17
        HTTP/1.1 200 OK
05:36:31.381241 IP (tos 0x0, ttl 64, id 14135, offset 0, flags [DF], proto TCP (6), length 201)
    192.168.1.64.http-alt > OS-DH.2841: Flags [FP.], cksum 0x85b6 (correct), seq 18:179, ack 101, win 29200, length 161: HTTP
05:36:31.389998 IP (tos 0x0, ttl 64, id 14134, offset 0, flags [DF], proto TCP (6), length 40)
    OS-DH.2841 > 192.168.1.64.http-alt: Flags [FP.], cksum 0x7a28 (correct), seq 101, ack 18, win 1024, length 0
05:36:31.390041 IP (tos 0x0, ttl 64, id 14136, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.1.64.http-alt > OS-DH.2841: Flags [.], cksum 0x0b7e (correct), ack 102, win 29200, length 0
05:36:31.399637 IP (tos 0x0, ttl 64, id 14135, offset 0, flags [DF], proto TCP (6), length 40)
    OS-DH.2841 > 192.168.1.64.http-alt: Flags [FP.], cksum 0x7986 (correct), seq 101, ack 180, win 1024, length 0
05:37:00.227596 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    OS-DH.2874 > 192.168.1.64.http-alt: Flags [S], cksum 0xc94b (correct), seq 8448, win 768, options [mss 550], length 0
05:37:00.227686 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    192.168.1.64.http-alt > OS-DH.2874: Flags [S.], cksum 0x9ae4 (correct), seq 2359439125, ack 8449, win 29200, options [mss 1460], length 0
05:37:00.292967 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto TCP (6), length 217)
    OS-DH.2874 > 192.168.1.64.http-alt: Flags [F.], cksum 0x47ac (correct), seq 4294966529:4294966702, ack 1935528171, win 768, options [[bad opt]
05:37:00.293007 IP (tos 0x0, ttl 64, id 62545, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.1.64.http-alt > OS-DH.2874: Flags [R], cksum 0x0178 (correct), seq 0, win 0, length 0
05:37:00.293111 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
    OS-DH.2874 > 192.168.1.64.http-alt: Flags [.], cksum 0x20b2 (correct), ack 1, win 1024, length 0
05:37:00.293270 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 95)
    OS-DH.2874 > 192.168.1.64.http-alt: Flags [P.], cksum 0xca86 (correct), seq 1:56, ack 1, win 1024, length 55: HTTP, length: 55
        GET /cm2619]
         HTTP/1.0
        Host: *
        Accept: text/html

05:37:00.293306 IP (tos 0x0, ttl 64, id 252, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.1.64.http-alt > OS-DH.2874: Flags [.], cksum 0xb26a (correct), ack 56, win 29200, length 0
05:37:00.293460 IP (tos 0x0, ttl 64, id 253, offset 0, flags [DF], proto TCP (6), length 57)
    192.168.1.64.http-alt > OS-DH.2874: Flags [P.], cksum 0xf28b (correct), seq 1:18, ack 56, win 29200, length 17: HTTP, length: 17
        HTTP/1.1 200 OK
05:37:00.293644 IP (tos 0x0, ttl 64, id 254, offset 0, flags [DF], proto TCP (6), length 201)
    192.168.1.64.http-alt > OS-DH.2874: Flags [FP.], cksum 0x2bf0 (correct), seq 18:179, ack 56, win 29200, length 161: HTTP
05:37:00.563981 IP (tos 0x0, ttl 64, id 255, offset 0, flags [DF], proto TCP (6), length 218)
    192.168.1.64.http-alt > OS-DH.2874: Flags [FP.], cksum 0x3264 (correct), seq 1:179, ack 56, win 29200, length 178: HTTP, length: 178
        HTTP/1.1 200 OK
        Content-Type: application/json
        Connection: close
        Cache-Control: max-age=0, no-cache, no-store, must-revalidate
        Access-Control-Allow-Origin: *

        {"result":16}[!http]
05:37:01.113975 IP (tos 0x0, ttl 64, id 256, offset 0, flags [DF], proto TCP (6), length 218)
    192.168.1.64.http-alt > OS-DH.2874: Flags [FP.], cksum 0x3264 (correct), seq 1:179, ack 56, win 29200, length 178: HTTP, length: 178
        HTTP/1.1 200 OK
        Content-Type: application/json
        Connection: close
        Cache-Control: max-age=0, no-cache, no-store, must-revalidate
        Access-Control-Allow-Origin: *

        {"result":16}[!http]

Can't specify interface to bind server to

It would be good if you can specify which interface to bind to so you can bind to localhost and then put an nginx ssl proxy in front of it. As it is now, you have to block the 8080 port via iptables.

fertirigation mode

add the possibility to one valve be a fertirrigation valve.
the behavoir if this valve must be as a fertirragtion valve, so you should assing a feritirrigation time and a sector.

GET requests should be stateless

I was looking through the api documentation and I noticed that all the documented commands are GET requests. This brought to mind this anecdote about a similar circumstance.

The api should be redesigned to follow the best practices of REST. eg stateless and don't change state with a get request.

After update ...connection error!

Hi everybody!
I installed OSPI with the sd card version.
I did not have any problems and I configured everything.

After trying to upgrade to 2.1.7 I can not connect to port 8080 (connection error), if I try to connect using port 80 I see the welcome page of ospi (OpenSprinkler Pi (OSPi) Pre-Configured SD Card,...etc).

Some suggestions
I have already tried several times to start from 2.1.4 of the SD card.

Thanks...

Red

Docker container for OpenSprinkler on RPi

I've been running OSPi using docker for a while, and I'm interested in sending a PR to get the Dockerfile into the main repo.

I'd like to get the log dir and NVM files into a proper docker volume. Currently, I have to do some symlink ugliness in the docker image because OpenSprinkler insists on writing its data files into the same directory as the executable due to get_runtime_path() and get_filename_fullpath().

My current idea is to get rid of the get_filename_fullpath calls and just do a chdir(datadir) in main(). This would allow a datadir to be passed in on the command-line or by default, have datadir=get_runtime_path().

Thoughts?

Plugins menu is only available from the home screen

At the web interface to configure the OpenSprinkler, the menu for plugins appears only on the home screen. So if I click "log" on top, for example, I do not see the plugins drop down that I see after clicking the home icon.

Running 2.0.3 on a beagle, with a CPU temp of 53C.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.