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

 找回密码
 立即注册
查看: 322|回复: 1

[经验分享] ha升级到2024.10后Anniversaries集成无法使用的解决办法

[复制链接]

5

主题

113

帖子

952

积分

高级会员

Rank: 4

积分
952
金钱
839
HASS币
0
发表于 7 天前 | 显示全部楼层 |阅读模式
首先关于这个集成不了解的可以看这个帖子,是否有能方便的统计和显示日期倒数或耗材寿命的卡片? - 『HomeAssistant』求助&解答专区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz! (hassbian.com) 1.png
ha升级到2024.10后Anniversaries集成无法使用,后面去github找到解决办法,分享给需要的伙伴,只需要进入config\custom_components\anniversaries文件夹内,打开__init__.py文件(记事本打开也可以),将__init__.py文件内的内容全部删除,复制我下面提供的代码,粘贴到__init__.py文件内,保存__init__.py文件,之后整个系统全部重新重启,就可以正常使用了。

2.png

"""The Anniversaries Integration"""
import logging
from homeassistant import config_entries
from homeassistant.helpers import discovery

from integrationhelper.const import CC_STARTUP_VERSION

from .const import (
    CONF_SENSORS,
    CONF_DATE_TEMPLATE,
    DOMAIN,
    ISSUE_URL,
    PLATFORM,
    VERSION,
    CONFIG_SCHEMA,
)

_LOGGER = logging.getLogger(__name__)

async def async_setup(hass, config):
    """Set up this component using YAML."""
    if config.get(DOMAIN) is None:
        # config flow setup
        return True

    # Log startup message
    _LOGGER.info(
        CC_STARTUP_VERSION.format(name=DOMAIN, version=VERSION, issue_link=ISSUE_URL)
    )
    
    platform_config = config[DOMAIN].get(CONF_SENSORS, {})

    # If platform is not enabled, skip.
    if not platform_config:
        return False

    for entry in platform_config:
        hass.async_create_task(
            discovery.async_load_platform(hass, PLATFORM, DOMAIN, entry, config)
        )
    hass.async_create_task(
        hass.config_entries.flow.async_init(
            DOMAIN, context={"source": config_entries.SOURCE_IMPORT}, data={}
        )
    )
    return True

async def async_setup_entry(hass, config_entry):
    """Set up this integration using UI."""
    if config_entry.source == config_entries.SOURCE_IMPORT:
        # Set up using YAML
        hass.async_create_task(hass.config_entries.async_remove(config_entry.entry_id))
        return False

    # Log startup message
    _LOGGER.info(
        CC_STARTUP_VERSION.format(name=DOMAIN, version=VERSION, issue_link=ISSUE_URL)
    )

    # Update config entry options using async_update_entry
    hass.config_entries.async_update_entry(
        config_entry, options=config_entry.data
    )

    # Add update listener
    config_entry.add_update_listener(update_listener)

    # Forward setup to platform (e.g., sensor)
    hass.async_add_job(
        hass.config_entries.async_forward_entry_setup(config_entry, PLATFORM)
    )

    return True

async def async_remove_entry(hass, config_entry):
    """Handle removal of an entry."""
    try:
        await hass.config_entries.async_forward_entry_unload(config_entry, PLATFORM)
        _LOGGER.info(
            "Successfully removed sensor from the Anniversaries integration"
        )
    except ValueError:
        pass

async def update_listener(hass, entry):
    """Update listener."""
    entry.data = entry.options
    await hass.config_entries.async_forward_entry_unload(entry, PLATFORM)
    hass.async_add_job(hass.config_entries.async_forward_entry_setup(entry, PLATFORM))



回复

使用道具 举报

22

主题

142

帖子

1634

积分

金牌会员

Rank: 6Rank: 6

积分
1634
金钱
1492
HASS币
0
发表于 6 天前 | 显示全部楼层
谢谢分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-10-16 08:27 , Processed in 0.052427 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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