I'm trying to build an alexa skill that will be able to read your iphone notifications. I've looked at a few node.js (the language we're building the skill with) options but those seem to only work on Mac computers.
It's not possible to read iPhone notifications with an Alexa skill, since Alexa has no way to talk to an iPhone. The code you write for an Alexa skill is run either on AWS Lambda (in the cloud) or in a web app you write, not on a personal Mac or iPhone.
Related
I work for a company that develops a smart home device.
The company is developing an android application for smart home devices it has developed/designed.
In addition, he wants to control the smart home devices he has developed with the Google Assistant.
We currently cannot use "Custom intents" for the "Voice-enable your Android app" feature. I wish we could add google assistant feature directly to our software independently (without any google home or nest affiliation)... (https://developers.google.com/assistant/app/custom-intents)
custom intents; It is not specialized for Smart Home and is not used in local languages such as Turkish.
We are focusing on the Google Assistant feature for Smart Home. (https://developers.google.com/assistant/smarthome/overview)
Scenario 1: There is a way that Google communicates with the developer cloud via Access Token. (https://developers.google.com/assistant/smarthome/concepts/fulfillment-authentication)
Scenario 2: There is also a second way. Here google assistant is communicating with a google home or google nest device (rather than developer cloud).
(https://developers.google.com/assistant/smarthome/concepts/local) Obviously something strange is going on here. Google Assistant; It says it will contact google home. Is it the google home app installed on the phone he's talking about here, or a google home app like a speaker? Because at https://developers.google.com/assistant/smarthome/concepts/local#supported-devices, a speaker is shown as google home. If it's not talking about the google home app on the phone, or if it can't communicate with the google home app on the phone, it's not much use to us. Because the user may not have a physical google home product/device.
Neither of these scenarios fits exactly what we want to do. What we want to do is exactly this; Google Assistant should neither communicate with our cloud (to avoid lag) nor should it communicate with a google nest device (because the user may not have such a device). It should communicate directly with our app installed on the user's phone. Google Assistant or Google Home; should tell our application the purpose to be fulfilled. Let's send the request sent to us by google assistant or google home to our device or cloud (whatever options are possible).
Is there such a feature in the local home SDK of Google Assistant? Or is there another way google assistant can communicate directly with our app?
Because it is frankly very strange that google home or assistant try to communicate directly with a smart device when our app is installed on the user's phone. It can communicate with our cloud server, but why can't it communicate with our application installed on the phone?
Google assistant or google home; can communicate directly with our application installed on the phone while registering the first account instead of our oauth 2 server. Google is linking to our app instead of using oauth 2 directly. Our app connects to oauth 2 and gives a token to google. In other words, the user can make a sync with our local application on his phone. https://developers.google.com/assistant/smarthome/develop/implement-app-flip#implement-app-flip-in-your-native-apps
But I also think that in order to control smart devices, the user would have to communicate with our application installed on his phone.
Is there a way to this?
The platform does not support a way to directly control a smart home device through an app installed on a phone. Counter to your scenario, there are times when a person wants to control their device when their phone is not around.
Local Home SDK integrations are in addition to an existing cloud integration. This base cloud integration is needed in the cases that a person is not at home.
With Apple getting ever more stringent by enforcing 2FA on all iOS accounts, a unique challenge that we've encountered is how to setup a system where Apple’s 2FA codes for a shared dev account can be forwarded to perhaps our private slack channel? Hence enabling multiple members on a team access to Apple’s services.
I got so annoyed by this that we then developed a hack.
It’s a Python script that’s running in a terminal on the mac mini CI machine and using some vision SDK tooling, checks the screen every few seconds for the 2FA dialog pop-up.
If it finds it, it then navigates the pop-up, crops the 2FA code, does OCR on it, and relays the code through the Slack API to a dedicated internal buildbot channel that our devs get notified on.
Sample cropped 2FA code screenshot:
The result, is the general shared apple id account is now much more convenient and efficient to access by our devs for CI/CD or any other client App Store info updates.
So that’s one way to do it. 😎
We are exploring the use of Google Home and LG Google Assistant TVs for an enterprise application. This would require managing hundreds of devices in a single building. Amazon Alexa has "Amazon for Business" for doing this for Alexa devices.
Is there anything similar for Google Assistant devices? Is there an efficient way to manage hundreds of devices? Can device management be done remotely?
We would like to use Google Assistant devices because of superior AI technology but feel we might have to use Alexa because of the need to manage so many devices.
Please advise.
An action built for the Google Assistant runs entirely in the cloud, so you shouldn't need to worry about device management. The same action can be accessed by multiple devices at the same time, via HTTP requests.
For more information, check out Google's codelab here.
After reading Alexa Skills Kit docs, i have some doubts. What is meant by Alexa-enabled device here?(My custom home automation device support Alexa api or how to change my hardware to support Alexa api?).
This Alexa-enabled device will communicate with Smart Home Skill API and then AWS Lambda Skill adapter communicate with real device.
I am able to create Alexa skills (may be custom skills or Smart Home Skill). How to communicate with this skills from my ios app?
Any device with a microphone, a speaker and a network connection can interact with Alexa.
The developer portal is https://developer.amazon.com/alexa-voice-service
A good code base to start with a raspberry pi is https://github.com/alexa/alexa-avs-sample-app
Alexa Voice Service is currently only available in US. We are working hard at making it available for our customers in UK and DE.
I believe it's any device with Alexa Voice Services, which right now would mainly be the Echo and Echo Dot: https://developer.amazon.com/alexa-voice-service/what-is-avs
But in the US you can theoretically Alexa-enable any capable device with a microphone and speaker. It's launching later in the UK and Germany.
There are several Amazon products that qualify as Alexa-enabled. Some of them are the Echo, the Echo Dot, the Fire Tablet, in its latest versions at least, but might be available in older versions through software update, not sure. The Fire TV and the Amazon Tap are also Alexa-enabled.
To your point, only Amazon products are Alexa-enabled. I must say that there is a way to run some sort of SDK, perhaps with Alexa Voice service, and enable a Raspberry Pi or any other capable hardware to act as an Alexa-enabled device.
Of course, that doesn't include the iPhone. To interact with Alexa from your phone, you'd have to create an intermediary backend, be that in a Lambda function or in your own server.
I have been checking out the Alexa Skills kit the past few days. I have also been poring through the documentations for both the Skills kit and the Voice Service. I am just having a little hiccup trying to understand the flow. I have implemented one of amazon's sample skills (favourite colour sample) in the developer console and also wrote a sample lambda function to handle the type of response that will be delivered. Its working on the test simulator and what left is basically getting lambda running through my ios app. However I have the impression that I don't have to use the voice service. Am I wrong? I am quite confused, it would be awesome if anybody who has some more clarity could shed some light on the matter. If I get lambda working also, I think it will accept requests that are in a particular format. Where do I have to send the encoded audio to get a json response to send to the skills kit? To the Alexa Voice Service?
Also I am authenticating my app using cognito and dynamo db. If I were to use Alexa Voice Service, then it is mentioned that the user will have to also login to amazon. So do I still have to work with the login with amazon sdk? Or is there a workaround?
Based on Amazon documentation there are two ways to interact with Alexa:
Sounds like you want to implement the app thru the Companion method.
As far as the JSON goes, i am currently resolving that issue now, (will post answer once I have it resolved).
Basically you have to use AVFoundation to capture audio from iPhone and send 2 https messages to Alexa (One message with JSON Body & the second message with audio captured as body.) Bases on Documentation
Companion App
(You have a device (such as a smart speaker) that you want to add Alexa to. So, you build in support for AVS. Great! Now you need a way to authorize it and associate it with the user's account. This is the "companion app" approach. The companion app connects to your smart product and allows the user to login and authorize the speaker to use Alexa and connect to their Amazon account.)
Mobile OR Website
AVS App
(You don't have a device you need to authorize - instead you want to speak to Alexa from within your Android/Iphone application.)
Android or Iphone
You can find a swift example on github on how to implement a iOS AVS client
https://github.com/chintan1891/iOS-Alexa