『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 639|回复: 5

[经验分享] 2024年homeassistant core官方推荐开发环境搭建避坑经验分享

[复制链接]

15

主题

194

帖子

1910

积分

论坛技术达人

积分
1910
金钱
1696
HASS币
40
发表于 2024-3-9 16:07:18 | 显示全部楼层 |阅读模式
春节后折腾能率热水器的esphome控制器,硬件打通了,首先想到的是建一个集成,写一个包括热水器,传感器的组件Integration。
组件的开发还没搞过这次就趁机搞一次,先搭开环环境,按官方推荐的步骤来。中间不少的心酸泪,折腾了好几次,总结了一些难点
分享下。接能率热水器原帖见:https://bbs.hassbian.com/thread-24301-1-1.html

官网开发环境搭建参考链接
https://developers.home-assistan ... opment_environment/

这里以Windows10上开发举例
1. 首先安装好 docker, Vsc, Git。 确保这三件没啥问题,win10上能科学上网,能访问github之类的网址
2.  去https://github.com/home-assistant/core, fork 一个到自己github, 比如 https://github.com/xxxx/home-assistant-core
3.  按理要在官网填自己的  https://github.com/xxxx/home-assistant-core 链接跳转安装了, 这里我们根据国内网络环境先变通一下,
     把  https://github.com/xxxx/home-assistant-core先 git clone 到本地目录, 修改其中的Dockfile.dev  
     修改好后提交push到自己的github,目的是为了之后创建镜像文件加速。
     #前面增加一句:
     RUN \
         cp /etc/apt/sources.list /etc/apt/sources.list.bak \
         && sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list \
         && rm -rf /var/lib/apt/lists/*     ...
     ....
     #拉取安装homeassistant的前面插入一句:
     RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
      
4.  在官网填自己的  https://github.com/xxxx/home-assistant-core 链接跳转安装,这里大概率会出现n次问题,大多还是网络环境
    以及镜像拉取太慢、中断导致。 但其中有个问题似乎不是网络问题,卡住了几次,才成功安装好开发环境后,过几天重启还是可能
    卡住中断,仔细分析了下,应该是更新ms的一个镜像过程中出错的概率较大,这里我们还是需要想办法修改下微软的dockfile文件
微信图片_20240309153657.png
往上翻几行大致会发现如图所示地址:

微信图片_20240309154259.png
到这个路径找到 bootstrap.dockfile ,  修改下,目的是设置国内镜像地址,设置npm的代理地址,取消ssl连接,改为http连接,不然证书可能报错,死活连接不上

# ENV NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crt
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
...
...
# RUN npm config set cafile /etc/ssl/certs/ca-certificates.crt && cd && npm i node-pty
RUN npm config set proxy=http://xxx.xxx.xxx.xxx:7890           # 自己的科学网关
RUN npm config set registry=http://registry.npmjs.org
RUN cd && npm i node-pty
这样改过以后, 可以开个cmd窗口,按图片中拷贝下来的命令进行测试,一般会很顺畅。

5. 然后继续官网的链接安装, 只要网络正常,后面一般会比较顺利.




这些步骤都顺利的话建一个开发环境1,2个小时能搞定. 不然可能几天都搞不定。
就算这次顺利了, 几天后开机进环境还是可能会卡住出错,一般是第4步,微软又更新镜像了,dockfile 再按第4步的要点改一下就可以进行下去了。

开发环境搭建好,用起来还是挺不错的,能开心得联调自己写的组件了。

后话: ha的热水器组件搞定后,想着还是esphome直接搞个waterheater更直接明了,写个外部external_component 试试吧。
发现比较下来esphome写个复杂的water heater 外部组件和外部传感器,以及这些外部组件中的sensor,number,waterheater联动还是挺麻烦的,
关键没法联调, 一次次需要上传固件测试,而且参考资料太少了。esphome的外部组件开发下次有空再聊聊吧。





评分

参与人数 2金钱 +14 收起 理由
froyo + 2 高手,这是高手!
jjcs + 12 高手,这是高手!

查看全部评分

回复

使用道具 举报

41

主题

1297

帖子

5334

积分

论坛元老

Rank: 8Rank: 8

积分
5334
金钱
4032
HASS币
20
发表于 2024-3-9 19:38:44 | 显示全部楼层
感谢分享,ha开发环境,说真的,国外的一些软件开发环境,教程少文档少,我专门开发软件,有时候就卡在开发环境,必须得去文档软磨硬泡,据我多年观察来看,ha只适合做展示和部分维护好的集成的应用接入,ha更新太频繁,唯独它自己的,api组件到是没有变过,我自己的ha基本上就一些小米集成,和设备接入,其他全在nodered处理,通过ha,api去传感器显示到ha,随便ha怎么更新,只要集成语法和api,没有大改。此思想已经应用多地的生产环境,软件的耦合性越低越好
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

0

主题

62

帖子

345

积分

中级会员

Rank: 3Rank: 3

积分
345
金钱
283
HASS币
0
发表于 2024-3-25 14:52:13 | 显示全部楼层
学习了。
回复

使用道具 举报

1

主题

7

帖子

104

积分

注册会员

Rank: 2

积分
104
金钱
97
HASS币
0
发表于 2024-3-28 12:02:30 | 显示全部楼层
感谢分享,请问下lz fork哪个版本的代码
回复

使用道具 举报

15

主题

194

帖子

1910

积分

论坛技术达人

积分
1910
金钱
1696
HASS币
40
 楼主| 发表于 2024-3-28 12:42:46 | 显示全部楼层
spacey0409 发表于 2024-3-28 12:02
感谢分享,请问下lz fork哪个版本的代码

https://github.com/home-assistant/core
回复

使用道具 举报

1

主题

7

帖子

104

积分

注册会员

Rank: 2

积分
104
金钱
97
HASS币
0
发表于 2024-3-28 14:16:46 | 显示全部楼层
hzcoolwind 发表于 2024-3-28 12:42
https://github.com/home-assistant/core

我fork的就是dev环境的,没用docker开发,很多包无法下载

                               
登录/注册后可看大图

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-29 18:34 , Processed in 0.062961 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表