当前位置: 首页 > 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然后添加,输入IP地址和端口
  10. 可以看到标签下面有一个设备和三个实体。点击设备进入可以看到设备信息,控制按钮和日志如下图。好了试下效果吧。

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

最后再多说一句,MQTT是通过发布和订阅的模式来获取消息和执行相应的动作的(感兴趣的同学可以参考下Bilibili上ROS方面的介绍),因为项目都是通过下载源码后再编译的,后期如果需要修改的话也比较方便。另外home assistant里面也有开发者工具和通信的log信息,方便个人照样子修改。希望后期有人做出更好的界面或则应用。


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

相关文章:

  • ArcGIS计算矢量要素集中每一个面的遥感影像平均值、最大值等统计指标
  • 深度学习实战自动驾驶目标识别
  • 计算机网络第二章 物理层
  • python openyxl 用法 教程
  • 线性回归模型的构建与训练
  • C语言中的隐式转换问题
  • 曾仕强解读《易经》
  • win32汇编环境下,对话框程序中生成listview列表控件,点击标题栏自动排序的示例
  • canvas+fabric实现时间刻度尺(一)
  • C进阶-字符串与内存函数介绍(另加2道典型面试题)
  • Oracle 11g 中 MODEL语法使用 详解
  • 2024年度学习总结
  • Linux 内核调试
  • 30天开发操作系统 第 10 天 -- 叠加处理
  • GRAPE——RLHF微调VLA模型:通过偏好对齐提升机器人策略的泛化能力(含24年具身模型汇总)
  • win32汇编环境下,提取对话框程序中,listview列表控件里的内容示例
  • 设计模式 创建型 单例模式(Singleton Pattern)与 常见技术框架应用 解析
  • 点跟踪基准最早的论文学习解读:TAP-Vid: A Benchmark for Tracking Any Point in a Video—前置基础
  • win32汇编环境下,双击窗口程序内生成的listview列表控件的某行,并提取其内容的示例程序
  • 溢出概念总结
  • 基于深度学习的视觉检测小项目(二) 环境和框架搭建
  • MIT Cheetah 四足机器人的动力学及算法 (I) —— 简化动力学模型
  • GeekPad 连接到VirtualBox的Ubuntu虚拟机上的Home-Assistant
  • win32汇编环境下,窗口程序中生成listview列表控件及显示
  • 使用Clion在ubuntu上进行交叉编译,并在Linux上远程编译五子棋
  • UE5 Debug的一些心得