自从使用home assistant系统后,逐步将家中各种设备接入。先是窗帘、灯、空气净化器、空调等智能家居设备接入后,然后发现truenas、ILO、openwrt等设备也可以接入并控制。
根据老婆大人的指示,家里用电已经达到三阶了,要求我省电,服务器能关就关。为了响应老婆大人的号召,先是研究了truenas接入HA。
HACS安装Truenas插件,添加integration,配置ip,用户名和密码即可。最后可以通过call service即可完成Truenas的关闭。

前面的研究很顺利,但是如何自动开机就麻烦了。Truenas插件肯定不行,因为关机状态根本就不会运行,只能另想办法。
HP的server通过ILO可以控制开关机,因此研究接入ilo的方案。显示研究默认的ilo integration,发现只能监控服务器的状态。

后转而研究通过ssh连接ilo,发现那是多年前的帖子,ssh更新后,由于ilo的验证方式问题已经失效。
最后,发现还可以通过ilo的RESTful API进行控制,然后发现刚才的帖子最后竟然有人贴出了解决方案。这就教育我们看文章一定要看到最后!
先是两篇参考:
iLO 4 API: iLO RESTful API Data Model Reference (iLO 4) 5
RESTful Command: RESTful Command – Home Assistant 2
代码如下:
#RestAPI iLO start server
rest_command:
server_poweron:
url: "https://<IPADDRESS>/rest/v1/systems/1"
method: POST
headers:
accept: "application/json"
payload: '{"Action":"Reset","ResetType":"On"}'
content_type: 'application/json; charset=utf-8'
username: apiuser
password: apipassword
verify_ssl: false
在config.yaml中加入以上代码,重启后,调用restful api即可,也可以写成script,按时自动运行。可以按需调整代码,比如ResetType,可以改为ForceOff等。


