物联网从HomeAssistant开始

一、什么是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-compose
  homeassistant:
    container_name: homeassistant
    image: "homeassistant/home-assistant"
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "8123:8123"
    volumes:
      - /root/homeassistant:/config
      - /etc/localtime:/etc/localtime:ro
      - /etc/hosts:/etc/hosts:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    network_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:
      - .env
    image: registry.cn-hangzhou.aliyuncs.com/arcw/sgcc_electricity:latest # for use docker.io: arcw/sgcc_electricity:latest
    container_name: sgcc_electricity
    network_mode: "host"
    environment:
      - SET_CONTAINER_TIMEZONE=true
      - CONTAINER_TIMEZONE=Asia/Shanghai
    restart: unless-stopped
    volumes:
      - ./:/data        # if you want to read homeassistant.db, homeassistant.db is in the container at /data/
    command: python3 main.py
    init: 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值