A app já cria um painel funcional quando sincroniza - esta página é a versão de luxo, feita à mão. Dez passos, o YAML de cada cartão e uma vista completa que pode colar de uma só vez. Mosaicos de vidro verde, uma leitura da imagem em direto, as suas Cenas e um gráfico das horas do laser, tudo a partir de um único sensor do projetor. Mude duas cadeias de texto e fica seu.
configuration.yaml e reiniciar o Home Assistant. É isto que cria os scripts que cada botão de controlo abaixo chama.Este painel é alimentado por duas coisas, e a diferença conta em todos os passos seguintes.
| Origem | O que oferece |
|---|---|
O sensor do projetor, sensor.YOUR_PROJECTOR | Todas as leituras. Energia, entrada, modo de cor, todos os valores da imagem, HDR e sinal, lente e geometria, horas da lâmpada. Em direto assim que inicia sessão e sincroniza, sem precisar do bloco Copiar. |
Os scripts sincronizados da app, script.projpilot_YOURSERIAL_... | Todos os controlos. Energia, entradas, modos de cor, memórias da lente e as suas Cenas. Estes só existem depois de colar o bloco Copiar, reiniciar o Home Assistant e tocar em Sincronizar com o HA. |
Os quatro estão na loja predefinida do HACS. No Home Assistant: HACS › Frontend › Explore & Download Repositories, procure o nome, clique em Download e recarregue o navegador.
| Procurar por | Serve para | Se o ignorar |
|---|---|---|
| Mushroom | Todos os mosaicos de informação, botões de controlo e mosaicos de Cena | Use um cartão button simples. Funciona, mas fica mais quadrado. |
| button-card | O destaque, com a respetiva etiqueta em direto | Use um cartão entity, ou um cartão de modelo Mushroom com menos detalhe. |
| card-mod | O fundo de vidro verde, os contornos e os gradientes | Tudo continua a funcionar. Só falta o brilho. |
| mini-graph-card | O histórico das horas do laser em Manutenção | Use o cartão history-graph incorporado. |
Todos os excertos desta página usam dois marcadores de posição. Encontre os seus uma vez e o resto é copiar e colar.
sensor.YOUR_PROJECTOR → Ferramentas de programação › Estados no Home Assistant, filtre por projector_pilot. Algo como sensor.projector_pilot_epson_qb1000b_qb1000w.YOURSERIAL → abra a app, Definições › Automação doméstica › Home Assistant. O ID derivado do número de série aparece ali mesmo, e é o meio do nome de cada script sincronizado: script.projpilot_YOURSERIAL_power_on, script.projpilot_YOURSERIAL_input_hdmi1, e assim por diante.Também pode filtrar Ferramentas de programação › Estados por projpilot para ver de uma vez toda a lista de controlos sincronizados, depois de concluídos o bloco Copiar e a sincronização do passo 1.
As definições da própria vista, se preferir escrevê-las:
title: Projector Pilot views: - title: Projector Pilot path: projector-pilot icon: mdi:projector cards: []
Comece por algo que apenas lê, para saber que o ID da sua entidade está certo antes de mexer em algo que envia um comando. Este fica em direto assim que o sensor do projetor existe, sem bloco Copiar nem sincronização. Adicione um cartão, Editar em YAML, cole:
type: custom:mushroom-template-card
primary: Brightness
secondary: '{{ state_attr(''sensor.YOUR_PROJECTOR'',''brightness'') }}'
icon: mdi:brightness-6
icon_color: green
layout: vertical
fill_container: true
card_mod:
style: 'ha-card { background: rgba(18,26,20,0.60); border: 1px solid rgba(61,220,107,0.20);
border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32); backdrop-filter: blur(8px);
min-height: 104px; }'
A mesma forma lê qualquer um dos cerca de 80 atributos que o sensor tem: troque brightness por contrast, gamma, color_temp, hdr_pq, lamp_hours, o que quiser no mosaico.
Guarde. Se aparecer um número ou uma palavra real, o ID da sua entidade está certo e tudo o que se segue vai funcionar. Se aparecer em branco, volte ao passo 2.
Um título simples é espaço morto. Este é um cartão markdown com um fundo em gradiente do card-mod, e é o que transforma uma pilha de mosaicos em secções com nome. Cada secção do painel abre com um destes, só muda a etiqueta e o emoji.
type: markdown
content: '🔌 **POWER & SOURCE**'
card_mod:
style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.30), rgba(16,120,60,0.30));
border: 1px solid rgba(61,220,107,0.45); border-radius: 14px; box-shadow: 0 6px 20px rgba(0,0,0,0.3); }
ha-markdown { padding: 12px 20px !important; } ha-markdown p { margin: 0 !important;
letter-spacing: 3px; color: #eafff0; font-size: 14px; font-weight: 700; }'
Mude o código do emoji e o texto da etiqueta; o bloco card-mod é idêntico em todas as secções.
Este envia um comando em vez de apenas ler um valor, por isso precisa que os scripts existam primeiro. Chama script.projpilot_YOURSERIAL_power_on, que a app só escreve depois de colar o bloco Copiar em configuration.yaml, reiniciar o Home Assistant e tocar em Sincronizar com o HA.
type: custom:mushroom-template-card
primary: Power On
icon: mdi:power
icon_color: green
layout: vertical
fill_container: true
tap_action:
action: call-service
service: script.projpilot_YOURSERIAL_power_on
card_mod:
style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.16), rgba(16,90,46,0.20));
border: 1px solid rgba(61,220,107,0.34); border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32);
min-height: 92px; }'
O mesmo cartão serve para Desligar, Ecrã em branco, HDMI 1, HDMI 2, A/V Mute, um modo de cor ou uma memória da lente: só mudam a etiqueta, o ícone e service.
O destaque no topo do painel é um button-card: um grande estado de energia, um resumo de uma linha construído a partir de vários atributos em simultâneo e o efeito de vidro verde no cartão inteiro e não apenas no contorno.
type: custom:button-card entity: sensor.YOUR_PROJECTOR name: Epson QB1000 show_state: true show_label: true size: 48px state_display: '[[[ return entity.state==''on'' ? ''Powered on'' : ''Standby''; ]]]' label: '[[[ var a=entity.attributes; return (a.input||''-'')+'' • ''+(a.color_mode||''-'')+ '' • ''+(a.video_range||''-'')+'' • ''+(a.lamp_hours||0)+'' h''; ]]]' styles: card: - height: 176px - background: linear-gradient(135deg, rgba(61,220,107,0.32), rgba(11,64,34,0.6)) - border: 1px solid rgba(61,220,107,0.5) - border-radius: 22px - box-shadow: 0 12px 36px rgba(0,0,0,0.42) - padding: 20px state: - color: '[[[ return entity.state==''on'' ? ''#3ddc6b'' : ''#8a9'' ]]]'
Reduzido às peças que mudam em cada instalação. O cartão completo também define o ícone, o nome e as posições da grelha das etiquetas; veja a transferência no passo 10 para tudo isso.
Prefere uma faixa mais fina? Um mushroom-chips-card faz o mesmo trabalho numa linha de pequenas etiquetas: estado de energia, entrada, modo de cor, gama de vídeo e horas da lâmpada, cada uma um modelo que lê state_attr('sensor.YOUR_PROJECTOR', ...). Use um ou outro, não ambos, no topo do painel.
Cada Cena que guarda na app torna-se, depois de sincronizar, um script com o nome script.projpilot_YOURSERIAL_scene_<id>, e um mosaico para uma delas é o mesmo cartão de botão de controlo do passo 6, com o nome e o ícone da Cena.
type: custom:mushroom-template-card
primary: Movie Night
icon: mdi:movie-open
icon_color: green
layout: vertical
fill_container: true
tap_action:
action: call-service
service: script.projpilot_YOURSERIAL_scene_YOURSCENE1
card_mod:
style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.16), rgba(16,90,46,0.20));
border: 1px solid rgba(61,220,107,0.34); border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32);
min-height: 92px; }'
Substitua YOURSCENE1 pelo ID mostrado para essa Cena na lista de controlos sincronizados da app. Um mosaico por Cena, num horizontal-stack.
O sensor do projetor é registado pelo Home Assistant como qualquer outro, por isso lamp_hours tem um histórico de graça. Sem sensores extra, sem auxiliares, nada para configurar primeiro, na secção Manutenção.
type: custom:mini-graph-card
entities:
- entity: sensor.YOUR_PROJECTOR
attribute: lamp_hours
name: Laser hours
name: Laser hours
icon: mdi:lightbulb-on-outline
line_color: '#3ddc6b'
line_width: 4
hours_to_show: 336
points_per_hour: 0.5
height: 96
animate: true
card_mod:
style: 'ha-card { background: rgba(18,26,20,0.60); border: 1px solid rgba(61,220,107,0.20);
border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32); backdrop-filter: blur(8px); }'
336 horas são duas semanas. As horas do laser e da lâmpada sobem de forma constante, sem saltos, por isso uma janela de duas semanas costuma chegar para ver a tendência sem o gráfico parecer plano.
A vista completa, com todas as secções e todos os cartões da captura de ecrã no topo desta página, com marcadores no lugar dos IDs das entidades.
YOUR_PROJECTOR pelo ID da entidade do sensor do seu projetor do passo 2, e YOURSERIAL pelo seu ID derivado do número de série do passo 2.YOURSCENE1, YOURSCENE2 e YOURSCENE3 pelos IDs das suas três Cenas, ou adicione e remova mosaicos conforme o número de Cenas que realmente tem.configuration.yaml, o Home Assistant ser reiniciado e você tocar em Sincronizar com o HA.Compare o nome do atributo com o que o sensor realmente tem: Ferramentas de programação › Estados, a sua entidade sensor.YOUR_PROJECTOR, e leia a lista de atributos. Algumas leituras, como HDR PQ ou HDR HLG, só são preenchidas enquanto o projetor está mesmo a receber esse tipo de sinal, por isso Desconhecido nessas duas pode ser correto e não uma avaria. Se o sensor todo parece escasso, acorde o projetor: uma unidade em standby publica muito pouco.
Ainda não colou o bloco Copiar, ou o Home Assistant não foi reiniciado desde então. Os botões de controlo e de Cena chamam scripts que a app escreve, e esses scripts não existem enquanto Definições › Automação doméstica › Home Assistant na app não tiver o bloco Copiar colado em configuration.yaml, o Home Assistant reiniciado uma vez e Sincronizar com o HA tocado. Execute primeiro Testar ligação na app - diz-lhe se o bloco está presente antes de ir à procura de um erro no painel.
Filtre por projpilot em vez do número de série completo - é mais fácil ver a lista toda. Se um controlo ou Cena que adicionou recentemente está em falta, toque outra vez em Sincronizar com o HA; atualiza no local, sem exigir uma configuração nova. Se scripts antigos e mortos estão a atulhar a lista depois de apagar uma Cena, use Remover scripts órfãos na app.
O padrão é fixo, o meio não. O seu sensor tem o nome do modelo do seu próprio projetor, e cada script leva o número de série do seu próprio projetor, não os marcadores desta página. Obtenha ambos em Ferramentas de programação › Estados e no ecrã do Home Assistant da app, como no passo 2, e use-os em vez de escrever o texto de exemplo.
A Automação doméstica é um extra de compra única. Sem subscrição, sem conta, sem nuvem. Uma compra desbloqueia-a em todas as plataformas que tem.
Não. Quando toca em Sincronizar com o HA na app, ela cria por si um painel Projector Pilot pronto a usar diretamente no Home Assistant - o sensor do projetor em direto mais um botão para cada controlo e Cena - e aparece na barra lateral como Projector Pilot. Esta página serve para construir à mão a versão mais rica em vidro verde, ou para personalizar o que a sincronização criou.
Para igualar o aspeto da captura de ecrã, sim: Mushroom, button-card, card-mod e mini-graph-card. Nenhum deles é necessário para os controlos de base funcionarem - cada botão é uma simples chamada de script, e os cartões personalizados são apenas o estilo por cima.
O sensor do projetor publica as suas leituras assim que inicia sessão e sincroniza na app, por isso os mosaicos de informação estão em direto logo de imediato. Os botões de controlo e de Cena chamam scripts que só existem no Home Assistant depois de colar o bloco Copiar da app em configuration.yaml, reiniciar o Home Assistant e tocar uma vez em Sincronizar com o HA.
O padrão sim, os carateres exatos não. O sensor do seu projetor tem o nome do modelo do projetor, e cada script tem o nome do número de série do projetor. Onde esta página escreve YOUR_PROJECTOR, coloque o ID da entidade do seu próprio sensor; onde escreve YOURSERIAL, coloque o ID derivado do número de série mostrado no ecrã do Home Assistant da app.