Echo Media Player + TTS (Em fase de testes) ATUALIZADO

Custom component que permite controlar os devices Echo e também enviar TTS para a Alexa.

image

Para instalar é bem simples:

Basta fazer o download do arquivo Alexa.py de https://github.com/keatontaylor/custom_components/blob/master/media_player/alexa.py e salvar na pasta custom_components/media_player, e então é só inserir o código abaixo no configuration.yaml

media_player:
  - platform: alexa
    email: “your amazon email”
    password: “your amazon password”
    url: “amazon.com”

Agora é só reiniciar o Home Assistant e o Player já deve aparecer.

Para mais informações deixo aqui o tópico do autor https://community.home-assistant.io/t/echo-devices-alexa-as-media-player-testers-needed-it/58639/

Ainda tem algumas limitações, como por exemplo, não conseguimos dar media_player.play_media, mas como disse, isso ainda está em fase de testes, então futuramente teremos isso.

2 Likes

Excelente trabalho @souzaathales

1 Like

No caso de Hassbian como é que consigo criar a Alexa Media Player API?

Resposta do autor no tópico oficial:

Desde que você já tenha o node.js em execução. Você pode dar uma olhada aqui: https://github.com/keatontaylor/hassio-addons/tree/master/alexa-api 14

Contém o código node-js da API do Alexa. Você precisará configurar as variáveis ​​de ambiente USER para seu nome de usuário da Amazon e PASS para sua senha da Amazon como essa no console. Você também precisará instalar as dependências do projeto:

npm install
ou

instalação de fios

Vars do ambiente de instalação

USER = someusername
PASSE = somepass
exportar USER; PASSA DE EXPORTAÇÃO
Então você pode simplesmente executar o arquivo do nó index.js

node index.js
Você também pode precisar alterar o host no componente Alexa personalizado de addon_9ff8aed5_alexaapi para qualquer que seja seu IP para hassbian.

Novamente, não há garantias de que isso funcionará, mas tentarei analisar o hassbian amanhã e ver se posso simplificar as etapas.

Acho que agora, como não depende mais do addon, caso você não tenha conseguido irá conseguir.

Não percebi esta 2º parte installo o npm atraves do apt-get install npm
certo ?
e depois ?
faco
npm install node-homeassistant
?
onde é que coloco as vars do ambiente de instalaçao ??

Boa tarde. Recentemente, no discord coloquei a seguinte questão:

Boa noite. Tenho TTS no meu google home a funcionar impecavel. Nas alexas nunca consegui TTS. Vejo tutorias e penso que ficam configuradas só que continuam quedas e mudas (refiro-me a tts. De resto funciona tudo bem). Para agravar a situação, com as actualizações constantes do HA, as configurações mudam. Uma delas é precisamente o média player da alexa… Sabem-me dizer um link onde possa colher informações da configuração correcta, actual e suficiente. Com as actualizações de novas versões começa a haver muita informação desactualizada que confunde e desorienta os utilizadores menos habilitados, que é o meu caso. Obrigado

Quer o Encarnação, quer o ReDaLeRt sugeriram alguns links (obrigado pelas sugestões). Instalei o que tinha a instalar, conforme os links e a única coisa que vi a “mexer” foi a mudança de volume que faz parte da automação.
Relativamente a TTS, nada de nada.
Em relação ao média player do Echo, está a funcionar.
Vou passar a mostrar o que tenho. Peço que não liguem muito à acção da automação, pois não tem muito nexo, abrir uma porta que acciona um sensor que em consequência liga um candeeiro e manda uma mensagem.
No config.yaml tenho:

alexa_media:
  accounts:
    - email: !secret amazon_email
      password: !secret amazon_password
      url: amazon.com
    
notify:
  - platform: alexa_media
    name: alexa_media

A automação é:

automation:
  - alias: portagabinete
    initial_state: 'on'
    hide_entity: true
    trigger:
      platform: mqtt
      topic: tele/sonoff/RESULT
    condition:
      condition: template
      value_template: '{{ trigger.payload_json.RfReceived.Data == "0AEE86" }}'
    action:
      - service: switch.toggle
        data:
          entity_id: switch.cand_gabinete   
      - service: media_player.volume_set
        entity_id: media_player.echo_one
        data:
          volume_level: '0.4'
      - service: notify.alexa_media
        data_template:
          data:
            type: tts
          target: 
            - media_player.echo_one
            - media_player.echo_two
          message: 'Ding-dong. Someone is at the door.'
      - service: notify.alexa_media
        data:
          target: media_player.echo_one
          message: 'This is an example of an announcement'
          data:
            type: announce
            method: speak

Como referi antes, tenho o media player do echo_one a funcionar sem problema, a única coisa (relativamente ao tts) que vejo a funcionar é a linha que refere o volume. Mais um pormenor é relativamente a eu não ter nuvem e ter as alexas a funcionar com o node red.

Cumprimentos
Sebastião

@sslopes uma vez que nao esta a funcionar deves começar por tentar resolver com códigos o mais simples possível ate resolveres, e depois de optares o resultado esperado, poe o que queres

automation:

  - id: alexa tts test
    initial_state: true
    alias: 'alexa tts test'
    trigger:
      platform: state
      entity_id: switch.cand_gabinete
      from: 'off'
      to: 'on'
    action:
      service: media_player.alexa_tts
      entity_id: media_player.echo_one
      data_template:
        message: tts is working now

ou

automation:

  - id: alexa tts test
    initial_state: true
    alias: 'alexa tts test'
    trigger:
      platform: state
      entity_id: switch.cand_gabinete
      from: 'off'
      to: 'on'
    action:
      service: notify.alexa_media
      data:
        data:
          type: announce
        target: 
          - media_player.echo_one
        message: tts is working now

editei ai para por outra forma de o fazer…

Em relacao ao componente da alexa eu estou a usar há meses sem problemas e foi a melhor coisa q fiz. Tinha por Bluetooth mas estava sempre a falhar.

Tenho avisos importantes (e.g notifica que luzes estao acessas se perguntar, notifica qd porta da entrada está aberta há mais de X minutos, etc…)

Tambem toca musica integrada com o radio, conforme mostrado aqui, etc…

Com o bonus que serve de input para tudo (eg estores, luzes,…)

Não posso falar do google pq nao tenho mas posso garantir que isto funciona a 100% e das várias aquisições de gadgets, este das melhores.

Única desvantagem é que temos de falar em ingles. Está em testes versão brasileira mas nao sei como será.

Quem jjá tiver colunas pode comprar o echo onput por uns 20€ e aproveita a coluna existente.

Automações para Amazon Alexa, para quem tiver instalado e configurado o seguinte custom components: [https://github.com/keatontaylor/alexa_media_player/wiki/Automation-examples]

Automações:

### Aviso na alexa quando a porta da rua é aberta. 
- alias: Aviso Alexa Porta da Rua Aberta
  initial_state: true
  trigger:
    platform: state
    entity_id: binary_sensor.door_window_sensor_158d0001f3e8b3
    to: 'on'
  action:
    - service: notify.alexa_media
      data:
        target: 
          - media_player.rui_echo_dot_2
        data:
          type: announce
        message: "ALERT: The outdoor Gate, was opened."
        
- alias: Aviso Alexa Porta Rua Fechada
  initial_state: true
  trigger:
    platform: state
    entity_id: binary_sensor.door_window_sensor_158d0001f3e8b3
    to: 'off'
  action:
    - service: notify.alexa_media
      data:
        target: 
          - media_player.rui_echo_dot_2
        data:
          type: announce
        message: "ALERT: The outdoor Gate, is closed"
        
### Aviso na alexa quando a porta da rua Sul é aberta. Mensagem Push no telemóvel 
- alias: Aviso Alexa Porta da Rua Aberta
  initial_state: true
  trigger:
    platform: state
    entity_id: binary_sensor.door_window_sensor_158d0001f3e8b3
    to: 'on'
  action:
    - service: notify.alexa_media
      data:
        target: 
          - media_player.rui_echo_dot_2
        data:
          type: push
        message: "ALERT: The outdoor Gate, was opened."
        
- alias: Aviso Alexa Porta Rua Fechada
  initial_state: true
  trigger:
    platform: state
    entity_id: binary_sensor.door_window_sensor_158d0001f3e8b3
    to: 'off'
  action:
    - service: notify.alexa_media
      data:
        target: 
          - media_player.rui_echo_dot_2
        data:
          type: push
        message: "ALERT: The outdoor Gate, is closed"
        
###   ###    ###   ###   ###   ###   ###   ###

#### Captura uma imagem quando a portão Sul da Rua  é aberto e envia uma imagem com atraso de 5s para o telegram ficando uma cópia da mesma na pasta cam_snapshots com a sua data
- alias: "Porta Rua Sul aberta"
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: binary_sensor.door_window_sensor_158d0001f3e8b3
    #from: "off"
    to: "on"
  action:
    - service: camera.snapshot
      data:
        entity_id: camera.frente
        filename: '/config/cam_snapshots/porta_rua_sul_aberta_{{ now ().year }}_{{ now ().month }}_{{ now ().day }}_{{ now ().hour }}_{{ now ().minute }}.jpg'
    - delay: 
        seconds: 8
    - service: notify.telegram
      data:
        title: "Porta Rua Sul"
        message: "AVISO de ABERTURA Foto da Porta da Rua Sul"
        data:
          photo:
            - file: '/config/cam_snapshots/porta_rua_sul_aberta_{{ now ().year }}_{{ now ().month }}_{{ now ().day }}_{{ now ().hour }}_{{ now ().minute }}.jpg'
              capture: Snapshoot
              
###   ###    ###   ###   ###   ###   ###   ###

@Encarnacao Não percebo porquê mas não funciona. A coisa mais próxima que consegui hoje foi com a skill Notify Me. O problema é que é a Alexa a lêr-me a mensagem e só quando eu peço para ela me dizer das minhas notificações, depois de ver a luz amarela intermitente. Mesmo esta, só consigo com o node red. Se no ficheiro configuration.yaml, também não dá.

1º adiçionar o configuration.yaml:

notify:
  - platform: alexa_media
    name: alexa_media

automaçao com alexa tts a funcionar:

  initial_state: true
  alias: 'alexa tts test'
  trigger:
    - at: '15:00'
      platform: time
  action:
  - data_template:
      data:
        type: tts
      message: escrevem o que quiserem ...
    service: notify.alexa_media_henrique_s_echo_dot 

Terias algum exemplo de como fazer a Alexa falar o status de um sensor?

acho q é colocares o sensor a frente…
tipo: The temperature is {{ my_test_json.temperature }}
mas nao tenho conhecimentos para isso, aqui no forum encontraras quem te possa ajudar…


Copyright © 2017-2020. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade