האפליקציה כבר בונה לכם לוח בקרה עובד כשמסנכרנים - העמוד הזה הוא גרסת הדלקס שנבנית ביד. עשרה צעדים, ה-YAML של כל כרטיס, ותצוגה שלמה שאפשר להדביק בבת אחת. אריחי זכוכית ירוקים, קריאת תמונה חיה, הסצנות שלכם וגרף שעות לייזר, הכול מחיישן מקרן אחד. משנים שתי מחרוזות והוא שלכם.
configuration.yaml והפעלתם מחדש את Home Assistant. זה מה שיוצר את הסקריפטים שכל לחצן בקרה בהמשך קורא להם.שני דברים מזינים את לוח הבקרה הזה, וההבדל ביניהם חשוב בכל שלב להלן.
| מגיע מ | נותן לכם |
|---|---|
חיישן המקרן, sensor.YOUR_PROJECTOR | כל קריאה. הפעלה, קלט, מצב צבע, כל נתוני התמונה, HDR ואות, עדשה וגאומטריה, שעות מנורה. חי ברגע שמתחברים ומסנכרנים, בלי בלוק העתקה. |
הסקריפטים המסונכרנים של האפליקציה, script.projpilot_YOURSERIAL_... | כל בקרה. הפעלה, קלטים, מצבי צבע, זיכרונות עדשה והסצנות שלכם. הם קיימים רק אחרי שבלוק ההעתקה הודבק, Home Assistant הופעל מחדש ולחצתם על סנכרון עם HA. |
כולם נמצאים בחנות ברירת המחדל של HACS. ב-Home Assistant: HACS › Frontend › Explore & Download Repositories, חפשו את השם, לחצו Download, ואז רעננו את הדפדפן.
| מחפשים | משמש ל | אם מדלגים |
|---|---|---|
| Mushroom | כל אריח מידע, לחצן בקרה ואריח סצנה | משתמשים בכרטיס button רגיל. עובד, אבל נראה יותר מרובע. |
| button-card | הגיבור, עם התווית החיה שלו | השתמשו בכרטיס entity, או בכרטיס תבנית של Mushroom עם פחות פירוט. |
| card-mod | רקע הזכוכית הירוקה, המסגרות והגרדיאנטים | הכול עדיין עובד. פשוט בלי הזוהר. |
| mini-graph-card | היסטוריית שעות הלייזר תחת תחזוקה | משתמשים בכרטיס history-graph המובנה. |
כל קטע קוד בעמוד הזה משתמש בשני מציינים. מוצאים את שלכם פעם אחת, והשאר זה העתק-הדבק.
sensor.YOUR_PROJECTOR → כלי פיתוח › מצבים ב-Home Assistant, וסננו לפי projector_pilot. משהו כמו sensor.projector_pilot_epson_qb1000b_qb1000w.YOURSERIAL → פתחו את האפליקציה, הגדרות › אוטומציה ביתית › Home Assistant. המזהה הנגזר מהמספר הסידורי מוצג שם, והוא האמצע של כל שם סקריפט מסונכרן: script.projpilot_YOURSERIAL_power_on, script.projpilot_YOURSERIAL_input_hdmi1, וכן הלאה.אפשר גם לסנן את כלי פיתוח › מצבים לפי projpilot כדי לראות את כל רשימת הבקרות המסונכרנת בבת אחת, אחרי שבלוק ההעתקה והסנכרון של צעד 1 הושלמו.
ההגדרות של התצוגה עצמה, אם אתם מעדיפים להקליד אותן:
title: Projector Pilot views: - title: Projector Pilot path: projector-pilot icon: mdi:projector cards: []
התחילו במשהו שרק קורא, כדי לדעת שה-ID של הישות נכון לפני שנוגעים במשהו ששולח פקודה. זה חי ברגע שחיישן המקרן קיים, בלי בלוק העתקה, בלי סנכרון. הוסיפו כרטיס, עריכה ב-YAML, הדביקו:
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; }'
אותה צורה קוראת כל אחד מכ-80 המאפיינים שהחיישן נושא: החליפו את brightness ב-contrast, gamma, color_temp, hdr_pq, lamp_hours, כל מה שתרצו באריח.
שמרו. אם מופיע מספר או מילה אמיתיים, ה-ID של הישות נכון והכול בהמשך יעבוד. אם מופיע ריק, חזרו לצעד 2.
כותרת פשוטה היא שטח מת. זה כרטיס markdown עם רקע גרדיאנט מ-card-mod, והוא מה שהופך ערימת אריחים למקטעים עם שמות. כל מקטע בלוח נפתח באחד כאלה, רק עם תווית ואימוג'י אחרים.
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; }'
שנו את קוד האימוג'י ואת טקסט התווית; בלוק card-mod זהה בכל מקטע.
זה שולח פקודה במקום רק לקרוא ערך, ולכן הסקריפטים צריכים להתקיים קודם. הוא קורא ל-script.projpilot_YOURSERIAL_power_on, שהאפליקציה כותבת רק אחרי שמדביקים את בלוק ההעתקה שלה ל-configuration.yaml, מפעילים מחדש את Home Assistant ולוחצים על סנכרון עם 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; }'
אותו כרטיס עבור כיבוי, השחרת מסך, HDMI 1, HDMI 2, השתקת A/V, מצב צבע או זיכרון עדשה: רק התווית, הסמל ו-service משתנים.
הגיבור בראש הלוח הוא button-card: מצב הפעלה גדול, סיכום בשורה אחת הבנוי ממספר מאפיינים בבת אחת, וטיפול הזכוכית הירוקה על הכרטיס כולו ולא רק על המסגרת.
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'' ]]]'
מקוצר לחלקים שמשתנים בכל התקנה. הכרטיס המלא קובע גם את מיקומי הסמל, השם והתווית ברשת; ראו את ההורדה בצעד 10 לכל הפרטים.
מעדיפים פס דק יותר? mushroom-chips-card עושה את אותה עבודה בשורה אחת של שבבים קטנים: מצב הפעלה, קלט, מצב צבע, טווח וידאו ושעות מנורה, כל אחד תבנית שקוראת state_attr('sensor.YOUR_PROJECTOR', ...). השתמשו באחד או בשני, לא בשניהם, בראש הלוח.
כל סצנה שאתם שומרים באפליקציה נהפכת לסקריפט בשם script.projpilot_YOURSERIAL_scene_<id> אחרי הסנכרון, ואריח לסצנה הוא אותו כרטיס לחצן בקרה מצעד 6 עם שם סצנה וסמל.
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; }'
החליפו את YOURSCENE1 במזהה שמוצג לאותה סצנה ברשימת הבקרות המסונכרנת של האפליקציה. אריח אחד לכל סצנה, בתוך horizontal-stack.
חיישן המקרן מתועד על ידי Home Assistant כמו כל חיישן אחר, ולכן ל-lamp_hours יש היסטוריה בחינם. בלי חיישנים נוספים, בלי עוזרים, בלי שום דבר להגדיר קודם, תחת מקטע התחזוקה.
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 שעות הן שבועיים. שעות לייזר ומנורה עולות בהתמדה ולא קופצות, ולכן חלון של שבועיים בדרך כלל מספיק כדי לראות את המגמה בלי שהגרף ייראה שטוח.
התצוגה השלמה, כל מקטע וכל כרטיס מצילום המסך בראש העמוד הזה, עם מציינים במקום ID-ים של ישויות.
YOUR_PROJECTOR במזהה הישות של חיישן המקרן שלכם מצעד 2, ואת YOURSERIAL במזהה הנגזר מהמספר הסידורי שלכם מצעד 2.YOURSCENE1, YOURSCENE2 ו-YOURSCENE3 בשלושת מזהי הסצנות שלכם, או הוסיפו והסירו אריחים כך שיתאימו למספר הסצנות שיש לכם בפועל.configuration.yaml, Home Assistant מופעל מחדש ולוחצים על סנכרון עם HA.בדקו את שם המאפיין מול מה שהחיישן באמת נושא: כלי פיתוח › מצבים, הישות sensor.YOUR_PROJECTOR שלכם, וקראו את רשימת המאפיינים שלה. כמה קריאות, כמו HDR PQ או HDR HLG, מתמלאות רק כשהמקרן מקבל באמת אות מהסוג הזה, ולכן Unknown בשתיים האלה יכול להיות תקין ולא תקלה. אם החיישן כולו נראה דליל, הערו את המקרן: מכשיר במצב המתנה מפרסם מעט מאוד.
עדיין לא הדבקתם את בלוק ההעתקה, או ש-Home Assistant לא הופעל מחדש מאז. לחצני הבקרה והסצנות קוראים לסקריפטים שהאפליקציה כותבת, והסקריפטים האלה לא קיימים עד שהגדרות › אוטומציה ביתית › Home Assistant באפליקציה הדביקו את בלוק ההעתקה ל-configuration.yaml, Home Assistant הופעל מחדש פעם אחת, וסנכרון עם HA נלחץ. הריצו קודם בדיקת חיבור באפליקציה - היא אומרת לכם אם הבלוק קיים לפני שאתם מחפשים טעות בלוח הבקרה.
סננו לפי projpilot ולא לפי המספר הסידורי המלא - קל יותר לראות את כל הרשימה. אם בקרה או סצנה שהוספתם לאחרונה חסרות, לחצו שוב על סנכרון עם HA; הוא מתעדכן במקום ולא דורש התקנה חדשה. אם סקריפטים ישנים ומתים מבלגנים את הרשימה אחרי שמחקתם סצנה, השתמשו בהסרת סקריפטים יתומים באפליקציה.
התבנית קבועה, האמצע לא. החיישן נקרא על שם הדגם של המקרן שלכם, וכל סקריפט נושא את המספר הסידורי של המקרן שלכם, לא את מציינים שבעמוד הזה. קחו את שניהם מכלי פיתוח › מצבים ממסך Home Assistant של האפליקציה, כמו בצעד 2, והשתמשו בהם במקום להקליד את טקסט הדוגמה.
אוטומציה ביתית היא תוספת חד-פעמית. בלי מנוי, בלי חשבון, בלי ענן. רכישה אחת פותחת אותה בכל פלטפורמה שבבעלותכם.
לא. כשלוחצים על סנכרון עם HA באפליקציה, היא בונה בשבילכם לוח בקרה מוכן של Projector Pilot ישירות ב-Home Assistant - חיישן המקרן החי ולחצן לכל בקרה ולכל סצנה - והוא מופיע בסרגל הצד בשם Projector Pilot. העמוד הזה נועד לבנות ידנית את הגרסה העשירה יותר בסגנון הזכוכית הירוקה, או להתאים אישית את מה שהסנכרון יצר.
כדי להתאים למראה שבצילום המסך - כן: Mushroom, button-card, card-mod ו-mini-graph-card. אף אחד מהם לא נדרש כדי שהבקרות עצמן יעבדו - כל לחצן הוא קריאה פשוטה לסקריפט, והכרטיסים המותאמים הם רק העיצוב שמעל.
חיישן המקרן מפרסם את הקריאות שלו ברגע שמתחברים ומסנכרנים באפליקציה, ולכן אריחי המידע חיים מיד. לחצני הבקרה והסצנות קוראים לסקריפטים שקיימים ב-Home Assistant רק אחרי שמדביקים את בלוק ההעתקה של האפליקציה ל-configuration.yaml, מפעילים מחדש את Home Assistant ולוחצים פעם אחת על סנכרון עם HA.
התבנית כן, התווים המדויקים לא. חיישן המקרן נקרא על שם הדגם של המקרן שלכם, וכל סקריפט נקרא על שם המספר הסידורי שלו. בכל מקום שבו העמוד הזה כותב YOUR_PROJECTOR, הכניסו את מזהה הישות של החיישן שלכם; בכל מקום שבו כתוב YOURSERIAL, הכניסו את המזהה הנגזר מהמספר הסידורי שמוצג במסך Home Assistant באפליקציה.