Thông qua tts.google_translate, có thể tạo automation để loa Google phát âm thanh nhắc việc bằng tiếng Việt theo lịch cố định cho trước. Thí dụ như nhắc người già uống thuốc…
Ngoài ra, còn một loại nhắc việc dựa vào dịch vụ Google Calendar, công việc có thể khác nhau mỗi ngày.
Việc cài đặt rất đơn giản theo các bước sau:
1. configuration.yaml
Thêm các dòng sau nếu chưa có
tts:
- platform: google_translate
script: !include scripts.yaml
2. scripts.yaml
Tạo file scripts.yaml tại thư mục cấu hình nếu chưa có (chú ý giữ đúng các khoảng trắng đi trước mỗi dòng)
###########################################
# script Voice Reminder, version 20191203 #
# © 2019 LNT <lnt@ly-le.info> #
###########################################
voice_reminder:
sequence:
- condition: template
value_template: >
{% if tsk_message is defined and tsk_message|length %} True {% else %} False {% endif %}
- data:
entity_id: id_của_loa_google
volume_level: 0.6
service: media_player.volume_set
- data:
entity_id: id_của_loa_google
media_content_id: https://you.duckdns.org:8123/local/alarms.wav
media_content_type: music
service: media_player.play_media
- data_template:
entity_id: all
language: vi
message: '{{ tsk_message }}'
service: tts.google_translate_say
-
Thay thế https://you.duckdns.org:8123/local/alarms.wav bằng domain của mình và file alarms.wav là một file âm thanh nhỏ để báo trước lời nhắc, như ding.wav chẳng hạn, đặt ở thư mục con www của thư mục cấu hình.
-
Thay thế “entity_id: id_của_loa_google” với giá trị thực tế.
-
Nếu muốn phát ra tất cả loa Google thì tạo group trước và entity_id là id của group.
-
Các chú thích này dành cho đoạn mã gạch ngang bên trên, bao gồm điều chỉnh volume và phát nhạc dạo. Nếu không cần thì bỏ nhóm lệnh tương ứng.
3. automation.yaml
Thêm vào file automation.yaml tại thư mục cấu hình (chú ý giữ đúng các khoảng trắng đi trước mỗi dòng)
###############################################
# automation Voice Reminder, version 20191203 #
# © 2019 LNT <lnt@ly-le.info> #
###############################################
- id: 'voice_reminder'
alias: Voice Reminder
trigger:
minutes: '/15'
seconds: '00'
platform: time_pattern
condition: []
action:
data_template:
tsk_message: >
{% set trigg_at = trigger.now.strftime(' %H:%M') | replace(' ', '') %}
{% set reminders = [
('07:00', 'Ông ơi uống thuốc sáng. Ông đã uống thuốc sáng chưa?'),
('08:00', 'Ông ơi uống thuốc abc. Ông đã uống thuốc abc chưa?'),
('08:30', 'Ông ơi đi dạo. Ông thay áo đi dạo cho khỏe nhé'),
('12:00', 'Ông ơi uống thuốc sau ăn trưa. Ông đã uống thuốc sau ăn trưa chưa?'),
('17:30', 'Ông ơi uống thuốc chiều. Ông đã uống thuốc chiều chưa?'),
('18:30', 'Ông ơi uống thuốc sau ăn chiều. Ông đã uống thuốc sau ăn chiều chưa?'),
('22:00', 'Tới giờ ngủ rồi. Ông ơi đi ngủ ngoan nào!')
]
%}
{% for tup in reminders if tup[0] == trigg_at %}
Bây giờ là {{ tup[0] }}. {{ tup[1] }}
{% endfor %}
service: script.voice_reminder
automation sẽ chạy kiểm tra mỗi 15 phút (
minutes: '/15'
), nếu đúng lịch nhắc thì sẽ phát ra loa lời nhắc, nếu không thì bỏ qua.Nếu cần lên lịch nhắc chính xác gần hoặc thưa hơn thì chỉnh time_pattern phần trigger, thí dụ /5 hay /30
Soạn thảo lịch nhắc như mẫu ở trên, chú ý các dấu nháy và ngoặc hay phẩy. Một ý được lặp lại 2 lần. Giờ, phút dùng 2 chữ số.
Script sẽ phát ra loa lời nhắc tương tự như:
Bây giờ là tám giờ ba mươi. Ông ơi đi dạo. Ông thay áo đi dạo cho khỏe nhé!