Abandoned Ocellus Voice Assistant

CMDRs,

The Ocellus Voice Assistant for ED is now in Open Beta. Ocellus is a VoiceAttack plugin - one that has been taken to a new level from those that have come before.

Of course it offers the typical "Request Docking" macros and other goodies that VoiceAttack is known for in ED. The VoiceAttack plugin that goes with it is what makes Ocellus interesting.

Feature List:
  • Connects to the Frontier API and brings those variables into the profile.
  • Offers convenience commands to voice plot routes to your stored ships.
  • Integrates with the games keybindings. Ocellus automatically discovers all your existing in-game keybinds and stays current - even if you change them on the fly.
  • Voice Route plotting. CMDR "Plot Route TO" Ocellus "Where?" CMDR "Robigo". Ocellus has a built in grammar that understands all ~20K populated systems in the game for excellent matching.
  • EDDN updating built in. Updates Commodity, shipyard and outfitting data to the EDDN network.
  • On request open the current system or station on EDDB.io.
  • Exports your ship on the fly to Coriolis and EDShipyard. CMDR "Export ship to Coriolis" and the exported configuration is placed in the Windows clipboard ready to import into Coriolis/ED Shipyard.
  • Faction and Powerplay tools. Factions and Powerplay groups can provide a set of variables on a website and these will be updated in realtime to the Ocellus users. Powerplay leaders can, for example, set a message and destination on their website, and users in game can say "what is my mission" and "plot route to my mission".

Take a look at the video for an introduction to Ocellus:

[video=youtube;EOMAYaxWjiU]https://www.youtube.com/watch?v=EOMAYaxWjiU[/video]

OPEN BETA. Ocellus has been in development for a long time (6 months now) however there are bound to be bugs. Here's the list I am aware of so far.

  • The automatic keybinding is only tested for US keyboards. Other keyboards will have missing keybinds/scancodes. I'm looking for crowd sourcing to help fill in the gaps.
  • Coriolis export is best effort. As of right now, it has not been updated with 1.6/2.1 information so some modules will be missing.
  • Some powerplay weapons may not be identified properly in the ED shipyard export.
  • The Companion API does not always report the shipyard list, so updating to the EDDN will sometimes not update the shipyard.

Download Ocellus
 
"The automatic keybinding is only tested for US keyboards. Other keyboards will have missing keybinds/scancodes. I'm looking for crowd sourcing to help fill in the gaps."
Tested anyway with my trusty french AZERTY keyboard, and indeed most keyboards binds are not found.
For example, when trying the docking command, it can't find the target panel key, but it can navigate fine in the UI albeit a bit slow to my taste ;)
More problematic is the
"ERROR: Unable to parse Companion API output System.Collections.Generic.KeyNotFoundException: La clé donnée était absente du dictionnaire.
à System.Collections.Generic.Dictionary`2.get_Item(TKey key)
à Companion.updateProfile(Dictionary`2& state, Dictionary`2& shortIntValues, Dictionary`2& textValues, Dictionary`2& intValues, Dictionary`2& decimalValues, Dictionary`2& booleanValues)"
thshow up in the debug log, just before the Frontier companion data up to date.
Thanks for the efforts you put into this, it seems most promising.
 
If you can help, PM me your binds file?

c:\users\<username>AppData\Local\Frontier Developments\Elite Dangerous\Options\Bindings\Custom1.8.binds, and a screenshot in game of some of the keys that don't work? The way Frontier maps keys to keybinds to scancodes is a bit weird.

see: https://forums.frontier.co.uk/showthread.php?t=239247

With some crowd sourcing, I will be able to get the mapping working perfectly.
 
Bindings sent.
Seeing as my keyboard layout is listed as en-US but win 10 and the game are setup in french, nothing can surprise me anymore :]
 
"The automatic keybinding is only tested for US keyboards. Other keyboards will have missing keybinds/scancodes. I'm looking for crowd sourcing to help fill in the gaps."
Tested anyway with my trusty french AZERTY keyboard, and indeed most keyboards binds are not found.
For example, when trying the docking command, it can't find the target panel key, but it can navigate fine in the UI albeit a bit slow to my taste ;)

Your "1" key seems to be the key that should open the target panel. I'm surprised that's the one that failed. Can you create a VoiceAttack that pushes the "1" key (set the directX radio button) and see if that works?

More problematic is the
"ERROR: Unable to parse Companion API output System.Collections.Generic.KeyNotFoundException: La clé donnée était absente du dictionnaire.
à System.Collections.Generic.Dictionary`2.get_Item(TKey key)
à Companion.updateProfile(Dictionary`2& state, Dictionary`2& shortIntValues, Dictionary`2& textValues, Dictionary`2& intValues, Dictionary`2& decimalValues, Dictionary`2& booleanValues)"
thshow up in the debug log, just before the Frontier companion data up to date.
Thanks for the efforts you put into this, it seems most promising.

Yes, this means I'm having trouble decoding the Frontier API response. In that same debug file you should see a "blob" of json that looks something like:

Code:
{"commander":{"id":328321,"name":"NomadYOW","credits":34852106,"debt":0,"currentShipId":0,"alive":true,"docked":true,"rank":{"combat":7,"trade":6,"explore":5,"crime":0,"service":0,"

PM me that that I can get that fixed up. I'm likely tripping over some module in your ship that I haven't come across before.
 
Your "1" key seems to be the key that should open the target panel. I'm surprised that's the one that failed. Can you create a VoiceAttack that pushes the "1" key (set the directX radio button) and see if that works?
I have a VA profile setup with EDDI, the left panel command is working with "press 1 key and hold for 0,03s and release".
PM for the companion app data dump coming soon
 
How would you get this pack working with a joystick? Saitek x52? None of the commands seem to do anything for me when using it.
 
As far as I know, Voice Attack uses only keybooard and mouse for the commands and doesn't respond at all to the X52's inputs.

If you go into VoiceAttack preferences, you can "enable" your joystick, and then you can map button presses on your joystick to be the same as what is currently done with voices. I've done that with my X55, for a couple of buttons.
 
I am having trouble with the portions of code that connect to the Frontier API. Looks like an argument type problem:

6/5/2016 22:29 | ERROR: Unable to parse Companion API output Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot implicitly convert type 'System.Collections.ArrayList' to 'System.Collections.Generic.Dictionary<string,object>'
at CallSite.Target(Closure , CallSite , Object )
at Companion.updateProfile(Dictionary`2& state, Dictionary`2& shortIntValues, Dictionary`2& textValues, Dictionary`2& intValues, Dictionary`2& decimalValues, Dictionary`2& booleanValues)

Frontier companion data is printed after that, not sure if I should post the full log. Any ideas? Thanks.
 
0.8 released

Thanks to everyone that has submitted bugs to me - keep them coming!

New OcellusPlugin.dll released

No change to VoiceAttack Profile

Bugs Fixed:

- Fixed error if your ship was the Imperial Cutter
- Fixed Pack Hound Missles not showing properly in ED Shipyard or Coriolis
- Fixed bug if you only had a single ship in your fleet
- Broken link to test Web Var json fixed
- EDDN index files now cached for a week instead of one day (less downloads)

Known Issues:

- Some keys on non-US keyboards/languages are not mapped properly. Message me if you can be a tester for this.
- Not all PowerPlay weapons will show up in Coriolis/EDShipyard exports. Email me your companion.json file if you have this issue.
- Coriolis doesn't support new 1.6/2.1 weapons, however they should "just work" once it is updated on their end.

If you are having issues you can create a tracker on GitHub
Or you can email me at nomadyow@gmail.com


Debug.txt and companion.json files can be found in:
C:\Users\<YOUR USERNAME>\AppData\Local\Ocellus Plugin\
These are very useful to help debug issues - please email or attach to bug reports.

Download new:
OcellusPlugin DLL
 
I am having trouble with the portions of code that connect to the Frontier API. Looks like an argument type problem:

6/5/2016 22:29 | ERROR: Unable to parse Companion API output Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot implicitly convert type 'System.Collections.ArrayList' to 'System.Collections.Generic.Dictionary<string,object>'
at CallSite.Target(Closure , CallSite , Object )
at Companion.updateProfile(Dictionary`2& state, Dictionary`2& shortIntValues, Dictionary`2& textValues, Dictionary`2& intValues, Dictionary`2& decimalValues, Dictionary`2& booleanValues)

Frontier companion data is printed after that, not sure if I should post the full log. Any ideas? Thanks.

Hi Rekon,

Email me your full debug.txt to nomadyow@gmail.com and I'll take a look. Also, I just posted a patch a few minutes ago, you may want to download the new DLL, drop overtop of the old one and restart VoiceAttack and see if that works better.
 
Hello Nomadyow,

Just noticed your post. I PMed the result of 0.7 before I noticed your update. I tried 0.8 with no change. I sent you the debug.log via email but couldn't find the companion.json file. Let me know if there is anything else needed.
 
This is crashing VA , when I say "where am I" , or ask the "Plot Route To There" , seems if querying the API , is falls over , sometimes... not sure if other plugins may be upsetting it , like EDDI


Debug log sent too Email address
 
Last edited:
Can you add a binding to "unlock navigation" for those times you're trying to leave a planet but your route is obscured and you have to unlock your route to be able to jump from the planet?
 
Awesome work. I'm wondering if we can get a command to target ship subsystems. That would be awesome in combat. Great Job. i Have added Ocellus to ASTRA.
 
Need to be able to access Virtual Desktop while in VR. While in VR, if I say "show system," I have to put down my Rift headset to look at my desktop to see the EDDB information. If there is a way to access that info without leaving VR that would be awesome.
 
Top Bottom