New stoker-web


 
Thanks Curt. I see there is a GWT adaptation for flot and looking at the examples it would be fairly easy to swap it in since I coded my graphing implementations to an interface.

If I can't get the Highcharts working I'll try this out.

What is the maximum number of points you've had in a graph?
 
Originally posted by Gary Bak:

What is the maximum number of points you've had in a graph?

I was testing this weekend with an estimated maximum of 8000+ data points. If it slowed down from start to finish, the effect was barely noticeable, if at all.

Here is an example plot on some testing I did:
bbqmonitor
Click on 'start monitor'. The delay is mostly because all the plot data is downloaded as opposed to incremental updates.

Curt
 
Finally passed the graphing hurdle, it now takes the 17 hour cook about 10 seconds to load into the graph. For now, this is acceptable. I really want to move to the Highstock graphs which are still in Beta, but they aren't quite ready for me yet, I tried and tried and could not get it working well. They have a lot of nice features, which I'd like to use like flags and plot lines, but they will have to wait.

I did manage to start a smidgen of work on the notifications, what I plan to do have is an interface (abstract class) which dynamically loaded classes will extend. I'm going to start with email and sound notifications, any other type can be plugged in later, even without rebuilding the app. Ideally, anyone can build their own notification class to do whatever they want. The types of notifications I have though of so far are:

Login - login / logout events
Alarms - Alarm conditions from data points
Config Changes - changes detected to the stoker configuration
Data - Any data point changes ( probably ignored )
Critical messages / errors - need I say more?

All these conditions will be available to the notification classes if they so choose to overload the method.
 
Finally got around to adding the local weather to the screen. The original implementation I written had the server fetching the weather from yahoo and passing the json string to the client to be parsed. I had to change this so the server parsed the string so the local weather could be logged, wasn’t difficult, just more work. If I have time tonight, maybe I’ll post a new screen shot.

The attach to existing log is also working now. This functionality allows one to restart the program and then open a log that was previously opened so the graph can continue. The logic to attach to a file was trivial, but I had to build a tree view of the existing log files and display them in the browser and allow the user pick one. It works, but next to no error checking.

Currently, I’m looking at throwing up a not connected page if the stoker is unavailable, once a connection is established the stokerweb screen will paint. Once the screen is painted and the stoker connection is lost, then the gauges drop to zero and the graph stops updating, when the connection is backup, all is back to normal. However, after some configurable time of inactivity, the stokerweb screen will go back to blank and the not connected page will appear again, this may be like 30 minutes or so. Further down the road, I’ll add options to the not connected page and this will allow you to browse existing logs for previous cooks, display the graphs and display previous cook reports.

Notifications are the last hurdle before an alpha release. I have the base classes written and the smtp email code working in a separate project but it all needs to be integrated.

Still need a way to add/modify users and passwords.

I’m planning on a single alpha release that will hopefully let me know of what type of connection issues I may expect outside of my network and uncover any other big issues. After that, I’ll have a few beta cycles while I complete the base functionality and fix formatting issues. If there is anyone that is whiz at .css, I’d welcome some help as I am a beginner.
 
Small setbacks on development. My laptop decided to take a dive while installing automatic updates (which I'm forced to take) last Thursday. Machine blue screened during the second phase of the update and now a new motherboard, RAM, drive and OS install later, I should be able to continue working. Hooray!
 
Good news and bad news to report.

The bad news is my laptop is still screwed, after two onsite attempts by dell, they fixed my laptop and broke something else each time, so it was sent away for repair. This has all but killed all the development on the project in the past 3 weeks. The good news is I plan to post the code out to Google code this weekend as incomplete as it may be. This is still very alpha code and missing few key components, but will allow you to try it out and see if it works on your bench if you wish.

The key components that are missing and I had intended in including them in the first alpha are:
* Notes - logs text notes to log file for reporting.
* Notifications / Alarms – sends emails and audible signals for defined conditions.
* Stoker unavailable timeout / reset – Resets application code to an idle state once stoker has been offline for an extended time.
* Correct display arrangement issues – cosmetic only.

I got the latest running on my web server last night running Apache with mod_proxy to Jetty and it worked well. I still have a few housekeeping items to cover before I’m prepared to post a war file for general consumption. One of these is an installation HowTo and there are more hard coded properties that need to be moved into a properties file.

Releases, updates and bug tracking will all be out on Google code:

http://code.google.com/p/stoker-web/
 
Stoker-web is on the internet today if you'd like to take a look at it.

URL Removed

I've noticed it does not work for all devices. I have tested only a few:

Yes:
Chrome
Firefox
IE 6,7,8
iPhone 4
iPad

No:
iPod Touch
Android
 
Nice work Gary! I've been following this thread. I have not yet purchased a stoker, but I will be doing that soon. I can't wait to try stoker web out. Looks very nice.

Any chance it might eventually be compatible with web-os? I have this $150 HP touchpad that would love to run it
icon_smile.gif
 
The web-os browser is a client that I have not tested yet. I have no access to that hardware. Shoot me an email and we can coordinate a time for you to test it out. I'll have stoker-web running on my web server. Stick my first and last name together and tack on the at gmail.com

Since I'm here, I'll offer a quick update. Laptop is still gone. I've since moved to my old P4 desktop after digging up more RAM for it; it's slow, but working.

I made a few small but important changes this week, that allow stoker-web to be run elsewhere.
* Moved the hard coded settings into a properties file
* Added support for env variable STOKERWEB_DIR to specify settings and log directories outside of servlet engine directory
* Created standalone password program to add new logins and passwords. This is a temporary solution until the functionality is built into the app.

Currently working on the Notifications/Alerts. I've given it some though and will have 4 types of notifications.
1. StokerAlarm ( alarms based on stoker settings)
2. Temp Alarm ( temp alarms external to stoker settings )
3. Timed Notification ( Status messages at specified intervals or times )
4. Connection / Configuration change

Type 2 and 3 will be able to be setup multiple times allowing messages to be sent out on different intervals to different destinations, still have not thought out all the details, so nothing is set yet.

The delivery method for these 4 types will also be configurable, these would be channels like email, audible sounds, twitter, etc. These will be dynamically loaded so different delivery channels could be added later. I'm targeting audible and email only for the first beta.

I'm almost ready to release an alpha war file, but I have not had the time (or taken the time) to write some documentation. There are still gaps in the functionality a bus could fit through, but what I have running now could be tested. I've kind of given up making the screens pretty as I go and now just throwing in functionality. I'll worry about the pretty later.
 
I've just posted a war file to the stoker-web code site. The documentation is still lacking, so if you know how to deploy a java web application, you're welcome to try it out and constructive feedback is welcome. There is a lot still missing from this alpha release, so don't expect too much or run your 16 hour brisket solely on it.

http://code.google.com/p/stoker-web/
 
I have been unable to deploy stokerweb via jetty. All I can see in console is a continuous line of tptptptptptptptpt and it keeps doing that.
 
That is actually very good news. The tptpt are debug messages from stokerweb and tell me that you are connected to the stoker and are receiving temp data. The t is printed out when it reads the status line from the stoker and the p says that the data has been processed and all consumers notified. I've been tempted to remove those messages, but they are valuable to see when exactly communication drops between the two.

Did you try to open the webpage?

http://localhost:8080/stokerweb

I added a new document late afternoon today, on how to deploy stokerweb on Windows, did you happen to follow that one?

http://code.google.com/p/stoker-web/wiki/JettyDeploy
 
Forgot to add, there is a lot of messages that write to the console. Moving that to log4j is high on the list.
 
I did follow that article you wrote up. Opening the webpage shows nothing. Error 404 not found. I am getting WARNs about the log4j, Please initialize the log4j system properly.
 
The warnings about log4j are harmless, I see them as well.

We know the war file is property deployed and that the directory and stokeweb.properties is setup correctly, since the app is running and is connected. If the contextPath is setup correctly, I think it could be a bug in the app.

Earlier this week, I saw a bug where the screen would not paint if stokerweb was unable to retrieve the weather information from yahoo, but I don't recall getting a 404 error. you'll know if the weather is working if you see a log item like this, but the id will be different for your zip.
woeid: 12770510

If you wouldn't mind, restart the app, give it a good minute to initialize, attempt to access the page and then email me the output from the console. My email is garybak and at gmail.com
Thanks
 
Here is a current screen shot. The email alerts are now working and the sound alerts are tested, but I have not added the events to sound them. Notes are also working. Notes dialog has a text area and check boxes for all the logs, with the current log selected by default. Add notes while cooking: basted, flipped, moved probe, etc. and the notes are saved in the log and will show on the final cook report.

sweb6.png
 
Hi,
I really like your approach to this project and the use of profiles, etc.

Is it possible to use this web interface on a differnet (not a Stoker) logging device ? I have a home built multi-channel data logger that makes a CSV file, but I did not pattern the output file after the stoker device. Is there a way I could get your web tools to work using a different file format ? I would be willing to tweak my file format if that is the best way for me to get to use your viewer tool.

I am looking for notification that a fatty meat like brisket or butts have gotten to the point in the cook where it seems to take forever... "The Stall" or "The plateau" or whatever you may call it. This could be detected by comparing the temperature change over a time period, like <1 degree in 5 minutes or something like that. (I could look at some logs to get numbers that indicate the stall condition).

Does your charting profiles have the ability to look for that type of condition ?
 

 

Back
Top