Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Transform Home Assistant into a fully-fledged personal teammate with this curate
- [Lunar Calendar Conversion & Lookup](#lunar-calendar-conversion--lookup)
- [Create Lunar Calendar Events](#create-lunar-calendar-events)
- [Interactive Smart Home Chatbot](#interactive-smart-home-chatbot)
- [Voice Assist - Send Messages & Images](#voice-assist---send-messages--images)
- [Voice Assist - Send Messages & Media](#voice-assist---send-messages--media)
- [Voice Assist - Internet Knowledge Search](#voice-assist---internet-knowledge-search)
- [Voice Assist - YouTube Search & Playback](#voice-assist---youtube-search--playback)
- [Voice Assist - Favorite YouTube Channels](#voice-assist---favorite-youtube-channels)
Expand Down Expand Up @@ -286,30 +286,35 @@ _Install the webhook blueprint for your chosen platform. For image analysis, als

---

## Voice Assist - Send Messages & Images
## Voice Assist - Send Messages & Media

Driving or hands messy? Use your voice to send messages, share your location, or send camera images to loved ones via Telegram/Zalo.
Driving or hands messy? Use your voice to send messages and share content with loved ones via Telegram/Zalo. The Telegram blueprint supports text, map locations, images, audio, documents, videos, and voice messages.

**Key Features:**

- **Hands-Free Messaging:** Dictate your message, and Assistant will send it immediately.
- **Smart Sharing:** Automatically attach Google Maps links when you mention a location.
- **Telegram Map Pins:** Send a precise location using latitude/longitude or a Google Maps URL containing coordinates. The blueprint sends the summary first, followed by the map pin.
- **Media Sharing:** Send local images, MP3/M4A audio, documents, MPEG-4 videos, and OGG/Opus, MP3, or M4A voice messages using paths under `local/` or `/media/`.
- **Image Reporting:** Command to take a photo from a security camera and send it directly to a family chat group.

**Example Voice Commands:**

- "Send a list of good restaurants in Nha Trang to the Telegram family group."
- "Send the Thang Long Citadel location via Zalo to my wife."
- "Send the Thang Long Citadel map pin to the Telegram family group using this Google Maps link."
- "Send the monthly report PDF and the meeting recording to the Telegram family group."
- "Take a photo from the gate camera and send it to the chat group."

**Use Cases:**

- **Driving Safety:** "Message my wife I'll be home in 30 minutes" - Send important updates without taking your hands off the wheel, focusing on driving.
- **Urgent Notifications:** Running late? "Message mom I'm on my way home" - Quickly inform without typing.
- **Capture Moments:** "Take a photo from the yard camera and send it to the family group" - Instantly share interesting images.
- **Rich Updates:** Send reports, recordings, videos, or voice messages alongside a concise summary.

_Install the blueprint for the platform you want to send messages to:_

For Telegram map pins, use coordinates or a Google Maps URL that contains coordinates. A plain address or shortened Maps URL requires a separate geocoding step.

**Send to Telegram:**
[![Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2Fluuquangvu%2Ftutorials%2Fblob%2Fmain%2Fsend_to_telegram_full_llm.yaml)

Expand Down
15 changes: 10 additions & 5 deletions README_vi.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Biến Home Assistant thành một trợ lý cá nhân thực thụ với bộ s
- [Tra cứu & chuyển đổi Lịch Âm](#tra-cứu--chuyển-đổi-lịch-âm)
- [Tạo Sự kiện theo Lịch Âm](#tạo-sự-kiện-theo-lịch-âm)
- [Chatbot Tương tác & Điều khiển Nhà thông minh](#chatbot-tương-tác--điều-khiển-nhà-thông-minh)
- [Voice Assist - Gửi Tin nhắn & Hình ảnh](#voice-assist---gửi-tin-nhắn--hình-ảnh)
- [Voice Assist - Gửi Tin nhắn & Nội dung](#voice-assist---gửi-tin-nhắn--nội-dung)
- [Voice Assist - Tra cứu Thông tin Internet](#voice-assist---tra-cứu-thông-tin-internet)
- [Voice Assist - Tìm kiếm & Phát Video YouTube](#voice-assist---tìm-kiếm--phát-video-youtube)
- [Voice Assist - Theo dõi Kênh YouTube Yêu thích](#voice-assist---theo-dõi-kênh-youtube-yêu-thích)
Expand Down Expand Up @@ -286,30 +286,35 @@ _Cài đặt blueprint webhook cho nền tảng bạn chọn. Để phân tích

---

## Voice Assist - Gửi Tin nhắn & Hình ảnh
## Voice Assist - Gửi Tin nhắn & Nội dung

Đang lái xe hoặc tay dính dầu mỡ? Hãy dùng giọng nói để gửi tin nhắn, chia sẻ vị trí hoặc hình ảnh camera tới người thân qua Telegram/Zalo.
Đang lái xe hoặc tay dính dầu mỡ? Hãy dùng giọng nói để gửi tin nhắnchia sẻ nội dung tới người thân qua Telegram/Zalo. Blueprint Telegram hỗ trợ tin nhắn văn bản, ghim vị trí, hình ảnh, âm thanh, tài liệu, video và tin nhắn thoại.

**Tính năng nổi bật:**

- **Nhắn tin rảnh tay:** Đọc nội dung tin nhắn và Assistant sẽ gửi đi ngay lập tức.
- **Chia sẻ thông minh:** Tự động đính kèm link Google Maps khi bạn nhắc đến một địa điểm.
- **Ghim vị trí Telegram:** Gửi vị trí chính xác bằng vĩ độ/kinh độ hoặc liên kết Google Maps có chứa tọa độ. Blueprint sẽ gửi phần tóm tắt trước, sau đó gửi ghim vị trí.
- **Chia sẻ nội dung đa phương tiện:** Gửi hình ảnh, âm thanh MP3/M4A, tài liệu, video MPEG-4 và tin nhắn thoại OGG/Opus, MP3 hoặc M4A từ đường dẫn `local/` hoặc `/media/`.
- **Báo cáo hình ảnh:** Ra lệnh chụp ảnh từ camera an ninh và gửi ngay vào nhóm chat gia đình.

**Ví dụ lệnh thoại:**

- "Gửi danh sách quán ăn ngon ở Nha Trang lên nhóm Telegram gia đình."
- "Gửi vị trí Hoàng Thành Thăng Long qua Zalo cho vợ."
- "Gửi ghim vị trí Hoàng Thành Thăng Long lên nhóm Telegram bằng liên kết Google Maps này."
- "Gửi báo cáo PDF tháng này và bản ghi âm cuộc họp lên nhóm Telegram gia đình."
- "Chụp ảnh camera cổng gửi vào nhóm chat."

**Ứng dụng thực tế:**

- **An toàn khi lái xe:** "Nhắn cho vợ là anh về muộn khoảng 30 phút" - Gửi thông báo quan trọng mà không cần rời tay khỏi vô lăng, tập trung lái xe.
- **Thông báo khẩn:** Về nhà muộn? "Gửi tin nhắn cho mẹ là con đang trên đường về" - Nhanh chóng thông báo mà không cần gõ phím.
- **Chia sẻ khoảnh khắc:** "Chụp ảnh camera sân gửi vào nhóm gia đình" - Chia sẻ ngay lập tức những hình ảnh thú vị.
- **Cập nhật đầy đủ:** Gửi báo cáo, bản ghi âm, video hoặc tin nhắn thoại kèm phần tóm tắt ngắn gọn.

_Cài đặt blueprint cho nền tảng bạn muốn gửi tin đến:_

Để gửi ghim vị trí Telegram, hãy dùng tọa độ hoặc liên kết Google Maps có chứa tọa độ. Địa chỉ thuần văn bản hoặc liên kết Maps rút gọn cần có bước mã hóa địa chỉ riêng.

**Gửi đến Telegram:**
[![Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.](https://my.home-assistant.io/badges/blueprint_import.svg)](https://my.home-assistant.io/redirect/blueprint_import/?blueprint_url=https%3A%2F%2Fgithub.com%2Fluuquangvu%2Ftutorials%2Fblob%2Fmain%2Fsend_to_telegram_full_llm.yaml)

Expand Down
8 changes: 4 additions & 4 deletions ac_mode_and_fan_control_full_llm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ mode: parallel
max_exceeded: silent
description: Controls AC mode, temperature, and fan speed
variables:
version: 20260409
version: 20260818
fields:
ac_entities:
name: AC Entities
Expand Down Expand Up @@ -168,7 +168,7 @@ sequence:
{% if exact_match %}
{% set res.entities = res.entities + exact_match %}
{% else %}
{% set alias_match = state_attr(entity_aliases, 'entities') | default([]) | selectattr('entity_id', 'match', 'climate\.') | selectattr('aliases', 'contains', name) | map(attribute='entity_id') | list %}
{% set alias_match = state_attr(entity_aliases, 'entities') | default([], true) | selectattr('entity_id', 'defined') | selectattr('entity_id', 'match', '^climate\.') | selectattr('aliases', 'defined') | selectattr('aliases', 'contains', name) | map(attribute='entity_id') | list %}
{% if alias_match %}
{% set res.entities = res.entities + alias_match %}
{% else %}
Expand All @@ -195,7 +195,7 @@ sequence:
{% for entity_id in resolution.entities %}
{% set device_name = state_attr(entity_id, 'friendly_name') %}
{% if hvac_mode %}
{% set supported_hvac = state_attr(entity_id, 'hvac_modes') | default([]) %}
{% set supported_hvac = state_attr(entity_id, 'hvac_modes') | default([], true) %}
{% set hvac_support = namespace(modes=[]) %}
{% for m in supported_hvac %}
{% set val = m %}
Expand Down Expand Up @@ -246,7 +246,7 @@ sequence:
{% set result.resolved_temps = result.resolved_temps + [''] %}
{% endif %}
{% if fan_mode %}
{% set supported_fan = state_attr(entity_id, 'fan_modes') | default([]) %}
{% set supported_fan = state_attr(entity_id, 'fan_modes') | default([], true) %}
{% set fan_check = namespace(matched=false, resolved_mode='') %}
{% set fan_support = namespace(aliases=[]) %}
{% for mode in supported_fan %}
Expand Down
5 changes: 3 additions & 2 deletions advanced_youtube_search_full_llm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ blueprint:
text:
multiline: true
default: |-
Search query. Silence-correct misspellings. Use ordinals for results, omit Media IDs. Confirm if ambiguous
Search query. Silence-correct misspellings. Use ordinals for results, omit Media IDs and URLs. Confirm if ambiguous
page_token_prompt:
name: Page Token Prompt
description: The token used by the AI to fetch the next page of YouTube results
Expand All @@ -84,7 +84,7 @@ mode: parallel
max_exceeded: silent
description: Searches YouTube for videos and returns matching results
variables:
version: 20260409
version: 20260818
fields:
query_string:
name: Query String
Expand Down Expand Up @@ -137,6 +137,7 @@ sequence:
title: {{ entry.snippet.title | lower }}
published: {{ strptime(entry.snippet.publishedAt, '%Y-%m-%dT%H:%M:%S%z') | relative_time }} ago
media_id: {{ entry.id.videoId }}
media_url: {{ 'https://www.youtube.com/watch?v=' ~ entry.id.videoId }}
{% endfor -%}
next_page_token: "{{ response.get('nextPageToken') }}"
- stop: ""
Expand Down
Loading