hass工控
home assistant 部署方式
-
haos
-
容器Container
-
Supervised (建议)
(用haos占内存少)
涂鸦是垃圾

下载地址 https://github.com/home-assistant/operating-system/releases
https://www.home-assistant.io/installation/linux#home-assistant-os
下载 haos_generic-aarch64-14.0.qcow2.xz 解压后导入kvm/pve虚拟机运行
虚拟机部署
haos_ova-16.3.qcow2.xz
qm create 109 \
--name "haos16" \
--memory 4096 \
--cores 2 \
--sockets 1 \
--cpu host \
--machine q35 \
--bios ovmf \
--net0 virtio,bridge=vmbr0
qm importdisk 100 haos_ova-16.3.qcow2 local-lvm --format=qcow2
空机 ,也需要动态部署容器(约20分钟)
haos终端
haos需要uefi方式启动
host info
network info
host shutdown
Web Terminal 附加件
修改IP
login #进入终端
nano /etc/NetworkManager/NetworkManager.conf # 配置管理的网卡
ls -l /etc/NetworkManager/system-connections/*.nmconnection #配置网卡的IP设置
nmcli dev status # NetworkManager 命令行工具
nmcli con show #查看网口
nmcli dev #查看网口
空配置
nmcli con add type ethernet ifname enp6s18 con-name static-enp6s18 ipv4.addresses 192.168.11.118/24 ipv4.gateway 192.168.11.111 ipv4.dns 114.114.114.114 ipv4.method manual
排除故障
nmcli con delete static-enp6s18
nmcli device set enp6s18 managed yes
nmcli con modify static-enp6s18 connection.interface-name enp6s18
nmcli con up static-enp6s18
配置
nmcli con edit "Supervisor enp0s18"
print ipv4
set ipv4.dns 8.8.8.8
set ipv4.addresses 192.168.11.221/24
set ipv4.gateway 192.168.11.1
save
quit
在 /etc/NetworkManager/system-connections/ 下生成配置文件
生效
systemctl restart NetworkManager #重启系统生效
systemctl disable systemd-networkd #免得互相抢网卡
systemctl enable NetworkManager #重启系统生效
注解掉 /etc/network/interfaces #内网卡占用
ping 192.168.11.1
fping -lt 1000 192.168.11.1
http://192.168.11.221:8123/
Supervisor部署
可以lxc容器部署 (不可以pve设置网络)
pct create 2727 /var/lib/vz/template/cache/debian-12-standard_12.12-1_amd64.tar.zst \
--arch amd64 --hostname lxc-debian12 --rootfs local-lvm:15 --memory 2048 --swap 0 \
--cores 4 --ostype debian --unprivileged 0 --net0 bridge=vmbr0,name=eth0 \
--features nesting=1,keyctl=1
pct config 2727 | grep rootfs # local-lvm:vm-2727-disk-0
mkdir -p /mnt/lxc2727
mount /dev/pve/vm-2727-disk-0 /mnt/lxc2727
chroot /mnt/lxc2727 /bin/bash
passwd
umount /mnt/lxc2727
错误
/proc/sys/kernel/dmesg_restrict: Read-only file system
nano /etc/pve/lxc/2727.conf
pct start 2727
pct stop 2727
lxc.cap.drop:
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.auto: proc:rw
lxc.mount.auto: proc:rw sys:rw cgroup:rw
lxc.cgroup2.devices.allow: c 188:* rwm
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
lxc.cgroup2.devices.allow: c 10:200 rwm
安装debian12
关键是安装
docker 和 os-agent 和 network-manager
haio 必须使用debian12 不可以lxc容器部署
不建议装 portainer 管理docker
systemctl set-default multi-user.target
systemctl isolate multi-user.target
systemctl get-default
timedatectl set-timezone Asia/Shanghai
hostname --ip-address
ip link set eth0 up
ip addr add 192.168.186.199/24 dev eth0
ip route add 0.0.0.0/0 via 192.168.186.1
echo "nameserver 8.8.8.8" > /etc/resolv.conf
cp /etc/apt/sources.list /etc/apt/sources.list~
sed -i 's|deb.debian.org/debian|mirrors.tuna.tsinghua.edu.cn/debian|g' /etc/apt/sources.list
apt update && apt install network-manager
apt install apparmor apparmor-utils cifs-utils wget curl dbus jq libglib2.0-bin \
lsb-release network-manager nfs-common systemd-journal-remote \
udisks2 dbus software-properties-common -y
装docker
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -cs) stable"
apt install docker-ce docker-compose
sup实现包
- os-agent 与主机系统通信
- homeassistant-supervised 协调docker安装其他服务
安装 os-agent
https://github.com/home-assistant/os-agent/releases/latest #下载deb包
wget https://github.com/home-assistant/os-agent/releases/download/1.6.0/os-agent_1.6.0_linux_x86_64.deb
dpkg -i os-agent_1.6.0_linux_x86_64.deb
gdbus introspect --system --dest io.hass.os --object-path /io/hass/os #检查安装成功与否
安装 homeassistant-supervised
vi /etc/docker/daemon.json
wget https://github.com/home-assistant/supervised-installer/releases/download/1.5.0/homeassistant-supervised.deb -O /mnt/homeassistant-supervised.deb
chmod 777 /mnt/homeassistant-supervised.deb
apt install /mnt/homeassistant-supervised.deb #自动安装器
systemctl status hassio-supervisor #开始部署docker应用
timedatectl
ss -ln |grep :8123 #landingpage
curl 127.0.0.1:8123 -v
检查
aa-status
ha supervisor info | grep healthy
ha jobs options --ignore-conditions healthy # 忽略健康检查
ha jobs options --ignore-conditions none # 恢复
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="splash verbose apparmor=1 security=apparmor"
update-grub
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=boot
查看启动项
lsblk -f
efibootmgr --create --disk /dev/sda --part 1 --label "haos" --loader "\EFI\DEBIAN\GRUBX64.EFI"
efibootmgr --create --disk /dev/sda --part 1 --label "deb12" --loader "\EFI\DEBIAN\SHIMX64.EFI"
efibootmgr -v
设置IP
关闭默认网卡管理器 ,使用 NetworkManager
systemctl stop systemd-networkd
systemctl disable systemd-networkd
systemctl status systemd-networkd
systemctl mask systemd-networkd
systemctl restart networking.service
systemctl enable NetworkManager --now
nmcli con show
nmcli d #查看网卡 被识别的网卡
eth0 ethernet connected (externally) eth0
lo loopback connected (externally) lo
网卡会被修改成 "Supervisor ens18"
nmcli con show
nmcli connection up "Wired connection 1" ifname eth0
nmcli connection up "Supervisor eht0" ifname eth0
nmcli d #查看网卡 被识别的网卡
nmcli con modify "Supervisor ens18" +ipv4.addresses 192.168.11.118/24
nmcli con modify "Supervisor ens18" +ipv4.dns 8.8.8.8
nmcli con show "Supervisor enp0s18"
nmcli con down "Supervisor enp0s18"
nmcli con up "Supervisor enp0s18"
快速备份镜像
ghcr.io/home-assistant/amd64-hassio-supervisor:2025.11.4 2c97271fbcdc 445MB 0B U
ghcr.io/home-assistant/amd64-hassio-supervisor:latest 2c97271fbcdc 445MB 0B U
ghcr.io/home-assistant/qemux86-64-homeassistant:2025.11.3 82efeef0f409 2.09GB 0B U
docker save -o ~/qemux86-64-homeassistant.tar ghcr.io/home-assistant/qemux86-64-homeassistant:2025.11.3
docker save -o ~/amd64-hassio-supervisor.tar ghcr.io/home-assistant/amd64-hassio-supervisor:latest
scp ./*.tar root@10.86.25.7:/root/
docker load -i ~/qemux86-64-homeassistant.tar #导入镜像
docker load -i ~/amd64-hassio-supervisor.tar #导入镜像
ha命令
ha network update --ipv4-method static --ipv4-address 192.168.186.190/24 --ipv4-gateway 192.168.186.1 --dns 8.8.8.8
ha network info #查看网卡
ha info
ha addons install core_ssh # Terminal & SSH
总配置文件
/config/configuration.yaml
HACS商店
在线装
wget -O - https://get.hacs.xyz | bash -
docker exec -it hass /bin/bash
mkdir -p www
mkdir -p custom_components/hacs
unzip hacs.zip -d /opt/hass/config/custom_components/hacs
开发者工具.重启
配置.设备与服务
输入 hacs
git 设备认证
加载项
本质是docker服务 需要魔法环境很多安装 需要访问 registry-1.docker.io,可以借助旁路由
常用加载项
- nodered #-- 需要ssl证书或 在配置 标签页中禁用
- ghcr.io/hassio-addons/node-red/amd64:20.2.3
- ssh ( 系统终端 ) Advanced SSH & Web Terminal #-- 需要配置 在配置 标签页设置密码
- ghcr.io/hassio-addons/ssh/amd64:22.0.3
- Samba share
- homeassistant/amd64-addon-samba:12.5.4
- mqtt
- homeassistant/amd64-addon-mosquitto:6.5.2
- Grafana
- ghcr.io/hassio-addons/grafana/amd64:12.1.0
- emqx *
开启高级模式
用户设置 -> 高级模式
设置->右上角三个点.重启ha
Mosquitto网关
Mosquitto broker
配置.加载项.Mosquitto
加载项+集成都有 mqtt相关
设置中Logins
- username: umqtt
password: passwd
-
File editor
-
Terminal & SSH
samba
设置用户名,密码
Node-RED
配置中设置账号密码,再启动
配置 . 设置 ssl为否
模块 home assistant entities + 模块 home assistant
添加集成
安装官方小米
搜索 xiaomi home
hacs商店
安装商店
curl -fsSL get.hacs.vip | bash
重启后去集成中添加hacs商店
智能流程
小米
集成中搜索 xiaomi home
会装到smb//xxx/config/custom_components
Xiaomi Home设备列表变化 进入集成->点开小米-》 配置选项(齿轮)-》 勾选:更新设备列表 ->下一步
ha节点
events:all #所有事件
evenet:state #状态改变
poll state #轮询
action #执行开关
action(控制动作)
- 动作:light.toggle
- target: 设备id
Node-RED Companion
在hacs商店集成 Release v3.1.7
hacs->Node-RED Companion 功能 打通hass与nodeRed
推送
let 输入消息 = '空'//msg.payload
msg.url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=4485185b-9a03-42ad-8c69-a5dbb9e69fa0"
msg.method = "POST"
msg.headers = {"Content-Type":"application/json"}
// ----发送
msg.payload= {
"msgtype": "text",
"text": {
"content": 输入消息
}
}
return msg;
通过企微群机器人
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=4485185b-9a03-42ad-8c69-a5dbb9e69fa0
例如 post请求发信息到群里
企业名称
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=85e2e0b2-7393-4ef7-bc17-775e691c55ae
MQTT集成
需要配置 连接上加载项上的Mosquitto broker服务
MQTT 设置->重新配置 MQTT (一般默认即可监听收到消息)
代理 127.0.0.1
端口 1883
用户名 umqtt
密码 passwd
mqtt
apt install mosquitto-clients
#//当前连接数
mosquitto_sub -h mqtt02.oq.17121.top -p 1883 -u mqtt -P pass -v -t \$SYS/broker/clients/connected
mosquitto_sub -h mqtt02.oq.17121.top -p 1883 -u mqtt -P pass -v -t \$SYS/broker/subscriptions/count
api访问
用户 ->安全标签->长期访问令牌
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIzMzRiYmMwMDc2YTc0M2MxYjY4MTU5NWYyZjNiZWQ3YyIsImlhdCI6MTc2NDU3NzI4OCwiZXhwIjoyMDc5OTM3Mjg4fQ.QMlFDnr-nlzrK6CBUmoMzcVequNsyM5KTQw7TJpSbDY
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYjBkNDE1OTdjMzM0NDljOGE4YWI2OWVkYmFkODBiZiIsImlhdCI6MTc2NDU3Nzc5MSwiZXhwIjoyMDc5OTM3NzkxfQ.lF8q3qzQbry3bg0q9wyZle936nxypCP4v2E4CBCxl28
curl --location --request GET 'http://z4home.17121.top:8123/api/states/sensor.iot_cn_848825902_pw6u1_electric_power_p_3_2' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYjBkNDE1OTdjMzM0NDljOGE4YWI2OWVkYmFkODBiZiIsImlhdCI6MTc2NDU3Nzc5MSwiZXhwIjoyMDc5OTM3NzkxfQ.lF8q3qzQbry3bg0q9wyZle936nxypCP4v2E4CBCxl28' \
--header 'Content-Type: application/json' \
--data-raw ''
ESP
ESPHome
ha内构建.烧入到设备.集成中添加
通过 ip:6053管理
加入mqtt
mqtt web客户端
# MQTT 配置
mqtt:
broker: 192.168.11.221
port: 1883
username: mqtt
password: passwd
discovery: true
discovery_prefix: homeassistant
在集成mqtt模块中发现实体
编译参数
# GPIO2 LED 配置
light:
- platform: monochromatic
name: "Board LED"
output: led_output
output:
- platform: ledc
pin: GPIO2
id: led_output
frequency: 1000 Hz
二次可用ota云升级
写入固件
建议web方式写入
下载bin
到: https://web.esphome.io/
选中文件
开始 Erasing 擦写
连入wifi设置 192.168.4.1
tasmota固件
tasmota + node-red
通过web https://tasmota.github.io/install/
写入bin文件
终端开启发现
setOption19 0
设置功能
设置.模块.GPIO02=Relay #//即开关
分类型
| 固件名称 | 适用场景 |
|---|---|
tasmota32.bin | 通用版本,适用于大多数 ESP32 开发板,提供基本 WiFi 和 MQTT 功能。 |
tasmota32-sensors.bin | 包含更多传感器支持(如温湿度、光照、气体传感器等),适合需要额外传感器集成的应用。 |
tasmota32-bluetooth.bin | 添加了蓝牙支持(BLE),适用于需要蓝牙功能的场景。 |
tasmota32-knx.bin | 支持 KNX 协议,适合特定智能家居系统的需求。 |
tasmota32-display.bin | 包含显示屏支持(如 OLED、TFT 显示屏),适用于带屏幕的项目。 |
编译环境
https://tasmota.github.io/docs/Gitpod/
Master Release: https://gitpod.io#https://github.com/arendst/Tasmota/tree/master
micropython
Thonny菜单.运行.配置解释器.选micropython解释器.安装和更新micropython
选串口和文件(*.factory.bin).安装
模拟器 https://wokwi.com/projects/305568836183130690
传感器外设
G -- GND ; 接地
V -- VCC ; 供电
S -- I/O口 信号
opc-ua网关
python-opcua
node-red-contrib-opcua
本地访问
播放声音
apt install alsa-utils alsa-tools -y
aplay -l
arecord -l
cat /proc/asound/cards
lsmod | grep snd
lspci -nn | grep Audio
ls -l /dev/snd/*
fuser --all --verbose /dev/snd/*
speaker-test -c 8
apt install mopidy-mpd mopidy-http
version: '3.8'
services:
mopidy:
image: mopidy/mopidy:latest
container_name: mopidy
volumes:
- ./config:/var/lib/mopidy/config
- ./media:/var/lib/mopidy/media
- ./data:/var/lib/mopidy/cache
ports:
- "6680:6680" # Web 界面端口
- "6600:6600" # MPD 端口
environment:
- PULSE_SERVER=unix:/run/user/1000/pulse/native
restart: always
重置密码
ha authentication reset --username "JohnDoe" --password "123SuperSecret!"
ESP32-S3-cam开发板跟ESP32-S3核心板资料包
链接:https://pan.baidu.com/s/1Vid5yvQBuNgaCaKLUE0yEA
提取码:Qj97
micropython教程:https://blog.csdn.net/m0_60853221/article/details/143649019
扩展板资料:https://pan.baidu.com/s/1YjGtnvHj3FrLQnUXJPRyxg?pwd=64N1
提取码:64N1
最丝滑的AI实时语音 听声辨人 多人互动 (开源ESP32)
https://www.bilibili.com/video/BV1G4pweCERX
ESP32-S3-WROOM-1-N16R8 内置sram512K,内置ROM384K,模组外挂16M字节的SPI Flash,外挂8M psram(psram需要程序配置启用)