要讓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秒後關閉就可以了。

你好,感謝分享作法,照著教學實作也成功了。 想請教一個細節 因為我想把這個語音播報放在早上通報,會希望播報一天的氣溫區段,作為衣著的參考 不過奇怪的是,使用原本的地點:南投縣名間鄉,會得到氣溫區段的資訊,但改成我自己的新北市新莊區,反而卻只有一個固定的氣溫數值。 不曉得是不是我搞錯了什麼地方呢?
我用了postman看了一下網頁的Json,新北市新莊區抓取的位置也是正常,https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-D0047-069?locationName=%E6%96%B0%E8%8E%8A%E5%8D%80&elementName=WeatherDescription&Authorization=授權碼&format=JSON 你看一下網址對不對
感謝回應,網址是沒錯的,重新填入一次也可以正常回報天氣狀況,但就只有氣溫的部份不一樣 😅 難道氣象局吐的資料因地區有不同?新莊區可能就只有目前氣溫而不是當日最高跟最低溫度🤔
請教怎麼區別各欄位的各個數值代表甚麼意思? 因為我看到的數值有sunny、0 mm、0%、27(度)C、2 小時後、東北風、2 m/s、22.0(度)C、28(度)C、30(度)C、3 m/s、偏東風、71%、0%、partlycloudy、4,還有一個很長的「多雲。降雨機率 0%。溫度攝氏28度。舒適。偏東風 平均風速1-2級(每秒3公尺)。相對濕度71%。」 但這些數值的名稱只有兩種,Forecast 7 個、OpenCWB 11 個。從實體去找 OpenCWB,實體的 ID 也只是 sensor.opencwb、sensor.opencwb_2、sensor.opencwb_3 ... sensor.opencwb_11 以及 sensor.opencwb_forecast、sensor.opencwb_forecast_2 ... sensor.opencwb_forecast_7 這樣很難分辨各個欄位代表甚麼意義。 謝謝。
可以安裝https://github.com/tsunglung/OpenCWB,這個簡化很多
請教一下氣象局升格為氣象署好像連結都失效了,是否有更新的版本呢?
可以安裝https://github.com/tsunglung/OpenCWB,這個簡化很多