diff --git a/README.en.md b/README.en.md index e1f2a28..ce01c10 100644 --- a/README.en.md +++ b/README.en.md @@ -1,13 +1,13 @@ # Unique Home Assistant Blueprints & Tutorials +**[ 🇺🇸 English | [🇻🇳 Tiếng Việt](README.md) ]** + **Google has recently significantly cut back on the free Gemini API, making it almost impossible to meet the usage needs of Home Assistant. You can find [a completely free alternative solution here](https://github.com/luuquangvu/ha-addons).** _All blueprints in this collection are fine-tuned to work best with **Gemini Flash** models. Other models may require minor adjustments to behave as expected._ Transform Home Assistant into a fully-fledged personal teammate with this curated collection of blueprints and guides. Every scenario has been proven in real homes, backed by clear explanations, example voice prompts, and deployment tips so you can bring each idea to life right away. -**[🇻🇳 Tiếng Việt](README.md)** - --- ## Table of Contents diff --git a/README.md b/README.md index 27707db..6b97e27 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # Bộ sưu tập Blueprint và Hướng dẫn độc đáo cho Home Assistant +**[ [🇺🇸 English](README.en.md) | 🇻🇳 Tiếng Việt ]** + **Gần đây, Google đã cắt giảm đáng kể API Gemini miễn phí, khiến nó gần như không thể đáp ứng nhu cầu sử dụng của Home Assistant. Các bạn có thể tham khảo [một giải pháp thay thế hoàn toàn miễn phí tại đây](https://github.com/luuquangvu/ha-addons).** _Tất cả blueprint trong bộ sưu tập này được tinh chỉnh để hoạt động tối ưu với các mô hình (model) **Gemini Flash**. Các mô hình ngôn ngữ khác có thể cần điều chỉnh nhỏ để đạt hiệu quả tương tự._ Biến Home Assistant thành một trợ lý cá nhân thực thụ với bộ sưu tập blueprint và hướng dẫn chi tiết. Mọi kịch bản đều đã được kiểm chứng trong thực tế, đi kèm giải thích rõ ràng, ví dụ lệnh thoại và mẹo triển khai để bạn có thể áp dụng ngay cho ngôi nhà thông minh của mình. -**[🇺🇸 English](README.en.md)** - --- ## Mục lục diff --git a/traffic_fine_notification.yaml b/traffic_fine_notification.yaml index 8ab6190..38659a3 100644 --- a/traffic_fine_notification.yaml +++ b/traffic_fine_notification.yaml @@ -26,19 +26,23 @@ blueprint: ### Thêm Template Sensor cho từng xe theo mẫu bên dưới vào trong `config/configuration.yaml` của Home Assistant - - Trong đó Sensor Time to Check để khai báo thời gian ngẫu nhiên thực hiện tra cứu, tối thiểu ngày 2 lần. + - Trong đó Sensor Time to Check để khai báo thời gian ngẫu nhiên thực hiện tra cứu. - Sensor Biển Số sẽ lưu thông tin phạt nguội của xe. + - Do trang csgt.vn có hệ thống chống bot sử dụng reCAPTCHA v3 cực kỳ phức tạp, đồng thời giới hạn số lần tra cứu/ngày, nên việc tra cứu sẽ được thực hiện ngẫu nhiên để tăng khả năng tra cứu thành công. + - Nếu bạn có nhiều xe, hãy thêm nhiều sensor theo mẫu, thay đổi Biển Số và Sensor Time to Check tương ứng. Lưu ý rằng số lượng xe càng nhiều thì tần suất tra cứu cần được điều chỉnh giảm (ví dụ: từ 2 lần/ngày xuống còn 1 lần/ngày), cũng như thay đổi khoảng thời gian tra cứu ngẫu nhiên (ví dụ: mỗi xe cách nhau mỗi 3 giờ) để tránh bị hệ thống chặn. ``` # File configuration.yaml template: - triggers: - - trigger: time_pattern - hours: /6 + - trigger: time + at: + - "06:00:00" # Mốc thời gian tra cứu, được cộng thêm ngẫu nhiên trong khoảng 1-180 phút để tránh bị hệ thống chặn. + - "18:00:00" # Không nên tra cứu quá nhiều lần trong ngày, ví dụ: 2 lần/ngày, mỗi lần cách nhau ít nhất 6 giờ. - trigger: event event_type: event_template_reloaded sensor: - - name: Time to Check 30G12345 # Biển số xe + - name: Time to Check 30G12345 # Biển số xe unique_id: time_to_check_30g12345 # Biển số xe icon: mdi:clock-digital device_class: timestamp @@ -50,10 +54,10 @@ blueprint: - action: pyscript.traffic_fine_lookup_tool data: license_plate: 30G12345 # Biển số xe - vehicle_type: car # Kiểu phương tiện + vehicle_type: car # Kiểu phương tiện response_variable: response sensor: - - name: 30G12345 # Biển số xe + - name: 30G12345 # Biển số xe unique_id: 30g12345 # Biển số xe icon: mdi:car state: "{{ response.message if response.get('status') else response.get('error') }}"