greghesp / assistant-relay

A Node.js server that allows for sending commands to Google Home/Assistant from endpoints
GNU General Public License v2.0
781 stars 224 forks source link

good morning routine fails cause of audio filename out of sync #213

Open farconada opened 3 years ago

farconada commented 3 years ago

running on a slow raspberry pi 3 other command works nicely but "good morning" routine fails HomeAssistant and Assistant Relay running in docker containers

version 3.2.0 command assistant_relay: url: http://192.168.1.10:3001/assistant method: POST content_type: 'application/json' payload: '{"command":"buenos dias", "user":"myuser"}'

assistant_relay | 0|www | Conversation Complete assistant_relay | 0|www | Error: ENOENT: no such file or directory, unlink '/data/audio-responses/1605453726517.wav' assistant_relay | 0|www | at Object.unlinkSync (fs.js:1051:3) assistant_relay | 0|www | at /assistant_relay/helpers/server.js:90:16 assistant_relay | 0|www | at runMicrotasks () assistant_relay | 0|www | at processTicksAndRejections (internal/process/task_queues.js:93:5) { assistant_relay | 0|www | errno: -2, assistant_relay | 0|www | syscall: 'unlink', assistant_relay | 0|www | code: 'ENOENT', assistant_relay | 0|www | path: '/data/audio-responses/1605453726517.wav' assistant_relay | 0|www | }

ERROR: Aborting. root@raspberrypi:~/iot# ls -l assistant-relay/audio-responses/ total 1068 -rw-r--r-- 1 root root 1092702 Nov 15 16:39 1605454772378.wav root@raspberrypi:~/iot# docker exec -ti homeassistant /bin/bash bash-5.0# date Sun Nov 15 16:41:02 CET 2020 bash-5.0# exit root@raspberrypi:~/iot# date Sun 15 Nov 16:41:07 CET 2020 root@raspberrypi:~/iot# docker exec -ti assistant_relay /bin/bash root@2fa39019dc48:/# date Sun Nov 15 15:41:24 UTC 2020

ryancasler commented 3 years ago

You will not be able to run a routine from Assistant Relay because it has to be run from a device associated with your Google Account. Assistant Relay does not exist as a device location for the routine to run. This is a known limitation of the Google Assistant SDK which Assistant Relay is based on. There is no way for Relay to work around this unless Google updates the SDK to allow this functionality.
Also, is the username you have programmed into the SDK really "myuser"? That should be the username that set up when you performed the setup with your OAUTH file.

farconada commented 3 years ago

but I'm able to listen the audiorelated to the routine in the home page of assistant-relay and the audio is download in audio files folder

the username is right

ryancasler commented 3 years ago

The Assistant SDK doesn't allow you to execute routines. I don't know what else to tell ya.

greghesp commented 3 years ago

This looks like Home Assistant is failing to remove an audio file. Im going to assume its something to do with how Docker handles files when HA closes it down

@Apipa169 Any ideas

Apipa169 commented 3 years ago

@farconada Are you running the add-on, or are you just using the image of the add-on to run?

If you just use the image, what folders do you mount as volume?

farconada commented 3 years ago

It's a docket image not the addon assistant-relay: container_name: assistant_relay ports: