|
|
本帖最后由 qings 于 2026-5-9 09:46 编辑
最近折腾了一下 HomeAssistant 下的向日葵插件:这边感谢作者提供如此好的项目。
https://github.com/cx3Y/sunlogin
发现作者已经很久没更新,而目前新版向日葵 C4 插座无法自动识别。
研究了下源码,最终已经成功适配:
✅ C4设备自动识别
✅ 开关控制
✅ 功率读取
✅ 电流/电压读取
✅ 耗电统计
✅ HomeAssistant Energy 面板支持
目前运行稳定。
一、问题原因插件本身其实已经支持:
甚至连:
框架都已经写好了。
真正的问题是在/homeassistant/custom_components/sunlogin/sunlogin.py这个脚本中:
get_sunlogin_device()
里面没有:
elif 'C4' in model:
return C4(hass, config)
导致虽然接口已经拿到设备,但HA 根本不会实例化 C4 设备。
二、解决方法1、增加 C4 实体映射找到:
def get_sunlogin_device(hass, config):增加:
elif 'C4' in model: return C4(hass, config) 2、增加 get_entities()找到:
def get_entities(tag):增加:
elif 'C4' in tag: return slot_x_with_electric[:-7]因为:
C4 属于:
单路 + 电量统计结构上接近 C2。
3、增加型号识别找到:
async_guess_model()增加:
elif device_type == 'C4': model = 'C4' 4、新增 C4 class新增:
class C4(SunloginPlug):实际上可以直接复用:
C2逻辑。
因为:
三、最终效果HA 自动生成:
开关实体switch.c4_relay0功率实体sensor.c4_powersensor.c4_currentsensor.c4_voltage电量统计sensor.c4_electricity_daysensor.c4_electricity_month已经可以直接接入:
HomeAssistant Energy Dashboard。
四、目前测试结果测试环境:
- HA Core
- HACS
- 向日葵 C4
- 插件:cx3Y/sunlogin
目前:
✅ 远程控制正常
✅ 数据刷新正常
✅ 功率统计正常
|
|