sinricpro / non-sdk-issues

Report non sdk related issues here (Alexa, Google Home, SmartThings, IFTTT, API)
2 stars 0 forks source link

[Feature request] Add ability to integrate PC desktop client with Google Assitant #30

Closed sensboston closed 3 years ago

sensboston commented 3 years ago

Hi guys, I wanna suggest you a feature (I've opened separate issue here, to do not mess up with esp32 smart devices): could you please add possibility to integrate desktop PC client with Google Assistant (and Alexa etc.) via SinricPro? Something like a virtual "device" which can take a part of sentence recognized by Google Assistant and send it to desktop client? Before last Friday, I've used Push2Run freeware for this purpose (but it works kinda ugly, via IFTTT and creating file via DropBox) but damn IFTTT completely messed up (at least for me) Google Assistant integration and I can't use it anymore (what's why I found and switched to SinricPro solution)!

But having a desktop client as a virtual device, receiving commands from Google Assistant, will be really nice!

I don't ask you to create client (btw, I can help you with it), but I need some API (or might be you can guide me), desirable .NET/C#.

kakopappa commented 3 years ago

You could receive commands on a desktop PC via NodeJS SDK or Python SDK. https://github.com/sinricpro/nodejs-sdk

On Tue, Sep 21, 2021 at 8:55 AM SeNS @.***> wrote:

Hi guys, I wanna suggest you a feature (I've opened separate issue here, to do not mess up with esp32 smart devices): could you please add possibility to integrate desktop PC client with Google Assistant (and Alexa etc.) via SinricPro? Something like a virtual "device" which can take a part of sentence recognized by Google Assistant and send it to desktop client? Before last Friday, I've used Push2Run freeware https://www.push2run.com/ for this purpose (but it works kinda ugly, via IFTTT and creating file via DropBox) but damn IFTTT completely messed up (at least for me) Google Assistant integration and I can't use it anymore (what's why I found and switched to SinricPro solution)!

But having a desktop client as a virtual device, receiving commands from Google Assistant, will be really nice!

I don't ask you to create client (btw, I can help you with it), but I need some API (or might be you can guide me), desirable .NET/C#.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/sinricpro/non-sdk-issues/issues/30, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABZAZZTHL4UFKAJD7IUOV6TUC7Q25ANCNFSM5ENHRZOQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

sensboston commented 3 years ago

@kakopappa, Aruna, could you please provide me an example how to get recognized part of the sentence? For example, I would like to handle phrase: "Hey, Google, tell my PC to play" , where are "my PC" is a device UID, and "play" - voice recognized and submitted word.

kakopappa commented 3 years ago

I think i misread your original question.

Hi guys, I wanna suggest you a feature (I've opened separate issue here, to do not mess up with esp32 smart devices): could you please add possibility to integrate desktop PC client with Google Assistant (and Alexa etc.) via SinricPro?

To receive commands from Sinric on PC, you can use the NodeJS SDK or Python SDK

Something like a virtual "device" which can take a part of sentence recognized by Google Assistant and send it to desktop client?

in Alexa, you can map a phrase to an action. Not sure whether this is possible in Google Home. Sinric gets a command like setFanSpeed https://developers.google.com/assistant/smarthome/traits/fanspeed from Google, not the actual text spoken

sensboston commented 3 years ago

I think i misread your original question.

Yeah, what's why I called it a [Feature request] :wink: I believe, implementing this feature will be much easier for you than me 'cause you're already know (and worked with) Google Assistant API. Also (I believe it too) this feature will add more popularity - and customers - to your solution. For example, Push2Run I've mentioned in OP, is quite popular ('cause of no competitors at all).

I'm pretty sure, solution is possible: IFTTT has it, TRIGER command is also implemented desktop clients (but these guys are way too greedy, for free they allow only 1 trigger, otherwise they want $20/year).

P.S. If you can't (or don't want to) implement this feature, I know possible workaround: I can create non-existing (physically) device and use Google Home routines to hardcode specific actions (I need just a few: "play", "pause", "volume up/down", "mute" - I'm using my home server as universal video player).

sensboston commented 3 years ago

Update: it looks like I've found all puzzle pieces, the only thing left is to assemble 'em into working app :wink:

kakopappa commented 3 years ago

@sensboston Thanks for the update. FYI Custom templates work with Alexa, Portal, and app only as of now. You might have missed the notice below

image

It's likely you have to use Google Home routines and hardcode actions.

Didn't know someone has created C# repo. Thanks, I will take a look

sensboston commented 3 years ago

@kakopappa, yeah, you're right! What's why "My PC" is invisible in GH... OK, I think I'll reuse built-in (and I hope supported by GH) template for TV, 'cause it also has volume & media controls.

As for that C# library, it's very rudimental (only a couple of devices are implemented by original author) but base things like authentication and communications works well (partially 😉). BTW, it still good start point for me, and I hope to get some results very soon.

sensboston commented 3 years ago

@kakopappa, I created new "TV" device, and build & run sample code on ESP32 (to eliminate possible C# library bugs or incompatibilities). Everything is working from web dashboard (and I'm getting events/messages on ESP32), but Google Home can't see new device, shows only 2 (AC window unit and blinds). Do you have any suggestions? Is TV template supported by GH (it should, from the first sight)?

Update: Hmm, it looks like TV template isn't supported for GH too 😢 Just added a simple switch, and new device (even it's not implemented yet) immediately appeared in Google Home... Could you please list all devices supported by Google Home, and which one I can use for 5 hardcoded actions (play, pause, mute, unmute, set volume up/down)? Thanks a lot!

kakopappa commented 3 years ago

We have been approved to use the following device types with Google Home; switch, blind, thermostat, fan, AC_unit and light, garage door, lock

I think you can create 6 switches and name them play, pause, mute, unmute, volume up/down

sensboston commented 3 years ago

OK, thank you for letting me know! Should be good idea to add this information to FAQ, on visible place - this can save people's time. BTW, have you planned to get approvals for other devices, like a TV?

sensboston commented 3 years ago

So, finally I decided to use a thermostat: by setting specific temperature and using GH routines (with voice trigger and smart device control) I can get as many specific actions as I want. I hope, this weekend I'll create a small standalone program to control my PC by Google Assistant via mini speaker 😉

P.S. @kakopappa, I advertised your service on the Russian IT forum, hope, you'll get more customers soon.

sensboston commented 3 years ago

JFYI: I just created, tested and published app, to control Windows desktop PC using SinricPro: https://github.com/sensboston/Sinric.NET

P.S. I've refactored for a little originally forked library: netstanard/netcore adds too much "useless fat" to simple standalone executable (and I don't like it).

kakopappa commented 3 years ago

Hi @sensboston

  1. Thank you for your feedback. I will add a notice when you select a device type, about the supported platforms.
  2. I am talking to the Sinric.NET C# project owner about adding this as a community-maintained project. Before that, it needs few things like missing device types and outgoing message rate-limiting.
  3. I am updating the VS to 16.11.3. I will give your repo a try afterward.
stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.