Release EDDI - Windows app for immersion and more

Status
Thread Closed: Not open for further replies.
If you have installed VoiceAttack in the default location you don't need to do anything. Otherwise, when you install EDDI you will need to change the installation path so that it is installed in the 'Apps' subdirectory of wherever you installed VoiceAttack.

Yes I installed voice attack in default location. So then I just run EDDI.exe from anywhere and it will be ok?
 
Help required please.

Does anyone here have any good EDDI scripts for

Docking requested
Shields Up
Shields Down
Station no fire zone entered/exited

Many thanks :D

IMO, there's not a whole lot of value to be gained from those speech responder events.

The real power is in Voice Attack commands for those events. For example, my shields going down/up will automatically disable/re-enable my shield boosters.

If I enter the 'no fire zone' without already having requested docking, then the Voice Attack ((EDDI station no fire zone entered)) command will handle it because nothing sucks more than to forget to send a request, get a trespassing violation, tangled up in the mail slot, and then summarily executed. :p
 
Last edited:
I just use "no fire zone entered/exited" as reminder especially when I'm in the scv doing stuff near a port. But I'll add "did you forgot to request docking again" now ;)
 
I just use "no fire zone entered/exited" as reminder especially when I'm in the scv doing stuff near a port. But I'll add "did you forgot to request docking again" now ;)

Better yet make it look for a variable. In my VA profile, there is a variable called docking. Once you have requested docking it sets that variable. Should be easy to set a state variable to the same effect. If that variable is 0 or has not been set, it would ask you that. If it was set to 1, it wouldn't as the only way to set that variable is through the Docking granted script. I mean you could have it elsewhere, but why would you?

Station no fire zone entered
Code:
Entering No fire zone.

{if Eddi_DockGrant = 1:
|else:
Warning! Permission to dock has not been received!
}

{if event.weaponsdeployed:
   Reminder: hardpoints are deployed. You should retract hardpoints immediately.
}
Station no fire zone exited
Code:
{SetState(Eddi_DockGrant,0)}
Docking granted
Code:
{SetState(Eddi_DockGrant, 1)}

{OneOf("Docking request granted.", "Granted.", "Permission received." "Permission granted.")}
{set station to StationDetails(event.station)}
{if station.model = "Coriolis Starport" || station.model = "Orbis Starport" || station.model = "Ocellus Starport" || station.model = "Unknown Starport":
    {Pause(8000)}
    Landing pad {event.landingpad} is at
    {if event.landingpad = 1:
        six o'clock near
    |elif event.landingpad = 2:
        six o'clock near
    |elif event.landingpad = 3:
        six o'clock far
    |elif event.landingpad = 4:
        six o'clock far
    |elif event.landingpad = 5:
        seven o'clock near
    |elif event.landingpad = 6:
        seven o'clock near
    |elif event.landingpad = 7:
        seven o'clock
    |elif event.landingpad = 8:
        seven o'clock far
    |elif event.landingpad = 9:
        eight o'clock near
    |elif event.landingpad = 10:
        eight o'clock far
    |elif event.landingpad = 11:
        nine o'clock near
    |elif event.landingpad = 12:
        nine o'clock near
    |elif event.landingpad = 13:
        nine o'clock
    |elif event.landingpad = 14:
        nine o'clock far
    |elif event.landingpad = 15:
        nine o'clock far
    |elif event.landingpad = 16:
        ten o'clock near
    |elif event.landingpad = 17:
        ten o'clock near
    |elif event.landingpad = 18:
        ten o'clock far
    |elif event.landingpad = 19:
        ten o'clock far
    |elif event.landingpad = 20:
        eleven o'clock near
    |elif event.landingpad = 21:
        eleven o'clock near
    |elif event.landingpad = 22:
        eleven o'clock
    |elif event.landingpad = 23:
        eleven o'clock far
    |elif event.landingpad = 24:
        twelve o'clock near
    |elif event.landingpad = 25:
        twelve o'clock far
    |elif event.landingpad = 26:
        one o'clock near
    |elif event.landingpad = 27:
        one o'clock near
    |elif event.landingpad = 28:
        one o'clock
    |elif event.landingpad = 29:
        one o'clock far
    |elif event.landingpad = 30:
        one o'clock far
    |elif event.landingpad = 31:
        two o'clock near
    |elif event.landingpad = 32:
        two o'clock near
    |elif event.landingpad = 33:
        two o'clock far
    |elif event.landingpad = 34:
        two o'clock far
    |elif event.landingpad = 35:
        three o'clock near
    |elif event.landingpad = 36:
        three o'clock near
    |elif event.landingpad = 37:
        three o'clock
    |elif event.landingpad = 38:
        three o'clock
    |elif event.landingpad = 39:
        four o'clock near
    |elif event.landingpad = 40:
        four o'clock far
    |elif event.landingpad = 41:
        five o'clock near
    |elif event.landingpad = 42:
        five o'clock near
    |elif event.landingpad = 43:
        five o'clock
    |elif event.landingpad = 44:
        five o'clock far
    |elif event.landingpad = 45:
        five o'clock far
    }
    , as you enter with the green lights on your right.
|else:
   {OneOf("Assigned to", "We are assigned to")} Landing pad {event.landingpad}
}

I haven't tried this code yet, but I will. Should work, but we all know about "should work" when it comes to programming ;)
 
Greetings CMDRs,

Just starting to mess around with EDDI and I'm curious to know the typical response time between an event happening in-game and EDDI reporting it. I'm personally just running EDDI in a standalone manner with the basic default EDDI profile. I'm fairly certain that I've set things up correctly, as it does work. For instance, I've had EDDI perform the "Jumping" dialogue nearly at the end of a witchspace jump, probably between 50% and 75% of the way through the loading time.

Also, does anyone know of any crowd-sourced EDDI profiles?

I was also able to get the W10 "Cortana" TTS engine (Microsoft Eva Mobile) running for EDDI, and it's quite nice.
 
I tried my code and it worked beautifully; for a while. Suddenly it refused to set the state. I have no idea why, but after that, every time I enter the no fire zone of a station, it tells me I have not received permission to dock. And there's a pad and timer display meaning docking had been granted. :S
 
Better yet make it look for a variable. In my VA profile, there is a variable called docking. Once you have requested docking it sets that variable. Should be easy to set a state variable to the same effect. If that variable is 0 or has not been set, it would ask you that. If it was set to 1, it wouldn't as the only way to set that variable is through the Docking granted script. I mean you could have it elsewhere, but why would you?

Instead of reminders, I actually 'do things' in VA.

For ((EDDI docking granted)):
Code:
Set Boolean [docking-granted] to True (save value to profile)

For ((EDDI station no fire zone entered)):
Code:
Begin Boolean Compare:[hardpoints-deployed] Equals True
    Execute command, 'Retract Hardpoints' (by name) (and wait until it completes)
End Condition
Begin Boolean Compare:[FSD-pending] Equals False
    Begin Boolean Compare:docking-granted] Equals False
        Set Text [Script] to 'No fire zone entered. Initiating docking request now'
        Execute external plugin, EDDI 2.2.0'
        Pause 1 second
        Execute command, 'Request docking' (by name) (and wait until it completes)
    End Condition
End Condition

The Boolean [FSD-pending] is set to True when supercruise or a jump is initiated and set back to false within ((EDDI jumped)) and ((EDDI entered supercruise)). Also, [docking-granted] is set to False when docked or docking request is cancelled or timed out.
 
Last edited:
I discovered EDDI about 2 - 3 weeks ago. Great tool[up]
As I am a little busy at the moment I dont have the time to elaborate myself if it is possible with EDDI to check if the current vessel is equipped with a fighter and / or an SRV.
Has anyone tried this already and can give me a hint?

THX in advance.

Yes, it's possible. My code loops through the modules installed on the ship and looks for a match (I'd welcome any improvements that the community can offer):

SRV check (with an additional variable for whether it's enabled since on some ships I'll turn it off to save power)
Code:
{set installed to 0}
{set enabled to 0}


{for compartment in ship.compartments:
    {if compartment.module.name = "Planetary Vehicle Hangar":
        {set installed to 1}
        {if compartment.module.enabled:
           {set enabled to 1}
        }
    }
}


{SetState("srv_installed", installed)}
{SetState("srv_enabled", enabled)}

Fighter bay check
Code:
{set fighterbay to 0}


{for compartment in ship.compartments:
   {if compartment.module.name = "Fighter Hangar":
      {set fighterbay to 1}
   }
}


{SetState("fighterbay", fighterbay)}

Here's an example... I use this in my touchdown script:
Code:
{_ SRV Check _}
{F("SRV check")}
{Pause(2000)}
{if state.srv_installed && state.srv_enabled:
   SRV Ready {Occasionally(2, "for deployment.")}.
|elif state.srv_installed:
   If you are planning an excursion, please enable the Planetary Vehicle Hangar.
|else:
   No planetary vehicle hangar has been installed.
}
 
Last edited:
Instead of reminders, I actually 'do things' in VA.

For ((EDDI docking granted)):
Code:
Set Boolean [docking-granted] to True (save value to profile)

For ((EDDI station no fire zone entered)):
Code:
Begin Boolean Compare:[hardpoints-deployed] Equals True
    Execute command, 'Retract Hardpoints' (by name) (and wait until it completes)
End Condition
Begin Boolean Compare:[FSD-pending] Equals False
    Begin Boolean Compare:docking-granted] Equals False
        Set Text [Script] to 'No fire zone entered. Initiating docking request now'
        Execute external plugin, EDDI 2.2.0'
        Pause 1 second
        Execute command, 'Request docking' (by name) (and wait until it completes)
    End Condition
End Condition

The Boolean [FSD-pending] is set to True when supercruise or a jump is initiated and set back to false within ((EDDI jumped)) and ((EDDI entered supercruise)). Also, [docking-granted] is set to False when docked or docking request is cancelled or timed out.

You can change and save VA variables from within EDDI? I didn't know that. For the code
Set Boolean [docking-granted] to True (save value to profile)
Where do you put this? And how (within EDDI) do you change a VA variable and save it to the VA profile?
 
You can change and save VA variables from within EDDI? I didn't know that. For the code
Set Boolean [docking-granted] to True (save value to profile)
Where do you put this? And how (within EDDI) do you change a VA variable and save it to the VA profile?

You misunderstand. Hoodathunk is sharing Voice Attack command actions that he's created and which are triggered by EDDI events.

You can use the Voice Attack variables at https://github.com/cmdrmcdonald/EliteDangerousDataProvider/blob/master/VoiceAttack.md inside of Voice Attack. If you want to pass additional information from EDDI to Voice Attack, check out the SetState function (both at the prior link and at https://github.com/cmdrmcdonald/EliteDangerousDataProvider/blob/master/SpeechResponder/Help.md).
 
Last edited:
You misunderstand. Hoodathunk is sharing Voice Attack command actions that he's created and which are triggered by EDDI events.

You can use the Voice Attack variables at https://github.com/cmdrmcdonald/EliteDangerousDataProvider/blob/master/VoiceAttack.md inside of Voice Attack. If you want to pass additional information from EDDI to Voice Attack, check out the SetState function (both at the prior link and at https://github.com/cmdrmcdonald/EliteDangerousDataProvider/blob/master/SpeechResponder/Help.md).

Yes, but how does VA know if docking has been granted? EDDI does, but Voice Attack? All it knows is that a docking request has been issued. It doesn't know if it's been granted. Unless EDDI can push a variable to VA.
 
Yes, but how does VA know if docking has been granted? EDDI does, but Voice Attack? All it knows is that a docking request has been issued. It doesn't know if it's been granted. Unless EDDI can push a variable to VA.

Please carefully review the documentation that I already referenced. You'll find that https://github.com/cmdrmcdonald/EliteDangerousDataProvider/blob/master/VoiceAttack.md answers your question. EDDI generates Voice Attack events that you can respond to in Voice Attack and variables that you can reference within Voice Attack.

For your specific query, please review the section on the "Docking granted" event and create a Voice Attack command called "((EDDI docking granted))" as described by the documentation. EDDI will then trigger the command, and any code that you include in that command, whenever authorization for docking is granted.
 
Yes, it's possible. My code loops through the modules installed on the ship and looks for a match (I'd welcome any improvements that the community can offer):

SRV check (with an additional variable for whether it's enabled since on some ships I'll turn it off to save power)
Code:
{set installed to 0}
{set enabled to 0}


{for compartment in ship.compartments:
    {if compartment.module.name = "Planetary Vehicle Hangar":
        {set installed to 1}
        {if compartment.module.enabled:
           {set enabled to 1}
        }
    }
}


{SetState("srv_installed", installed)}
{SetState("srv_enabled", enabled)}

Fighter bay check
Code:
{set fighterbay to 0}


{for compartment in ship.compartments:
   {if compartment.module.name = "Fighter Hangar":
      {set fighterbay to 1}
   }
}


{SetState("fighterbay", fighterbay)}

Here's an example... I use this in my touchdown script:
Code:
{_ SRV Check _}
{F("SRV check")}
{Pause(2000)}
{if state.srv_installed && state.srv_enabled:
   SRV Ready {Occasionally(2, "for deployment.")}.
|elif state.srv_installed:
   If you are planning an excursion, please enable the Planetary Vehicle Hangar.
|else:
   No planetary vehicle hangar has been installed.
}

Thanks a lot.
Will try this over the weekend.
 
Instead of reminders, I actually 'do things' in VA.

For ((EDDI docking granted)):
Code:
Set Boolean [docking-granted] to True (save value to profile)

For ((EDDI station no fire zone entered)):
Code:
Begin Boolean Compare:[hardpoints-deployed] Equals True
    Execute command, 'Retract Hardpoints' (by name) (and wait until it completes)
End Condition
Begin Boolean Compare:[FSD-pending] Equals False
    Begin Boolean Compare:docking-granted] Equals False
        Set Text [Script] to 'No fire zone entered. Initiating docking request now'
        Execute external plugin, EDDI 2.2.0'
        Pause 1 second
        Execute command, 'Request docking' (by name) (and wait until it completes)
    End Condition
End Condition

The Boolean [FSD-pending] is set to True when supercruise or a jump is initiated and set back to false within ((EDDI jumped)) and ((EDDI entered supercruise)). Also, [docking-granted] is set to False when docked or docking request is cancelled or timed out.

Many thanks for these VA scripts and the EDDI only scripts from Kelly and others. [yesnod] I have both EDDI and VA, my friends have mostly just EDDI and I am helping them get setup too with some of their desired commands in addition to my own.

I did find this great EDDI scripts page, but some of the entries are blank as they are in EDDI when first installed, hence asking for specific command scripts help here. We have figured out how to edit the EDDI scripts.

In VA how do I easily copy and paste (install) your new ((EDDI)) script commands that 'do things' please? :cool:

I've tried the 'new command' option, but can't seem to find an easy way to copy and paste your code into it. I have also read the full VA help PDF and must be missing something obvious. if it is a complex set of individual Boolean commands then please don't go to the trouble of explaining here, just let me know it is complex to install, if that is the case, and I won't try further.

Previously I've been able to enter new VA commands by entering the instructions one line at a time for pause, play wav etc.

I have zero coding knowledge and am an old timer so please forgive my lack of knowledge, I have read everything I can find but am stumped.

Thanks again
 
Last edited:
Please carefully review the documentation that I already referenced. You'll find that https://github.com/cmdrmcdonald/EliteDangerousDataProvider/blob/master/VoiceAttack.md answers your question. EDDI generates Voice Attack events that you can respond to in Voice Attack and variables that you can reference within Voice Attack.

For your specific query, please review the section on the "Docking granted" event and create a Voice Attack command called "((EDDI docking granted))" as described by the documentation. EDDI will then trigger the command, and any code that you include in that command, whenever authorization for docking is granted.

So all those variables are voice attack variables? Like the INT:EDDI docking granted landingpad ? I had assumed those were EDDI internal variables. If they are Voice Attack variables, that changes everything.
 
So all those variables are voice attack variables? Like the INT:EDDI docking granted landingpad ? I had assumed those were EDDI internal variables. If they are Voice Attack variables, that changes everything.

Yes you can use the variables in VA but there are two kinds of variables you can use. In the documentation Tkael mentioned it first lists all the standard values like for example {DEC:Ship total fuel tank capacity}.
As you can guess this gives the total fuel tank capacity of your ship.
In the second half of the documentation, under Events, it gives all the events EDDI intercepts from the Elite journals and the variables you can use when that event occurs. For example in the Jumped event you see the {DEC:EDDI jumped fuelremaining} variable mentioned. This variable is updated when you jumped to another system. You could use this variables in a ((EDDI jumped)) command to calculate how much fuel you have used and have VA give a warning at some levels.
One thing to keep in mind is that, as far as I understand it myself, the variables under the Events are only available when the event occurs. There is a way to make them more permanent but that's something I leave to the experts.
 
Yes, it's possible. My code loops through the modules installed on the ship and looks for a match (I'd welcome any improvements that the community can offer):

SRV check (with an additional variable for whether it's enabled since on some ships I'll turn it off to save power)

I like the 'enabled' feature.

I've incorporated both fighter and srv check into one script. It's executed during 'Commander continued' and 'Ship swapped' events.


'Hangar Check' Script:
Code:
{set fighter_hangar to 0}
{set srv_hangar to 0}

{for compartment in ship.compartments:
    {if compartment.module.name = "Fighter Hangar":
        {set fighter_hangar to 1}
    }
    {if compartment.module.name = "Planetary Vehicle Hangar":
        {set srv_hangar to 1}
    }
}

{SetState("fighter_hangar", fighter_hangar)}
{SetState("srv_hangar", srv_hangar)}


Added to 'Ship swapped':
Code:
{set previous_fighter_hangar to state.fighter_hangar}

{_ Check for the presence of a Fighter & SRV hangars _}
{F("Hangar check")}

{if state.fighter_hangar=1 && previous_fighter_hangar=0:
    {Pause(1000)}
    {OneOf("Ready for fighter crew assignments.", "Fighter crew ready for new assignments.")}
}
 
Yes you can use the variables in VA but there are two kinds of variables you can use. In the documentation Tkael mentioned it first lists all the standard values like for example {DEC:Ship total fuel tank capacity}.
As you can guess this gives the total fuel tank capacity of your ship.
In the second half of the documentation, under Events, it gives all the events EDDI intercepts from the Elite journals and the variables you can use when that event occurs. For example in the Jumped event you see the {DEC:EDDI jumped fuelremaining} variable mentioned. This variable is updated when you jumped to another system. You could use this variables in a ((EDDI jumped)) command to calculate how much fuel you have used and have VA give a warning at some levels.
One thing to keep in mind is that, as far as I understand it myself, the variables under the Events are only available when the event occurs. There is a way to make them more permanent but that's something I leave to the experts.

Thanks. That's a big help. The event variables are probably just for the Voice Responder script, but I'll do some experimenting. I do like to use software to it's fullest potential.
 
Status
Thread Closed: Not open for further replies.
Back
Top Bottom