Bộ sưu tập Home Assistant Blueprints tích hợp AI (LLM) để tự động hóa nhà thông minh. Các blueprint được tối ưu cho Gemini 2.5 Flash — các mô hình khác có thể cần điều chỉnh nhỏ.
- Yêu cầu chung
- Tạo ảnh AI
- Camera & Giám sát
- Gửi tin nhắn
- Tiện ích
- Quản lý & Cập nhật
- Hướng dẫn nâng cao
| Yêu cầu | Chi tiết |
|---|---|
| Home Assistant | Phiên bản tối thiểu tùy blueprint (2024.10.0 – 2025.8.0) |
| AI Model | Khuyến nghị Gemini 2.5 Flash (hỗ trợ tạo ảnh & phân tích) |
| AI Task Entity | Cần tạo và cấu hình trong Settings → General (cho các blueprint tạo ảnh/phân tích) |
| Voice Assistant | Tùy chọn — cần cho các blueprint điều khiển bằng giọng nói |
Lưu ý quan trọng: Sau khi tạo script từ blueprint, hãy expose script cho Assist để có thể điều khiển bằng giọng nói. Không thay đổi tên script mặc định.
Tạo ảnh theo prompt bằng mô hình AI. Chỉ cần nói hoặc nhập mô tả, hệ thống sẽ tự sinh ảnh và lưu về Home Assistant.
| Thông tin | Chi tiết |
|---|---|
| Loại | Script |
| HA tối thiểu | 2025.8.0 |
| Yêu cầu | AI Task Entity hỗ trợ tạo ảnh |
Chạy chatgpt2api thì đừng cài blueprint này. Cổng chatgpt2api đã có sẵn công cụ
generate_imagevẽ được từ mọi kênh — Zalo, Telegram lẫn trợ lý trong nhà — kèmlibrary_mediađể xem lại vàdelete_mediađể dọn. Vào Cài đặt → Home Assistant → Giới hạn chức năng tích ô 🎨 Ảnh là nói với loa «vẽ con mèo» sẽ ra ảnh, không cần script nào trong HA cả.Cài cả hai thì hỏng theo hai đường. Một là trợ lý có hai công cụ cùng nói "tôi vẽ ảnh" nên chọn nhầm. Hai là mô tả trường của hai blueprint này nặng 3 918 ký tự, và chúng đi vào tool schema mỗi lượt chat — kể cả lượt bạn chỉ hỏi giờ. Để so: cả năm script gửi tin và phân tích file cộng lại, sau khi đã nén, chỉ tốn 1 784 ký tự.
Không dùng chatgpt2api thì blueprint này vẫn chạy độc lập bình thường.
Cấu hình:
- AI Task Entity: Chọn entity AI Task hỗ trợ tạo ảnh (để trống = dùng mặc định hệ thống)
- Output Directory: Thư mục lưu ảnh (mặc định:
/media) - Filename Prefix: Tiền tố tên file (mặc định:
ai_generated_)
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Tạo ảnh AI với ảnh tham chiếu đính kèm (kính, trang phục, phụ kiện). Hỗ trợ nhớ ngữ cảnh và xử lý lỗi tốt hơn.
| Thông tin | Chi tiết |
|---|---|
| Loại | Script |
| HA tối thiểu | 2025.8.0 |
| Yêu cầu | Input Text Helper |
Chạy chatgpt2api thì đừng cài blueprint này. Cổng chatgpt2api đã có sẵn công cụ
generate_imagevẽ được từ mọi kênh — Zalo, Telegram lẫn trợ lý trong nhà — kèmlibrary_mediađể xem lại vàdelete_mediađể dọn. Vào Cài đặt → Home Assistant → Giới hạn chức năng tích ô 🎨 Ảnh là nói với loa «vẽ con mèo» sẽ ra ảnh, không cần script nào trong HA cả.Cài cả hai thì hỏng theo hai đường. Một là trợ lý có hai công cụ cùng nói "tôi vẽ ảnh" nên chọn nhầm. Hai là mô tả trường của hai blueprint này nặng 3 918 ký tự, và chúng đi vào tool schema mỗi lượt chat — kể cả lượt bạn chỉ hỏi giờ. Để so: cả năm script gửi tin và phân tích file cộng lại, sau khi đã nén, chỉ tốn 1 784 ký tự.
Không dùng chatgpt2api thì blueprint này vẫn chạy độc lập bình thường.
Yêu cầu thiết lập trước — tạo Input Text Helper:
Vào Settings → Devices & Services → Helpers
Nhấn "+ Create Helper" → Chọn "Text"
Đặt tên phù hợp, max length 255
Lưu lại
Xem thêm: Hướng dẫn tạo Input Helper
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Tự động tạo ảnh phù hợp với thời tiết hiện tại theo buổi trong ngày (sáng, trưa, chiều, tối, đêm).
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2025.10.0 |
| Yêu cầu | Shell Command + Template Sensor |
Yêu cầu thiết lập trước — thêm vào configuration.yaml:
1. Tạo Shell Command để di chuyển file ảnh:
shell_command:
copy_weather_image: >
mv "{{ source }}" "{{ destination }}"hoặc dùng api nvidia trong configuration.yaml
pyscript:
allow_all_imports: true
hass_is_global: true
nvidia_api_key: !secret nvidia_api_keytrong secrets.yaml
nvidia_api_key: "nvapi-xxx"tải file https://github.com/TriTue2011/Blueprint/blob/main/scripts/weather_image.py cho vào folder pyscript. cách cài pyscript https://github.com/custom-components/pyscript.
2. Tạo Template Sensor nhận diện buổi trong ngày:
template:
- sensor:
- name: "Buổi trong ngày"
unique_id: time_of_day_vn
icon: >-
{% set h = now().hour %}
{% if 6 <= h < 11 %} mdi:weather-sunny
{% elif 11 <= h < 13 %} mdi:white-balance-sunny
{% elif 13 <= h < 18 %} mdi:weather-sunset
{% elif 18 <= h < 21 %} mdi:weather-night
{% else %} mdi:weather-night
{% endif %}
state: >-
{% set h = now().hour %}
{% if 6 <= h < 11 %} Sáng
{% elif 11 <= h < 13 %} Trưa
{% elif 13 <= h < 18 %} Chiều
{% elif 18 <= h < 21 %} Tối
{% else %} Đêm
{% endif %}
attributes:
hour: "{{ now().hour }}"
is_night: >-
{% set h = now().hour %}
{{ h < 6 or h >= 21 }}
is_daytime: >-
{% set h = now().hour %}
{{ h >= 6 and h < 18 }}
period_english: >-
{% set h = now().hour %}
{% if 6 <= h < 11 %} Morning
{% elif 11 <= h < 13 %} Noon
{% elif 13 <= h < 18 %} Afternoon
{% elif 18 <= h < 21 %} Evening
{% else %} Night
{% endif %}Dùng Gemini. Sử dụng addon (dockercompse) https://github.com/luuquangvu/Gemini-FastAPI và tích hợp https://github.com/luuquangvu/hass_local_openai_llm
Dùng api nvidia. đăng ký tại https://build.nvidia.com và dùng tích hợp https://github.com/luuquangvu/hass_local_openai_llm
Gộp 2 blueprint kèm gửi ảnh qua zalo
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Tự động tạo ảnh các danh lam thắng cảnh, công trình nổi tiếng trên thế giới bằng AI theo lịch trình hoặc khi được yêu cầu.
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2025.10.0 |
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Dùng giọng nói để yêu cầu AI phân tích camera — phát hiện người, thú cưng, phương tiện. Hỗ trợ khớp tên chính xác, tìm theo alias, hoặc kiểm tra tất cả camera cùng lúc.
| Thông tin | Chi tiết |
|---|---|
| Loại | Script |
| HA tối thiểu | 2025.8.0 |
| Yêu cầu | AI Task Entity, Camera entities |
Tính năng:
- Ưu tiên tìm camera theo
friendly_namechính xác - Hỗ trợ tìm theo alias (template sensor)
- Nếu không tìm thấy → kiểm tra tất cả camera (multi-mode)
- Hỗ trợ chế độ Parallel (nhanh) hoặc Sequential
Cấu hình:
- Entity Aliases: Sensor alias để ánh xạ tên camera — phải tạo trước, xem hướng dẫn tạo Sensor alias cho Assist
- AI Task Entity: Chọn entity AI Task (để trống = mặc định)
- Multi-Camera Check Mode: Parallel (nhanh) hoặc Sequential
Ví dụ lệnh giọng nói:
- "Kiểm tra cửa trước có ai không?"
- "Camera sân có con chó không?"
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Nói tên camera là chụp một tấm, hoặc quay một đoạn 1–60 giây. Trả về đường dẫn file để blueprint khác dùng tiếp — ghép với Phân tích file / ảnh (LLM) là thành "chụp rồi kể xem thấy gì".
| Thông tin | Chi tiết |
|---|---|
| Loại | Script |
| HA tối thiểu | 2024.12.0 |
| Yêu cầu | Sensor alias (xem hướng dẫn), Camera entities |
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Gửi ảnh hoặc file cho mô hình ngôn ngữ lớn (LLM) để phân tích nội dung và nhận câu trả lời thông minh.
| Thông tin | Chi tiết |
|---|---|
| Loại | Script |
| HA tối thiểu | 2025.8.0 |
| Yêu cầu | AI Task Entity |
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Tự động phân tích sự kiện camera bằng AI Task khi phát hiện có người đi qua vùng giám sát. Gửi thông báo kèm ảnh và phân tích AI qua điện thoại, Telegram, Zalo và TTS ra loa.
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2025.7.0 (bản Gemini và bản OpenAI) — 2026.3.0 (bản gộp) |
| Yêu cầu | Binary sensor (trigger), Camera entity |
Cấu hình:
- Trigger Sensor: Cảm biến kích hoạt (cửa, motion sensor) — domain:
binary_sensor - Trigger States: Chọn trạng thái from/to (mặc định: off → on)
- Person Occupancy Sensor: (Tùy chọn) Đợi phát hiện người trước khi phân tích
- Maximum Wait Time: Thời gian tối đa đợi phát hiện người (0 = không giới hạn)
Kênh thông báo hỗ trợ:
- Mobile App (điện thoại)
- Telegram
- Zalo Bot / Zalo Custom Bot
- TTS (phát qua loa)
Gemini
Open ai
Gộp Open ai và Gemini thêm phân tích động vật
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Bản viết lại của blueprint trên, cho nhà ở — chung cư và nhà đất — chứ không phải nơi đông người qua lại. Ba thứ mới: một cửa lọc rẻ tiền chặn báo động ảo trước khi tốn công, ảnh cho AI đọc tách khỏi ảnh gửi cho bạn xem, và một nhánh video chạy song song với nhánh ảnh.
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2026.3.0 |
| Yêu cầu | Binary sensor (kích hoạt), Camera entity, một AI Task entity |
| Chạy được với | Google Gemini, OpenAI, Ollama, và mọi AI Task provider khác |
Bật lên thì mỗi lần cảm biến kêu, blueprint chụp một tấm bằng camera phân tích rồi hỏi AI đúng một câu: có người hay không. Không có ai thì dừng ngay — khỏi chụp tiếp, khỏi quay video, khỏi phân tích. Prompt của bước này viết cực ngắn có chủ đích, vì nó chạy cả những lần chẳng có ai.
Đây là chỗ khác lớn nhất so với bản 3. Bạn khai hai camera:
- Camera cho AI đọc — chọn luồng phụ, thường có đuôi
-sub. - Camera cho ảnh gửi đi — chọn luồng chính, để ảnh nhận được thật nét.
Mỗi nhịp chụp bấm cả hai tấm cùng lúc, rồi mới chờ hết giãn cách mới sang nhịp sau. Nhờ vậy khi AI chấm "khung số 2 rõ nhất" thì tấm nét số 2 đúng là khoảnh khắc đó.
Vì sao đáng làm, đo trên máy thật với Qwen3-VL-4B:
| Đưa vào AI | Token | Thời gian |
|---|---|---|
| 3 ảnh luồng phụ | 978 | ~1,0 giây |
| 3 ảnh luồng chính | 8 425 | ~20 giây |
Cùng cảnh đó, cùng số người nhận ra, mô tả như nhau. Ảnh nét chỉ để mắt người xem, đưa vào AI là trả giá gấp hai mươi lần mà không được gì thêm.
Ảnh, video và kết quả phân tích, mỗi thứ có ô riêng với ba lựa chọn: gửi mọi lượt, chỉ khi có người, hoặc chỉ khi mất an ninh. Kết quả phân tích không bao giờ đi một mình — nó chỉ kèm theo khi ảnh hoặc video đã được gửi, nên ba nhân ba rút xuống còn sáu tình huống thật.
| # | Nguồn gửi khi | Phân tích gửi khi | Bạn nhận được gì |
|---|---|---|---|
| 1 | Mọi lượt | Cùng lúc | Ảnh tới ngay, chữ tới sau khi phân tích xong |
| 2 | Mọi lượt | Khi có người | Lượt nào cũng có ảnh, phòng trống thì không kèm chữ |
| 3 | Mọi lượt | Khi mất an ninh | Lượt nào cũng có ảnh, chỉ chuyện đáng ngờ mới kèm chữ |
| 4 | Khi có người | Cùng lúc | Im khi không có ai; có người thì đủ cả hai |
| 5 | Khi có người | Khi mất an ninh | Có người là thấy ảnh, chữ chỉ tới khi đáng ngờ |
| 6 | Khi mất an ninh | Cùng lúc | Im hoàn toàn trừ lúc đáng ngờ — ít làm phiền nhất |
Ba dòng có dính "mất an ninh" chỉ dùng được ở chế độ phân tích An ninh, vì ba chế độ kia không hỏi AI câu đáng ngờ hay không. Chọn nhầm thì blueprint tự hạ xuống "khi có người" và ghi một dòng vào nhật ký cho bạn biết, thay vì im lặng không gửi gì.
Telegram và Zalo cá nhân đều cho gửi ảnh hoặc video kèm chú thích, nên bạn nhận đúng một tin có cả hình lẫn lời. Chỉ khi gửi nhiều ảnh mới phải tách hai lần, vì dịch vụ gửi chùm không có chỗ đặt chú thích.
Trần từng kênh khác nhau và blueprint đã tính sẵn: Telegram gộp tối đa 10 ảnh một chùm, Zalo cá nhân tới 50, Zalo Bot không có chùm nên mỗi tấm một tin, còn thông báo điện thoại thì mỗi tấm một thông báo.
Đường dẫn ảnh để tương đối, nên ứng dụng tự nối với chính máy chủ đã gửi thông báo: ở nhà thì đi mạng LAN, ra ngoài thì đi tên miền. Bạn không phải khai địa chỉ nào cả.
Câu hiện trên màn hình có emoji, dấu hai chấm và giờ giấc viết tắt — đọc nguyên văn ra loa nghe rất kỳ. Bật ô này thì AI viết lại thành một câu nói được: bỏ ký hiệu, đọc số thành chữ, dưới ba mươi từ. Tắt thì quay về câu ghép sẵn.
Dành cho ai chạy model tại nhà và cho nó ngủ lúc rảnh để nhường GPU. Blueprint gửi một lời gọi rỗng ngay lúc kích hoạt, chạy song song với việc chờ xác nhận, nên model nạp xong trước khi cần hỏi thật. Đo trên máy tại nhà: gọi lúc model đang ngủ mất 11,8 giây, gọi lúc đang thức mất 1,0 giây — bật ô này thì phần lớn quãng đó trôi qua trong lúc bạn còn đang chờ.
Mười hai mục, 63 ô. Những ô đáng để ý nhất:
- Cách xác nhận — một ô chọn ba giá trị: không xác nhận, chờ rồi kiểm lại chính cảm biến đó, hoặc theo dõi một cảm biến khác. Chỉ một đường chạy, không cộng dồn thời gian chờ như bản cũ.
- Camera cho AI đọc và Camera cho ảnh gửi đi — hai luồng khác nhau, xem phần trên.
- Phân tích cái gì — chỉ người, chỉ động vật, cả hai, hoặc an ninh.
- AI Task cho cửa lọc — để riêng được, vì bước này chỉ hỏi một câu nên giao cho model nhỏ, kể cả khi phần phân tích đầy đủ giao cho model lớn ngoài mạng.
- Thời lượng video và lấy thêm mấy giây trước lúc kích hoạt — Home Assistant giữ sẵn một đoạn đệm nên lấy ngược lại được cả khoảnh khắc người ta vừa bước vào khung hình.
Thêm vào configuration.yaml để Home Assistant nhận đúng thư mục media:
homeassistant:
media_dirs:
local: /mediaThiếu dòng này thì AI Task và thông báo điện thoại không đọc được ảnh.
Nhánh video muốn cho AI đọc thẳng tệp mp4 thì phải dùng provider đọc được video, hiện là Google Gemini. Model chạy tại nhà qua Ollama hay llama.cpp chỉ nhận ảnh tĩnh, nên với chúng hãy để video ở chế độ chỉ gửi kèm — đó cũng là mặc định.
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Dành cho ai chạy model tại nhà và đã cho nó ngủ lúc rảnh để nhường GPU. Automation gọi model một lời gọi rỗng theo chu kỳ, đủ để nó không kịp ngủ, nhưng chỉ trong khung giờ bạn cần báo động nhạy nhất.
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2026.3.0 |
| Yêu cầu | Một AI Task entity trỏ tới model chạy tại nhà |
Đo trên RTX 2060 SUPER với Qwen3-VL-4B:
| Gọi lúc | Thời gian |
|---|---|
| Model đang ngủ | 11 804 ms |
| Model đang thức | 1 044 ms |
Mười giây chênh lệch đó không rút ngắn được bằng tham số. Đã thử năm cấu hình, mỗi cấu hình hai lượt: bản gốc, thêm --mlock, hạ cửa sổ ngữ cảnh còn một nửa, kết hợp cả hai, và nén bộ nhớ đệm KV xuống q8_0. Cả mười lượt đều rơi vào 10,1–10,4 giây. Nó là chi phí dựng lại ngữ cảnh CUDA và đẩy trọng số lên card, không có cờ nào chạm tới được.
Nên cách duy nhất là ít phải thức dậy hơn. Automation này giữ model thức suốt khung giờ bạn chọn, để mọi báo động trong khoảng đó trả lời trong một giây.
Model giữ VRAM suốt khung giờ ấy — với Qwen3-VL-4B là khoảng 4,4 GB trên card 8 GB. Vì vậy hãy chọn khung giờ mà GPU không phải làm việc gì khác. Ban đêm thường là lựa chọn đúng: đó vừa là lúc báo động cần nhạy nhất, vừa là lúc bạn không ra lệnh bằng giọng nói hay dịch phụ đề.
Chu kỳ gọi phải ngắn hơn ngưỡng ngủ của model. Model đặt --sleep-idle-seconds 300 thì gọi mỗi 4 phút là vừa. Nếu ngưỡng ngủ chỉ 30 giây thì automation này không đuổi kịp — hãy nâng ngưỡng ngủ lên trước, rồi mới dùng.
- AI Task — thực thể trỏ tới model chạy tại nhà. Đừng trỏ vào dịch vụ ngoài mạng tính tiền theo lượt gọi, vì automation gọi vài trăm lần mỗi đêm.
- Gọi mỗi bao nhiêu phút — mặc định 4.
- Bắt đầu và thôi giữ thức — đặt giờ kết thúc sớm hơn giờ bắt đầu là khung qua nửa đêm, ví dụ 22:00 tới 06:00, Home Assistant hiểu đúng.
- Điều kiện thêm — ví dụ chỉ giữ thức khi báo động đang bật, hoặc khi có người ở nhà.
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Tóm tắt sự kiện cửa ra vào bằng AI với phát hiện người. Hỗ trợ gửi thông báo qua điện thoại, Zalo và phân tích camera khi cửa mở.
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2024.10.0 |
| Yêu cầu | Door Contact Sensor, Person Occupancy Sensor, Camera |
Cấu hình:
- Door Contact Sensor: Cảm biến cửa (
binary_sensor) - Door States: Trạng thái from/to (mặc định: off → on)
- Person Occupancy Sensor: Cảm biến phát hiện người
- Wait for Person Detection: Có đợi phát hiện người hay không
- Person Detection Wait Time: Thời gian tối đa chờ
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Gửi tin nhắn, ảnh hoặc file qua Telegram bằng giọng nói. Hỗ trợ tự động xóa file sau khi gửi.
| Thông tin | Chi tiết |
|---|---|
| Loại | Script |
| HA tối thiểu | 2024.10.0 |
| Yêu cầu | Telegram Bot integration |
Ví dụ lệnh giọng nói:
- "Gửi ảnh camera sân vào Telegram"
- "Gửi thông báo nhiệt độ phòng khách lên Telegram"
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Gửi tin nhắn đến Zalo qua bot chính thức bằng giọng nói. Địa điểm tự động được kèm link Google Maps.
| Thông tin | Chi tiết |
|---|---|
| Loại | Script |
| HA tối thiểu | 2024.10.0 |
| Yêu cầu | Zalo Bot integration (HACS) |
Gửi ảnh không cần mở Home Assistant ra Internet. Zalo Bot chỉ nhận ảnh qua URL công khai — nó tự đi tải về — nên mặc định blueprint chép ảnh vào
/config/www/zalorồi đưa URL đó cho Zalo, tức máy chủ HA của bạn phải ra được Internet. Ai đang chạyzalo-servercủa dự án chatgpt2api thì đặt ô Hành động gửi ảnh để đẩy thẳng tệp lên server; server lưu vào kho ảnh công khai của nó rồi mới gọi Zalo. Khai trước mộtshell_command:shell_command: zalo_gui_anh: > curl -s -m 30 -X POST http://172.16.10.38:3030/api/zalo-bot/send -H "authorization: Bearer {{ token }}" -F "text={{ text }}" -F "photo=@{{ duong_dan }}"Đường này còn tự chuyển ảnh không phải PNG sang PNG, vì Zalo trả sai content-type khi byte JPEG nằm trong tệp
.png. Đổi lại:shell_commandkhông trả kết quả về, nên blueprint báo "đã gửi đi, chưa có xác nhận" chứ không dám nói đã tới nơi — xem log zalo-server nếu nghi ngờ.
Ví dụ lệnh giọng nói:
- "Tìm nhà hàng ngon ở Hà Nội và gửi lên Zalo"
- "Gửi địa chỉ Văn Miếu lên Zalo"
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Gửi tin nhắn, ảnh, video qua Zalo Custom Bot. Hỗ trợ webhook, đồng bộ trạng thái và xóa file sau khi gửi.
| Thông tin | Chi tiết |
|---|---|
| Loại | Script |
| HA tối thiểu | 2024.10.0 |
| Yêu cầu | Zalo Bot integration (HACS) + delete-file-home-assistant |
Đây là nhánh riêng của kho này. Ngày 18/08/2026 kho gốc luuquangvu/tutorials đã bỏ đường Zalo Custom Bot để gộp hết về bot OA chính thức. Blueprint dưới đây vẫn được giữ và tự bảo trì ở đây, vì nó gửi qua tài khoản Zalo cá nhân — việc mà bot OA không làm được. Đừng cài đồng thời nó và Gửi Zalo Bot chính thức: hai script cùng nhận lệnh gửi Zalo sẽ làm trợ lý chọn nhầm.
Cấu hình Zalo:
- Account: Số điện thoại tài khoản Zalo
- Thread ID: ID cuộc hội thoại
- Type of Receiver: User (0) hoặc Group (1)
- TTL: Thời gian tự hủy tin nhắn (ms), 0 = không tự hủy
- Delete After Send: Tự động xóa file ảnh sau khi gửi
Ví dụ lệnh giọng nói:
- "Gửi ảnh camera sân cho nhóm gia đình qua Zalo"
- "Gửi địa chỉ Hồ Tây cho vợ qua Zalo"
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Tự động nhắc nhở các sự kiện âm lịch kèm theo thông tin thời tiết hàng ngày. AI biên tập tin nhắn tự nhiên, sáng tạo mỗi ngày một kiểu khác nhau.
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2024.10.0 |
Tính năng:
- Bật/tắt riêng cho Lịch Âm và Thời Tiết
- AI biên tập tin nhắn và TTS tự nhiên
- Khi có sự kiện lịch: kết hợp cả lịch + thời tiết
- Khi không có sự kiện: chỉ thông báo thời tiết
Cấu hình:
- Nhắc trước bao nhiêu ngày: Danh sách ngày, ví dụ
[15, 7, 5, 3, 1] - Thời điểm thông báo: Danh sách giờ, ví dụ
["08:00:00", "20:00:00"] - Loại sự kiện: Tất cả / Chỉ ngày giỗ / Mồng 1 & Rằm / Tùy chỉnh sensors
Kênh thông báo hỗ trợ:
- Mobile App
- Telegram
- Zalo Bot / Zalo Custom Bot
- TTS (phát qua loa)
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Tự động lấy câu danh ngôn, châm ngôn, ca dao, tục ngữ ngẫu nhiên từ AI và cập nhật vào input_text.
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2025.7.0 |
| Yêu cầu | Input Text Helper |
Tính năng:
- Lấy quote theo khoảng thời gian tùy chỉnh (15 phút → mỗi ngày)
- Đa dạng nguồn: danh ngôn quốc tế, ca dao, tục ngữ Việt Nam
- AI chọn ngẫu nhiên, tránh lặp lại
Cấu hình:
- Khoảng thời gian cập nhật: Mỗi 15 phút, 30 phút, 1 giờ, ..., mỗi ngày
- Input Text Helper: Entity
input_textđể lưu quote (giới hạn 255 ký tự) - Loại quote: Danh ngôn quốc tế, ca dao Việt Nam, tục ngữ Việt Nam (chọn nhiều)
Yêu cầu tạo trước: Input Text Helper — xem hướng dẫn tạo Input Helper
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Phân biệt 3 nguồn điều khiển thiết bị: Tay vật lý (manual) / App / Automation (auto). Hỗ trợ nhiều entity trong 1 automation.
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2024.10.0 |
| Yêu cầu | Input Select Helper cho mỗi entity |
Cách hoạt động:
- Theo dõi các entity
switchvàlight - Phân tích
contextcủa trigger để xác định nguồn:parent_idcó giá trị → auto (từ automation)user_idcó giá trị → app (từ ứng dụng)- Còn lại → manual (bật/tắt vật lý)
- Cập nhật kết quả vào
input_select
Quy ước đặt tên Input Select:
input_select.source_<entity_object_id>
Ví dụ: Entity switch.den_phong_khach → tạo input_select.source_den_phong_khach
Tạo Input Select Helper:
Vào Settings → Devices & Services → Helpers
Nhấn "+ Create Helper" → Chọn "Dropdown"
Đặt tên: source_<tên_thiết_bị>
Options: manual, app, auto
Lưu lại
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Quét, ghép đôi, kết nối và phát ra loa Bluetooth bất kỳ ngay trên giao diện Home Assistant —
chạy với HA Container, kể cả HA trong LXC trên Proxmox (nơi add-on không cài được).
Chọn loa trong danh sách, bấm Kết nối; phát bằng media_player của tích hợp MPD.
Không phải blueprint mà là một gói cấu hình (packages/) kèm một tệp Python. Hướng dẫn cài
đủ các bước (máy Proxmox, LXC, compose, MPD, HA) và cách dùng:
loa_bluetooth/README.md.
Quản lý việc kiểm tra và cập nhật blueprints tự động, với thông báo qua Zalo khi có phiên bản mới.
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2024.10.0 |
| Yêu cầu | Shell script blueprints_update.sh |
Chế độ cập nhật:
| Chế độ | Mô tả |
|---|---|
| Check | Chỉ kiểm tra, không cập nhật |
| Update All | Cập nhật tất cả blueprints |
| Update Self | Chỉ cập nhật blueprint này |
| Update Specific | Cập nhật 1 blueprint cụ thể theo đường dẫn |
| Update Multiple | Cập nhật nhiều blueprints (mỗi dòng 1 đường dẫn) |
Cấu hình:
- Lịch tự động: Bật/tắt kiểm tra định kỳ
- Giờ kiểm tra: 0–23 (mặc định: 3h sáng)
- Reload sau cập nhật: Tự động reload automations và scripts
- Thông báo: Hỗ trợ Zalo khi có cập nhật mới
Cài đặt script: Xem hướng dẫn cài đặt Scripts
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Tự động đồng bộ file / thư mục từ GitHub về /config/pyscript, giữ script luôn ở phiên bản mới nhất.
| Thông tin | Chi tiết |
|---|---|
| Loại | Automation |
| HA tối thiểu | 2024.10.0 |
| Yêu cầu | Shell script pyscript_sync_from_urls.sh + manifest file |
Chế độ hoạt động:
| Chế độ | Mô tả |
|---|---|
| Dùng .conf | Tôn trọng cấu hình trong file .conf |
| Ép kiểm tra | Chỉ check, không ghi file |
| Ép cập nhật | Ghi file dù .conf đặt auto_update=false |
Cấu hình:
- Lịch tự động: Bật/tắt chạy định kỳ
- Giờ chạy: 0–23 (mặc định: 3h sáng)
- Reload pyscript sau cập nhật: Tự động hoặc thủ công
- Thông báo Mobile: Gửi kết quả đến thiết bị mobile
Cài đặt script: Xem hướng dẫn cài đặt Scripts
Hãy đọc kỹ mô tả blueprint trước khi sử dụng.
Một số blueprint yêu cầu tạo template sensor. Đây là hướng dẫn chi tiết.
Mở file configuration.yaml (thường ở /config/configuration.yaml) và thêm phần template: nếu chưa có:
template:
- sensor:
- name: "Tên Sensor"
unique_id: ten_sensor_unique
state: >-
# Template Jinja2 ở đây
{{ states('sensor.xxx') }}template:
- sensor:
- name: "Buổi trong ngày"
unique_id: time_of_day_vn
icon: >-
{% set h = now().hour %}
{% if 6 <= h < 11 %} mdi:weather-sunny
{% elif 11 <= h < 13 %} mdi:white-balance-sunny
{% elif 13 <= h < 18 %} mdi:weather-sunset
{% elif 18 <= h < 21 %} mdi:weather-night
{% else %} mdi:weather-night
{% endif %}
state: >-
{% set h = now().hour %}
{% if 6 <= h < 11 %} Sáng
{% elif 11 <= h < 13 %} Trưa
{% elif 13 <= h < 18 %} Chiều
{% elif 18 <= h < 21 %} Tối
{% else %} Đêm
{% endif %}
attributes:
hour: "{{ now().hour }}"
is_night: >-
{% set h = now().hour %}
{{ h < 6 or h >= 21 }}
is_daytime: >-
{% set h = now().hour %}
{{ h >= 6 and h < 18 }}
period_english: >-
{% set h = now().hour %}
{% if 6 <= h < 11 %} Morning
{% elif 11 <= h < 13 %} Noon
{% elif 13 <= h < 18 %} Afternoon
{% elif 18 <= h < 21 %} Evening
{% else %} Night
{% endif %}Sau khi thêm sensor, bạn cần reload:
- Vào Developer Tools → YAML → RELOAD TEMPLATE ENTITIES
- Hoặc khởi động lại Home Assistant
Hai blueprint Kiểm tra camera bằng AI (Voice) và Chụp ảnh camera (Voice) tra tên camera theo biệt danh (alias) bạn đặt trong Assist. Chúng đọc biệt danh từ một sensor template mà bạn phải tạo trước — thiếu nó thì việc tìm theo alias không chạy, và Home Assistant không báo lỗi gì cả, nên rất khó đoán ra.
Home Assistant đã đổi khoá lưu biệt danh trong .storage/core.entity_registry từ
aliases sang aliases_v2. Mọi hướng dẫn viết trước tháng 6/2026 đều đọc khoá aliases,
nên trên bản Home Assistant mới nó trả về danh sách rỗng. Đoạn dưới đây đọc được cả hai khoá.
shell_command:
get_entity_alias: >-
jq '[.data.entities[] | select(.options.conversation.should_expose == true) | {entity_id, aliases: (if has("aliases_v2") then ((if (.aliases_v2 | type) == "array" then .aliases_v2 else [] end) | map(select(. != null and . != ""))) else (if (.aliases | type) == "array" then .aliases else [] end) end)} | select(.aliases | length > 0)]' ./.storage/core.entity_registry
template:
- triggers:
- trigger: homeassistant
event: start
- trigger: event
event_type: event_template_reloaded
actions:
- action: shell_command.get_entity_alias
response_variable: response
sensor:
- name: "Assist: Entity IDs and Aliases"
unique_id: entity_ids_and_aliases
icon: mdi:format-list-bulleted
device_class: timestamp
state: "{{ now().isoformat() }}"
attributes:
entities: "{{ response.stdout }}"Sensor này chỉ nạp lại vào hai lúc: khi Home Assistant khởi động, và khi bạn reload template entities. Vậy nên đặt thêm alias cho một camera xong thì phải reload, nếu không blueprint vẫn dùng danh sách cũ.
Vào Developer Tools → Template và dán:
{{ state_attr('sensor.assist_entity_ids_and_aliases', 'entities') }}Kết quả phải là một danh sách JSON có entity_id và aliases. Ra None hoặc [] thì
có ba nguyên nhân theo thứ tự hay gặp: chưa entity nào được expose cho Assist, chưa
entity nào được đặt alias, hoặc bản Home Assistant của bạn thiếu lệnh jq (bản
Container và Core cài thủ công hay thiếu — bản OS và Supervised thì có sẵn).
Nguồn đoạn cấu hình: luuquangvu/tutorials.
Shell Command cho phép Home Assistant chạy lệnh hệ thống. Một số blueprint cần shell command để thao tác file.
Thêm vào configuration.yaml:
shell_command:
ten_lenh: "lệnh shell ở đây"shell_command:
copy_weather_image: >
mv "{{ source }}" "{{ destination }}"- Vào Developer Tools → YAML → RELOAD SHELL COMMANDS
- Hoặc khởi động lại Home Assistant
Nhiều blueprint yêu cầu Input Helper (Text, Select, Number...) để lưu trữ trạng thái.
1. Vào Settings → Devices & Services → Helpers
2. Nhấn "+ Create Helper"
3. Chọn "Text"
4. Đặt tên phù hợp (ví dụ: "AI Reference Image", "Daily Quote")
5. Đặt Max Length: 255
6. Lưu lại
1. Vào Settings → Devices & Services → Helpers
2. Nhấn "+ Create Helper"
3. Chọn "Dropdown"
4. Đặt tên: source_<tên_entity> (ví dụ: source_den_phong_khach)
5. Thêm Options: manual, app, auto
6. Lưu lại
Lưu ý: Tên Input Select phải tuân theo quy ước
source_<entity_object_id>để blueprint Kiểm tra thiết bị hoạt động đúng.
Thư mục scripts/ chứa các shell script hỗ trợ cập nhật tự động. Cần copy vào Home Assistant.
Phiên bản: 1.0.3-docker
Cài đặt:
# Copy script và config vào Home Assistant
mkdir -p /config/scripts
cp blueprints_update.sh /config/scripts/
cp blueprints_update.sh.conf /config/scripts/
chmod +x /config/scripts/blueprints_update.shCấu hình (blueprints_update.sh.conf):
_blueprints_update_auto_update="false" # false = chỉ kiểm tra
_blueprints_update_curl_options="--silent"Lưu ý: Script này KHÔNG cần cấu hình server HA hay Long-lived access token. Script chỉ tải file từ GitHub và ghi đè local. Việc reload automations/scripts được blueprint automation xử lý qua HA internal actions (
automation.reload,script.reload).
Sử dụng:
# Chỉ kiểm tra
bash /config/scripts/blueprints_update.sh
# Kiểm tra và cập nhật
bash /config/scripts/blueprints_update.sh --update
# Chế độ debug
bash /config/scripts/blueprints_update.sh --debugCách hoạt động:
- Quét tất cả file
.yamltrong/config/blueprints/ - Đọc
source_urltừ mỗi blueprint - Chuyển đổi GitHub URL → raw URL
- So sánh phiên bản local vs remote
- Cập nhật nếu có thay đổi (khi dùng
--update)
Phiên bản: 1.4.0
Cài đặt:
# Copy script và config vào Home Assistant
mkdir -p /config/scripts
cp pyscript_sync_from_urls.sh /config/scripts/
cp pyscript_sync.conf /config/scripts/
chmod +x /config/scripts/pyscript_sync_from_urls.shCấu hình (pyscript_sync.conf):
_pyscript_sync_dir="/config/pyscript" # Thư mục pyscript
_pyscript_sync_manifest="${_pyscript_sync_dir}/_sources.txt" # File manifest
_pyscript_sync_auto_update="false" # false = chỉ check
_pyscript_sync_token="" # Token GitHub (trống = public repo)
_pyscript_sync_reload="true" # Tự động reload pyscript
_pyscript_sync_curl_options="--silent"
_pyscript_sync_debug="false"Lưu ý: Script này KHÔNG cần server HA hay Long-lived access token. Chỉ cần GitHub token nếu repo là private. Reload pyscript được thực hiện qua lệnh
haCLI local.
Tạo file manifest (/config/pyscript/_sources.txt):
# Format: url|destination[|option]
# File đơn lẻ:
https://github.com/user/repo/blob/main/script.py|script.py
# Thư mục (không đệ quy):
https://github.com/user/repo/tree/main/folder|folder/
# Thư mục (đệ quy):
https://github.com/user/repo/tree/main/folder|folder/|recursiveSử dụng:
# Chỉ kiểm tra
bash /config/scripts/pyscript_sync_from_urls.sh
# Kiểm tra và cập nhật
bash /config/scripts/pyscript_sync_from_urls.sh --update
# Dùng GitHub token (cho private repo)
bash /config/scripts/pyscript_sync_from_urls.sh --update --token ghp_xxx
# Chế độ debug
bash /config/scripts/pyscript_sync_from_urls.sh --debug
# Không reload pyscript sau cập nhật
bash /config/scripts/pyscript_sync_from_urls.sh --update --no-reloadTính năng:
- Hỗ trợ cả file đơn lẻ và thư mục GitHub
- Tự động phát hiện loại URL (file / folder)
- Chuyển đổi GitHub URL → raw / API URL
- Hỗ trợ GitHub token cho private repo
- Đồng bộ đệ quy thư mục con
- Tự động reload pyscript sau cập nhật
- Parse JSON bằng
jqhoặcpython3
Yêu cầu hệ thống:
bash,curljqhoặcpython3(để parse JSON từ GitHub API)- Trên HA OS:
apk add jq
Nếu bạn sử dụng Cloudflare Tunnel để truy cập Home Assistant từ bên ngoài, cần cho phép các domain sau trong tường lửa / allowlist:
cfargotunnel.com
cloudflare.com
cloudflared.com
workers.dev
trycloudflare.com
argotunnel.com
cloudflareaccess.com
cfipaddress.com
update.argotunnel.com
update.cloudflareclient.com
Một blueprint sai schema hay sai một dấu ngoặc Jinja2 vẫn nằm yên trong kho, chỉ nổ lúc
người dùng bấm Import. Cũng vậy, README dài nghìn dòng thì một bảng khai sai phiên bản
Home Assistant có thể nằm đó hàng tháng. Thư mục tools/ có hai trình soát
chặn cả hai chuyện đó.
Soát blueprint — nạp thẳng schema thật của Home Assistant Core, bắt sai schema
blueprint, sai định nghĩa selector, sai cú pháp Jinja2, và tham chiếu !input tới input
chưa hề khai báo:
uv run --no-project --python 3.14 --with 'homeassistant>=2026.8.0' \
python tools/validate_blueprints.py .Soát README — đọc chính các file YAML rồi đối chiếu với những gì README nói: bảng khai sai Loại hay HA tối thiểu, nút Import trỏ vào file không có, file trong kho mà README quên nhắc, liên kết mục lục trỏ vào tiêu đề không tồn tại. Chỉ dùng thư viện chuẩn:
python3 tools/check_readme.py .Cả hai chạy tự động qua
.github/workflows/soat-blueprint.yaml mỗi lần
push vào main và mỗi pull request; riêng push vào main thì workflow còn đồng bộ
source_url của mọi blueprint theo nhánh rồi commit lại. Xem thêm
tools/README.md.
| # | Blueprint | Loại | HA Min | Tính năng chính |
|---|---|---|---|---|
| 1 | Tạo ảnh AI | Script | 2025.8.0 | Tạo ảnh từ prompt văn bản |
| 2 | Tạo ảnh AI + tham chiếu | Script | 2025.8.0 | Tạo ảnh kèm ảnh mẫu |
| 3 | Tạo ảnh thời tiết | Automation | 2025.10.0 | Ảnh AI theo thời tiết/buổi |
| 4 | Danh lam thắng cảnh | Automation | 2025.10.0 | Ảnh AI danh lam thế giới |
| 5 | Camera AI (Voice) | Script | 2025.8.0 | Phân tích camera bằng giọng nói |
| 6 | Chụp / quay camera (Voice) | Script | 2024.12.0 | Chụp ảnh hoặc quay video bằng giọng nói |
| 7 | Phân tích file/ảnh | Script | 2025.8.0 | Gửi file cho LLM phân tích |
| 8 | Cảnh báo người camera (1–3) | Automation | 2025.7.0 | Phát hiện người + cảnh báo |
| 9 | Cảnh báo camera AI 4 | Automation | 2026.3.0 | Cửa lọc, ảnh đôi, nhánh video |
| 10 | Giữ model AI thức | Automation | 2026.3.0 | Gọi định kỳ cho model chạy tại nhà |
| 11 | LLM Vision Camera | Automation | 2024.10.0 | Phân tích camera real-time |
| 12 | Gửi Telegram | Script | 2024.10.0 | Gửi tin/ảnh qua Telegram |
| 13 | Gửi Zalo Bot | Script | 2024.10.0 | Gửi tin qua Zalo chính thức |
| 14 | Gửi Zalo Custom | Script | 2024.10.0 | Gửi tin/ảnh qua Zalo cá nhân |
| 15 | Lịch âm & thời tiết | Automation | 2024.10.0 | Nhắc lịch âm + thời tiết |
| 16 | Danh ngôn hàng ngày | Automation | 2025.7.0 | Quote AI tự động |
| 17 | Kiểm tra thiết bị | Automation | 2024.10.0 | Phân biệt nguồn điều khiển |
| 18 | Cập nhật Blueprints | Automation | 2024.10.0 | Auto-update blueprints |
| 19 | Cập nhật Pyscript | Automation | 2024.10.0 | Auto-sync pyscript từ GitHub |
Nếu bạn thấy các blueprint này hữu ích, hãy chia sẻ cho cộng đồng Home Assistant và theo dõi để cập nhật thêm nhiều blueprint mới!