Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Official 5.1 Beta Release Thread
5.1 is now out, so I'm closing an unsticking this thread and will create a new one for 5.2.


Latest Version: 
Confidence Level: 
Download Link: 

The subsequent posts list changes in each beta version...
Dean Roddey
Explorans limites defectum
OK, the first beta is posted, 5.0.900. This one is primarily to give a first airing to the new Jarvis program. Of course it's brand new bits so there's no documentation yet. The next post is the interrim documentation, so read that carefully. It'll be five or ten minutes after this post before it shows up because I haven't written it yet.

This version has other fixes and improvements as well. If you aren't using the Jarvis stuff, then there's not a lot of changes from 5.0.9, so it should still be quite safe if you really just want to get it for those other changes.

Be aware, are per a sticky thread in this section and in the Support section, that there are some new prerequisite support libraries that have to be installed. Read through that post. The installer now has a new page that lets you install these things. There are three currently:

1. Kinect runtime. Only required if you want to use Jarvis. Requires Windows 8.1 and up, so no Win7 support for Jarvis.
2. Speech Platform 11. Provides support for the most recent text to speech and speech recognition
3. Speech recognition files and voices. You need to download at least the US English recognition file, but can download others. Currently Jarvis is going to use the US English file, but later we can allow it to be configured to use the other English variations. You need to download at least one English text to speech file. Zira seems to be the best of that bunch, but presumably you can use third party Speech Platform 11 compliant voices.

So, if you aren't using Jarvis, install 2 and 3. You will then need to reconfigure the Speech II driver if you are using that, to select from the newly available voices that you want it to use. And also update your Speech settings in the Control Panel to do the same. If you are using Jarvis, install all three. Jarvis uses the speech voice you configure in the Control Panel as well.

Anyhoo, see the next post for documentation...
Dean Roddey
Explorans limites defectum
If you want to use Jarvis, on the machines that have an attached Kinect 2 sensor, you can enable the new Jarvis option on the component selection page. Uncheck 'use previous settings' and enable Jarvis. There are two new installer pages related to Jarvis. One lets you indicate if you want to install it, and to provide a username and password for an account it will use to log in with. This will be a Limited account, and won't have a default IV template, so it's basically useless for anything else.

Once the installer has brought the servers back up, you will be given a chance to create that account. So that insures that the account is ready to use as soon as the install is complete. You can use the same account name for all of the Jarvis clients, and most folks probably would. If the account already exists, you won't see the account creation page, and the password won't end up being used.

Once you have CQC back up, you'll need to do some work in the room configuration. This includes:

1. Giving speakable names to lights in the Global tab. If the title you've given a light is how you would speak it, then don't need to do it. But, if you have a light light MBR Bath, that's not something you can speak. So edit the light and there is a new As Spoken value. Enter the name of the light as you'd speak it.

2. In the Security area of the Global Tab, there is now an arming code associated with each entry. If you want to be able to arm the security system via Jarvis, you need to provide a security key. It can, presumably, be one that only has rights to arm, not disarm?

3. On the Rooms tab, there is a new Voice tab. For any rooms that have a Kinect, you can enable voice control, and select the host name of the machine that hosts the Kinect for that room. You also have to give a keyword, the word you use to invoke voice control, Jarvis, Bubba, Zira, etc...

4. On the Rooms tab, there is a new Modes tab. This is optional. But you can configure global actions and give them names. There is a set room mode voice command that will invoke these actions. As on the Global Actions tab, you can provide parameters, so that you have a single global action for some things and just pass a different set of parameters for each room.

5. On the Rooms tab, in the security tab, you can give spoken names to the zones that you have selected as being in that room. Again, if the actual name is what you'd say, then no need. Otherwise, edit the spoken name to provide a name as you'd say it. You can edit that in place.

Once you have that stuff set up, save it. You can then run the Jarvis program from the start menu. It will go to the Tray App. The icon is a little butler tie and buttons. You can bring it up to see status messages by clicking on it. If it has gone well, you will see the Kinect light up because it's been enabled by Jarvis.

At that point try saying, Hello, xyz, where xyz is whatever keyword you configured for that room. If Jarvis responds, then you are good. I'll do another post with some guidance on the available types of commands. Of course you can watch the video as well to hear how some of them work. They try to be quite flexible, so that you can say them in various ways.
Dean Roddey
Explorans limites defectum
The list of available commands (things that make things happen) are:
  • Arm the security system
  • Clear the music playlist
  • Music transport commands (stop, play, pause)
  • Play music from one of the playlists in the music repo
  • Ask Jarvis to reload his configuration (if you change room config.)
  • Set the dimming level of a light
  • Set the off/on state of a light switch
  • Mute or unmute music playback
  • Set the music playback volume
  • Set the room mode (invoke one of the mode actions discussed above.)
  • Set the low or high (heat or cool) set points of the thermostat

The available queries are:
  • Get your CQC version
  • Get the current temp (internal or external)
  • Get the current time
  • Get the status of a light switch
  • Ask if a light switch is in a specific off/on state
  • Query the open/close (or secure, not-ready, violated) status of a security zone
  • Query the high/low set point of the thermo
  • Get today's date
  • Get a short weather forecast for today or tomorrow

I'm almost tempted to not provide any actual examples, to let folks just try them and see if I've gotten them sufficiently flexible. Some guidance though:

1. If it asks you for a clarification, i.e. you say turn the whatever light off, and it doesn't understand, and asks you to repeat it, you can't just say the name. You have to say something like "I said xyz", or "I meant xyz." Otherwise, the names themselves would have to be top level rules, and that would be a mess.
2. You can almost always say various courtesies in the commands. So please do this. Or please do this if you don't mind, or if you would. That sort of thing.
3. As per the 2nd video, once you start a conversation, you can continue giving commands (no keyword used) as long as you continue within a reasonable amount of time. If it times out, it'll ask if you need anything and wait a shorter time for another command, then bow out.
4. You can dismiss Jarvis any time by saying something like, that will be all, or that's all thank you, or no that will be all.
Dean Roddey
Explorans limites defectum
Oh, I forgot to post the change list for 5.0.900:

  • Make some changes in the action variable cheat sheet dialog. Add an 'order number' column, which represents the natural order in the variables list. That is always most recently used order since the last selected one is moved to the top. And allow sorting by all columns. It will default to sorted by the order number column, but you can sort by the name or notes if desired. This makes the most recently used ordering the default, which is probably what is most often wanted. And get rid of the select button and 'by value' check box and just have separate by value and by name buttons, so it's always one click.
  • The CQSL repo manager has a bug in the 'add to playlist' menu option. The new item or collection of items would go into the 0th playlist in the the database (not necessarily the first one as sorted for display, but in the database itself.)
  • If you edit a collection of a title set, it would change the title text in the left (title list) to the title of the collection. The actual name of the title set hasn't been changed, it's just a display error.
  • The IR command selection dialog, invoked from the action editor to insert an IR command, isn't clearing itself before adding the newly selected model's commands. So they just keep accumulating in the command list.
  • Implement a new voice control system, Jarvis, based on the Kinect and the room configuration data. This involves new stuff in the room config, and new libraries to support the Kinect, voice recognition, and behavior trees, and a new tray app that implements the Jarvis functionality.
  • Update the installer and uninstaller to handle the new Jarvis component. The installer now needs support installing new prerequisite supporting libraries (all from MS currently, but it can be used for any others in the future.)
  • Add a new System::EvalExrp() command that will evaluate a simple expression that includes variable and field references, to help avoid the need for nested If commands.
  • Update the Echo support documentation to reflect that the security key is now passed along to the actions, and how to use this to support multiple skills, which is a sort of way to cheat and have multiple Echos and know which one sent a command.
  • The installer shouldn't allow you to disable the Web Server if you are doing a master server install.
  • Change the field selection dialog to work like the variable cheat sheet dialog, with separate by name and by value buttons. On both of them, if only allowing by name, remove by value and make the by name the default button and change the text to just Select.
Dean Roddey
Explorans limites defectum
OK, 5.0.900 was a no-go because of a simple but particularly effectively stupid error on my part. It was trying to read in Jarvis configuration data before it exists, because of a >= and instead of > type version check. So it would fail to read in the version info file and would think you didn't have a valid installation. So 5.0.901 fixes that.

  • I made a mistake in the upgrade stuff for Jarvis. The version install info file was not being read in correctly, and was looking for the Jarvis info a version too early. Since it isn't there, the read fails, so it thinks you don't have a valid installation to upgrade.
  • If, by some chance, bogus device class information gets into the configuration for an installed driver, ignore it upon load of the driver config. Better to have the driver come up with missing class info, than to have bogus info which can cause various problems.
  • Make the code changes to support getting the driver documentation into the new HTML format. Do a few to make sure it works. Now it's just a matter of doing a few every couple days or so, until they are done.
Dean Roddey
Explorans limites defectum
I removed the 5.0.901 link because of suspicions about a possible issue. I'm going to step back here and put in a couple days of really investigating some things.
Dean Roddey
Explorans limites defectum
Nevermind, it was a confluence of things. I had tested the uninstaller and that removed the service. When it got added back, it was running again under the standard system service account and so some things weren't working. And, I'd tested Ron's config repo to look for an issue, and it was still there, so I was unable to log in.

Doh! So 5.0.901 should be fine.
Dean Roddey
Explorans limites defectum
Version 5.0.902 is posted. This one is mainly to get a new example of the HTML room config app up for folks to try and comment on, but it also has some useful small fixes.

  • Make some small changes to the CML engine and the driver configuration stuff (manifest file) that will make it a lot easier to implement 'families' of drivers that are very similar, A/V processors being a very obvious example. It will allow you to have a main driver class that handles 95% of the work, in conjunction with a set of model specific helper classes that either provide any required model specific code or just provide data to the main driver class which then uses that information to know what to do. This helper class will be configurable in the manifest file, and make use of the CML engine's ability to support 'dynamic type references' in the Imports= section of the class.
  • The multi-line named list driver prompt panel isn't working quite right because the row number column is taking up most of the space, and so everyone would think they should click on that to edit, but they need to be clicking in the name column to the right of that. So size the first column to fit the numbers. It also was invalidly requiring that the values be legal field names, which isn't a requirement of that prompt, and isn't honoring the Spaces attribute of the prompt, it's always disallowing spaces.
  • The Security tab in the Rooms tab of the system config doesn't remove deselected zones, so you can't get rid of any zones once you have added them to the room.
  • The room config's Revert button causes some index errors in the new room mode's tab. This is only in 5.0.901 and beyond, so it doesn't affect existing official releases.
  • Rework the HTML room config client to try a new look and feel. For now, it just comes up on the lights page and that's all it does, the menu does nothing. This is just to get a feel for how this new scheme is going to work before continuing forward any further along these lines.
  • Sort the lists of things in the room config, so that the HTML client will display things in sorted order. The list windows will sort the stuff in the admin client tabs, but for things like the HTML client, we can just sort the lists once upon load and hand them out sorted to all of the clients thereafter.
Dean Roddey
Explorans limites defectum
Version 5.0.903 is now posted. It contains some substantial changes to Jarvis. We'll see if this improves it or not. I'm sure there will still be issues, and a lot of things have been learned that still could be applied as we move forward.

  • The Scintilla CML lexer doesn't include a number of CML keywords, so they don't get properly color coded.
  • Document the new System::EvalExpr() action command.
  • Something went awry during recent updates of the Lumagen Radiance driver. We ended up with two sets of manifests, with conflicting make/models. The dups were removed.
  • In the Jarvis program's debug output window, change the 'lost kinect' message to 'Looking for Kinect', since that makes more sense in more circumstances.
  • There were various issues with the conversion of the volume knob widget over to the new attribute editing scheme that no one had run across all this time somehow. They were all related to the per-user limits stuff. One of the issues also applied to the slider widget, which supports limits as well. It often wouldn't accept a visually selected field or variable because that would try to update the limits info (to make sure they were still within the limits of the field or variable and that would fail. And, such changes in the per-user limits, driven by a change in the limits of the associated field/variable, were not picked up by the attribute editor, so it would see the old ones and that could cause issues since they could be out of range now.
  • The per-user limits dialog (used by volume knobs and sliders) isn't checking for inverted min/max values, so that you can save invalid limits.
  • Update the V2Helpers class' to add a second variation of the method that gets field definitions for the Switcher device class. The original one assumed that either the readable source names and writeable source names are the same, or the readonable ones will be just the raw device values (i.e. it never set a limit on the OpSource field.) The new one takes separate limits for readable and writeable sources so that you can handle devices that have asymmetric source lists and still have a limit set for both, which can have advantages for clients (to know the possible values.)
  • Add a new call to the CMLBin base class to allow the derived handler class to request the body content of the incoming call that triggered it. They can get the query parameters now, but not the body text, which is sometimes desired. It returns the body bytes, the count of bytes, and the encoding that was reported by the sender. Also add, for testing purposes, a method to set those values with test information.
  • There is an issue in the web server where, if a server side handler doesn't provide a reply text string for the first header line, that causes a syntax error in clients in some cases. So the server should force in some default reply text if none is provided. My little test CMLBin handler didn't set it and I was getting wierd errors because of that.
  • Make some big changes in Jarvis, to improve the recognition. Make sure beaming is enabled on the Kinect, to get better noise rejection. Move to basing confidence off of the semantic values, not the rules. Disable those rules that are only need in specific cases, and just enable them where needed, so that there are fewer grammar options most of the time. Be more selective about minimum confidence levels. If we occasionally turn on a wrong light, that's not a major issue so lowering the confidence lets it more often do the command on the first try. For important stuff, like arming mode and audio volume, require higher confidence.
  • In the 5.x conversion, a big improvement was made to our IDL compiler, to reduce the amount of verbiage required in the source IDL files to achieve the same result. In the updating of those files, the one that includes the media renderer playlist modes accidentally change the form of the random category playlist mode from Random Category to RandomCat. This broke existing stuff, so get it back right. The V2 validation was also using this new information and reporting a bogus error for renderer drivers that had the right values. Most of the renderer drivers just get their fields from the V2Helper (which gets it from the playlist mode enumeration) and so they were picking up the wrong value as well, which made the V2 validation think they were correct since they were both wrong in the same way. Jarvis was using the incorretc value as well. And the CML standard media renderer base class was calling GetName() on the playlist mode to set the playlist mode field, when it should have been calling GetText(). GetName would get the RandomCat name part, which worked due to the above error, but caused a limit violation after it was fixed. So it was a number of interconnecting issues.
  • Now that we are starting to get the drivers converted over to HTML format, add a quick link in the Admin Client's /Help section to the driver reference and big picture help areas.
Dean Roddey
Explorans limites defectum

Possibly Related Threads…
Thread Author Replies Views Last Post
  5.5 Beta Discussions Thread Dean Roddey 150 15,608 04-18-2020, 06:27 AM
Last Post: Dean Roddey
  Official 5.5 Beta Release Thread Dean Roddey 15 3,083 03-27-2020, 10:58 AM
Last Post: Dean Roddey
  Official 5.4 Beta Discussion Thread Dean Roddey 441 80,344 06-15-2019, 02:33 AM
Last Post: Bugman
  Official 5.4 Beta Release Thread Dean Roddey 55 15,427 06-07-2019, 07:02 PM
Last Post: Dean Roddey
  Official 5.3 Beta Discussion Thread Dean Roddey 815 213,389 07-05-2018, 12:44 PM
Last Post: Dean Roddey
  Official 5.3 Release Thread Dean Roddey 27 12,252 07-05-2018, 12:44 PM
Last Post: Dean Roddey
  Official 5.2 Beta Discussion Thread Dean Roddey 244 107,447 10-14-2017, 07:57 PM
Last Post: Dean Roddey
  Official 5.2 Beta Release Thread Dean Roddey 13 10,642 10-09-2017, 06:49 PM
Last Post: Dean Roddey
  Official 5.1 Beta Discussion Thread Dean Roddey 453 229,122 05-16-2017, 03:45 PM
Last Post: Dean Roddey
  Official 5.0 Beta Discussions Dean Roddey 2,019 560,039 11-09-2016, 04:34 PM
Last Post: Dean Roddey

Forum Jump:

Users browsing this thread: 1 Guest(s)