2020/02/20

網站資料庫 v134

版本: 134 - 20200220
+ 支援 '吾讀論壇' 解析閱讀
- 移除 '大海中文網', '桑舞小說網' 支援
- 移除部份網站搜尋支援
- 修正 '2k 小說閱讀網' 搜尋問題
- 修正 '十九樓書包網' 簡介問題
- 修正 '伊莉小說網 [YLXS]' 朗讀內文的問題
- 修正 'FC2' 解析以及部份內文載入問題
- 修正 'ESJZone' 部份內文載入問題
- 修正 '全本小說網 [Quanben5]' 部份內文載入問題
- 修正 '卡提諾 - 異色文學' 的章節以及內文部份的問題
- 修正 '求小說' 章節少頁數的問題以及載入問題
- 調整 '啃書閣小說', '愛看書吧', '印摩羅天言情小說', '戀上你看書網', '百書樓', '愛小說書城' 使用網址
- 修正 '愛看書吧' 分類小說清單顯示問題
- 修正 '印摩羅天言情小說' 小說清單顯示
- 修正 '飛盧小說網', '飛盧女生網' 小說清單, 搜尋以及內文問題

更新方式:
1. 手動更新
a) 設定的網站資料庫
b) 點擊下載
c) 下載檔案 "網站資料庫更新包x_v134.zip"
d) 設定的網站資料庫
e) 匯入

2. 自動更新
a) 設定的網站資料庫
b) 點擊版本

安裝 HACS 和移除

HACS - Home Assistant Comunity Store

裡面收藏了一些好用的套件,除了可以方便安裝以外,也可追蹤所使用的套件是否有更新。
以下是安裝步驟:

  1. HACS 下載最新版本
  2. 建立目錄 hacs,並將檔案解壓縮至此目錄,確認 hacs 目錄裡面包含隱藏目錄 .translations 。如果沒有則重新下載再解壓縮一次。
  3. 在 config 目錄底下建立 custom_components 目錄,如果已經存在則省略。
  4. 將 hacs 目錄搬移至 custom_components 目錄底下。
  5. 重啟 hassio。
  6. 建立 Github Personal Access Token,可參考此篇
  7. 進去 Home assistant,然後去 Configuration -> Integrations,點擊右下角 +,搜尋 HACS。然後選擇出現的項目。
  8. 貼上步驟 6 的 Token 按確定。如果要重新設定則必須先從 integrations 移除後重新加入。
  9. 如果要手動加入,則在 configuration.yaml 加入以下資料。token 請使用步驟 6 建立的部份。

    hacs:
      token: github_token
    
  10. 重啟 hassio。這樣就會看到側邊有 HACS,安裝就完成了。

參考連結: https://hacs.xyz/docs/installation/manual

如果要移除 HACS 則依照下面步驟。

  1. 從 configuration.yaml 把 hacs 移除。
  2. 去 Configuration -> Integrations 點進去 HACS 然後點擊右上角垃圾桶圖示移除。
  3. 重啟 Hassio 兩次。
  4. 移除 custom_components 底下的 hacs 目錄。
  5. 在 config 底下的 .storage,把關於 hacs 相關資料都移除。
  6. 重啟 Hassio。

參考連結: https://hacs.xyz/docs/installation/remove

2020/02/11

Configurator Add-On

安裝 configurator,這個方便可以直接線上修改相關的設定。
安裝方式很簡單,依照下面步驟:
1. Supervisor -> ADD-ON Store
2. Search 輸入 Configurator
3. 點擊 Configurator,再點擊 INSTALL
4. 安裝完畢,勾選 Show in sidebar,這樣左側選單就會出現 Configurator 快捷按鈕
5. 點擊 START

這樣就安裝完畢了。
建議安裝完 Hass.io 後可以先安裝這個插件。

2020/02/10

Let's encrypt 申請 ssl 憑證

Let’s Encrypt 可對 domain 做憑證以便後續的功能使用以及遠端登入可以提供更加的安全性。
如果沒有自己的 domain name,可以至 duckdns 免費申請。

Let’s Encrypt 有一個限制就是至少每 30-40 天必須更新憑證。
因此如果所使用的 domain 是從 duckdns 申請的,可以考慮安裝另外一個 addon - Duck Dns

這邊我只安裝 Let’s Encrypt 來做 domain 的憑證。domain 的部份則交由我另外一個地方的主機來做更新。

安裝 Let’s Encrypt
1. Supervisor -> ADD-ON STORE
2. Search Let’s 找到後點進去並點擊 INSTALL
3. 安裝完畢,不要勾選 Start on boot
4. config 依照實際需求修改,設定好後點擊右下 Save

email: abc@example.com
domains:
  - test.duckdns.org
certfile: fullchanin.pem # 不要修改
keyfile: privkey.pem # 不要修改
challenge: http # 依照需求可改成 dns,這邊我是使用 http
dns: {} # 依照需求修改
  1. 回到畫面最上面點擊 Start
  2. 拉到最下面點擊 Refresh ,看一下偵錯訊息,正常的話就表示申請憑證成功

申請成功後,開啟 configuration.yaml,加上以下的部份。

http:
  base_url: test.duckdns.org:8123
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem

重啟 hass,這樣就可以使用 https 連線了,且也不能再使用 http 連線了。
遠端連線方式變成: https://test.duckdns.org:8123
本地端連線就要改成: https://本地端IP:8123

另外建議備份 config/addons/data/ 裡面的 core_letsencrypt 這個目錄,裡面有相關的憑證以及認證訊息。
這個可以在重新安裝時直接把這些資料覆蓋回去,這樣就不用重新申請憑證。
太頻繁申請憑證會暫時無法申請。

由於 Let’s encrypt 只用於申請憑證並沒有定時自己更新的功能。
因此需要加上自動更新的功能。
開啟 automations.yaml,加上以下的部份。
這會定期在每天晚上 11 點重新做憑證更新的動作。
憑證更新的部份會先檢查是否需要更新,如果有需要才會更新,
沒有需要則直接結束。

- id: 'system_lets_encrypt_renewal'
  alias: "[ System ] Let's Encrypt Renewal"
  trigger:
    - platform: time
      at: '23:00:00'
  action:
    - service: hassio.addon_restart
      data:
        addon: core_letsencrypt

Hass 重啟後,部份 automation 被觸發

Hass 重啟後,發現部份 automation 會被觸發。

比如當某人到某個區域時會自動送訊息給我。

automation:
  - id: 'notify_me_when_someone_is_arrived_at'
    alias: 'notify_me_someone_is_arrived'
    description: ''
    trigger:
      - platform: state
        entity_id: device_tracker.someone
        to: 'Work'
    acton:
      - service: notify.mobile_app_me_mobile
        data_template:
          message: 'Someone is arrived'

看起來很正常。
但是在以下狀況卻會發生問題。
如果 someone 已經在 Work 這個地方,當我重啟 Hass 則會再觸發一次這個 automation。
原因是當重啟時,Hass 會重新設定這個 device_track 的狀態,導致就觸發了這個 automation。
解決方式如下

automation:
  - id: 'notify_me_when_someone_is_arrived_at'
    alias: 'notify_me_someone_is_arrived'
    description: ''
    trigger:
      - platform: state
        entity_id: device_tracker.someone
        to: 'Work'
    condition: 
      - condition: template
        value_template: '{{ true if trigger.from_state is not None else false }}'
    acton:
      - service: notify.mobile_app_me_mobile
        data_template:
          message: 'Someone is arrived'


參考連結