MENU

机房的一点微小的智障化改造

June 6, 2022 • Nico的日常生活阅读设置

- 前言

最近闲来无事,准备对机房来电智能化改造,提升一下可远程管理性和监控可靠性,本文比较长,而且未完待续,欢迎长期围观。

- HomeAssistant

考虑到本次会使用大量智能化组件,那个垃圾Mi的App并不好用,于是把目光瞄向了HomeAssistant,服务器平台是Windows Server,稍微略加操作也可正常运行。

本文介绍两种系统的安装方法(如果想要迁移系统配置文件格式什么的完全相同 可以放心迁移(除了传感器数据的数据库))

Linux:

在Linux上主要采用Docker的安装方式,而且总的来说在Linux上安装相比下面Windows十分方便。

建议在安装Docker期间使用root账户

安装Docker:

apt update && sudo apt upgrade -y && sudo apt autoremove -y

apt --fix-broken install

apt-get install jq curl avahi-daemon apparmor-utils udisks2 libglib2.0-bin network-manager dbus wget -y

curl -fsSL get.docker.com | sh

从Docker安装HA(建议自行配置国内镜像源)

docker run --init -d \
--name homeassistant \
--restart=unless-stopped \
-v /etc/localtime:/etc/localtime:ro \
-v /home/hass:/config \
--network=host \
homeassistant/home-assistant:stable

配置文件默认放在/home/hass 有其他需要可以自己改

然后耐心等下 访问IP:8123端口即可

Windows:

目前最新版本HA已经不支持在Windows平台使用,核心问题是部分组件用了 os.chmod 但是这个仅在Unix平台上可用。
虽然能跑,但是会导致无法写入配置文件。

Python安装3.9版本的 目前我安装的是2021.11.1版本 工作正常

pip3 install homeassistant==2021.11.1

安装过程中可能遇到 ERROR: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/ Tools" 去单独安装C++编译器即可(可以自行Google)

另外需要安装Npcap FFmpeg,把FFmpeg的bin文件夹弄成系统变量即可

在上方pip指令执行完毕后 尝试安装以下的包

sqlalchemy
aiohttp_cors
aiodiscover
home-assistant-frontend
hass-nabucasa
scapy
ha-ffmpeg
libpcap
Pillow
serial
mutagen
zeroconf
async_upnp_client
frontend_assets

上述内容全部完成后输入 hass --open-ui 稍等一下 会在8123端口上开始工作,访问即可开始配置

- 电源系统

电源控制用了 小米智能插座2(蓝牙网关版) 说实话这个蓝牙网关好像并没有啥用

需要先接入mihome然后再连接到HA

这里连接使用 https://github.com/al-one/hass-xiaomi-miot 这个插件,本插件相比xiaomi_miot_raw那个好处是可以强制走本地连接。

- 温度系统

温度的话用的 小米温湿度计2 可以刷固件实现高频率输出数据,调整蓝牙功率什么的。

同时还可以改DC供电实现完全不用考虑耗电的电池问题。

电脑有蓝牙即可刷机 下面首先来刷这玩意吧

1.使用 Chrome 访问 https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html

2.点击 Connect 按钮连接,设备名一般是: LYWSD03MMC

3.连接后,点击Do Activate按钮

4.然后点 Custom firmware ver 3.X(随时间会更新 不必纠结版本) 按钮, 旁边那个Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0130.bin 按钮是恢复原来的官方固件

5.Start Flashing 开始刷机

稍微等下就成功了 刷机期间最好不要移动? 成功后会发现页面下面有参数可以调了

我是这样调的 应该是最激进的参数了 考虑改了供电也无所谓耗电了

SharedScreenshot.jpg

之后是改供电

这里的话去淘宝买个USB的5V转3.3V 然后3.3那边焊接在温度计的电池位置正负极即可

- ESPHome(自制蓝牙网关)

咱这里买的是 ESP-C3-32S(4M) 这个板子 如果您用的板子不是这个那就需要修改型号参数

原本是想刷这个的 https://bbs.hassbian.com/thread-16331-1-1.html 但是遇到一点问题

arduino core 貌似有点什么问题 导致手上这块板子引导死循环 所以换了一种思路 找个简易的

ESPhome的配置代码如下 需要相比上面的这里添加设备需要再往配置文件里面写新的东西重新烧写(或者OTA)

里面相关信息(例如密码 设备的MAC等需要自行填写)

哦对 这里再贴一下官方的文档 https://esphome.io/components/sensor/xiaomi_ble.html#lywsd03mmc

esphome:
  name: ble01
  platformio_options:
    board_build.flash_mode: dio 

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf
    sdkconfig_options:
      CONFIG_BT_BLE_42_FEATURES_SUPPORTED: y

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "自己写.jpg"

ota:
  password: "自己写.jpg"

wifi:
  ssid: "自己写.jpg"
  password: "自己写.jpg"

  # Enable fallback hotspot in case wifi connection fails
  ap:
    ssid: "Ble01 Fallback Hotspot"
    password: "自己写.jpg"

esp32_ble_tracker:

sensor:
  - platform: pvvx_mithermometer
    mac_address: "自己写.jpg 格式是带:的那种"
    temperature:
      name: "PVVX Temperature"
    humidity:
      name: "PVVX Humidity"
    battery_level:
      name: "PVVX Battery-Level"
    battery_voltage:
      name: "PVVX Battery-Voltage"

然后去HA里面添加这个esphome就可以了 下面是实装情况 刷了固件的配合这个刷新速度还是挺快的

SharedScreenshot.jpg

- 监控系统

这个我就比较摆烂了 主要是不想再放一台监控的存储主机 故选择给TP-LINK交钱

至于为什么需要摄像头 这样在远程操作的时候可以确认下机器存活状态(指各类指示灯)(跑

我这边推荐是特破link的IPC43AN 可以插网线 就是电源用的9V比较扭曲 升级最新固件就可以加钱云存储了

这个没啥好说的(

- 802.11w 保护

由于用到了很多WiFi部件,所以防范WiFi杀手也是一件必要事宜!

事实上,早在2009年就有了 802.11w 管理帧保护
IEEE 802.11w无线加密标准是建立在IEEE 802.11i框架上的,但是厂商默认都不会开,这个开也挺简单,驱动支持的话openwrt里面开启即可。

Last Modified: June 23, 2022
Archives QR Code
QR Code for this page
Tipping QR Code
Leave a Comment