The BBQ BRETHREN FORUMS.


Forum Portal Recipes Smoke Signals Magazine Welocme Merchandise Associations Purchase Subscription Brethren Banners
Go Back   The BBQ BRETHREN FORUMS. > Discussion Area > Q-talk

Notices

Q-talk *ON TOPIC ONLY* QUALITY ON TOPIC discussion of Backyard BBQ, grilling, Equipment and just outdoor cookin' in general, hints, tips, tricks & techniques, success, failures... but stay on topic. And watch for that hijacking.


Reply
Thread Tools
Unread 05-09-2012, 05:25 PM   #16
palmtreefrb
Full Fledged Farker

 
palmtreefrb's Avatar
 
Join Date: 01-22-11
Location: Buena Park, CA
Downloads: 0
Uploads: 0
Default

Quote:
Originally Posted by fatdoggie View Post
I just got my WiFi Guru in late this afternoon. I haven't had time to hook it up to my BGE yet, but I did get it on the network and started poking around under the hood to see how it works and what I would need to do to get and Android app capable of doing some basic configuration and alarming.

Here is a link to the documentation I've compiled about the XML status and HTTP posts variables: http://db.tt/VFJgKrae

The Good:
  • The most important status items are available for read via XML over HTTP and all writes are done via HTTP posts. It's about as simple an interface as I would have reasonably expected to hope for
  • All POSTs can be done to the "/" URI, so in theory, you can write any (all?) variables in one go without having to worry about what vars belong to what page.
  • Once the WiFi was set up correctly, I had no problems connecting to my WPA2 network and accessing from any of my devices. The simple UI probably even works OK with very old web browsers (I saw explicit support for IE6 in the javascript)

The Not Quite So Good:
  • The GUI is unsecured for both reads and writes, so be careful about putting it on the internet on standard ports!
  • The CPU seems to be VERY low powered - It takes a while to spit out the HTML and small image for the main page (the XML for status.xml is fast though). Between the speed and some of the comments in the code, I'd guess this little guy is running on a PIC or similar embedded microcontroller and not a bigger ARM based system. This means adding lots of internal features later on probably can't be done (HTTPS and auth, for example would be tough).

All in all, I'm pretty happy with the overall design of the system and the CPU is plenty fast enough to feed the raw status XML to a mobile, desktop, or web based app that can provide enhanced logging/graphing and control if desired.
Yes, it would have been nice if the service returned jsonp for cross domain implementations, ie client side ajax jquery. So the only choice is through a proxy, local web service or a gui application. I have been looking at xamarin for creating an Andriod and iOS application. I can do the Andriod now as I don't have a mac for iOS. Using xamarin the code base would be the same and easier developing for both platforms.

Oh, and by the way. Doesn't look like you have been too lazy lately
palmtreefrb is offline   Reply With Quote


Unread 05-09-2012, 06:47 PM   #17
palmtreefrb
Full Fledged Farker

 
palmtreefrb's Avatar
 
Join Date: 01-22-11
Location: Buena Park, CA
Downloads: 0
Uploads: 0
Default

Ok, here you go. I'm terrible at documentation, code is worth a thousand words

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.IO;
using System.Xml.Linq;

namespace CyberQWifi
{

/// <summary>
/// Summary description for CyberQData
/// </summary>
///

public class CyberQObjectModel
{
public decimal OUTPUT_PERCENT { get; set; }
public TimeSpan TIMER_CURR { get; set; }
public int COOK_TEMP { get; set; }
public int FOOD1_TEMP { get; set; }
public int FOOD2_TEMP { get; set; }
public int FOOD3_TEMP { get; set; }
public int COOK_STATUS { get; set; }
public int FOOD1_STATUS { get; set; }
public int FOOD2_STATUS { get; set; }
public int FOOD3_STATUS { get; set; }
public int TIMER_STATUS { get; set; }
public int DEG_UNITS { get; set; }
public int COOK_PROPBAND { get; set; }
public int COOK_RAMP { get; set; }

public CyberQObjectModel()
{
OUTPUT_PERCENT = 0m;
TIMER_CURR = TimeSpan.Zero;
COOK_TEMP = 0;
FOOD1_TEMP = 0;
FOOD2_TEMP = 0;
FOOD3_TEMP = 0;
COOK_STATUS = 0;
FOOD1_STATUS = 0;
FOOD2_STATUS = 0;
FOOD3_STATUS = 0;
TIMER_STATUS = 0;
DEG_UNITS = 0;
COOK_PROPBAND = 0;
COOK_RAMP = 0;

}
}

public class CyberQData
{
public CyberQData() { }

public static CyberQObjectModel GetCyberQData(string url)
{
var xdocTimeInfo = XDocument.Load(url);
var dt = (from ti in xdocTimeInfo.Descendants("nutcstatus")
select new
{
OUTPUT_PERCENT = ti.Element("OUTPUT_PERCENT").Value,
TIMER_CURR = ti.Element("TIMER_CURR").Value,

COOK_TEMP = ti.Element("COOK_TEMP").Value,
FOOD1_TEMP = ti.Element("FOOD1_TEMP").Value,
FOOD2_TEMP = ti.Element("FOOD2_TEMP").Value,
FOOD3_TEMP = ti.Element("FOOD3_TEMP").Value,

COOK_STATUS = ti.Element("COOK_STATUS").Value,
FOOD1_STATUS = ti.Element("FOOD1_STATUS").Value,
FOOD2_STATUS = ti.Element("FOOD2_STATUS").Value,
FOOD3_STATUS = ti.Element("FOOD3_STATUS").Value,

TIMER_STATUS = ti.Element("TIMER_STATUS").Value,
DEG_UNITS = ti.Element("DEG_UNITS").Value,
COOK_PROPBAND = ti.Element("COOK_PROPBAND").Value,
COOK_RAMP = ti.Element("COOK_RAMP").Value

}).FirstOrDefault();
var cyberQom = new CyberQObjectModel
{
COOK_PROPBAND = dt.COOK_PROPBAND.SafeReadObject<int>(0),
COOK_RAMP = dt.COOK_RAMP.SafeReadObject<int>(0),
COOK_STATUS = dt.COOK_STATUS.SafeReadObject<int>(0),
COOK_TEMP = dt.COOK_TEMP.SafeReadObject<int>(0),
DEG_UNITS = dt.DEG_UNITS.SafeReadObject<int>(0),
FOOD1_STATUS = dt.FOOD1_STATUS.SafeReadObject<int>(0),
FOOD1_TEMP = dt.FOOD1_TEMP.SafeReadObject<int>(0),
FOOD2_STATUS = dt.FOOD2_STATUS.SafeReadObject<int>(0),
FOOD2_TEMP = dt.FOOD2_TEMP.SafeReadObject<int>(0),
FOOD3_STATUS = dt.FOOD3_STATUS.SafeReadObject<int>(0),
FOOD3_TEMP = dt.FOOD3_TEMP.SafeReadObject<int>(0),
OUTPUT_PERCENT = dt.OUTPUT_PERCENT.SafeReadObject<decimal>(0m),
TIMER_CURR = TimeSpan.Parse(dt.TIMER_CURR).SafeReadObject<TimeS pan>(TimeSpan.Zero),
TIMER_STATUS = dt.TIMER_STATUS.SafeReadObject<int>(0)
};

return cyberQom;
}
}
}

And here is the implementation... YAY WE HAVE DATA



Ill start working on charting next and a way to save the chart for future reference.
palmtreefrb is offline   Reply With Quote


Unread 05-09-2012, 07:17 PM   #18
fatdoggie
Is lookin for wood to cook with.
 
Join Date: 04-12-12
Location: Atlanta GA
Downloads: 0
Uploads: 0
Default

palmtreerfb,

I've never used Ximarin before, but I do love C# and Mono. Is there a free/open/comunity version of the tools, or do you have to buy both the Android and iOS versions?

I built this little monitor toy in about an hour as a Flex mobile app (yeah, gross, I know..) so I'd have something to monitor with this weekend. Unless I can find an open source cross-platform toolkit this may be my first Android app that is more complex than "Hello World"

fatdoggie is offline   Reply With Quote


Unread 05-09-2012, 07:38 PM   #19
palmtreefrb
Full Fledged Farker

 
palmtreefrb's Avatar
 
Join Date: 01-22-11
Location: Buena Park, CA
Downloads: 0
Uploads: 0
Default

Quote:
Originally Posted by fatdoggie View Post
palmtreerfb,

I've never used Ximarin before, but I do love C# and Mono. Is there a free/open/comunity version of the tools, or do you have to buy both the Android and iOS versions?

I built this little monitor toy in about an hour as a Flex mobile app (yeah, gross, I know..) so I'd have something to monitor with this weekend. Unless I can find an open source cross-platform toolkit this may be my first Android app that is more complex than "Hello World"

No, Ximarin is not free or opensource unfortunately. But I'm a .net developer and I'm going to use what I can code quickly without having to ramp up on learning another development platform. Plus I already have charting components for .Net and that's what I'm in this for. The ability to chart my cooks.
palmtreefrb is offline   Reply With Quote


Thanks from:--->
Unread 05-10-2012, 09:00 AM   #20
joe@bge
Is lookin for wood to cook with.
 
joe@bge's Avatar
 
Join Date: 01-29-12
Location: St. Louis, MO
Downloads: 0
Uploads: 0
Default

I started my app last night (thanks to this great info). I am not going with a mobile app, instead I am going with a windows forms app. I have plans to implement charting, data exporting, etc. I will post some screenshots when I have it more fleshed out. Again...thanks for posting this for us nerds.
__________________
Large BGE, Med BGE, BBQ Guru CyberQ II, CyberQ WiFi, CGW Swing Grate
joe@bge is offline   Reply With Quote


Unread 05-10-2012, 09:12 AM   #21
BobM
Babbling Farker

 
Join Date: 02-16-12
Location: Long Island, NY
Downloads: 0
Uploads: 0
Default

This is cool stuff.
I did some basic (does that count?), dBase coding and Unix shell scripting in the past. I'm not learning a new language for this though.

I'll wait for you guys.

Bob
__________________
"Beer is living proof that God loves us and wants us to be happy." - Benjamin Franklin
| Weber 18 1/2" & 22 1/2" WSM, 22 1/2" & 26 3/4" OTG, Genesis S-330 |
| BBQ Guru CyberQ WiFi
| Maverick ET-732 |
BobM is offline   Reply With Quote


Unread 05-10-2012, 09:15 AM   #22
daninnewjersey
is One Chatty Farker

 
Join Date: 01-01-11
Location: Southern NJ
Downloads: 0
Uploads: 0
Default

Man...you dudes are SMART....I can barely check email...
__________________
Proud owner of 4 VERY ugly drum smokers....and a soon to be created Greasy Hill reverse flow....
daninnewjersey is offline   Reply With Quote


Unread 05-10-2012, 09:18 AM   #23
Big George's BBQ
somebody shut me the fark up.


 
Big George's BBQ's Avatar
 
Join Date: 02-07-08
Location: Phoenixville, PA
Downloads: 0
Uploads: 0
Default

It is all Greek to me
I have seen it in action It looks really nice
Big George's BBQ is offline   Reply With Quote


Unread 05-10-2012, 11:27 AM   #24
fatdoggie
Is lookin for wood to cook with.
 
Join Date: 04-12-12
Location: Atlanta GA
Downloads: 0
Uploads: 0
Default

Does anyone know if any of the BBQ Guru folks hang out around here? I'd love to know how receptive they are to feature requests for future releases (or if they even have future software updates planned).

Some of the things that I think could be added with nearly trivial effort, but would yield big advantages for application developers:
  • Add an additional status document/page in JSONP format as palmtreerfb mentions. This will all cross-domain ajax requests to work, so there is much that can be done in a web page (no "app" required).
  • Add the cook, food1, food2, food3 setpoints to the status output. Currently they only exist in the main status page, making them inconvenient to obtain.
  • Add a "fan override" Boolean and possibly a "fan override percent" integer post variables. This could allow an external app to implement completely custom cook logic.

Other suggestions or ideas?
fatdoggie is offline   Reply With Quote


Unread 05-10-2012, 12:08 PM   #25
bam
is one Smokin' Farker
 
Join Date: 10-22-08
Location: Philly, PA
Downloads: 0
Uploads: 0
Default

Are you guys talking english?
__________________
AKA "Huck"
BBQ Resource: [URL="http://www.huckshut.com"]www.huckshut.com[/URL]
Streaming BBQ Podcast: [URL]http://www.inthehut.com[/URL]
bam is offline   Reply With Quote


Unread 05-10-2012, 02:02 PM   #26
joe@bge
Is lookin for wood to cook with.
 
joe@bge's Avatar
 
Join Date: 01-29-12
Location: St. Louis, MO
Downloads: 0
Uploads: 0
Default

Quote:
Originally Posted by fatdoggie View Post
Does anyone know if any of the BBQ Guru folks hang out around here? I'd love to know how receptive they are to feature requests for future releases (or if they even have future software updates planned).

Some of the things that I think could be added with nearly trivial effort, but would yield big advantages for application developers:
  • Add an additional status document/page in JSONP format as palmtreerfb mentions. This will all cross-domain ajax requests to work, so there is much that can be done in a web page (no "app" required).
  • Add the cook, food1, food2, food3 setpoints to the status output. Currently they only exist in the main status page, making them inconvenient to obtain.
  • Add a "fan override" Boolean and possibly a "fan override percent" integer post variables. This could allow an external app to implement completely custom cook logic.
Other suggestions or ideas?
I am not sure if the BBQ Guru folks hang out here or not - I am fairly new myself. I like your enhancement ideas. I was thinking the same thing about the set points last night when I was working on my app - and the fan override would be a good idea - I just wonder how flexible the hardware is to add new features??
__________________
Large BGE, Med BGE, BBQ Guru CyberQ II, CyberQ WiFi, CGW Swing Grate
joe@bge is offline   Reply With Quote


Unread 05-10-2012, 03:36 PM   #27
fatdoggie
Is lookin for wood to cook with.
 
Join Date: 04-12-12
Location: Atlanta GA
Downloads: 0
Uploads: 0
Default

Quote:
Originally Posted by joe@bge View Post
I am not sure if the BBQ Guru folks hang out here or not - I am fairly new myself. I like your enhancement ideas. I was thinking the same thing about the set points last night when I was working on my app - and the fan override would be a good idea - I just wonder how flexible the hardware is to add new features??
I have a hunch about what the CyberQ is based on under the hood (I haven't taken mine apart yet). If I'm correct, it is very similar to a device that I had to deal with at my job a while back. The hardware is somewhat limited, but adequate in processing power, I/O, and code and data storage size. There should be room to add some small additional features that allow an external app to provide any desired capabilities, but don't expect large new feature sets to be implemented on the device itself.

We made a shockingly similar set of requests for enhancements and it was not much effort at all for the developer to add them. The setpoint enhancements and jsonp presentation should be very simple - that is just a new presentation of variables that already exist in the web pages. The fan override stuff is probably doesn't exist as-is internally, but should be straightforward to add.
fatdoggie is offline   Reply With Quote


Unread 05-10-2012, 03:53 PM   #28
joe@bge
Is lookin for wood to cook with.
 
joe@bge's Avatar
 
Join Date: 01-29-12
Location: St. Louis, MO
Downloads: 0
Uploads: 0
Default

@fatdoggie - I sent an email to the BBQ Guru folks and linked this thread. I think there is a lot opportunity for them to work with us and if third party apps start hitting the street - it could mean more sales for them. I'll let you know what they say.
__________________
Large BGE, Med BGE, BBQ Guru CyberQ II, CyberQ WiFi, CGW Swing Grate
joe@bge is offline   Reply With Quote


Unread 05-10-2012, 03:56 PM   #29
fatdoggie
Is lookin for wood to cook with.
 
Join Date: 04-12-12
Location: Atlanta GA
Downloads: 0
Uploads: 0
Default

Quote:
Originally Posted by joe@bge View Post
@fatdoggie - I sent an email to the BBQ Guru folks and linked this thread. I think there is a lot opportunity for them to work with us and if third party apps start hitting the street - it could mean more sales for them. I'll let you know what they say.
I did the same thing a couple hours ago

I guess now they know we're interested and enthused about their product!
fatdoggie is offline   Reply With Quote


Unread 05-10-2012, 10:38 PM   #30
palmtreefrb
Full Fledged Farker

 
palmtreefrb's Avatar
 
Join Date: 01-22-11
Location: Buena Park, CA
Downloads: 0
Uploads: 0
Default

First prototype

palmtreefrb is offline   Reply With Quote


Thanks from: --->
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Loading



All times are GMT -5. The time now is 01:36 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
vBulletin Optimisation provided by vB Optimise v2.6.0 Beta 4 (Lite) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
2003 -2012 © BBQ-Brethren Inc. All rights reserved. All Content and Flaming Pig Logo are registered and protected under U.S and International Copyright and Trademarks. Content Within this Website Is Property of BBQ Brethren Inc. Reproduction or alteration is strictly prohibited.
no new posts