Aplikacja sama buduje działający panel podczas synchronizacji - ta strona to wersja deluxe, budowana ręcznie. Dziesięć kroków, YAML każdej karty i kompletny widok, który wkleisz za jednym razem. Kafelki z zielonego szkła, podgląd obrazu na żywo, Twoje sceny i wykres godzin pracy lasera, wszystko z jednego czujnika projektora. Zmień dwa ciągi znaków i jest Twój.
configuration.yaml i ponownym uruchomieniu Home Assistant. To tworzy skrypty, które wywołuje każdy przycisk sterowania poniżej.Ten dashboard zasilają dwa źródła, a różnica między nimi ma znaczenie na każdym z poniższych kroków.
| Pochodzi z | Daje Ci |
|---|---|
Czujnik projektora, sensor.YOUR_PROJECTOR | Każdy odczyt. Zasilanie, wejście, tryb koloru, wszystkie wartości obrazu, HDR i sygnał, obiektyw i geometria, godziny pracy lampy. Na żywo, gdy tylko się zalogujesz i zsynchronizujesz, bez bloku do skopiowania. |
Zsynchronizowane skrypty aplikacji, script.projpilot_YOURSERIAL_... | Każde sterowanie. Zasilanie, wejścia, tryby koloru, pamięci obiektywu i Twoje sceny. Istnieją dopiero po wklejeniu bloku do skopiowania, ponownym uruchomieniu Home Assistant i dotknięciu Synchronizuj z HA. |
Wszystkie cztery są w domyślnym sklepie HACS. W Home Assistant: HACS › Frontend › Przeglądaj & pobieraj repozytoria, wyszukaj nazwę, kliknij Pobierz, a potem odśwież przeglądarkę.
| Szukaj | Do czego służy | Jeśli pominiesz |
|---|---|---|
| Mushroom | Każdy kafelek informacyjny, przycisk sterowania i kafelek sceny | Użyj zwykłej karty button. Działa, wygląda bardziej kanciasto. |
| button-card | Kafelek główny z etykietą na żywo | Użyj karty entity albo karty szablonu Mushroom z mniejszą ilością szczegółów. |
| card-mod | Tło z zielonego szkła, obramowania i gradienty | Wszystko nadal działa. Tylko bez poświaty. |
| mini-graph-card | Historia godzin pracy lasera w sekcji Konserwacja | Użyj wbudowanej karty history-graph. |
Każdy fragment kodu na tej stronie używa dwóch symboli zastępczych. Znajdź swoje raz, a resztę po prostu skopiujesz.
sensor.YOUR_PROJECTOR → Narzędzia deweloperskie › Stany w Home Assistant, filtruj po projector_pilot. Coś w rodzaju sensor.projector_pilot_epson_qb1000b_qb1000w.YOURSERIAL → otwórz aplikację, Ustawienia › Automatyka domowa › Home Assistant. Identyfikator utworzony z numeru seryjnego jest tam pokazany i stanowi środek nazwy każdego zsynchronizowanego skryptu: script.projpilot_YOURSERIAL_power_on, script.projpilot_YOURSERIAL_input_hdmi1 i tak dalej.Możesz też przefiltrować Narzędzia deweloperskie › Stany po projpilot, by zobaczyć całą listę zsynchronizowanych elementów sterowania naraz, gdy blok do skopiowania z kroku 1 i synchronizacja są gotowe.
Własne ustawienia widoku, jeśli wolisz je wpisać:
title: Projector Pilot views: - title: Projector Pilot path: projector-pilot icon: mdi:projector cards: []
Zacznij od czegoś, co tylko odczytuje, byś wiedział, że ID encji jest poprawny, zanim dotkniesz czegokolwiek, co wysyła polecenia. Ten działa na żywo, gdy tylko istnieje czujnik projektora, bez bloku do skopiowania i bez synchronizacji. Dodaj kartę, Edytuj w YAML, wklej:
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; }'
Ten sam kształt odczytuje dowolny z ~80 atrybutów, które niesie czujnik: zamień brightness na contrast, gamma, color_temp, hdr_pq, lamp_hours, cokolwiek chcesz na kafelku.
Zapisz. Jeśli pojawi się prawdziwa liczba lub słowo, ID encji jest poprawny i wszystko poniżej zadziała. Jeśli jest puste, wróć do kroku 2.
Zwykły tytuł to martwa przestrzeń. To karta markdown z gradientowym tłem z card-mod i to ona zamienia stos kafelków w nazwane sekcje. Każda sekcja na tablicy zaczyna się od takiej karty, tylko z inną etykietą i 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; }'
Zmień kod emoji i tekst etykiety; blok card-mod jest taki sam w każdej sekcji.
Ten wysyła polecenie, zamiast tylko odczytywać wartość, więc skrypty muszą już istnieć. Wywołuje script.projpilot_YOURSERIAL_power_on, który aplikacja zapisuje dopiero po wklejeniu jej bloku do skopiowania do configuration.yaml, ponownym uruchomieniu Home Assistant i dotknięciu Synchronizuj z 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; }'
Ta sama karta dla Wyłącz zasilanie, Screen Blank, HDMI 1, HDMI 2, A/V Mute, trybu koloru lub pamięci obiektywu: zmieniają się tylko etykieta, ikona i service.
Kafelek główny na górze tablicy to button-card: duży stan zasilania, jednowierszowe podsumowanie zbudowane z kilku atrybutów naraz i efekt zielonego szkła na całej karcie, a nie tylko na jej obramowaniu.
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'' ]]]'
Skrócone do elementów, które zmieniają się w każdej instalacji. Pełna karta ustawia też pozycje ikony, nazwy i etykiety w siatce; całość znajdziesz w pliku do pobrania w kroku 10.
Wolisz smuklejszy pasek? mushroom-chips-card robi to samo w jednym rzędzie małych znaczników: stan zasilania, wejście, tryb koloru, zakres wideo i godziny pracy lampy, każdy jako szablon odczytujący state_attr('sensor.YOUR_PROJECTOR', ...). Użyj jednego albo drugiego, nie obu naraz, na górze tablicy.
Każda scena zapisana w aplikacji staje się po synchronizacji skryptem o nazwie script.projpilot_YOURSERIAL_scene_<id>, a kafelek dla niej to ta sama karta przycisku sterowania z kroku 6 z nazwą sceny i ikoną.
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; }'
Zastąp YOURSCENE1 identyfikatorem pokazanym dla tej sceny na liście zsynchronizowanych elementów sterowania w aplikacji. Jeden kafelek na scenę, w horizontal-stack.
Czujnik projektora jest rejestrowany przez Home Assistant jak każdy inny, więc lamp_hours ma historię za darmo. Bez dodatkowych czujników, bez pomocników, bez niczego do wstępnej konfiguracji, w sekcji Konserwacja.
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 godzin to dwa tygodnie. Godziny pracy lasera i lampy rosną równomiernie, a nie skaczą, więc dwutygodniowe okno zwykle wystarcza, by zobaczyć trend, a wykres nie wygląda na płaski.
Kompletny widok, każda sekcja i każda karta ze zrzutu ekranu na górze tej strony, z symbolami zastępczymi zamiast ID encji.
YOUR_PROJECTOR identyfikatorem encji czujnika projektora z kroku 2, a YOURSERIAL identyfikatorem utworzonym z numeru seryjnego z kroku 2.YOURSCENE1, YOURSCENE2 i YOURSCENE3 własnymi trzema identyfikatorami scen albo dodaj i usuń kafelki, aby pasowały do liczby posiadanych scen.configuration.yaml, Home Assistant nie zostanie uruchomiony ponownie i nie dotkniesz Synchronizuj z HA.Porównaj nazwę atrybutu z tym, co faktycznie niesie czujnik: Narzędzia deweloperskie › Stany, Twoja encja sensor.YOUR_PROJECTOR, i przeczytaj listę jej atrybutów. Kilka odczytów, jak HDR PQ czy HDR HLG, wypełnia się tylko wtedy, gdy projektor aktywnie odbiera taki sygnał, więc Nieznane przy tych dwóch może być poprawne, a nie awarią. Jeśli cały czujnik wygląda na ubogi, obudź projektor: urządzenie w trybie gotowości publikuje bardzo mało.
Nie wkleiłeś jeszcze bloku do skopiowania albo Home Assistant nie został od tego czasu uruchomiony ponownie. Przyciski sterowania i scen wywołują skrypty zapisywane przez aplikację, a te skrypty nie istnieją, dopóki w aplikacji w Ustawienia › Automatyka domowa › Home Assistant blok do skopiowania nie zostanie wklejony do configuration.yaml, Home Assistant nie zostanie raz uruchomiony ponownie i nie dotkniesz Synchronizuj z HA. Najpierw uruchom w aplikacji Testuj połączenie - powie Ci, czy blok jest obecny, zanim zaczniesz szukać błędu w panelu.
Filtruj po projpilot zamiast po pełnym numerze seryjnym - łatwiej zobaczyć całą listę. Jeśli brakuje elementu sterowania lub sceny dodanej niedawno, dotknij ponownie Synchronizuj z HA; aktualizuje na miejscu, nie wymaga nowej konfiguracji. Jeśli stare, martwe skrypty zaśmiecają listę po usunięciu sceny, użyj w aplikacji Usuń osierocone skrypty.
Wzorzec jest stały, środek nie. Twój czujnik jest nazwany od modelu Twojego projektora, a każdy skrypt zawiera numer seryjny Twojego projektora, a nie symbole zastępcze z tej strony. Weź oba z Narzędzia deweloperskie › Stany i ekranu Home Assistant w aplikacji, jak w kroku 2, i użyj ich zamiast przykładowego tekstu.
Automatyka domowa to jednorazowy dodatek. Bez subskrypcji, bez konta, bez chmury. Jeden zakup odblokowuje ją na każdej platformie, której używasz.
Nie. Gdy w aplikacji dotkniesz Synchronizuj z HA, zbuduje ona dla Ciebie gotowy panel Projector Pilot bezpośrednio w Home Assistant - czujnik projektora na żywo oraz przycisk dla każdego elementu sterowania i każdej sceny - a w panelu bocznym pojawi się jako Projector Pilot. Ta strona służy do ręcznego zbudowania bogatszej wersji z zielonego szkła albo do dostosowania tego, co utworzyła synchronizacja.
Aby odtworzyć wygląd ze zrzutu ekranu, tak: Mushroom, button-card, card-mod i mini-graph-card. Żadna z nich nie jest wymagana do działania samych elementów sterowania - każdy przycisk to zwykłe wywołanie skryptu, a karty niestandardowe to tylko warstwa wyglądu.
Czujnik projektora publikuje swoje odczyty, gdy tylko zalogujesz się i zsynchronizujesz w aplikacji, więc kafelki informacyjne działają od razu. Przyciski sterowania i scen wywołują skrypty, które istnieją w Home Assistant dopiero po wklejeniu bloku z aplikacji (Kopiuj blok) do configuration.yaml, ponownym uruchomieniu Home Assistant i jednokrotnym dotknięciu Synchronizuj z HA.
Wzorzec tak, dokładne znaki nie. Czujnik Twojego projektora jest nazwany od modelu projektora, a każdy skrypt od jego numeru seryjnego. Wszędzie, gdzie ta strona pisze YOUR_PROJECTOR, wstaw identyfikator encji własnego czujnika; wszędzie, gdzie pisze YOURSERIAL, wstaw identyfikator utworzony z numeru seryjnego, pokazany na ekranie Home Assistant w aplikacji.