diff --git a/src/integrations/meteofrance-integration.js b/src/integrations/meteofrance-integration.js index b396171..fe32f5d 100644 --- a/src/integrations/meteofrance-integration.js +++ b/src/integrations/meteofrance-integration.js @@ -40,7 +40,7 @@ export class MeteoFranceIntegration static supports(entity) { - return entity.attributes.attribution === 'Data provided by Météo-France'; + return entity.attributes.attribution == 'Data provided by Météo-France' && entity.attributes[EVENT_WIND] != undefined; } static isWarningActive(entity) diff --git a/src/meteoalarm-card.js b/src/meteoalarm-card.js index 628aadb..43fbf86 100644 --- a/src/meteoalarm-card.js +++ b/src/meteoalarm-card.js @@ -29,9 +29,8 @@ class MeteoalarmCard extends LitElement static getStubConfig(hass, entities) { - const [entity] = entities.filter( - (eid) => eid.includes('meteoalarm') - ); + // Find fist entity that is supported by any integration + const entity = entities.find((eid) => this.integrations.some((integration) => integration.supports(hass.states[eid]))) return { entity: entity || '' @@ -43,7 +42,7 @@ class MeteoalarmCard extends LitElement return document.createElement('meteoalarm-card-editor'); } - get integrations() + static get integrations() { return [MeteoAlarmIntegration, MeteoAlarmeuIntegration, MeteoFranceIntegration]; } @@ -161,7 +160,7 @@ class MeteoalarmCard extends LitElement { if(key == 'automatic') { - const result = this.integrations.find((i) => i.supports(entity)) + const result = MeteoalarmCard.integrations.find((i) => i.supports(entity)) if(result == undefined) { throw Error(localize('error.automatic_failed')) @@ -170,7 +169,7 @@ class MeteoalarmCard extends LitElement } else { - return this.integrations.find((i) => i.name == key) + return MeteoalarmCard.find((i) => i.name == key) } }