目录
1)首先利用第三方软件连接MySQL,本文使用的VScode
一、华为云用法
购买后如图所示:
二、安装宝塔
1、进行远程登录
2、安装宝塔
1)宝塔网址:
宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板 (bt.cn)
2)复制对应系统的命令
3)过程中全部选择y
4)安装成功如下:
5)宝塔常用命令:
bt //打开面板,常用来设置账号与密码
bt start //启动宝塔面板服务。
bt stop //停止宝塔面板服务。
bt restart //重启宝塔面板服务。
bt default //查看默认入口和账号密码
6)重新设置用户名与密码
7)查看网址、账号、密码
8)直接输入该网址是没法打开网页的
9)需要在华为云控制台放开24503端口的权限
10)再次刷新
11)成功:
三、利用宝塔安装docker
1)等待安装成功
2)成功后:
3)docker常用命令:
四、安装homeassistant
1)利用docker安装
2)或者利用命令:
docker pull homeassistant/home-assistant:latest
3)成功后如图:
4)运行homeassistant
执行以下命令:
sudo docker run -d --name="homeassistant-v1" --restart=always -v /home/homeassistant-config:/config -p 8123:8123 homeassistant/home-assistant:latest
#docker update --restart=always 容器ID(或者容器名)
(容器ID或者容器名根据实际情况修改)
docker run
:创建一个新的容器(虚拟机)-d
:表示后台运行,通俗讲就是它在运行,终端看不到它--name="homeassistant-v1"
:给这个新的运行的虚拟机(容器)命名为homeassistant-v1
-v xxxx:yyyy
:xxxx部分就是你Ubuntu电脑的真实路径,yyyy就是运行的新的虚拟机的路径。这句话翻译成大白话:让Ubuntu电脑的xxxx文件夹与新的虚拟机的yyyy文件夹是同一个文件夹,它们俩共享-p 8123:8123
:将Ubuntu电脑的8123端口(第1个)与虚拟机的端口8123(第2个)做映射,大白话:就是访问Ubuntu的8123端口的请求都会转发给虚拟机的8123端口homeassistant/home-assistant:latest
:表示要用的哪个docker 镜像
5)成功后如下:
6)在华为云控制台开放8123端口
7)登录homeassistant
在浏览器中输入 : IP:8123
把高级模式打开
自此Homeassistant安装成功
五、安装EMQX
网址:EMQX:用于物联网、车联网和工业物联网的企业级 MQTT 平台
1)利用docker安装
sudo docker pull emqx/emqx:5.0.16
#sudo docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.0.16
sudo docker run -d --name emqx --restart=always -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.0.16
2)在华为云控制台放开1883/18083端口的权限
3)登录EMQX
初始账号密码
账号:admin
密码:public
六、将MQTT接入Homeassistant
1)登录Homeassistant
2)添加成功后如图所示:
3)测试:
订阅一个hello主题,自己又发送了一个hello的主题,导致的结果是,会收到自己发送到的数据
收到自己发送的数据,说明成功将MQTT接入Homeassistant
七、安装mqsl数据库
1)利用docker安装
docker pull mysql:5.7 //拉取镜像
docker run --restart=unless-stopped -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 //运行mqsql
root@hcss-ecs-f59d:~#
root@hcss-ecs-f59d:~# docker ps //查看镜像ID
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ceaa02bef6d1 mysql:5.7 "docker-entrypoint.s…" 11 seconds ago Up 11 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp pensive_villani
bd871f6557ed emqx/emqx:5.0.16 "/usr/bin/docker-ent…" 17 hours ago Up 17 hours 4370/tcp, 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 0.0.0.0:8083-8084->8083-8084/tcp, :::8083-8084->8083-8084/tcp, 5369/tcp, 0.0.0.0:8883->8883/tcp, :::8883->8883/tcp, 0.0.0.0:18083->18083/tcp, :::18083->18083/tcp, 11883/tcp emqx
712d710c4695 homeassistant/home-assistant:latest "/init" 18 hours ago Up 18 hours 0.0.0.0:8123->8123/tcp, :::8123->8123/tcp homeassistant-v1
root@hcss-ecs-f59d:~# docker exec -it ceaa02bef6d1 /bin/bash //进入容器
bash-4.2#
bash-4.2# mysql -u root -p //进入MySQL
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.44 MySQL Community Server (GPL)
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
2)成功后如图所示:
3)释放权限
mysql -u root -p
use mysql;
select host from user where user='root';
update user set host = '%' where user ='root';
flush privileges;
select host from user where user='root';
八、在EMQX中添加MySQL账号密码认证
1)首先利用第三方软件连接MySQL,本文使用的VScode
首先安装插件
2)新建对应的数据库与表
CREATE DATABASE mqtt_user;
USE mqtt_user;
CREATE TABLE `mqtt_user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(100) DEFAULT NULL,
`password_hash` varchar(100) DEFAULT NULL,
`salt` varchar(35) DEFAULT NULL,
`is_superuser` tinyint(1) DEFAULT 0,
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `mqtt_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
3)登录EMQX
4)连接成功:
5)添加一个账号密码
执行命令:
insert into mqtt_user(id,username,password_hash,salt,is_superuser,created) VALUES(NULL,'niuyasen','123456',NULL,NULL,NOW());
6)成功:
7)验证
下载MQTTX:使用 MQTT 客户端快速测试 MQTT 服务 | EMQ (emqx.com)
1)连接成功
2)发送数据给Homeassistant
3)Homeassistant发送数据给EMQX
自此物联网平台搭建成功,写这个文章花了四个小时