I'm having issues where my Echo Dot is recognizing my Wake Word, "Alexa," in my full request before my Invocation.
ex. "alexa ask ..." as opposed to simply "ask ..."
This is causing my request to fail in the Alexa Developer Console.
I attempted to handle the issue in the setting I could find in the Alexa Developer Console, but I didn't have any luck finding anything. If I type directly into the Alexa Simulator, I have the same results. If I talk fast, my Echo Dot doesn't seem to include "alexa" at the beginning of the request.
What do I need to do to handle my Wake Word, "alexa," being recognized before the start of my invocation?
If I've understand correctly your problem, in the simulator you don't have to put the wake word Alexa to trigger the skill.
With the real device instead you have to say the wake word to trigger the skill (and Intents) but the wake word will not be part of the request.
Related
The alexa skill gets launched from echo device Kitchen and shall do a dialogue using echo device Bedroom as example.
Is it possible at all?
How to do it in node.js or python?
This should be done by a skill not by a routine because the actual target device is retrieved via a REST api.
This seems like a common task. Surprisingly I was not able to even figure out, if it is possible at all. Maybe it is too common.
I don't believe it's possible to achieve the CX you described with Alexa Skill Kits today.
As an end-user, you can use the announcement feature to broadcast a message to all of your supported Alexa devices, e.g. "Alexa, announce dinner is ready". You can exclude certain devices by turning on "Do Not Disturb" mode, or disabling the announcement feature in their device setting.
If you're an enterprise customer (e.g. business, healthcare, hospitality...etc.), you can use the Alexa Smart Properties API to send an announcement to a specific device you manage.
For ASK, the closest thing is the Notification API. But the CX is a bit different, like the user needs to say "Alexa, read my notifications", and you can't target a specific echo device.
I'm curious about your use case. As a skill developer, why do you want to send a dialogue to a different echo device?
I am trying to implement a webrtc-based video chat room and I encountered the following problem. When the call starts and my local stream goes, I listen to my audio on my device before the other device receives it. The devices are far enough apart so that the echo does not affect them. I don't know if that happens because I did something wrong or it is always like that.
I appreciate any recommendations.
Is it possible to create a alexa skill which sends back custom directives created by me back to my alexa enabled devices, so that I can parse them in responses and take action.
Thanks
In your example, Alexa start service1, service1 becomes the invocation (e.g. skill) name. This is fixed as one per skill. So, you can what you've explicitly requested. Some additional info that may be helpful:
As for other content after the invocation, it isn't clear there is a mode to get the Echo to recognize anything. I've heard some suggest providing very large intent sample lists or long slot dictionaries and it convinces the system to provide a more open recognition, but I've never seen that behavior myself.
If you list of items can be constrained, you can create multiple skills. For a personal, aka developer setup, this works well. I have multiple echos on the same account. I have two defined skills that route to the same ASK service layer on my PI. The launch URL routes the request into two different paths that are parsed on my NodeJS logic setting up different defaults in my code.
This allows my wife's version of the skill to work differently than mine. We just use different invocation names without having to have separate accounts and implementing oAuth.
Sorry this is old but I just spotted it while searching something else. In case you have not solved it, the answer is yes. I use my Rpi with Alexa this way. If you are publishing a skill you need to use proper security measures that include account linking, Oauth2 etc. and there are limits on the types of commands you can accept without a user PIN. However, if you are willing to assume the risk on a skill for your own use in developer mode, you can put http calls, with or without basic authentication, directly into your skill code as though it were any other public ip address. As long as your pi is addressable from outside via http, you can command it. I use my pi with a web server to control a media center. I was sending Alexa commands to that via smart things, but now also have developed a custom skill to go straight fro Alexa tot he Pi and to link commands together. I can say "Alexa, start listening..." and then send multiple menu commands via voice that are recognized by the Pi and executed (e.g. menu, guide, page down, channel name, select, etc...) until I exit or it times out due to no input. I don't have to repeat "Alexa" or "turn on/off" as though each command were a device as is the case when going through smart things. I would only recommend this if your htpc and pi have no secure data and are firewalled from the rest of your network.
everyone. It's me again, the guy porting WinPcap from the NDIS 6 protocol to NDIS 6 filter:) I have encountered a bug, which trapped me for two days. Here it is: After I installed the npf6x.sys driver (original named npf.sys), the service can be started by "net start npf". Then I opened Wireshark. Then the network got down (an exclamation mark on the tray icon). After remote debugging, I found the FilterReceiveNetBufferLists routine is never called. I believe the RX link was broken here. However, FilterSendNetBufferLists is called normally. I'm sure the FilterAttach has been successfully called and no FilterUnload is called now. So the filter module should be still in its place. But it just cannot work in the RX path. Then I clicked the "Start" button of Wireshark, I unexpectedly found the network had recovered. Then I stopped the current capture and clicked "Interface List", the network was down again. It is so weird.
I didn't change the handler pointer in the running process of the driver. I seems that the driver is not blocked by locks too. Can anyone tell me if there is any case to cause NDIS not to call the FilterReceiveNetBufferLists of a filter during its running?
Also are there any offcial documents addressing how to port from NDIS 6 protocol to NDIS 6 filter? I only found documents for porting from NDIS 5 to NDIS 6.
thanks.
We have no official documentation on LWF->Protocol, since that's not a very common transition.
It's hard to say what's caused the network to go down, since there can be many causes. The best approach is to use a kernel debugger and start analyzing things with !ndiskd.miniport. Here's a general checklist of things to look at when the network goes down:
Is the miniport in a normal state? Check that !ndiskd.miniport shows everything in the STATE area as green or normal-looking. Make sure the datapath is normal (not bypassed) and the media connect state is connected.
Is your filter driver loaded where you think it should be loaded? Check that !ndiskd.miniport's BINDINGS section shows your filter being listed. If you're using the new Windows 8.1 WDK, also check that the filter's binding isn't "declined".
Does the miniport's receive filter allow the usual set of incoming packets? Check that !ndiskd.miniport -filterdb shows the miniport has at least DIRECTED and MULTICAST traffic allowed in.
Is the miniport attempting to indicate traffic? Set a breakpoint on ndis!NdisMIndicateReceiveNetBufferLists, and verify that the breakpoint hits frequently, as the NIC is giving received packets to the OS.
Is TCPIP attempting to send traffic? If TCPIP isn't sending traffic, then there won't be any replies to receive. Set a breakpoint on ndis!NdisSendNetBufferLists to see if TCPIP is sending any traffic. If it is, set another breakpoint on the miniports send handler (use !ndiskd.minidriver to find its MiniportSendNetBufferLists handler) and verify that the send packets are making it down to the NIC.
Is the miniport's pool of receive packets empty? If so, the miniport won't be able to indicate any more packets, because it has run out of NBLs. Use !ndiskd.pendingnbls to see if there are any NBLs that haven't been returned yet. It's typical for it to find zero or maybe one pending NBL; if you see it find hundreds, then there's an NBL leak in your filter.
Has the miniport noticed any problems? Check the miniport statistics. In Windows 8, use Get-NetAdapterStatistics from PowerShell.
If you're new to Windows kernel network debugging, it will be difficult for you to determine whether some things look good or bad. Ideally, you'd have another working computer to debug, so you can see what "normal" looks like.
If your search still doesn't turn up anything useful, another angle of attack is to do a binary search on the code changes you've made. First, comment-out all the changes you made to your filter's receive path, and restore it to exactly like in the sample. Does that fix the problem? If so, continue. . . .
I am making a program that sends "heartbeats" for a server to keep track of nodes. They are packets with the following payloads:
'start' when it starts up
'running' every 5 seconds
'stopping' at shutdown
The first two are easy. The thread/loop can set the message on first and subsequent runs. How do I make the loop "catch" a shutdown so that it can send a last packet?
I use the minGW compiler for C in WinXP platform.
Edit: I added the relevant details I missed (thanks walkingTarget and Ferruccio)
It is an in-progress app that contains messy stuff in implementation :-)
It uses libCURL, the HTTP client library to send the packets
It is a console app, which I (much later) intend as a service
It needs to save a file and send a packet at shutdown
It needs to capture a system shutdown
In your WindowProc() you can check for the message WM_QueryEndSession, which Windows sends to all open processes before shutting down. For more info on that message see the following link, but i understand that it is as trivial as checking for a WM_SIZE:
http://msdn.microsoft.com/en-us/library/aa376890%28VS.85%29.aspx