OpenSprinkler › Forums › OpenSprinkler Mobile and Web App › Mobile Web App with Screenshots (Updated)
- This topic is empty.
July 17, 2013 at 11:05 pm #24214
@virtus Which version are you using?
For the hosted version (Ray’s website): In the side panel (the top left button on the homepage) there are two options. The first one is Change OS IP/password and the other is Remove OS IP/password. This version saves the password in your browser’s local storage. If you ever need to remove the current configuration you can delete the local storage for that specific website (each browser is different making it difficult to give instructions on how to accomplish this).
For the installed version: Inside config.php is a variable called $os_pw. After the equal sign and inside the quotes is the saved password, just replace it.July 18, 2013 at 12:02 am #24215
I finally addressed the multiple stations running issue with the status bar in the header, @djagerif.
Now, if multiple stations are running at the same time it will instead show the count of stations running and then show the program total duration countdown.
At the very least you now know more than one station is running and you get the program total. Going to hopefully incorporate the program total into the current status page as well but leaving that for the weekend.
Code: https://github.com/salbahra/OpenSprinkler-Controller/commit/ec7534707402b6f8deadff95e0d57bdf8610525aJuly 21, 2013 at 12:52 am #24216
It looks like with the new release of the Interval Program for July 19 2013 there are some issues with the last station on the Run Once program. It works directly from the OSPi application, but not on your mobile app for some strange reason. It did work before. Please let me know if it is me or there is an issue. Thanks.July 21, 2013 at 2:37 am #24217
@kenbob you are absolutely correct. This problem is happening because Dan is following Ray’s code a little closer and for some reason (same issue as station names) the last element is an unused 0 (not sure why it’s there to be honest). Anyways, I now send a 0 as well which seems to work fine.July 21, 2013 at 7:40 pm #24218
I am also having a weird issue with the logging after I Clear the Logs. The first station shows that it has run, but you do not see the Runtime or Date/Time. I am assuming that it needs a starting reference in the log and it does not have that, when I add it manually then it is fine. Have you seen this issue?
Also the Run-Once Program is now working great with the new Interval program. Thanks.July 22, 2013 at 12:31 am #24219July 22, 2013 at 12:57 am #24220
Current status is much better, however, I would put the ‘last run’ section after the ‘sprinkler stations’ section, thereby keeping the station status as the primary focus. Not having to scroll to see the status of the first 8 stations would be ideal.
I just addressed these issues in the latest commits. On an iPhone 5 you can see 13 stations on the current status page and an iPad 16. The last run is in the footer of the status page now.
I still want to do more work on the status page, ex. add total program time remaining.
Update: Just realized that was commit #300! Been a long journey.
Update 2: I removed the firmware version from the status page. It stood out and didn’t belong there anymore in my opinion. I plan on moving this information over to the about page however since the about page is filled in on page load (currently) a HTTP request to the OpenSprinkler would slow down the initial page load. Therefore, I will poll the firmware version using AJAX when the about page is requested, in a future update.July 23, 2013 at 11:23 pm #24221
Yet another status page update. This time I added the running program name and total program time remaining to the status page header.
The program’s remaining time is updated with all the station timers and pauses during station delay. The only thing left to update dynamically is the device time. Hopefully, that will be another update soon.
At this point, I might want to focus on something other than the status page. If anyone has any suggestions please let me know. The one thing I want to avoid (right now) is MySQL transition and anything that is linked to it. This is a huge undertaking and I just don’t have the time right now. But if you have any minor/quick changes or even a new feature that doesn’t require an entire re-working of the code base please let me know because I am out of fresh ideas at this point.July 24, 2013 at 4:45 pm #24222
Everything looks great. I love all the changes. But I am having an issue with the Program Preview not showing the station names correctly, it shows S1, S2, S3 and so on when using Safari on my iPhone. However it does works fine on my iPad and other devices. I have tried it on a iPhone 4 and iPhone 4S. Strange one I guess?
Also what do you think about adding the Opensprinkler Firmware Version under the Settings under Device Options. (I probably think too much. 🙄 )July 24, 2013 at 4:51 pm #24223
I actually do like the idea about putting it in settings! On second thought though, the settings page is a little clustered at the moment. I still think maybe pulling the web app version (short sha hash) from the background tab and placing it in the header of the about page along with the OS firmware version. My goal is to provide a single place for version information and also to use the version information for debugging purposes. Having a web app that’s hosted vs installed and having OS vs OSPi is starting to make things hard to troubleshoot. If I can place the important information in a consistent location across versions I think that would help greatly in troubleshooting.
Also, the S## notation in program preview is something I do on purpose. The station name can be too long in portrait mode for an iPhone so I abbreviate the station names automatically. It’s not perfect and needs some work potentially but for now it’s better than allowing all 16 characters to show up, using half the screen width.
If you unlock screen rotation on your iPhone and rotate it you’ll notice your station names magically reappear (and rotating back will hide them).
Update: I want to elaborate some on the program preview page. The station name replacement is done using CSS so there isn’t much logic to it however it is FAST. The only logic I have in place is distguishing master station from the normal stations (if you are using one).
The problem with this system is a program preview which only uses S1,3,5 for example. My CSS will label them S1,S2,S3. Hopefully, I can find a way around this however in the meantime I think this system works nicely by fitting everything on the screen.July 25, 2013 at 11:06 pm #24224
Today I pushed some much needed updates IMO.
The first thing I want to address is the mobile web app (the one hosted by Ray at http://rayshobby.net/apps/sprinklers). I increased some of the timeouts. Also, I fixed some problems specific to this version (forgot to migrate parts of the last few days of commits).
Overall, I added a running clock in the status page. Also, I now show the total program time (added in the total station delay). The status page will also auto update if opened during a station delay now. I also tweaked the about page however the firmware version is still missing but the groundwork has been laid for that.
I also tweaked the timeout for the status header that comes down which should now show up more consistently after a new program has started.
As usual, please let me know if any bugs have cropped up or something needs some tweaking.
Update: Some welcome improvements are coming to the log viewer! Instead of using the timeViewWindow variable (deprecated) I will add a range selector into the app. Also, the app will support outputting the data in JSON (already added) which will allow me to graph the data! The next step (the frontend grapher) will be done using flot (should be out by this weekend). This is the technique used by Richard Zimmerman so huge thanks to him!
I plan on keeping both logging formats, the table version and the graphing version. I will add an option to switch between the two as well as the start/end date selection which will work for both versions.July 27, 2013 at 12:46 am #24225
Front end for the log graphing is up now! Huge thanks to Richard Zimmerman for sharing his program!
There are a lot of bugs and I’m aware of most of them. I plan on sanding it down over the weekend. As I do, I will make it easier to access the graph and also let the log page remember which one you used last (table/graph).
In the meantime a screenshot:
Update: I’ve pushed over 12 updates since this post which address a lot of the issues. Please check out the Github change log for details. At this point let me know if you experience problems with the new graph view.July 27, 2013 at 5:46 am #24226
32 stations doesn’t fit too well in the Log Graph option but it’s a great addition to an already great program.
IngoJuly 27, 2013 at 1:03 pm #24227
That’s the next thing I plan to work on. For now, you can tap the legend to dismiss/hide it.July 27, 2013 at 1:23 pm #24228
LOVE the new changes. I especially think the timers showing is great. The log program is apparently not on the hosted program. I still need to get my Linux box working so I can host my own and see how that works. I will do it soon
THanks again for all your hard work!July 27, 2013 at 2:32 pm #24229
I am having an issue with the first time run. I have deleted and reinstalled with the same issue. The install.php file is pointing to the old version of jquery 1.3.1. Is this an issue with Github not updating all of the files properly?July 27, 2013 at 2:37 pm #24230July 27, 2013 at 4:51 pm #24231
Very Nice! can’t say I was expecting graphing before the logging database overhaul. Good work guys. I think there may be a bug in matching the station names with the numerical data. One of my least frequently used station seems have been assigned the highest runtime. The difference can be seen comparing table vs chart. Let me know if you need more debug info.
-mJuly 27, 2013 at 8:20 pm #24232
@momanz Thanks 😀 I think I found your problem and fixed it. Let me know.
[attachment=0:3krng6rn]iOS Simulator Screen shot Jul 27, 2013 3.21.45 PM.png[/attachment:3krng6rn]
Update 2: This is actually really awesome on a larger display (iPad/desktop). But also works very well on the iPhone. Playing with the ability to define the window down to the minute (using datetime instead). I also want to add momentum scrolling, if I can. Very excited with this new view!July 28, 2013 at 4:30 pm #24233
Looks like the times are correct now. thanks.
I really like the ability to toggle zones on and off by tapping the legend entry. Nice touch. I think it would be a good idea to have the ability to completely remove a station(s) from the graph (and the legend) through some kind of configuration switch. I have three unused stations that add clutter the legend. Perhaps a row of checkboxes at the bottom of the options menu?
One thing I’ve noticed now is that in IE10 and Firefox the legend color does not appear. Yes I know this a mobile webapp but I thought I’d let you know anyway 🙂
One question, where did the field to enter the number of days to store log info go? I can’t seem to find it.
momanzJuly 28, 2013 at 4:34 pm #24234
That configuration option is omitted now in favor of the new window selection in the logging page. It defaults to 7 days on first load but can be changed quickly from the option collapsible. The changes are monitored and after a 500ms delay the log page will reload with your new window and any sorting you might have selected. The purpose for the delay is if you are still typing/scrolling your date selection.
I just discovered the annoyance with unused station since adding Rain Delay and Rain Sensor (effectively the same things). I was planning on automatically unchecking the stations with 0 log data so they don’t even render on the graph’s, on load.
I’ll check out IE10 and Firefox because I committed myself earlier to supporting everything, haha.
Update: I found the problem in IE 10 and Firefox. Should be fixed now.July 29, 2013 at 5:57 am #24235
Just now got a strange error when trying to run watcher.php.
Did a new clean install just to verify.
Crontab for www-data is:
* * * * * cd /OpenSprinklerPi/webapp; php /OpenSprinklerPi/webapp/watcher.php >/dev/null 2>&1
Runing this at prompt gives:
[email protected]:/OpenSprinklerPi/webapp# cd /OpenSprinklerPi/webapp; php /OpenSprinklerPi/webapp/watcher.php
PHP Fatal error: Maximum execution time of 6 seconds exceeded in /OpenSprinklerPi/webapp/main.php on line 1531
/Jonas…July 29, 2013 at 1:18 pm #24236
@Zapp I think I found the problem and will post a fix soon. Based on what you said, this is a new install and the readLastLine function I added is looping indefinitely because no last line is found (there isn’t one).July 29, 2013 at 2:46 pm #24237
I had a pretty serious bug in the logging and I have since revised it. I no longer loop through the file to get the last line and instead kick the request out to the shell function tail. I did this because I do not have my laptop or any tools to fix this and had to make this fix using Github. The reason I am telling you this is because this breaks compatibility with Windows user’s. This is most likely a very small subset of people however I plan on fixing this later today.
I also fixed a bug in the watcher script that was resulting in every minute check to output a newline to the log file. This has been fixed as well.
Please let me know if this resolves the issue. Thanks!
Update: The reason these bugs cropped up is because I recently removed the requirement for SprinklerPrevious.txt file (this file can now be safely deleted). Instead, I read the last line of the main log. I do this in a way that doesn’t push the entire file into memory, so no performance cost. The first problem described above is related to the method of reading the last line (my first way would cause an infinite loop if the file was empty). The second problem was the SprinklerPrevious format was slightly different than the main log file (specifically no date/time wasn’t added).July 30, 2013 at 6:35 am #24238
@Zapp I think I found the problem and will post a fix soon. Based on what you said, this is a new install and the readLastLine function I added is looping indefinitely because no last line is found (there isn’t one).
Confirmed: watcher.php now runs clean without errors.
I do however have another strange error.
I have 1 program running 5 zones, every zone running for 20 minutes, once each day of the week starting at 0400. In the webapp the table log files and the program preview tell the correct storry but the graph log files skip some time after zone 2 and is not in sync with the start time if I read the graph correctly.
Timezone in device settings is +2.
All logging in the interval program are correct as far as I can see.
- You must be logged in to reply to this topic.
OpenSprinkler › Forums › OpenSprinkler Mobile and Web App › Mobile Web App with Screenshots (Updated)