找回密码
 立即注册
楼主: tanbobo

[技术探讨] 自动化 不能保存求教!!Response error: 500

[复制链接]

51

主题

263

回帖

1548

积分

金牌会员

积分
1548
金钱
1234
HASS币
50
 楼主| 发表于 2025-3-10 18:46:44 | 显示全部楼层
今天core 推送3.1,更新过后还是不行,现在发现一个小窍门,在推送更新后,重新启动后,可以短暂的时间,修改自动化,如果启动久了,就不行了,core更新了3次,还没解决这个问题,只有看Supervisor或者Operating System推送更新能不能解决这个问题
回复

使用道具 举报

23

主题

233

回帖

1452

积分

金牌会员

积分
1452
金钱
1196
HASS币
0
发表于 2025-3-10 21:23:17 | 显示全部楼层
好像情况还要复杂些,我的是2025.2.4,一直正常,今天发现自动化不能触发,但手动运行又可以,不知道什么情况
回复

使用道具 举报

51

主题

263

回帖

1548

积分

金牌会员

积分
1548
金钱
1234
HASS币
50
 楼主| 发表于 2025-3-10 21:53:51 | 显示全部楼层
jswh1969 发表于 2025-3-10 21:23
好像情况还要复杂些,我的是2025.2.4,一直正常,今天发现自动化不能触发,但手动运行又可以,不知道什么情 ...

你看 是不是用的xiami home插件 里的实体
回复

使用道具 举报

0

主题

11

回帖

212

积分

中级会员

积分
212
金钱
201
HASS币
0
发表于 2025-3-29 20:40:04 | 显示全部楼层
问题根源:HA的AtomicWriter方法存在一定概率的Bug,偶尔对配置文件无法正确识别为UTF-8文件。
解决思路:强制写入配置文件时使用UTF-8编码。
我已在GIT提了PR了,希望新版本能接受修复方案。

写了一个脚本,以odroid-c2-homeassistant:2025.3.4为例。
ha_id="`docker container ls | grep odroid-c2-homeassistant | awk '{print $1}'`"
docker exec -it $ha_id /bin/bash
sed -e -i  "s/\"\"\"/\"\"\"\n    encoding = \"utf-8\" if \"b\" not in mode else None/g" /usr/src/homeassistant/homeassistant/util/file.py
sed -e -i "s/AtomicWriter(filename, mode=mode, overwrite=True)/AtomicWriter(filename, mode=mode, overwrite=True, encoding=encoding)/g" /usr/src/homeassistant/homeassistant/util/file.py
docker restart $ha_id
回复

使用道具 举报

3

主题

317

回帖

3547

积分

论坛元老

积分
3547
金钱
3227
HASS币
0
发表于 2025-3-30 13:01:28 | 显示全部楼层
风之子 发表于 2025-3-29 20:40
问题根源:HA的AtomicWriter方法存在一定概率的Bug,偶尔对配置文件无法正确识别为UTF-8文件。
解决思路: ...

大佬,请教HAOS系统怎么搞这个脚本
回复

使用道具 举报

0

主题

11

回帖

212

积分

中级会员

积分
212
金钱
201
HASS币
0
发表于 2025-3-30 22:11:31 | 显示全部楼层
本帖最后由 风之子 于 2025-3-30 22:13 编辑

上面的脚本,核心意思就是编辑 /usr/src/homeassistant/homeassistant/util/file.py。在HAOS中,找到该文件,增加相应的内容就可以了。
encoding [color=var(--color-prettylights-syntax-constant)]= [color=var(--color-prettylights-syntax-string)]"utf-8" [color=var(--color-prettylights-syntax-keyword)]if [color=var(--color-prettylights-syntax-string)]"b" [color=var(--color-prettylights-syntax-constant)]not in mode [color=var(--color-prettylights-syntax-keyword)]else [color=var(--color-prettylights-syntax-constant)]None
with AtomicWriter(filename, mode=mode, overwrite=True, encoding=encoding).open() as fdesc:
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-5-1 09:25 , Processed in 0.987409 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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