meteoalarm-card
Version:
Meteoalarm card for Home Assistant Lovelace UI
55 lines (48 loc) • 1.32 kB
text/typescript
import { HassEntity } from 'home-assistant-js-websocket';
import {
MeteoalarmAlert,
MeteoalarmEventType,
MeteoalarmIntegration,
MeteoalarmIntegrationEntityType,
MeteoalarmIntegrationMetadata,
MeteoalarmLevelType,
} from '../types';
import { Utils } from '../utils';
type NinaEntity = HassEntity & {
attributes: {
headline: string;
severity: string;
};
};
export default class NINA implements MeteoalarmIntegration {
public get metadata(): MeteoalarmIntegrationMetadata {
return {
key: 'nina',
name: 'NINA',
type: MeteoalarmIntegrationEntityType.Slots,
returnHeadline: true,
returnMultipleAlerts: true,
entitiesCount: 0,
monitoredConditions: [MeteoalarmEventType.Unknown],
};
}
public supports(entity: NinaEntity): boolean {
// Nina doesn't really provide a good way of verification
return ['on', 'off'].includes(entity.state);
}
public alertActive(entity: NinaEntity): boolean {
return entity.state == 'on';
}
public getAlerts(entity: NinaEntity): MeteoalarmAlert[] {
const { severity, headline } = entity.attributes;
return [
{
event: MeteoalarmEventType.Unknown,
headline: headline,
level: Utils.getLevelBySeverity(severity, {
Moderate: MeteoalarmLevelType.Orange,
}),
},
];
}
}