斐讯N1盒子安装Home Assistant Core全教程:从Armbian到EMQX的智能家居中枢

📅 发布时间:2026/9/13 13:30:34
斐讯N1盒子安装Home Assistant Core全教程:从Armbian到EMQX的智能家居中枢
手里的斐讯N1盒子吃灰很久了吧这盒子当年因为便宜大碗被大家玩出了花软路由、游戏机、电视盒子、下载机……但很少有人认真把它当成一个智能家居中枢来用。我在折腾了一圈之后发现N1盒子安装官方Home Assistant其实是性价比极高的方案——Amlogic S905D四核处理器、2GB内存、8GB eMMC存储千兆网口二手几十块钱就能拿下。这个配置跑一个纯净的Home Assistant完全是绰绰有余而且功耗只有几瓦放在弱电箱里一年电费可能都不到一杯奶茶钱。这篇文章就把我自己的完整折腾过程写出来从选型思路、刷Armbian、安装官方HA也就是HA Core再到接入EMQX MQTT、排坑和恢复出厂系统一步不落保证你看完就能动手复现。我特别要说明一下这里的“官方Home Assistant”不是HAOS那种整套系统镜像也不是Docker容器版而是从PyPI上安装的官方Python发行包。这套方案最大的优势是干净、轻量、可控没有Supervisor那堆系统服务吃内存对N1这种2GB内存的小盒子非常友好。代价是没有Add-ons商店很多“一键安装”的插件得自己手动跑。但相信我对于一个长期稳定运行的家居中枢来说少就是多。1. 项目背景与方案选型1.1 N1盒子凭什么还能当智能家居核心先说说N1盒子本身的底子。它用的是晶晨Amlogic S905D这颗SoC四核Cortex-A53主频最高1.5GHz带2GB DDR4内存和8GB eMMC存储接口方面有一个千兆网口、两个USB 2.0、一个HDMI输出还自带2.4G/5G双频WiFi和蓝牙4.1。单论纸面性能它和树莓派3B差不多一个水平但二手价格只有树莓派的三分之一甚至更低而且千兆网口是实打实的跑HA这种偏网络I/O的服务完全够了。更关键的是这颗S905D芯片在Linux社区里的适配非常成熟。Armbian官方和社区都有专门为N1编译的内核和镜像设备树文件meson-gxl-s905d-phicomm-n1.dtb也早已合入主线意味着你可以非常顺滑地把N1刷成一台纯Linux机器。再加上N1本身就是电视盒子散热设计比很多裸板开发板要规范长期开机运行不容易过热降频这是当智能家居中枢很重要的隐性条件。智能家居中枢这个角色其实不需要多么炸裂的性能真正重要的是三件事稳定的网络连接、持续低功耗运行、以及足够的扩展端口。N1的千兆网口保证了HA与局域网内设备通信的带宽和延迟USB口可以插Zigbee协调器或者蓝牙适配器2GB内存跑一个HA Core加一个MQTT broker是够用的。所以从这个角度来看N1盒子作为HA的物理载体非常合适。1.2 官方安装、Docker与HAOS为什么我推荐官方安装在N1上跑Home Assistant主流的路线其实有三条HAOS整机系统、Docker容器版、官方Python源码安装版。我把这三条路线的利弊先摊开来看你再决定自己适合哪条。HAOS是Home Assistant官方推荐的整套系统自带Supervisor管理器和Add-ons商店用起来最省心——什么Node-RED、ESPHome、Zigbee2MQTT都可以在界面里一键安装。但HAOS实质上是一套基于Linux的容器编排系统Supervisor会启动一堆后台容器对内存和存储的要求明显更高。N1的8GB eMMC装了HAOS之后系统分区和Docker镜像一挤剩余空间会非常紧张真的跑起来会经常遇到磁盘满的尴尬。我个人觉得HAOS更适合树莓派4这种存储和内存都更宽裕的设备。Docker容器版是另一个常见选择好处是部署快、回滚方便网上现成的docker-compose文件一抓一大把。但Docker跑HA意味着你的宿主机本身要先有一个完整的Linux系统然后HA还跑在一层容器运行时之上资源开销和存储占用都会翻倍。N1的2GB内存如果既要跑Armbian又要跑Docker daemon再跑HA容器再加上MQTT、其他服务内存很容易吃紧频繁OOM是很折磨人的。官方Python源码安装也就是我在这篇博文里要写的方法官方术语叫Home Assistant Core。它其实就是一个Python虚拟环境里运行的核心程序不依赖Docker不需要Supervisor连数据库、日志、配置文件都是直接用宿主机上的。启动之后就是一个叫hass的Python进程清净得很。实测下来HA Core在N1上稳定运行的内存占用大概在700MB到900MB左右远低于上面两种方案。缺点是没Add-ons商店扩展都得自己装、自己配。但对于想要长期稳定跑核心功能的人来说这个代价非常值。2. 环境准备给N1刷好Armbian2.1 固件选择与镜像下载要在N1上装官方HA首先要有一个能跑Python的Linux环境。圈子里的主流选择是Armbian。这里我强烈建议你选择较新的Armbian镜像不要再去翻五六年前的“N1神固件”。原因很简单老版本Armbian的内核和软件源早已停止维护Python版本停留在3.7甚至3.6而新版Home Assistant至少需要Python 3.11以上装一个过时的系统会给自己挖很多坑。下载镜像的时候可以找针对Amlogic S905系列盒子编译的Armbian社区镜像推荐用ophub在GitHub上维护的armbian-s9xxx项目。这个项目的镜像对N1支持得非常好内核长期更新默认就带python3.11或者3.12省去了自己编译Python的漫长等待。文件名里一般会标出对应的设备型号选N1对应的版本下载即可。下载完是.img.gz格式的压缩镜像需要解压后再写盘。顺便提醒一句下载固件尽量从开发者项目的官方发布页面或可信社区获取不要随手在论坛里找来源不明的二次打包镜像这类镜像里塞后门脚本的案例在智能家居圈子里不是没有。安全第一这个习惯我从玩路由器刷机的时候就开始养成了。2.2 U盘启动Armbian的完整步骤镜像准备好之后你需要一个至少8GB的U盘用balenaEtcher或者Rufus把镜像写入U盘。写盘的时候Windows会提示U盘分区无法识别这是在写入Linux分区属于正常现象不用管它也别手贱去格式化。接下来是让N1从U盘启动。如果你的N1还是原厂Android电视盒子系统最简便的方式是通过ADB命令让机器重启进入U盘系统。先在N1的设置里打开“网络ADB调试”之类的选项然后在一台电脑上下载ADB工具确保电脑和N1在同一个局域网里依次执行adb connect 192.168.x.x adb shell reboot update如果ADB连接正常盒子会重启并自动从U盘引导Armbian。有些盒子的系统版本没有开放ADB那就要进入恢复模式或者用遥控器组合键强制从U盘启动具体路径根据原系统版本略有不同。第一次启动可能会等几分钟Armbian会自动扩容文件系统并初始化服务。启动完成后在路由器后台或者用局域网扫描工具找到N1的IP通过SSH工具连接默认账号是root密码是1234。登录之后系统会强制要求你修改root密码并且询问是否创建普通用户这一步建议创建一个比如homeassistant后面专门用它跑HA服务避免所有东西都堆在root下。2.3 写入eMMC并做基础优化如果每次开机都要插着U盘不仅占着USB口U盘质量参差不齐也可能造成系统不稳定。所以跑通U盘里的Armbian之后我建议直接把系统写入eMMC。写入脚本根据你下载的镜像不同会有差异最常用的是执行./install-aml.sh或者在某些Armbian版本里是armbian-install。运行脚本之前先把U盘里需要保留的数据备份因为脚本会格式化eMMC。等待写入完成拔掉U盘重启就能从eMMC里的Armbian启动了。到这里N1已经是一台真正意义上的Linux服务器了。接下来做三个基础优化。第一设置时区国内用户执行timedatectl set-timezone Asia/Shanghai这个非常关键后面HA安装会遇到时间不对导致的HTTPS验证失败问题。第二给系统配一个固定的局域网IP千万别用DHCP动态分配因为HA的IP一旦变化你手机App、设备接入都要跟着改特别麻烦。第三添加swap交换分区N1只有2GB内存跑起HA之后内存会紧巴巴的我建议做2GB的swap文件fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo /swapfile none swap sw 0 0 /etc/fstab这里多说一句N1用的eMMC存储寿命其实有限频繁写入会损耗闪存。所以swap文件别顺手放到eMMC上长期高强度用它只是内存不够时的兜底手段真正内存不够还得靠精简服务来解决。3. 官方Home Assistant的安装全流程3.1 安装前必须准备好的Python环境新版Home Assistant对Python版本的要求非常高。以2024年的版本为例官方要求Python 3.11以上部分新版本甚至开始建议Python 3.12。好在较新的Armbian镜像默认Python就是3.11或3.12所以先看看系统当前Python版本python3 --version如果是3.11或更高版本那可以直接往下走。如果只有3.7、3.8这种老版本我建议你直接换镜像源升级Python而不是老想着用旧版HA去兼容系统因为旧版HA的依赖库迟早会和系统库冲突。编译Python的过程比较耗时N1四核全开也要一两个小时但一次配置好后面长期受益。然后安装HA运行所需的系统依赖包apt update apt install -y build-essential libssl-dev libffi-dev libreadline-dev zlib1g-dev libjpeg-dev libturbojpeg0-dev python3-venv python3-dev有些媒体类的HA集成比如摄像头、语音还需要FFmpeg如果以后有需要可以顺手装apt install -y ffmpeg。这些依赖里面libssl-dev和libffi-dev特别重要缺了它们HA安装过程中经常会出现cryptography包编译失败的报错。我建议所有比较耗时的安装操作都用tmux或者screen挂起来跑不然SSH连接一断安装过程就终止了。这个坑我踩过不止一次最后长记性了凡是预计超过五分钟的命令一律先开tmux。3.2 创建虚拟环境并安装Home Assistant现在正式安装。先用之前创建的普通用户操作如果你已经登录为root先切换到homeassistant用户su - homeassistant然后在用户目录下创建Python虚拟环境并激活python3 -m venv homeassistant source homeassistant/bin/activate激活之后命令行提示符前面会多出(homeassistant)字样。接着先升级pip再安装HA主包。国内网络环境建议把pip源换成清华或阿里云镜像不然安装过程中会卡在天数般的下载上pip install --upgrade pip wheel pip install -i https://pypi.tuna.tsinghua.edu.cn/simple homeassistant安装过程会拉取大量依赖包比如aiohttp、yarl、cryptography等等整个时长看网络情况可能在10到30分钟之间。如果中途报错多半是缺少系统依赖或者网络问题修复后重新执行安装命令即可pip有缓存不用全部重来。装完之后手动启动一次HA确认能不能跑起来hass -c /home/homeassistant/ha-config注意这个-c参数指定的是HA的配置目录我习惯放在/home/homeassistant/ha-config你也可以按自己习惯指定。正常第一次启动会经历一段漫长的初始化日志会不断打印加载组件的记录CPU占用可能冲到70%以上。不用慌这是HA在初次建库和生成配置文件等几分钟到十几分钟看到日志输出开始监听8123端口就说明起来了。这时在浏览器输入http://N1的IP:8123就能打开HA的Web界面创建第一个管理员账号。整个界面和官方Demo完全一样配置向导走一遍一个基础的智能家居中枢就算立住了。3.3 配置systemd服务实现开机自启手动启动只是验证真正的生产级运行需要注册成systemd服务让HA在开机时自动拉起并且崩溃后自动恢复。先停掉手动启动的hass进程然后创建一个服务文件sudo nano /etc/systemd/system/homeassistant.service写入以下内容[Unit] DescriptionHome Assistant Afternetwork-online.target Wantsnetwork-online.target [Service] Typesimple Userhomeassistant ExecStart/home/homeassistant/homeassistant/bin/hass -c /home/homeassistant/ha-config Restarton-failure RestartSec5s [Install] WantedBymulti-user.target这里有一个细节值得注意ExecStart里的路径前半部分是虚拟环境里hass可执行文件的实际路径后半部分是HA配置目录。如果之前虚拟环境的路径或者配置目录名不一样一定要改成自己机器上的实际路径。然后执行sudo systemctl daemon-reload sudo systemctl enable homeassistant sudo systemctl start homeassistant用systemctl status homeassistant查看服务状态看到active (running)就说明服务跑起来了。之后开机会自动启动HA连接状态也会变得非常稳。4. MQTT扩展与设备接入实践4.1 在N1上部署EMQX构建本地MQTT中枢智能家居的大多数传感器、开关、DIY设备走的最主流的协议就是MQTT。而在N1上跑MQTT broker圈子里问得最多的就是“N1盒子EMQX行不行”。我用下来可以很明确地告诉你EMQX虽然是一个轻量级的高性能MQTT服务器但它的资源占用比传统的mosquitto要大一些在N1这种2GB内存的盒子上只要合理配置是完全可以跑的。如果你需要Web可视化管理界面和消息监控面板那EMQX比mosquitto好用不止一个级别。在Debian系Armbian上安装EMQX很简单官方提供了一键安装脚本curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash sudo apt-get install emqx sudo systemctl enable --now emqx想验证是否生效可以检查监听端口ss -lntp | grep -E 1883|18083安装完成后EMQX默认会开放几个关键端口1883是标准的MQTT端口设备接入用8083和8084是WebSocket端口Web端或某些浏览器设备会用18083是Dashboard管理界面端口。在浏览器打开http://N1的IP:18083默认账号是admin密码是public首次登录后建议马上修改默认密码。在EMQX Dashboard里创建一个专门的MQTT用户和密码然后在HA的“设备与服务”里搜索“MQTT”填入N1的IP、1883端口以及刚创建的用户名密码保存后HA和MQTT broker就算打通了。之后ESPHome、Tasmota这些设备只要在固件里把MQTT服务器指向N1就能被HA自动发现和管理。我自己是把EMQX和HA都跑在N1上整机内存占用大约在1.2GB到1.5GB之间还留了近1GB余量日常运行很稳。4.2 官方安装版如何做设备接入和长期维护因为我们是HA Core手动安装路线没有Supervisor和Add-ons商店所以一开始有人会担心是不是很多东西玩不了。其实恰恰相反HA Core本身已经集成了大量的协议集成和自动化能力只要设备支持通过MQTT、HTTP、局域网发现这些标准协议接入HA Core都能用。真正缺少的只是一些需要后台容器支撑的Add-ons比如ESPHome的编译服务、Node-RED的流程服务。如果你确实需要跑这些额外服务我的建议是不要在N1上硬塞Docker套娃而是把这类重任务放到局域网里性能更强的机器上。N1就老老实实承担HA核心和MQTT消息中枢的职责这样职责清晰稳定性也高。HA官方支持的用蓝牙、Zigbee、Z-Wave这类协议时外接一个USB协调器插到N1的USB口上HA Core里也有对应的集成直接支持。长期维护方面最重要的就是备份。HA的配置、自动化、界面布局全部保存在配置目录里。我每天早上用cron把配置目录打包传到局域网的另一台机器上tar -czf /mnt/nfs-backup/ha-config-$(date %F).tar.gz /home/homeassistant/ha-config配置目录备份好即使系统彻底挂了重装完HA之后把配置目录解压回去所有设备、自动化、仪表盘就全部恢复原样。这个习惯救过我太多次了强烈建议每个人拿到新HA的第一天就做好定时备份。5. 常见问题与恢复实操5.1 时间不对导致HA启动异常这是N1上跑HA最容易踩的坑。N1这种廉价盒子没有板载的RTC电池断电重启之后系统时间会回到2019年甚至更早。时间不对首先毁掉的是HTTPS证书校验HA启动过程中需要访问外网拉取组件信息或者做域名校验SSL一报错就卡住。其次很多MQTT消息带时间戳设备记录的消息顺序会堆成一团糟。解决办法很简单系统装好后第一件事就是同步时间timedatectl set-timezone Asia/Shanghai apt install -y ntpdate ntpdate ntp.aliyun.com如果设备长期不断电NTP会自动校准问题不大。怕的是突然断电再开机时间立刻错乱。所以有条件的话在路由器的DHCP设置里把NTP服务器地址也改成公共NTP服务器从网络层面兜底。5.2 8GB eMMC空间告急怎么办N1的8GB eMMC装完Armbian和HA之后可用空间大概还剩4GB左右。日常跑是够用的但如果日志文件不断膨胀或者你往HA里疯狂安装扩展组件和前端资源包空间就会很快见底。我的建议是定期清理systemd日志journalctl --vacuum-size100M把日志大小限制在100MB。然后养成定期查看磁盘占用习惯df -h。如果什么清理工作都做完了空间还是不够那就说明这台N1真的不适合承载更多数据了媒体文件、历史数据库这类大文件可以挂载到NAS或者U盘上给系统留出余量。5.3 恢复出厂设置与救砖实操很多人搜“斐讯N1盒子恢复出厂设置”其实有两种完全不同的诉求。一种只是想把手里的Armbian恢复成HA最初配置的状态这种最简单——清空配置目录或者重新刷Armbian镜像即可重启后HA会重新生成全新配置。但配置目录一旦清空之前添加的设备、自动化就都没了所以动手前一定先备份。另一种诉求是彻底刷回原厂的Android电视盒子系统。做法是准备一个原厂安卓固件在电脑上安装Amlogic的USB_Burning_Tool刷机工具用一根双公头USB线连接电脑和N1的USB口然后短接主板上的刷机触点让盒子进入线刷模式。不同批次的N1触点位置略有差异操作前要根据型号找一下对应的短接点示意图。这个操作不算特别复杂但要注意短接过程中别碰到其他元件通电后软件能识别到设备加载固件点击开始即可。刷完之后盒子就会恢复成最原始的系统界面。我个人的建议是除非要把N1弃用或者出售否则根本没必要刷回原厂系统Armbian加HA Core的这套组合才是这台盒子最大的价值。5.4 安装部署阶段经典报错速查表我把折腾过程中遇到的和周围朋友问得最多的问题整理成一张速查表方便你遇到时直接对照。现象原因处理方法pip安装报externally-managed-environment新版系统Python限制外部安装包在虚拟环境内安装不要用系统Python直接pip installhass: command not found虚拟环境未激活执行source ~/homeassistant/bin/activate再运行HA首次启动日志乱报页面打不开配置目录还没初始化完成首次启动需要几分钟看CPU和日志耐心等待重启后HA起不来且时间停在2019年无RTC电池时间未同步执行ntpdate手动同步设置时区系统频繁OOM进程被杀2GB内存不足添加swap精简无用服务别跑Docker套娃MQTT设备连不上1883端口EMQX未启动或防火墙拦截systemctl status emqx检查8083端口是否监听8123端口被占用之前手动启动的hass没停掉找到并kill旧进程再启动systemd服务6. 一些收尾经验这台N1盒子我在家里稳定跑了一年多期间HA升级过好几个版本配置目录从几十MB涨到几百MBMQTT消息每天几千条整体依旧稳如老狗。我最大的体会是在N1这种老盒子上玩智能家居思路一定要克制。别想着什么插件都往上装什么服务都在它身上跑它的价值在于“稳定”而不是“全能”。把HA Core和EMQX这两个核心服务管好再配合定期的配置备份N1就能成为一个非常可靠的家居自动化底座。最后再分享一个小技巧HA的在web界面升级时如果页面提示无法在线升级不用紧张。只要在SSH里执行pip install --upgrade homeassistant再重启服务效果是一样的。版本升级前记得先备份配置目录升级后如果发现哪个集成不兼容随时能回滚。折腾得多了你就会发现这套官方安装路线虽然少了些一键便利但每一步都能看到底层逻辑出了问题也知道去哪儿排查——这才是自己搭建智能家居真正有意思的地方。