19
2022
06

树莓派安装docker+homeassistant+mqtt+hacs

# 安装docker
sudo apt-get update
sudo curl -sSL https://get.docker.com | sh

# 测试docker
sudo docker run hello-world

# 图形界面
sudo docker pull portainer/portainer
# 创建 portainer 容器
sudo docker volume create portainer_data
# 启动
sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
# 访问 http://localhost:9000

# 修改仓库
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json
{"registry-mirrors": ["https://izfodmym.mirror.aliyuncs.com"]}

sudo systemctl daemon-reload
sudo systemctl restart docker
# 安装homeassistant
# 在这里查看版本(建议指定版本,默认为latest,有可能是旧版本)
https://hub.docker.com/r/homeassistant/home-assistant/tags

#拉取hass的最新版镜像(注意:根据自己需求选择对应版本)
sudo docker pull homeassistant/home-assistant:2022.6

#创建容器并运行
sudo docker run -d --name="hass" -v ${HOME}/hass/config:/config -v /etc/localtime:/etc/localtime:ro -p 8123:8123 homeassistant/home-assistant:2022.6
# 容器自动启动
sudo docker update --restart=always hass
# 关闭容器自启动(仅作参考)
sudo docker update --restart=no hass

# 进入控制台(仅作参考)
sudo docker exec -it hass bash

解释:
-d:表示在后台运行
–name:给容器设置一个名称,用于识别,这里起名叫做hass
-v:配置目录映射(容器内的指定目录直接映射到本地主机的对应目录,比如上面那句命令,意思就是将容器里hass的 config 目录映射到 /home/hass/config 这个目录里面)
-p:映射端口(将容器内的8123端口直接映射到物理机的8123端口,这样服务器的IP地址+端口号即可访问hass页面)
最后就是运行刚才下载的容器镜像了,对于其他的版本了,注意要加上tag,避免自动下载最新版本。

# 离线安装
# 保存镜像到本地
sudo docker save -o hass.tar homeassistant/home-assistant:2022.6
# 把镜像拷贝到无网络的电脑,然后通过docker加载镜像即可
docker load -i hass.tar

# 官方安装命令(仅作参考)
docker run -d --name homeassistant --privileged --restart=unless-stopped -e TZ=MY_TIME_ZONE -v /PATH_TO_YOUR_CONFIG:/config --network=host ghcr.io/home-assistant/home-assistant:stable
# 安装MQTT
sudo docker pull eclipse-mosquitto:2.0.14

sudo mkdir -p /mosquitto/config
sudo mkdir -p /mosquitto/data
sudo mkdir -p /mosquitto/log

# 设置模板权限
sudo chmod -R 755 /mosquitto
sudo chmod -R 777 /mosquitto/log 


# 创建配置文件
sudo nano /mosquitto/config/mosquitto.conf
# 内容
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883 0.0.0.0
allow_anonymous true

# 创建容器
sudo docker run -it --name=mqtt --privileged  -p 1883:1883 -p 9001:9001 -v /mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf  -v /mosquitto/data:/mosquitto/data -v /mosquitto/log:/mosquitto/log -d  eclipse-mosquitto:2.0.14

# 容器自动启动
sudo docker update --restart=always mqtt

#对于passworf_file,可以复制一份模板,或者创建一个空文件(仅作参考)
touch /mosquitto/config/pwfile.conf
chmod -R 755 /mosquitto/config/pwfile.conf

# 使用mosquitto_passwd命令创建用户,第一个test是用户名,第二个test2022是密码
mosquitto_passwd -b /mosquitto/config/pwfile.conf water water2022


# hass mqtt 配置(仅作参考)
mqtt:
  broker: 192.168.xxx.xxx
  port: 1883
# 安装hacs
# 官方方法不推荐(网络受限)
wget -O - https://get.hacs.xyz | bash -
# 如果网址不能访问
wget -O - https://raw.githubusercontent.com/hacs/get/main/get | bash -

# 手动安装 hacs.zip
https://github.com/hacs/integration/releases

# hass config目录下创建 custom_components 将解压后的hacs复制到该目录
mkdir -p ${HOME}/hass/config/custom_components


« 上一篇

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。