物聯網從HomeAssistant開始

文章目錄

  • 一、什么是home-assistant?
    • 1.核心架構
    • 2.集成架構
  • 二、在樹梅派5上安裝home-assistant
  • 三、接入米家
    • 1.對比下趨勢
    • 2.手動安裝插件
    • 3.配置方式
  • 四、接入公牛
    • 1.手動安裝插件
    • 2.配置方式
  • 五、接入海爾
    • 1.手動安裝插件
    • 2.配置方式
  • 六、接入國家電網

一、什么是home-assistant?

Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts.
一款將本地控制與隱私置于首位的開源家庭自動化解決方案,由全球各地的 DIY 愛好者與技術極客玩家社區共同驅動。

1.核心架構

Home Assistant 核心由四個主要部分組成。除此之外,它還包含許多輔助類用于處理常見場景,例如提供實體或處理位置信息。

  • 事件總線(Event Bus):負責協調事件的觸發與監聽 —— 這是 Home Assistant 的核心命脈。
  • 狀態機(State Machine):跟蹤各類實體的狀態,并在狀態變更時觸發 state_changed 事件。
  • 服務注冊表(Service Registry):在事件總線上監聽 call_service 事件,并允許其他代碼注冊服務操作。
  • 定時器(Timer):每秒在事件總線上發送一次 time_changed 事件。
    在這里插入圖片描述
    來源:https://developers.home-assistant.io/docs/architecture/core

2.集成架構

Home Assistant Core 可以通過 集成(integrations) 進行擴展。每個集成負責 Home Assistant 中的一個特定 領域(domain)(如燈光、傳感器、媒體設備等)。集成能夠監聽或觸發事件、提供操作功能,并維護實體狀態。
集成由兩部分組成:組件(component)(基礎邏輯)和 平臺(platforms)(與其他集成交互的模塊)。集成使用 Python 編寫,能夠充分利用 Python 的所有優勢。開箱即用的 Home Assistant 提供了大量內置集成,覆蓋常見的智能家居設備和服務。
在這里插入圖片描述

來源:https://developers.home-assistant.io/docs/architecture_components

二、在樹梅派5上安裝home-assistant

https://www.home-assistant.io/installation/
https://github.com/home-assistant/operating-system/releases
目前是在樹梅派安裝docker運行的home-assistant,后面打算采用HA OS。
在這里插入圖片描述

docker-compose up -d
version: '3'
services:# https://www.home-assistant.io/installation/linux#docker-composehomeassistant:container_name: homeassistantimage: "homeassistant/home-assistant"environment:- TZ=Asia/Shanghaiports:- "8123:8123"volumes:- /root/homeassistant:/config- /etc/localtime:/etc/localtime:ro- /etc/hosts:/etc/hosts:ro- /run/dbus:/run/dbus:rorestart: unless-stoppedprivileged: truenetwork_mode: host

三、接入米家

好久沒更新了:https://github.com/ha0y/xiaomi_miot_raw
最近還在更新:https://github.com/al-one/hass-xiaomi-miot
官方強勢來襲:https://github.com/XiaoMi/ha_xiaomi_home

1.對比下趨勢

https://ossinsight.io/analyze/XiaoMi/ha_xiaomi_home?vs=al-one%2Fhass-xiaomi-miot#overview
還是建議用小米官方的
在這里插入圖片描述

2.手動安裝插件

git clone https://github.com/XiaoMi/ha_xiaomi_home
cp -r ha_xiaomi_home/custom_components/xiaomi_home /root/homeassistant/custom_components

3.配置方式

安裝完成后,重啟 Home Assistant。待 Home Assistant 啟動后,在「設置」菜單中點擊「設備與服務」選項,在新界面中選擇「添加集成」,搜索「xiaomi home」,按照提示操作即可。
在這里插入圖片描述

四、接入公牛

1.手動安裝插件

https://github.com/stevenjoezhang/hass-iotbull

git clone https://github.com/stevenjoezhang/hass-iotbull
cp -r hass-iotbull/custom_components/bull /root/homeassistant/custom_components

2.配置方式

安裝完成后,重啟 Home Assistant。待 Home Assistant 啟動后,在「設置」菜單中點擊「設備與服務」選項,在新界面中選擇「添加集成」,搜索「Bull IoT」,按照提示操作即可。
在這里插入圖片描述

五、接入海爾

https://github.com/banto6/haier

1.手動安裝插件

git clone https://github.com/banto6/haier
cp -r haier/custom_components/haier /root/homeassistant/custom_components

2.配置方式

通過Stream抓包,搜索關鍵詞:assign,點擊查看json即可
在這里插入圖片描述

https://zhuanlan.zhihu.com/p/697084466

六、接入國家電網

這種感覺不太好:https://github.com/ARC-MX/sgcc_electricity_new/blob/master/ha_addons_doc/Add-on%E6%95%99%E7%A8%8B.md

還是老本行,用docker吧

services:sgcc_electricity_app:env_file:- .envimage: registry.cn-hangzhou.aliyuncs.com/arcw/sgcc_electricity:latest # for use docker.io: arcw/sgcc_electricity:latestcontainer_name: sgcc_electricitynetwork_mode: "host"environment:- SET_CONTAINER_TIMEZONE=true- CONTAINER_TIMEZONE=Asia/Shanghairestart: unless-stoppedvolumes:- ./:/data        # if you want to read homeassistant.db, homeassistant.db is in the container at /data/command: python3 main.pyinit: true

.env如下:

### 以下項都需要修改
## 國網登錄信息
# 修改為自己的登錄賬號
PHONE_NUMBER="xxx" 
# 修改為自己的登錄密碼
PASSWORD="xxxx" 
# 排除指定用戶ID,如果出現一些不想檢測的ID或者有些充電、發電帳號、可以使用這個環境變量,如果有多個就用","分隔,","之間不要有空格
IGNORE_USER_ID=xxxxxxx,xxxxxxx,xxxxxxx# SQLite 數據庫配置
# or False 不啟用數據庫儲存每日用電量數據。
ENABLE_DATABASE_STORAGE=False
# 數據庫名,默認為homeassistant
DB_NAME="homeassistant.db"## homeassistant配置
# 改為你的localhost為你的homeassistant地址
HASS_URL="http://localhost:8123/" 
# homeassistant的長期令牌
HASS_TOKEN="eyxxxxx"## selenium運行參數
# 任務開始時間,24小時制,例如"07:00”則為每天早上7點執行,第一次啟動程序如果時間晚于早上7點則會立即執行一次,每隔12小時執行一次。
JOB_START_TIME="07:00"
# 每次操作等待時間,推薦設定范圍為[2,30],該值表示每次點擊網頁后所要等待數據加載的時間,如果出現“no such element”諸如此類的錯誤可適當調大該值,如果硬件性能較好可以適當調小該值
RETRY_WAIT_TIME_OFFSET_UNIT=15## 記錄的天數, 僅支持填寫 7 或 30
# 國網原本可以記錄 30 天,現在不開通智能繳費只能查詢 7 天造成錯誤
DATA_RETENTION_DAYS=7## 余額提醒
# 是否繳費提醒
RECHARGE_NOTIFY=False
# 余額
BALANCE=5.0
# pushplus token 如果有多個就用","分隔,","之間不要有空格
PUSHPLUS_TOKEN=xxxxxxx,xxxxxxx,xxxxxxx

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/905242.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905242.shtml
英文地址,請注明出處:http://en.pswp.cn/news/905242.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

系統架構-嵌入式系統架構

原理與特征 嵌入式系統的典型架構可概括為兩種模式,即層次化模式架構和遞歸模式架構 層次化模式架構,位于高層的抽象概念與低層的更加具體的概念之間存在著依賴關系,封閉型層次架構指的是,高層的對象只能調用同一層或下一層對象…

計算機圖形學編程(使用OpenGL和C++)(第2版)學習筆記 09.天空和背景

天空和背景 對于 3D 場景,通常可以通過在遠處的地平線附近創造一些逼真的效果,來增強其真實感。我們可以采用天空盒、天空柱(Skydome)或天空穹(Skydome)等技術來模擬天空。 天空盒 天空盒(Sk…

【Leetcode 每日一題】1550. 存在連續三個奇數的數組

問題背景 給你一個整數數組 a r r arr arr,請你判斷數組中是否存在連續三個元素都是奇數的情況:如果存在,請返回 t r u e true true;否則,返回 f a l s e false false。 數據約束 1 ≤ a r r . l e n g t h ≤ 10…

面試題解析 | C++空類的默認成員函數(附生成條件與底層原理)

在C面試中,“空類默認生成哪些成員函數”是考察對象模型和編譯器行為的高頻題目。許多資料僅提及前4個函數,但完整的答案應包含6個核心函數,并結合C標準深入解析其生成規則與使用場景。 一、空類默認生成的6大成員函數 1. ?缺省構造函數? …

視頻編解碼學習7之視頻編碼簡介

視頻編碼技術發展歷程與主流編碼標準詳解 視頻編碼技術是現代數字媒體領域的核心技術之一,它通過高效的壓縮算法大幅減少了視頻數據的體積,使得視頻的存儲、傳輸和播放變得更加高效和經濟。從早期的H.261標準到最新的AV1和H.266/VVC,視頻編碼…

使用Stable Diffusion(SD)中,步數(Steps)指的是什么?該如何使用?

Ⅰ定義: 在Stable Diffusion(SD)中,步數(Steps) 指的是采樣過程中的迭代次數,也就是模型從純噪聲一步步“清晰化”圖像的次數。你可以理解為模型在畫這張圖時“潤色”的輪數。 Ⅱ步數的具體作…

消息隊列如何保證消息可靠性(kafka以及RabbitMQ)

目錄 RabbitMQ保證消息可靠性 生產者丟失消息 MQ丟失消息 消費端丟失了數據 Kakfa的消息可靠性 生產者的消息可靠性 Kakfa的消息可靠性 消費者的消息可靠性 RabbitMQ保證消息可靠性 生產者丟失消息 1.事務消息保證 生產者在發送消息之前,開啟事務消息隨后生…

如何查看項目是否支持最新 Android 16K Page Size 一文匯總

前幾天剛聊過 《Google 開始正式強制 Android 適配 16 K Page Size》 之后,被問到最多的問題是「怎么查看項目是否支持 16K Page Size」 ?其實有很多直接的方式,但是最難的是當你的項目有很多依賴時,怎么知道這個「不支持的動態庫…

HttpServletResponse的理解

HttpServletResponse 是 Java Servlet API 提供的一個接口 常用方法 方法用途setContentType(String type)設置響應內容類型(如 "application/json"、"text/html")setStatus(int sc)設置響應狀態碼(如 200、404&#x…

可靈 AI:開啟 AI 視頻創作新時代

在當今數字化浪潮中,人工智能(AI)技術正以前所未有的速度滲透到各個領域,尤其是在內容創作領域,AI 的應用正引發一場革命性的變革。可靈 AI 作為快手團隊精心打造的一款前沿 AI 視頻生成工具,宛如一顆璀璨的…

用 AltSnap 解鎖 Windows 窗口管理的“魔法”

你有沒有遇到過這樣的場景:電腦屏幕上堆滿了窗口,想快速調整它們的大小和位置,卻只能拖來拖去,費時又費力?或者你是個多任務狂魔,喜歡一邊寫代碼、一邊看文檔、一邊刷視頻,卻發現 Windows 自帶的…

深度策略梯度算法PPO

一、策略梯度核心思想和原理 從時序差分算法Q學習到深度Q網絡,這些算法都側重于學習和優化價值函數,屬于基于價值的強化學習算法(Value-based)。 1. 基于策略方法的主要思想(Policy-based) 基于價值類方…

【LaTeX】Word插入LaTeX行間公式如何編號和對齊

在 Word 文檔中插入公式,需要用到 LaTeX \LaTeX LATE?X 。但遺憾的是,Word 只支持部分 LaTeX \LaTeX LATE?X 語法,這就導致很多在 Markdown 能正常渲染的公式在 Word 中無法正常顯示。 “內嵌”和“顯示” 首先介紹一下 Word 的“內嵌”…

互聯網大廠Java面試實戰:Spring Boot到微服務的技術問答解析

💪🏻 1. Python基礎專欄,基礎知識一網打盡,9.9元買不了吃虧,買不了上當。 Python從入門到精通 😁 2. 畢業設計專欄,畢業季咱們不慌忙,幾百款畢業設計等你選。 ?? 3. Python爬蟲專欄…

spring boot3.0自定義校驗注解:文章狀態校驗示例

文章目錄 Spring Boot 自定義校驗注解:狀態校驗示例一、創建 State 注解步驟:1. 創建自定義注解:2. 實現校驗邏輯: 二、 實現自定義校驗步驟:1. 在實體類中使用自定義校驗注解 State:2. 添加 State 注解: 總…

無侵入式彈窗體驗_探索 Chrome 的 Close Watcher API

1. 引言 在網頁開發中,彈窗(Popup)是一種常見的交互方式,用于提示用戶進行操作、確認信息或展示關鍵內容。然而,傳統的 JavaScript 彈窗方法如 alert()、confirm() 和 prompt() 存在諸多問題,包括阻塞主線程、樣式不可定制等。 為了解決這些問題,Chrome 瀏覽器引入了 …

調出事件查看器界面的4種方法

方法1. 方法2. 方法3. 方法4.

Ubuntu 安裝遠程桌面連接RDP方式

1. 安裝 XFCE4 桌面環境 如果你的 Ubuntu 系統默認使用 GNOME 或其它桌面環境,可以安裝輕量級的 XFCE4: sudo apt update sudo apt install xfce4 xfce4-goodies 說明:xfce4-goodies 包含額外的插件和工具(如面板插件、終端等&a…

LWIP傳輸層協議筆記

傳輸協議簡介 文件/圖片/視頻 都是一堆二進制數據 經過傳輸層來傳輸 這兩種協議有什么區別呢? 傳輸層的TCP/UDP三個步驟 TCP使用傳輸流程 1、三次握手 作用:三次握手就是建立連接的過程 2、傳輸數據 作用:建立連接完成之后&#xff…

數據分析與邏輯思維:六步解決業務難題;參考書籍《數據分析原理:6步解決業務分析難題 (周文全, 黃怡媛, 馬炯雄)》

文章目錄 一、懂業務:業務背景與邏輯前提1.1 明確業務目標與問題定義1.2 培養批判性思維與高于業務視角 二、定指標:構建科學的指標體系2.1 指標拆解與維度分析2.2 典型指標體系案例:用戶與業務視角 三、選方法:匹配業務需求的分析…