当前位置: 首页 > news >正文

GeekPad 连接到VirtualBox的Ubuntu虚拟机上的Home-Assistant

GeekPad是新房装修时买的,用的时候才发现没法用app控制(能用语音控制,但是那效果谁用谁知道,经常说了半天,还是需要亲自下床按下开关),说是还需要小米的蓝牙网关。算了,这个智慧屏本身才100多点,再花200多买个小爱音响或小米路由那就太不划算了。本人已经有天猫精灵了。还是看看有没有其他办法,在GeekPak里找了半天,发现只有MQTT有IP和端口设置,看来似乎可以用来联网。本人要求也不高,能在局域网(也就是说,GeekPad智慧屏,手机,电脑需要连到同一个网关/路由上)里控制开关就可以了。

昨天折腾了一天,终于可以在电脑上用home assistant控制GeekPad智慧屏上面的三个开关了。现在把主要的步骤记录一下:

  1. 安装VirtualBox开源软件,这个不多说了,直接找官网
  2. 下载Ubuntu镜像文件,然后在VirtualBox里安装Ubuntu,需要安装22.04版本,老版本在驱动方面可能有问题,不建议安装(一点提示:据说虚拟机对硬盘寿命有影响,有这个担心的可以买个USB盘,把虚拟机转移到USB盘里)
  3. 安装后先不启动,选中Ubuntu后,点击上面的控制选项,再选中设置菜单
  4. 点击网络选项,选桥接网络,然后选windows下的无线网卡
  5. 检查从windows到Ubuntu能相互Ping通,前面在windows下进行,下面的操作都在ubuntu上进行
  6. 安装MQTT服务,启动一次服务后面就会自动启动服务了
    1. sudo apt install curl
    2. 下载EMQX repository:curl –s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
    3. 安装:sudo apt-get install emqx
    4. 运行:sudo systemctl start emqx
    5. 打开网页:localhost:18083
  7. 再下来安装home assistant
    1. 升级python版本到3.12

      1. sudo apt install -y software-properties-common build-essential libbz2-dev libssl-dev libreadline-dev libsqlite3-dev libncurses5-dev libgdbm-dev libnss3-dev libatk1.0-0 libx11-xcb1 libxkbcommon0 libxrender1 libxext6 libx11-6 libxfixes3 libxdamage1 libxcomposite1 libxcursor1 libxrandr2 libpangocairo-1.0-0 libpango-1.0-0 libgtk-3-0 libdbus-1-3 libexpat1 liblzma5 zlib1g libffi-dev libdb-dev libgdbm-dev liblzma-dev tk-dev uuid-dev libnsl-dev zlib1g-dev

      2. wget https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz

      3. tar -xf Python-3.12.7.tgz(备注:如果输入一个长的文件名,文件夹里已经有了,可以在中间试着按下Tab键,如果没有重名或异议的文件名,系统会自动补全)

      4. cd Python-3.12.7

      5. ./configure

      6. make -j $(nproc)

      7. sudo make altinstall

      8. sudo ln -sf /usr/local/bin/python3.12 /usr/bin/python3

      9. sudo ln -sf /usr/local/bin/python3.12 /usr/bin/python

      10. sudo ln -sf /usr/local/bin/pip3.12 /usr/bin/pip3

      11. sudo ln -sf /usr/local/bin/pip3.12 /usr/bin/pip

      12. sudo apt-get install -y libcairo2-dev gir1.2-gobject-2.0 libgirepository1.0-dev

      13. pip3 install PyGObject
    2.    下载安装home assistant
      1. sudo apt install git
      2. git clone https://github.com/home-assistant/core  (如果暂时无法访问,等会再试吧,没必要再去搞一个VPN啥的)
      3. cd core
      4. script/setup
    3. 运行下面2句来启动home assistant,后面启动时别忘了先进入core文件夹
      1. source venv/bin/activate
      2. hass -c config
    4. 浏览器访问127.0.0.1:8123
    5. 继续打磨:第三步执行的时候需要输入两次命令,比较麻烦,其实可以改进一下
    6. 改进1,该方法启动终端自动启动服务,要退出按Ctrl+C:
      1. nano ~/.bashrc
      2. 导航到最后一行,回车
      3. 添加三行代码
        1. 第一行“cd ~/Documents/core"(我的文件放在Documents下面了,请按实际情况修改)
        2. 第二行”source venv/bin/activate"(备注:用deactivate退出环境)
        3. 第三行"hass -c config"
      4. 然后按Ctrl+O加回车键保存,按Ctrl+X退出
      5. 这样的话,打开Terminal就会自动运行home assistant服务了
    7. 改进2:
      1. 建一个bash文件
      2. 将三行代码添加到bash文件
      3. 在终端运行bash文件启动服务
  8. 在Ubuntu中找到有线连接IPV4地址(类似192.168.0.22),把地址填写到GeekPad的MQTT网址栏,端口原来的数据不要修改,退出设置,自动重启
  9. home assistant启动后设置好用户名,密码,在MQTT服务开启的情况下,点击设置->设备与服务->添加集成,搜索MQTT然后添加,可以看到标签下面有一个设备和三个实体。点击设备进入可以看到设备信息,控制按钮和日志如下图。好了试下效果吧。

如果想在手机上控制,可以安装安卓版的home assistant, 当然手机上能控制的前提是电脑上的MQTT服务和home assistant服务都在运行的情况下面,另外手机和电脑都需要在同一个网段(连到同一个路由器上)。


http://www.mrgr.cn/news/82113.html

相关文章:

  • 【网络协议】开放式最短路径优先协议OSPF详解(一)
  • 【集成电路制造与封测】第二章 硅片的制造,气相外延
  • PyTorch AMP 混合精度中grad_scaler.py的scale函数解析
  • C语言中的隐式转换问题
  • python小项目:给复制出来的段落前添加星号
  • 使用 4 种主要方法将数据从 HTC 传输到华为
  • win32汇编环境下,窗口程序中生成listview列表控件及显示
  • 使用Clion在ubuntu上进行交叉编译,并在Linux上远程编译五子棋
  • UE5 Debug的一些心得
  • 商汤C++开发面试题及参考答案
  • Enum枚举类与静态变量和静态数组的区别
  • 单片机-LED实验
  • Edge如何获得纯净的启动界面
  • 线段树保姆级教程
  • CT 扫描显示 USB-C 电缆可能隐藏复杂的恶意硬件
  • 【paddle】初次尝试
  • C++新特性||线程协程
  • 论文实现:Reactive Nonholonomic Trajectory Generation via Parametric Optimal Control
  • 算法-判断快乐数
  • Scrapy和Selenium结合使用完整步骤
  • 物品租赁系统的设计与实现
  • C语言实现贪吃蛇游戏
  • C++新特性||线程协程(代码解析1)
  • 探索 .idea 文件夹:Java Maven 工程的隐形守护者
  • c#String和StringBuilder
  • UE5材质节点SimpleGrassWind