UNPKG

@hakit/core

Version:

A collection of React hooks and helpers for Home Assistant to easily communicate with the Home Assistant WebSocket API.

3 lines (2 loc) 4.21 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("lodash");require("../../utils/light/index.js");const l=require("../../utils/computeDomain.js"),e=require("../../../index-DKqwfDib.cjs"),s=require("../../data/entity.js");require("../../HassConnect/HassContext.js");require("react");require("@iconify/react");require("use-debounce");require("home-assistant-js-websocket");require("../useLocale/locales/index.js");const d=["counter","proximity","sensor","zone"],g=(a,t)=>({entity_id:a.entity_id,state:t,attributes:{device_class:a?.attributes.device_class,source_type:a?.attributes.source_type,has_date:a?.attributes.has_date,has_time:a?.attributes.has_time,entity_picture_local:s.DOMAINS_WITH_DYNAMIC_PICTURE.has(l.computeDomain(a.entity_id))?void 0:a?.attributes.entity_picture_local,entity_picture:s.DOMAINS_WITH_DYNAMIC_PICTURE.has(l.computeDomain(a.entity_id))?void 0:a?.attributes.entity_picture}}),b=(a,t,o,i,r,c)=>{if((r||c)&&(!r||r.length===0)&&(!c||c.length===0))return Promise.reject(`${e.localize("no_matching_entities_found")}, ${e.localize("no_matching_devices_found")}`);const n={type:"logbook/event_stream",start_time:o,end_time:i};return r?.length&&(n.entity_ids=r),c?.length&&(n.device_ids=c),a.subscribeMessage(u=>t(u),n)},_={"numeric state of":"logbook_triggered_by_numeric_state_of","state of":"triggered_by_state_of",event:"triggered_by_event",time:"triggered_by_time","time pattern":"triggered_by_time_pattern","Home Assistant stopping":"logbook_triggered_by_homeassistant_stopping","Home Assistant starting":"logbook_triggered_by_homeassistant_starting"},z=a=>{for(const t in _)if(a.startsWith(t))return a.replace(t,`${e.localize(`${_[t]}`)}`);return a},f=(a,t,o)=>{switch(o){case"device_tracker":case"person":return a==="not_home"?e.localize("was_detected_away"):a==="home"?e.localize("was_detected_at_home"):e.localize("was_detected_at_state",{search:"{state}",replace:a});case"sun":return a==="above_horizon"?e.localize("rose"):e.localize("set");case"binary_sensor":{const i=a===s.ON,r=a===s.OFF,c=t.attributes.device_class;switch(c){case"battery":if(i)return e.localize("was_low");if(r)return e.localize("was_normal");break;case"connectivity":if(i)return e.localize("was_connected");if(r)return e.localize("was_disconnected");break;case"door":case"garage_door":case"opening":case"window":if(i)return e.localize("was_opened");if(r)return e.localize("was_closed");break;case"lock":if(i)return e.localize("was_unlocked");if(r)return e.localize("was_locked");break;case"plug":if(i)return e.localize("was_plugged_in");if(r)return e.localize("was_unplugged");break;case"presence":if(i)return e.localize("was_detected_at_home");if(r)return e.localize("was_detected_away");break;case"safety":if(i)return e.localize("was_unsafe");if(r)return e.localize("was_safe");break;case"cold":case"gas":case"heat":case"moisture":case"motion":case"occupancy":case"power":case"problem":case"smoke":case"sound":case"vibration":if(i)return e.localize("detected_device_class",{search:"{device_class}",replace:c});if(r)return e.localize("cleared_no_device_class_detected",{search:"{device_class}",replace:c});break;case"tamper":if(i)return e.localize("detected_tampering");if(r)return e.localize("cleared_tampering");break}break}case"cover":switch(a){case"open":return e.localize("was_opened");case"opening":return e.localize("is_opening");case"closing":return e.localize("is_closing");case"closed":return e.localize("was_closed")}break;case"event":return e.localize("detected_an_event");case"lock":switch(a){case"unlocked":return e.localize("was_unlocked");case"locking":return e.localize("is_locking");case"unlocking":return e.localize("is_unlocking");case"locked":return e.localize("was_locked");case"jammed":return e.localize("is_jammed")}break}return a===s.ON?e.localize("turned_on"):a===s.OFF?e.localize("turned_off"):a===s.UNKNOWN?e.localize("became_unknown"):a===s.UNAVAILABLE?e.localize("became_unavailable"):e.localize("changed_to_state",{search:"{state}",replace:t?t.state:a})};exports.CONTINUOUS_DOMAINS=d;exports.createHistoricState=g;exports.localizeStateMessage=f;exports.localizeTriggerSource=z;exports.subscribeLogbook=b; //# sourceMappingURL=logbook.js.map