Boas malta!
Com a compra de mais um tablet para fazer um wallscreen em casa, andei a pesquisar e trago aqui uma alternativa ao tão completo Fully Kiosk para quem quiser poupar nas licenças por dispositivo.
A app é um projeto Open Source chamado WallPanel!
Site oficial: https://wallpanel.xyz/
PlayStore: https://play.google.com/store/apps/details?id=xyz.wallpanel.app
Documentação: https://wallpanel.xyz/docs/getting-started
Existem algumas limitações, nomeadamente na impossibilidade de desligar o ecrã, no entanto, para as funcionalidades que eu utilizava desde Motion Sensor (ativar o ecrã através de movimento detetado pelo uso da camara), TTS (anúncios de voz), Screen On e URL Redirect estão presentes! O desligar o ecrã, controlo com o lockscreen time do próprio dispositivo.
Após a instalação da App no dispositivo em questão, as definições são algo idênticas ao Fully Kiosk. Será necessário dar o URL de Home, ativar as definições que desejamos e está!
Quanto aos comandos a executar, eu não uso o MQTT, pelo que configurei os pedidos através da integração RestFull. Configurei os pedidos no configuration.yaml e consigo chamar os mesmos através dos Services.
Integração Rest: https://www.home-assistant.io/integrations/rest_command/
Comandos disponíveis via API: https://wallpanel.xyz/docs/remote-control/commands
Deixo aqui os comandos que elaborei fazendo uso da integração acima indicada
# Wallpanel API
rest_command:
chimedoors: #Comando de redireccionamento. Apresenta um dashboard com as camaras que estão nas entradas
url: http://<IP DO DISPOSITIVO>:2971/api/command
method: POST
headers:
accept: "*/*"
user-agent: 'PostmanRuntime/7.29.0'
content_type: 'application/json; charset=utf-8'
payload: '{"url": "http://<IP DO HOME ASSISTANT>:8123/lovelace/chimecam"}'
speak: #Comando para enviar uma mensagem TTS com a mesma no campo data 'text'
url: http://<IP DO DISPOSITIVO>:2971/api/command
method: POST
headers:
accept: "*/*"
user-agent: 'PostmanRuntime/7.29.0'
content_type: 'application/json; charset=utf-8'
payload: '{"speak": "{{ text }}"}'
wakescreen_on: #Comando para acordar o ecrã
url: http://<IP DO DISPOSITIVO>:2971/api/command
method: POST
headers:
accept: "*/*"
user-agent: 'PostmanRuntime/7.29.0'
content_type: 'application/json; charset=utf-8'
payload: '{"wake": true}'
wakescreen_off: #NÃO DESLIGA O ECRÃ, apenas liberta-o de estar acordado
url: http://<IP DO DISPOSITIVO>:2971/api/command
method: POST
headers:
accept: "*/*"
user-agent: 'PostmanRuntime/7.29.0'
content_type: 'application/json; charset=utf-8'
payload: '{"wake": false}'
gobackhome: #Comando de redireccionamento. Apresenta a página Home
url: http://<IP DO DISPOSITIVO>:2971/api/command
method: POST
headers:
accept: "*/*"
user-agent: 'PostmanRuntime/7.29.0'
content_type: 'application/json; charset=utf-8'
payload: '{"url": "http://<IP DO HOME ASSISTANT>:8123/lovelace/0"}'
A partir daqui adaptei as automatizações que já tinha, nomeadamente o TTS:
alias: Tablet - Someone at the door
description: ""
trigger:
- platform: state
entity_id:
- binary_sensor.lumi_lumi_vibration_aq1_iaszone
to: "on"
condition: []
action:
- service: rest_command.wakescreen_on
data: {}
- service: rest_command.wakescreen_off
data: {}
- service: rest_command.chimedoors
data: {}
- service: rest_command.speak
data:
text: Alguém tocou à campainha
- delay:
hours: 0
minutes: 0
seconds: 30
milliseconds: 0
- service: rest_command.gobackhome
data: {}
mode: single
O comportamento desta automatização é o esperado, ou seja, alguém toca à campainha, o tablet acorda o ecrã com o comando ‘rest_command.wakescreen_on’, liberta o ecrã acordado com o comando ‘rest_command.wakescreen_off’, redireciona para o ecrã das camaras com o comando ‘rest_command.chimedoors’, alerta via TTS com o comando ‘rest_command.speak’ e atribuindo a mensagem a ser anunciada à variável text ‘text: Alguém tocou à campainha’, espera 30s e retorna ao home no comando ‘rest_command.gobackhome’.
Espero que seja útil a alguém!
Abraço