要讓andriod TV撥放文字語音需要在configuration.yaml增加以下內容,
他會將文字用google翻譯語音撥出
tts:
- platform: google_translate
language: "zh-tw"
cache: true
cache_dir: /tmp/tts
time_memory: 300
base_url: http://192.168.0.245:8123 #home assistant IP:port
service_name: google_say
接著在整合加入google cast,
他會自動搜尋家裡的google語音設備,
包含音箱、電視等等
然後有些前置作業要先做好,請參考Home assistant介面介紹
接著在packages建立一個weather.yaml(名稱隨意),
加入以下內容
sensor:
- platform: rest
name: 天氣預報
json_attributes_path: "$..time[0].elementValue[0]" #屬性可建可不建
json_attributes: #屬性可建可不建
- value #屬性可建可不建
resource: https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-D0047-023?locationName=%E5%90%8D%E9%96%93%E9%84%89&elementName=WeatherDescription&Authorization=你的授權碼&format=JSON
value_template: "{{ value_json['records']['locations'][0]['location'][0]['weatherElement'][0]['time'][0]['elementValue'][0]['value'] }}"
這資料取於中央氣象局的api,
首先要加入會員取得授權碼,
接著參考中央氣象局api使用說明的 中央氣象局氣象資料開放平臺–資料擷取使用說明
我擷取的是 鄉鎮天氣預報-單一鄉鎮市區預報資料 (未來 2 天天氣預報)
dataid我取F-D0047-023南投縣
locationName可以再取自己的鄉鎮,記得使用url將中文轉碼
Authorization記得填寫自己的api授權碼,
其他的詳細內容可以自己參考使用說明,
這樣就會建立以下的實體
如果只要前三項可以改為 value_template: "{{ value_json['records']['locations'][0]['location'][0]['weatherElement'][0]['time'][0]['elementValue'][0]['value'].split ('。')[:3] }}"
他就會用句號去做分割,
這樣再用TTS念就只會念前三項了。
接下來要用andriod TV撥放語音當鬧鐘,
需要做的步驟如下
1.星期一~五早上7:30執行
2.打開電視
3.撥放語音
4.關閉電視
開關電視的控制可以參考我之前的文章
將Boardlink萬用遙控器加入Home assistant,拷貝紅外線碼,並顯示於Homekit控制空調(三)
自動化的部分照以下內容建立
service: tts.google_say
data:
entity_id: media_player.zhu_wo_dian_shi
message: >-
主人早安,南投今天天氣{{ states('sensor.tian_qi_yu_bao') }}
延遲1分50秒是因為我還有播報別的東西,
純天氣的話設25秒後關閉就可以了。