Phicomm(斐訊) DC1 智能拖板 接入 Home Assistant系統
Phicomm(斐訊) DC1 智能拖板 接入 Home AssistantPhicomm_DC1_HomeAssistant_Diagram.png前言: 受限於IOS平台，zDC1只有Andorid版的APP，大神zip_zhang雖然不會考慮做免費版本的IOS APP。但可以透過Phicomm(斐訊) DC1智能拖板接入到Home Assistant系統後，IOS平台的用戶就可以使用Home Assistant APP控制zDC1智能拖板或者在何時何地只需透過瀏覽器就可以控制智能設備。實現條件: Home Assistant系統MQTT服務目錄內容: 安裝Home Assistant系統安裝MQTT服務及配置安裝MQTT服務建立MQTT登入帳號首次需要透過ZControl APP 接入MQTT服務安裝SAMBA共享服務及配置Home Assistant文件安裝SAMBA共享服務配置Home Assistant 文件轉用MySQL數據庫儲存 (可選)安裝MariaDB數據庫配置Home Assistant 文件更換資料庫後端操作步驟: 安裝Home Assistant系統 我主要是透過PVE安裝，簡單、方便、快捷。Proxmox VE 7 安裝Home Assistant虛擬機系統安裝MQTT服務及配置 MQTT - 維基百科，自由的百科全書 (wikipedia.org)我個人顯淺現解是，MQTT 是一種協議，作為一個代理人角色 協調 「智能裝置」和 「Home Assistant」系統 之間溝通(橋樑)。安裝MQTT服務66f7bf52e83b9e977445de68652eec90e0f7dcbd.pngPVE安裝官方鏡像系統，已經內置了Supervisor引擎(軟件市場)，可以很方便哋透過Add-on(附加元件)方式安裝MQTT。9cb4a56a7622e8dd6dc3ba6486aededbd5ac7b5e.png在「附加元件商店」，選取「Mosquitto broker」3399a82bdb146abd0ea17a9e9754e7ca7eefac00.png圖示是已經完成安裝及執行中。建立MQTT登入帳號1656491d20353a17d82b79c00a090cbefd882ca1.pngde763ca24450a2798ce3b93df6671da000b88b1b.png使用者名稱: mqtt-user (自定義)要啟用「允許人員登入」4b123252dbc890e29998a1f967a7a6ead62b2ebc.png輸入两次使用者密碼以完成建立新的用戶。首次需要透過ZControl APP 接入MQTT服務確認已經完成前期設定Phicomm(斐訊) DC1 智能拖板 - 已經匹配WIFI網絡手提電話已安裝 ZControl Andorid APP3c02ef5ed0ad904c550f00f4df2b647f9edb5ca9.jpg346b468ba41a554a36b7dbd29c779713aec93d58.jpg選項備註MQTT地址Home Assistant的IP地址+端口(預設: 1883)MQTT登錄用戶名Home Assistant系統立的帳號(mqtt-user)MQTT登錄密碼Home Assistant系統的帳號密碼(homeassistant)c71e08a809e159c725643fdc383f08cfe0968907.jpg點擊右上角雲圖標將MQTT配置同步到zDC1手動重啟zDC1才能使新配置生效(讓設備在線)現在就可以透過MQTT控制DC1智能拖板。到這一步，只需要在路由器內設定端口轉發(Port Forwarding)， 可以在外網何時何地透過ZControl Andorid APP訪問及控制DC1智能拖板。安裝SAMBA共享配置Home Assistant文件 安裝SAMBA共享服務66f7bf52e83b9e977445de68652eec90e0f7dcbd.png「設定」> 「附加元件」9cb4a56a7622e8dd6dc3ba6486aededbd5ac7b5e.png在「附加元件商店」，選取「Samba share」7d2e0dd4982e9d77632460127f7c72f007c4ee0e.png圖示是已經安裝完成及執行中。9e2c9b83e6f72649bb7910321109d69a4225c530.png在Samba「設定」內 配置Samba的使用者名稱(Username)及密碼(Password) > 「儲存」。再次重啟Samba服務，使之生效。Home Assistant 配置文件原作者: Home Assistant配置文件便於理解，將配置文件分割成3部份. ├── configuration.yaml └── custom_components └── dc1 ├── customize.yaml ├── sensor.yaml └── switch.yaml 2 directories, 4 files文件名稱功能configuration.yaml主配置文件customize.yaml負責按鈕的命名sensor.yaml負責檢測電壓、功率switch.yaml負責實體按鈕開關透過Samba服務開啟config目錄\\homeassistant.local\config在主配置文件configuration.yaml添加以下內容switch: !include custom_components/dc1/switch.yaml sensor: !include custom_components/dc1/sensor.yaml homeassistant: customize: !include custom_components/dc1/customize.yaml time_zone: Asia/Hong_Kong在config目錄內建立遞歸子目錄 > custom_components > dc1在dc1子目錄內分別建立3個文件customize.yaml switch.zDC1_plug0_2c3ae8480f3e: friendly_name: DC1總開關 switch.zDC1_plug1_2c3ae8480f3e: friendly_name: DC1插槽1 switch.zDC1_plug2_2c3ae8480f3e: friendly_name: DC1插槽2 switch.zDC1_plug3_2c3ae8480f3e: friendly_name: DC1插槽3 sensor.zdc1_power_2c3ae8480f3e: friendly_name: DC1功率 sensor.zdc1_current_2c3ae8480f3e: friendly_name: DC1電流 sensor.zdc1_voltage_2c3ae8480f3e: friendly_name: DC1電壓%sensor.yaml - platform: mqtt name: 'zdc1_power_MACMAC' unique_id: zdc1_power_MACMAC state_topic: 'device/zdc1/MACMAC/sensor' unit_of_measurement: 'W' icon: 'mdi:gauge' value_template: ' value_json.power }}' - platform( mqtt name: 'zdc1_current_MACMAC' unique_id: zdc1_current_MACMAC state_topic: 'device/zdc1/MACMAC/sensor' unit_of_measurement: 'A' icon: 'mdi:gauge' value_template: '{{ value_json.current)' - platform: mqtt name: 'zdc1_voltage_MACMAC' unique_id: zdc1_voltage_MACMAC state_topic: 'device/zdc1/MACMAC/sensor' unit_of_measurement: 'V' icon: 'mdi:gauge' value_template: ' value_json.voltage}}'switch.yaml - platform( mqtt name: 'zDC1_plug0_MACMAC' unique_id: zDC1_plug0_MACMAC state_topic: 'device/zdc1/MACMAC/state' command_topic: 'device/zdc1/MACMAC/set' payload_on: '{"mac":"MACMAC","plug_0":{"on":1},"plug_1":{"on":1},"plug_2":{"on":1},"plug_3":{"on":1)' payload_off: '{"mac":"MACMAC","plug_0":{"on":0}}' value_template: ' value_json.plug_0.on }}' state_on( '1' state_off: '0' # availability_topic: "device/zdc1/MACMAC/availability" # payload_available: 1 # payload_not_available: 0 - platform: mqtt name: 'zDC1_plug1_MACMAC' unique_id: zDC1_plug1_MACMAC state_topic: 'device/zdc1/MACMAC/state' command_topic: 'device/zdc1/MACMAC/set' payload_on: '{"mac":"MACMAC","plug_1":{"on":1)' payload_off: '{"mac":"MACMAC","plug_1":{"on":0}}' value_template: ' value_json.plug_1.on }}' state_on( '1' state_off: '0' # availability_topic: "device/zdc1/MACMAC/availability" # payload_available: 1 # payload_not_available: 0 - platform: mqtt name: 'zDC1_plug2_MACMAC' unique_id: zDC1_plug2_MACMAC state_topic: 'device/zdc1/MACMAC/state' command_topic: 'device/zdc1/MACMAC/set' payload_on: '{"mac":"MACMAC","plug_2":{"on":1)' payload_off: '{"mac":"MACMAC","plug_2":{"on":0}}' value_template: ' value_json.plug_2.on }}' state_on( '1' state_off: '0' # availability_topic: "device/zdc1/MACMAC/availability" # payload_available: 1 # payload_not_available: 0 - platform: mqtt name: 'zDC1_plug3_MACMAC' unique_id: zDC1_plug3_MACMAC state_topic: 'device/zdc1/MACMAC/state' command_topic: 'device/zdc1/MACMAC/set' payload_on: '{"mac":"MACMAC","plug_3":{"on":1)' payload_off: '{"mac":"MACMAC","plug_3":{"on":0}}' value_template: '{{ value_json.plug_3.on }}' state_on: '1' state_off: '0' # availability_topic: "device/zdc1/MACMAC/availability" # payload_available: 1 # payload_not_available: 0請替換以上代碼的MACMAC為zDC1設備的mac地址小寫(可以在ZControl APP 或者 路由器的DHCP列表查看)引用原作者:注意事項:如果接入多個zDC1,請保證customize.yaml配置文件的 name字段唯一性.(其他配置文件替換MACMAC已經實現此唯一性)。e7df28468985cd8968c9f1b2c241859a4f36a89b.png「檢查設定內容」沒有問題後可以「重啟」Home Assistant。32c3fadc7478afa3900311ee5c08ad9a85ece9d7.png重新啟動Home Assistant後，「總覽」 > 「開啟主面板選單」 > 「編輯主面板」8c038aeeaccbd461a4f7b50e4c71abeda44a70b4.png「新增面板」 > 「實體」ebfd7776a4b477ac337756db8c23cc7ade1fed8c.png最後「完成」。現在可以透過Home Assistant APP 或者網頁版面控制zDC1智能拖板了!轉用MySQL(MariaDB)數據庫儲存 (可選) Home Assistant默認使用 SQLite ，當數據日積月累時到一定體積時，打開歷史頁面的響應會非常緩慢且容易假死現象，為求更快響應速度，建議更換數據庫為 MariaDB。可以使用附加元件可以很方便地安裝 MariaDB，用作Home Assistant的資料庫後端。安裝MariaDB數據庫66f7bf52e83b9e977445de68652eec90e0f7dcbd.png「設定」> 「附加元件」9cb4a56a7622e8dd6dc3ba6486aededbd5ac7b5e.png在「附加元件商店」，選取「MariaDB」91023792eea1a3734f7ef15707522b1933e48a8f.png圖示是已經安裝完成及執行中。154eac4123dcc0368c84916a9cc4f839b1b5ec86.png在MariaDB「設定」內 配置MariaDB的使用者名稱(Username)及密碼(Password) > 「儲存」。選項註釋Logins:MariaDB的 帳號 和 密碼Rights:MariaDB的 數據庫(Database)名稱 和 權限所屬再次重啟MariaDB服務，使之生效。配置Home Assistant 文件更換資料庫後端透過Samba服務開啟config目錄\\homeassistant.local\config在主配置文件configuration.yaml添加以下內容mysql://user(使用者):password(密碼)@SERVER_IP(伺服器地址)/DB_NAME(數據庫名稱)?charset=utf8(數據庫格式)# MariaDB will be used by the recorder and history components within Home Assistant. recorder: purge_keep_days: 5 db_url: mysql://homeassistant:homeassistant@core-mariadb/homeassistant?charset=utf8mb4選項註釋purge_keep_days:保留歷史的時間為5天db_url:轉用MariaDB資料庫為後端e7df28468985cd8968c9f1b2c241859a4f36a89b.png檢查配置內容沒有問題後可以「重啟」Home Assistant，使之失效。結語: 到這Phicomm(斐訊) DC1智能拖板的分享也告一段了! 真的人家出豉油我出雞，為了可以善用「肥神」遺產也是夠折騰人的。雖然是這樣，也是學習到好多新的東西。也算是最低成本的興趣吧! 謝謝某遺產，謝謝大神分享。相關連結: Phicomm(斐訊) DC1 智能拖板 - 固件燒錄 - King Zone (kingtam.win)Proxmox VE 7 安裝Home Assistant虛擬機系統 - King Zone (kingtam.win)使用 NGINX 反向代理 Home Assistant - King Zone (kingtam.win)參考資料: 開始使用 · zDC1homeassistant接入 · zDC1Home Assistant Add-on: Mosquitto brokerHome Assistant Add-on: Samba shareHome Assistant Add-on: MariaDB