Skip to content

Commit

Permalink
fix duplicazione sensore competizioni
Browse files Browse the repository at this point in the history
  • Loading branch information
Bobsilvio committed Sep 12, 2024
1 parent bdc3269 commit bffbf89
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 10 deletions.
17 changes: 12 additions & 5 deletions custom_components/calcio_live/__init__.py
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
import logging
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant

from .const import DOMAIN

_LOGGER = logging.getLogger(__name__)

async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Setup calcio_live from a config entry."""
# Avvia il forward delle piattaforme in modo asincrono
hass.async_create_task(
hass.config_entries.async_forward_entry_setups(entry, ["sensor"])
)
return True

# Inizializza hass.data[DOMAIN] se non è già stato inizializzato
if DOMAIN not in hass.data:
hass.data[DOMAIN] = {}

# Avvia la configurazione delle piattaforme come "sensor"
await hass.config_entries.async_forward_entry_setups(entry, ["sensor"])

return True
2 changes: 1 addition & 1 deletion custom_components/calcio_live/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"domain": "calcio_live",
"name": "Calcio Live",
"version": "1.0.7",
"version": "1.0.8",
"documentation": "https://github.com/Bobsilvio/calcio_live",
"dependencies": [],
"codeowners": ["@Bobsilvio"],
Expand Down
21 changes: 17 additions & 4 deletions custom_components/calcio_live/sensor.py
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
import logging
import aiohttp
from homeassistant.helpers.entity import Entity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback

from .const import DOMAIN

_LOGGER = logging.getLogger(__name__)


async def async_setup_entry(hass, entry, async_add_entities):
try:
api_key = entry.data.get("api_key")
Expand All @@ -14,10 +20,18 @@ async def async_setup_entry(hass, entry, async_add_entities):

sensors = []

# Inizializza hass.data[DOMAIN] se non esiste
if DOMAIN not in hass.data:
hass.data[DOMAIN] = {}

# Evita la duplicazione del sensore calciolive_competizioni
if "calciolive_competizioni" not in hass.data[DOMAIN] and competition_code:
sensors.append(CalcioLiveSensor(hass, f"calciolive_competizioni", api_key, competition_code, "competitions"))
hass.data[DOMAIN]["calciolive_competizioni"] = True

if competition_code:
# Crea i sensori relativi alle competizioni
sensors += [
CalcioLiveSensor(hass, f"calciolive_competizioni", api_key, competition_code, "competitions"),
CalcioLiveSensor(hass, f"calciolive_{competition_name}_classifica", api_key, competition_code, "standings"),
CalcioLiveSensor(hass, f"calciolive_{competition_name}_match_day", api_key, competition_code, "match_day"),
CalcioLiveSensor(hass, f"calciolive_{competition_name}_cannonieri", api_key, competition_code, "scorers")
Expand All @@ -29,10 +43,9 @@ async def async_setup_entry(hass, entry, async_add_entities):

async_add_entities(sensors, True)

return True
except Exception as e:
_LOGGER.error(f"Errore durante il setup dell'entry: {e}")
return False
_LOGGER.error(f"Errore durante la configurazione dei sensori: {e}")



class CalcioLiveSensor(Entity):
Expand Down

0 comments on commit bffbf89

Please sign in to comment.