bklavet / Echo-skill-to-control-Directv

amazon echo skill that will control a networked Directv Receiver so that users can control Directv with their voice
18 stars 67 forks source link

How to add a network that isn't in the index file. #23

Closed bklavet closed 6 years ago

bklavet commented 7 years ago

To add a network that isn't included in the skill two things need to be done. To add HBO for example we would need to do this.

  1. in the alexa developer folder HBO will need to be added to the Control_List values. and save. this way when alexa hears hbo it will send off HBO to aws lambda. you can test in the service simulator to make sure that HBO is getting sent off the way you want it to.

  2. HBO will need to be added to the index file as a case argument so when your function receives HBO from the skill it will know what to do with it.
    In this case we would want to add this to our index file. along with the other case arguments

case "HBO": path = '/tv/tune?major=501'; break;

the case "HBO" needs to be exactly the way alexa is sending it. If the skill is sending HBO the case argument can't be "Hbo" or "hbo"!!! HBO is channel 501 so the path major=501 reflects that break; needs to be there so when a match is found we have the path and we can go down to where we issue the command.

ghost commented 7 years ago

I have the skill up and running (THANKS for a great guide) but I am having issues adding a few specific channels following your guidance. An example of a problem add: case "TV One" path = '/tv/tune?major=328'; break; No matter how I configure the case entry and the corresponding slot value entry (paying attention to make sure word case is consistent), I still get "I didn't understand" when testing. What am I doing wrong? VH1, BET, and DIY are a few others that I can't get to stick. Are there some hidden "rules" with certain channels/formats? Any guidance would be greatly appreciated. r/Steve

bklavet commented 7 years ago

Hello, my first guess would be that Alexa is not sending the case TV One to lambda. This might be a little difficult because Alexa may see the" one" in TV one and think it's channel number one.

I think I would start with placing "TV one" in the Control_List and then test in the service simulator with "tv one". See if the TV one is being passed as a Control intent or if it is Sending as a channel intent. If it is sending off under the Control intent, then you should be able to put it into the lambda function, and have it work.

ghost commented 7 years ago

Thanks for the feedback. Results of re-running the service simulator following your suggestions is reflected in the attached text file. See anything unusual? I am not sure where to go at this point. Luckily, all channels work properly when using direct channel number input and most "network/name" entries work properly with the exception of my noted additions. Maybe I should delete everything and start all over from scratch...... Thanks again! r/Steve TV One Svc Sim Lambda Request.txt

bklavet commented 7 years ago

Hey there, so it looks like the service simulator is sending "TV 1" So you should have lambda looking like this... case "TV 1" path = '/tv/tune?major=328'; break;

Have you tried this already?

ghost commented 7 years ago

No matter what I have tried, I cannot get "TV 1" recognized. Appears to be a repeatable problem with certain phrases that contain numbers; though I did get "VH 1" to work going from "one" to "1". I will just work through each "problem" entry and modify (rename) the name/case as required to something Alexa will ultimately understand and I can easily associate with the channel. Thanks for the help and insight! r/Steve

bklavet commented 7 years ago

cdrsteve, I have messed with this a little and what I believe you should do is add "TV one" to the Control_List. that should be recognized in the simulator as a Control intent. It will send off to your lambda function as "TV 1" so the index file of the function needs to look like this case "TV 1" path = '/tv/tune?major=328'; break;

so to recap. "TV one" in the Control_List, "TV 1" in the function.

vmweaver commented 6 years ago

Closing this issue