CyberQ WiFi Web Service Info (Super Nerdy)

F

fatdoggie

Guest
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.
 
I don't understand half of what you posted but I can appreciate the time it took you to figure it out and write it up. Someone will search for this type of info and find it because you took the time. Good work!
 
Thanks doggie, for the critique. I've been looking at that unit, but am waiting for some comments and reviews before I pull the trigger.

Bob
 
What Just happened? I think my brain is fried

Sent from my Desire HD using Tapatalk 2
Don't blame me! I warned of nerdiness in the thread title! :biggrin1:

This information is basically a "road map" on how to talk to the CyberQ wifi if you're going to write an app to run on a desktop or mobile device.

It's boring, but necessary for developers. Just thought I'd share with other software engineer brethren that might be interested and maybe save them a few hours of research.

That being said, if anyone has any questions related the unit (either development or more general questions), I'll be happy to try and answer them.
 
Doggie: Lemme lay this out, maybe you, or sombody else knows? :confused:

One feature of the BBQ Guru systems (I was looking at a DigiQ DX2), that I like is the open lid detection system. From what I've read, it works well. I've read the CyberQ WiFi .pdf file, and it does have this feature.
In my research, The Rock's Bar-B-Que Stoker system does not have an automatic open lid detect system. You have to bring up a menu, and manually turn off the fan for 5 minutes. To me, that just seems annoying. Maybe it's not. Maybe it's better.

Do you know if the Stoker open lid system is indeed manual? Is it clunky to use?
Do you know how well the CyberQ WiFi open lid system works?

Bob
 
Is there an android app available now?
Or is that something that would have to be developed?
jon

I'm not aware of anything currently available for Android or iPhone, but given the simplicity of the interface it probably wouldn't be too much work for any developers that have made a Stoker app to make it work with both the Stoker and the CyberQ.

I may work on an Android app myself, but I'd rather just pay someone else a few bucks if there is something out there already.
 
Doggie: Lemme lay this out, maybe you, or sombody else knows? :confused:

One feature of the BBQ Guru systems (I was looking at a DigiQ DX2), that I like is the open lid detection system. From what I've read, it works well. I've read the CyberQ WiFi .pdf file, and it does have this feature.
In my research, The Rock's Bar-B-Que Stoker system does not have an automatic open lid detect system. You have to bring up a menu, and manually turn off the fan for 5 minutes. To me, that just seems annoying. Maybe it's not. Maybe it's better.

Do you know if the Stoker open lid system is indeed manual? Is it clunky to use?
Do you know how well the CyberQ WiFi open lid system works?

Bob
I've never used a Stoker, so I can't say if it has an open-lid detection system or not.

The CyberQ only presents the Open Lid Detection as an On/Off setting and doesn't elaborate too much in the documentation exactly how it works.

I haven't had much time at all with the CyberQ yet, but the way I understand it to work is that if the pit temps drops fairly quickly and substantially, this is assumed to be an open lid condition, rather than a normal temperature fluctuation so the fan cycle is reduced or suspended. Once the pit temp is back up to some point, the open lid condition is cleared and the normal program resumes. Unfortunately, the Lid State is not reflected in the status.xml document or LCD (at least that I've found...), so you can't tell when the CyberQ "thinks" the lid is open to determine if the Open Lid Detection is helping or hindering you.

Of course it takes a few seconds of the lid being open for the metal pit probe to cool enough to detect a temperature change, so for a quick peek, the open lid detect may never come into play.
 
Doggie: Lemme lay this out, maybe you, or sombody else knows? :confused:

One feature of the BBQ Guru systems (I was looking at a DigiQ DX2), that I like is the open lid detection system. From what I've read, it works well. I've read the CyberQ WiFi .pdf file, and it does have this feature.
In my research, The Rock's Bar-B-Que Stoker system does not have an automatic open lid detect system. You have to bring up a menu, and manually turn off the fan for 5 minutes. To me, that just seems annoying. Maybe it's not. Maybe it's better.

Do you know if the Stoker open lid system is indeed manual? Is it clunky to use?
Do you know how well the CyberQ WiFi open lid system works?

Bob


The Stoker system for lid opening is manual but if you use a program like Stoker Log then that software in particular automates it. With the Stoker Log software you can also set how long you want it to shut off the fan so it doesn't have to be a full 5 minutes every time. It bases it off a quick drop in temp at the pit probe, something like 8* drop in 1 second will set off the auto-lid detection.

Personally I am looking for something more manual and have resorted to using the manual feature on the Stoker itself. I like to be proactive and shut the fan off before I even open the door to let everything settle down for a few seconds first. It probably doesn't make a difference except in my head. I just wish that I could have it shut off for less than 5 minutes although again, it really doesn't affect my recovery times much.

Edit: In regards to it being clunky, it could be if you are using the stoker unit itself for monitoring temps instead of a separate program on a laptop. If you are monitoring things on the Stoker you need to be in the temps menu and scanning the temp probes, if you then want to shut down the fan it will take a few button presses to exit out of that menu, go to the blower menu, select the 5min off and confirm it so it can be a little bit of a hassle. For myself, since I am using a laptop and monitoring temps that way I can just leave the Stoker in the Blower menu and it's ready to shut off the blower each time with just 2 quick button presses.
 
TTNuge,

Your "use scenario" made me think of something I'd love to see added to the CyberQ in a future release - the ability to do a manual fan override (start or stop).

While this isn't terribly useful under normal conditions, it would allow an external control application to add some neat features, such as enhanced open lid detection or manual fan stop as you described. Or perhaps running the fan without probes to keep maintain high temps for a pizza cook?
 
Thanks for the responses.

At present, I do not plan on using a laptop or smart phone with the controller, though I may in the future.
For now, it would operate it directly from it's control panel/menu system, which is why I want it to be simple and easy to use.

Bob
 
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.

Awesome...I just received my CyberQ Wifi yesterday. I dabble with app development and this is just what I was looking for. I can do some cool stuff with the status.xml page. Thanks for the 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 :wink:
 
Ok, here you go. I'm terrible at documentation, code is worth a thousand words :wink:

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<TimeSpan>(TimeSpan.Zero),
TIMER_STATUS = dt.TIMER_STATUS.SafeReadObject<int>(0)
};

return cyberQom;
}
}
}

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

CyberQWifiDevImp.png


Ill start working on charting next and a way to save the chart for future reference.
 
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"

XMRYPfTA
 
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"

XMRYPfTA

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.
 
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. :mrgreen:
 
Back
Top