UNPKG

iobroker.javascript

Version:
1 lines 56 kB
import{g as le}from"./_commonjsHelpers-Cpj98o6Y.js";var V={},W={},B={};Object.defineProperty(B,"__esModule",{value:!0});B.StateType=B.Types=void 0;var x;(function(i){i.unknown="unknown",i.airCondition="airCondition",i.blind="blind",i.blindButtons="blindButtons",i.button="button",i.buttonSensor="buttonSensor",i.camera="camera",i.chart="chart",i.cie="cie",i.ct="ct",i.dimmer="dimmer",i.door="door",i.fireAlarm="fireAlarm",i.floodAlarm="floodAlarm",i.gate="gate",i.hue="hue",i.humidity="humidity",i.illuminance="illuminance",i.image="image",i.info="info",i.instance="instance",i.light="light",i.location="location",i.locationOne="locationOne",i.lock="lock",i.media="media",i.motion="motion",i.rgb="rgb",i.rgbSingle="rgbSingle",i.rgbwSingle="rgbwSingle",i.slider="slider",i.socket="socket",i.temperature="temperature",i.thermostat="thermostat",i.vacuumCleaner="vacuumCleaner",i.volume="volume",i.volumeGroup="volumeGroup",i.warning="warning",i.weatherCurrent="weatherCurrent",i.weatherForecast="weatherForecast",i.window="window",i.windowTilt="windowTilt"})(x||(B.Types=x={}));var Y;(function(i){i.Number="number",i.String="string",i.Boolean="boolean"})(Y||(B.StateType=Y={}));var R={};Object.defineProperty(R,"__esModule",{value:!0});R.checkEnum=K;R.roleOrEnum=L;R.roleOrEnumLight=ie;R.roleOrEnumBlind=ne;R.roleOrEnumGate=oe;R.roleOrEnumWindow=ue;R.roleOrEnumDoor=se;R.getEnums=de;R.getAllStatesInChannel=fe;R.getAllStatesInDevice=ce;R.getObjectsBelowId=re;R.getFunctionEnums=me;R.getParentId=pe;function K(i,r){let a=!1;return i&&i.forEach(l=>{const o=l.lastIndexOf(".");o!==-1&&(l=l.substring(o+1));for(const u in r)if(Object.prototype.hasOwnProperty.call(r,u)&&r[u].find(n=>n.test(l)))return a=!0,!1}),a}function L(i,r,a,l){return i.common.role&&(a!=null&&a.includes(i.common.role))?!0:K(r,l)}const j={en:[/lights?/i,/lamps?/i,/ceilings?/i],de:[/licht(er)?/i,/lampen?/i,/beleuchtung(en)?/i],ru:[/свет/i,/ламп[аы]/i,/торшеры?/,/подсветк[аи]/i,/лампочк[аи]/i,/светильники?/i]},J=["switch.light","dimmer","value.dimmer","level.dimmer","sensor.light","state.light"];function ie(i,r){return L(i,r,J,j)}const k={en:[/blinds?/i,/windows?/i,/shutters?/i],de:[/rollladen?/i,/fenstern?/i,/beschattung(en)?/i,/jalousien?/i],ru:[/ставни/i,/рольставни/i,/окна|окно/,/жалюзи/i]},X=["blind","level.blind","value.blind","action.stop","button.stop","button.stop.blind","button.open.blind","button.close.blind","level.tilt","value.tilt","button.tilt.open","button.tilt.close","button.tilt.stop"];function ne(i,r){return L(i,r,X,k)}const z={en:[/gates?/i],de:[/^toren$/i,/^tor$/i],ru:[/ворота/i]},Q=["gate","value.gate","switch.gate","action.stop","button.stop"];function oe(i,r){return L(i,r,Q,z)}const Z=["window","state.window","sensor.window","value.window"];function ue(i,r){return L(i,r,Z,k)}const ee={en:[/doors?/i,/gates?/i,/wickets?/i,/entry|entries/i],de:[/^türe?/i,/^tuere?/i,/^tore?$/i,/einfahrt(en)?/i,/pforten?/i],ru:[/двери|дверь/i,/ворота/i,/калитка|калитки/,/въезды?/i,/входы?/i]},te=["door","state.door","sensor.door"];function se(i,r){return L(i,r,te,ee)}function de(){return{door:{roles:te,words:ee},window:{roles:Z,words:k},blind:{roles:X,words:k},gate:{roles:Q,words:z},light:{roles:J,words:j}}}function fe(i,r){const a=[],l=new RegExp(`^${r.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+$`);return i.forEach(o=>l.test(o)&&a.push(o)),a}function ce(i,r){const a=[],l=new RegExp(`^${r.replace(/([$^.)([\]{}])/g,"\\$1")}\\.[^.]+\\.[^.]+$`);return i.forEach(o=>l.test(o)&&a.push(o)),a}function re(i,r){const a=[];r+=".";let l=0,o=i.length-1,u=-1;for(;l<=o;){const n=Math.floor((l+o)/2);i[n]<r?l=n+1:(u=n,o=n-1)}if(u===-1||u>=i.length)return a;for(let n=u;n<i.length;n++){const s=i[n];if(s===r||s.startsWith(r))a.push(s);else break}return a}function me(i,r){var a,l,o;const u=[],n=/^enum\.functions\./,s=re(r,"enum");for(const d of s)Object.prototype.hasOwnProperty.call(i,d)&&n.test(d)&&((a=i[d])===null||a===void 0?void 0:a.type)==="enum"&&(!((o=(l=i[d].common)===null||l===void 0?void 0:l.members)===null||o===void 0)&&o.length)&&u.push(d);return u}function pe(i){const r=i.lastIndexOf(".");return r!==-1?i.substring(0,r):i}var H={};Object.defineProperty(H,"__esModule",{value:!0});H.patterns=void 0;const e=B,m=R,p=/^[^.]+\.setting\./,t={working:{role:/^indicator\.working$/,indicator:!0,notSingle:!0,name:"WORKING",required:!1,defaultRole:"indicator.working",defaultType:e.StateType.Boolean},unreach:{role:/^indicator(\.maintenance)?\.unreach$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"UNREACH",required:!1,defaultRole:"indicator.maintenance.unreach"},lowbat:{role:/^indicator(\.maintenance)?\.(lowbat|battery)$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"LOWBAT",required:!1,defaultRole:"indicator.maintenance.lowbat"},maintain:{role:/^indicator\.maintenance$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"MAINTAIN",required:!1,defaultRole:"indicator.maintenance"},error:{role:/^indicator\.error$/,indicator:!0,notSingle:!0,name:"ERROR",required:!1,defaultRole:"indicator.error",defaultType:e.StateType.String},direction:{role:/^indicator\.direction$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"DIRECTION",required:!1,defaultRole:"indicator.direction"},direction_enum:{role:/^(indicator|value)\.direction$/,type:e.StateType.Number,notSingle:!0,name:"DIRECTION",required:!1,defaultStates:{0:"None",1:"Up/Open",2:"Down/Close",3:"Unknown"},defaultRole:"value.direction"},reachable:{role:/^indicator\.reachable$/,indicator:!0,type:e.StateType.Boolean,notSingle:!0,name:"CONNECTED",required:!1,defaultRole:"indicator.reachable",inverted:!0},battery:{role:/^value\.battery$/,indicator:!1,type:e.StateType.Number,write:!1,name:"BATTERY",required:!1,defaultRole:"value.battery",defaultUnit:"%"}},A={power:{role:/^value\.power$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ELECTRIC_POWER",required:!1,defaultRole:"value.power",defaultUnit:"W"},current:{role:/^value\.current$/,indicator:!1,type:e.StateType.Number,write:!1,name:"CURRENT",required:!1,defaultRole:"value.current",defaultUnit:"mA"},voltage:{role:/^value\.voltage$/,indicator:!1,type:e.StateType.Number,write:!1,name:"VOLTAGE",required:!1,defaultRole:"value.voltage",defaultUnit:"V"},consumption:{role:/^value\.power\.consumption$/,indicator:!1,type:e.StateType.Number,write:!1,name:"CONSUMPTION",required:!1,defaultRole:"value.power.consumption",defaultUnit:"Wh"},frequency:{role:/^value\.frequency$/,indicator:!1,type:e.StateType.Number,write:!1,name:"FREQUENCY",required:!1,defaultRole:"value.frequency",defaultUnit:"Hz"}};H.patterns={chart:{states:[{objectType:"chart",name:"CHART"}],type:e.Types.chart},mediaPlayer:{states:[{role:/^media\.state(\..*)?$/,indicator:!1,type:[e.StateType.Boolean,e.StateType.Number],name:"STATE",required:!0,defaultRole:"media.state"},{role:/^(button|action)\.play(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"PLAY",required:!1,noSubscribe:!0,defaultRole:"button.play"},{role:/^(button|action)\.pause(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"PAUSE",required:!1,noSubscribe:!0,defaultRole:"button.pause"},{role:/^(button|action)\.stop(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop"},{role:/^(button|action)\.next(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"NEXT",required:!1,noSubscribe:!0,defaultRole:"button.next"},{role:/^(button|action)\.prev(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"PREV",required:!1,noSubscribe:!0,defaultRole:"button.prev"},{role:/^media\.mode\.shuffle(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Boolean,name:"SHUFFLE",required:!1,noSubscribe:!0,defaultRole:"media.mode.shuffle"},{role:/^media\.mode\.repeat(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"REPEAT",required:!1,noSubscribe:!0,defaultRole:"media.mode.repeat"},{role:/^media\.artist(\..*)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"ARTIST",required:!1,defaultRole:"media.artist"},{role:/^media\.album(\..*)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"ALBUM",required:!1,defaultRole:"media.album"},{role:/^media\.title(\..*)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"TITLE",required:!1,defaultRole:"media.title"},{role:/^media\.cover(\.big)?$/,indicator:!1,write:!1,type:e.StateType.String,name:"COVER",required:!1,notSingle:!0,defaultRole:"media.cover"},{role:/^media\.cover(\..*)$/,indicator:!1,write:!1,type:e.StateType.String,name:"COVER",required:!1,notSingle:!0},{role:/^media\.duration(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,name:"DURATION",required:!1,noSubscribe:!0,defaultRole:"media.duration",defaultUnit:"sec"},{role:/^media\.elapsed(\..*)?$/,indicator:!1,type:e.StateType.Number,name:"ELAPSED",required:!1,noSubscribe:!0,defaultRole:"media.elapsed",defaultUnit:"sec"},{role:/^media\.seek(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SEEK",required:!1,noSubscribe:!0,defaultRole:"media.seek"},{role:/^media\.track(\..*)?$/,indicator:!1,type:e.StateType.String,name:"TRACK",required:!1,noSubscribe:!0,defaultRole:"media.track"},{role:/^media\.episode(\..*)?$/,indicator:!1,type:e.StateType.String,name:"EPISODE",required:!1,noSubscribe:!0,defaultRole:"media.episode"},{role:/^media\.season(\..*)?$/,indicator:!1,type:e.StateType.String,name:"SEASON",required:!1,noSubscribe:!0,defaultRole:"media.season"},{role:/^level(\.volume)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"VOLUME",required:!1,notSingle:!0,noSubscribe:!0,defaultRole:"level.volume",defaultUnit:"%"},{role:/^value(\.volume)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"VOLUME_ACTUAL",required:!1,notSingle:!0,noSubscribe:!0,defaultRole:"value.volume",defaultUnit:"%"},{role:/^media(\.mute)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"MUTE",required:!1,notSingle:!0,noSubscribe:!0,defaultRole:"media.mute"},{stateName:/\.(paused|playerState)$/,indicator:!1,name:"IGNORE",required:!1,multiple:!0,noSubscribe:!0},t.reachable,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.media},weatherForecast:{states:[{role:/^weather\.icon(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"ICON",required:!0,defaultRole:"weather.icon.forecast.0"},{role:/^value\.temperature\.min\.forecast\.0$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MIN",required:!0,defaultRole:"value.temperature.min.forecast.0"},{role:/^value\.temperature\.max\.forecast\.0$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MAX",required:!0,defaultRole:"value.temperature.max.forecast.0"},{role:/^value\.precipitation(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION_CHANCE",unit:"%",required:!1,defaultRole:"value.precipitation.forecast.0"},{role:/^value\.precipitation(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION",unit:"mm",required:!1,defaultRole:"value.precipitation.forecast.0"},{role:/^date(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"DATE",required:!1,defaultRole:"date.forecast.0"},{role:/^dayofweek(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"DOW",required:!1,defaultRole:"dayofweek.forecast.0"},{role:/^weather\.state(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"STATE",required:!1,defaultRole:"weather.state.forecast.0"},{role:/^value\.temperature(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"TEMP",required:!1,defaultRole:"value.temperature.forecast.0"},{role:/^value\.pressure(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"PRESSURE",required:!1,defaultRole:"value.pressure.forecast.0"},{role:/^value\.humidity(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY",required:!1,defaultRole:"value.humidity.forecast.0"},{role:/^(?:date|time)\.sunrise(?:\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"TIME_SUNRISE",required:!1,defaultRole:"date.sunrise"},{role:/^(?:date|time)\.sunset(?:\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"TIME_SUNSET",required:!1,defaultRole:"date.sunset"},{role:/^value\.temperature\.windchill(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"WIND_CHILL",required:!1,defaultRole:"value.temperature.windchill.forecast.0"},{role:/^value\.temperature\.feelslike(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"FEELS_LIKE",required:!1,defaultRole:"value.temperature.feelslike.forecast.0"},{role:/^value\.speed\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"WIND_SPEED",required:!1,defaultRole:"value.speed.wind.forecast.0"},{role:/^value\.direction\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.Number,name:"WIND_DIRECTION",required:!1,defaultRole:"value.direction.wind.forecast.0"},{role:/^weather\.direction\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"WIND_DIRECTION_STR",required:!1,defaultRole:"weather.direction.wind.forecast.0"},{role:/^weather\.icon\.wind(\.forecast\.0)?$/,indicator:!1,type:e.StateType.String,name:"WIND_ICON",required:!1,defaultRole:"weather.icon.wind.forecast.0"},{role:/^weather\.chart\.url$/,indicator:!1,type:e.StateType.String,name:"HISTORY_CHART",required:!1,noSubscribe:!0,defaultRole:"weather.chart.url"},{role:/^weather\.chart\.url\.forecast$/,indicator:!1,type:e.StateType.String,name:"FORECAST_CHART",required:!1,noSubscribe:!0,defaultRole:"weather.chart.url.forecast"},{role:/^location$/,indicator:!1,type:e.StateType.String,name:"LOCATION",required:!1,defaultRole:"location"},{role:/^weather\.icon\.forecast.(\d+)$/,indicator:!1,type:e.StateType.String,name:"ICON%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0,notSingle:!0},{role:/^value\.temperature\.min\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MIN%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.temperature\.max\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"TEMP_MAX%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^date\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"DATE%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^dayofweek\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"DOW%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^weather\.state\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"STATE%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.temperature\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"TEMP%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.humidity\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.humidity\.max\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY_MAX%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.precipitation\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,unit:"%",name:"PRECIPITATION_CHANCE%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.precipitation\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,unit:"mm",name:"PRECIPITATION%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.speed\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"WIND_SPEED%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^value\.direction\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.Number,name:"WIND_DIRECTION%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^weather\.direction\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"WIND_DIRECTION_STR%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0},{role:/^weather\.icon\.wind\.forecast\.(\d+)$/,indicator:!1,type:e.StateType.String,name:"WIND_ICON%d",required:!1,searchInParent:!0,multiple:!0,noSubscribe:!0}],type:e.Types.weatherForecast},rgb:{states:[{role:/^level\.color\.red$/,indicator:!1,type:e.StateType.Number,write:!0,name:"RED",required:!0,defaultRole:"level.color.red"},{role:/^level\.color\.green$/,indicator:!1,type:e.StateType.Number,write:!0,name:"GREEN",required:!0,defaultRole:"level.color.green"},{role:/^level\.color\.blue$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BLUE",required:!0,defaultRole:"level.color.blue"},{role:/^level\.color\.white$/,indicator:!1,type:e.StateType.Number,write:!0,name:"WHITE",required:!1,defaultRole:"level.color.white"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$|^state$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(A),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.rgb},rgbwSingle:{states:[{role:/^level\.color\.rgbw$/,indicator:!1,type:e.StateType.String,write:!0,name:"RGBW",required:!0,defaultRole:"level.color.rgbw"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1,defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(A),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.rgbwSingle},rgbSingle:{states:[{role:/^level\.color\.rgb$/,indicator:!1,type:e.StateType.String,write:!0,name:"RGB",required:!0,defaultRole:"level.color.rgb"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1,defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(A),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.rgbSingle},cie:{states:[{role:/^level\.color\.cie$/,indicator:!1,type:e.StateType.String,write:!0,name:"CIE",required:!0,defaultRole:"level.color.cie"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1,defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(A),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.cie},hue:{states:[{role:/^level\.color\.hue$/,indicator:!1,type:e.StateType.Number,write:!0,name:"HUE",required:!0,defaultRole:"level.color.hue",defaultUnit:"°"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,searchInParent:!0,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1},{role:/^level\.color\.saturation$/,indicator:!1,type:e.StateType.Number,write:!0,name:"SATURATION",required:!1,defaultRole:"level.color.saturation",defaultUnit:"%"},{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!1,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(A),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.hue},ct:{states:[{role:/^level\.color\.temperature$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TEMPERATURE",required:!0,defaultRole:"level.color.temperature",defaultUnit:"°K"},{role:/^level\.dimmer$/,indicator:!1,type:e.StateType.Number,write:!0,name:"DIMMER",required:!1,defaultRole:"level.dimmer",defaultUnit:"%"},{role:/^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,name:"BRIGHTNESS",required:!1},{role:/^switch(\.light)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"ON",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(A),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.ct},warning:{states:[{role:/^value\.warning$/,indicator:!1,name:"LEVEL",required:!0,defaultRole:"value.warning"},{role:/^weather\.title\.short$/,indicator:!1,type:e.StateType.String,name:"TITLE",required:!1,defaultRole:"weather.title.short"},{role:/^weather\.title$/,indicator:!1,type:e.StateType.String,name:"INFO",required:!1,defaultRole:"weather.title"},{role:/^date\.start$/,indicator:!1,type:e.StateType.String,name:"START",required:!1,defaultRole:"date.start"},{role:/^date\.end$/,indicator:!1,type:e.StateType.String,name:"END",required:!1,defaultRole:"date.end"},{role:/^date$/,indicator:!1,type:e.StateType.String,name:"START",required:!1},{role:/^weather\.chart\.url/,indicator:!1,type:e.StateType.String,name:"ICON",required:!1,defaultRole:"weather.chart.url"},{role:/^weather\.state$/,indicator:!1,type:e.StateType.String,name:"DESC",required:!1,noSubscribe:!0,defaultRole:"weather.state"}],type:e.Types.warning},airCondition:{states:[{role:/temperature(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SET",required:!0,defaultRole:"level.temperature",defaultUnit:"°C",ignoreRole:p},{role:/(level\.mode\.)?airconditioner$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"MODE",required:!0,defaultRole:"level.mode.airconditioner",defaultStates:{0:"AUTO",3:"COOL",4:"DRY",5:"ECO",6:"FAN_ONLY",7:"HEAT",8:"OFF"},ignoreRole:p},{role:/(speed|mode)\.fan$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SPEED",required:!1,defaultRole:"level.mode.fan",defaultStates:{0:"AUTO",1:"HIGH",2:"LOW",3:"MEDIUM",4:"QUIET",5:"TURBO"},ignoreRole:p},{role:/^switch(\.power)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"POWER",required:!1,defaultRole:"switch.power"},{role:/temperature(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"ACTUAL",required:!1,defaultRole:"value.temperature",defaultUnit:"°C",ignoreRole:p},{role:/humidity(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"HUMIDITY",required:!1,defaultRole:"value.humidity",defaultUnit:"%",ignoreRole:p},{role:/^switch\.boost(\..*)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"BOOST",required:!1,defaultRole:"switch.boost"},{role:/swing$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"SWING",required:!1,defaultRole:"level.mode.swing",defaultStates:{0:"AUTO",1:"HORIZONTAL",2:"STATIONARY",3:"VERTICAL"},ignoreRole:p},{role:/swing$/,indicator:!1,write:!0,type:e.StateType.Boolean,searchInParent:!0,name:"SWING",required:!1,defaultRole:"switch.mode.swing",ignoreRole:p},...Object.values(A),t.unreach,t.maintain,t.error],type:e.Types.airCondition},thermostat:{states:[{role:/temperature(\..*)?$/,indicator:!1,write:!0,type:e.StateType.Number,name:"SET",required:!0,defaultRole:"level.temperature",defaultUnit:"°C",ignoreRole:p},{role:/temperature(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"ACTUAL",required:!1,defaultRole:"value.temperature",defaultUnit:"°C",ignoreRole:p},{role:/humidity(\..*)?$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,name:"HUMIDITY",required:!1,defaultRole:"value.humidity",defaultUnit:"%",ignoreRole:p},{role:/^switch(\.mode)?\.boost(\..*)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"BOOST",required:!1,defaultRole:"switch.mode.boost"},{role:/^switch(\.power)?$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"POWER",required:!1,defaultRole:"switch.power"},{role:/^switch(\.mode)?\.party$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"PARTY",required:!1,defaultRole:"switch.mode.party"},{role:/^level(\.mode)?\.thermostat$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"MODE",required:!1,defaultRole:"level.mode.thermostat",defaultStates:{0:"AUTO",1:"MANUAL"}},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.thermostat},vacuumCleaner:{states:[{role:/^switch\.power$/,indicator:!1,write:!0,type:[e.StateType.Boolean,e.StateType.Number],searchInParent:!0,name:"POWER",required:!0,defaultRole:"switch.power"},{role:/mode\.cleanup$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"MODE",required:!0,defaultRole:"level.mode.cleanup",defaultStates:{0:"AUTO",1:"NORMAL",2:"QUIET",3:"ECO",4:"EXPRESS"},ignoreRole:p},{role:/vacuum\.map\.base64$/,indicator:!1,write:!1,type:e.StateType.String,searchInParent:!0,name:"MAP_BASE64",required:!1,defaultRole:"vacuum.map.base64",ignoreRole:p},{role:/vacuum\.map\.url$/,indicator:!1,write:!1,type:e.StateType.String,searchInParent:!0,name:"MAP_URL",required:!1,ignoreRole:p},{role:/mode\.work$/,indicator:!1,write:!0,type:e.StateType.Number,searchInParent:!0,name:"WORK_MODE",required:!1,defaultRole:"level.mode.work",defaultStates:{0:"AUTO",1:"FAST",2:"MEDIUM",3:"SLOW",4:"TURBO"},ignoreRole:p},{role:/^value\.water$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,unit:"%",name:"WATER",required:!1,defaultRole:"value.water",defaultUnit:"%"},{role:/^value\.waste$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,unit:"%",name:"WASTE",required:!1,defaultRole:"value.waste",defaultUnit:"%"},{role:/^value\.battery$/,indicator:!1,write:!1,type:e.StateType.Number,searchInParent:!0,unit:"%",name:"BATTERY",required:!1,defaultRole:"value.battery",defaultUnit:"%"},{role:/^value\.state$/,indicator:!1,write:!1,type:[e.StateType.Number,e.StateType.String],searchInParent:!0,name:"STATE",required:!1,defaultRole:"value.state"},{role:/^switch\.pause$/,indicator:!1,write:!0,type:e.StateType.Boolean,searchInParent:!0,name:"PAUSE",required:!1,defaultRole:"switch.pause"},{role:/^indicator(\.maintenance)?\.waste$|^indicator(\.alarm)?\.waste/,indicator:!0,type:e.StateType.Boolean,searchInParent:!0,name:"WASTE_ALARM",required:!1,defaultRole:"indicator.maintenance.waste"},{role:/^indicator(\.maintenance)?\.water$|^indicator(\.alarm)?\.water/,indicator:!0,type:e.StateType.Boolean,searchInParent:!0,name:"WATER_ALARM",required:!1,defaultRole:"indicator.maintenance.water"},{role:/^value(\.usage)?\.filter/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"FILTER",required:!1,defaultRole:"value.usage.filter",defaultUnit:"%"},{role:/^value(\.usage)?\.brush/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"BRUSH",required:!1,defaultRole:"value.usage.brush",defaultUnit:"%"},{role:/^value(\.usage)?\.sensors/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"SENSORS",required:!1,defaultRole:"value.usage.sensors",defaultUnit:"%"},{role:/^value(\.usage)?\.brush\.side/,indicator:!0,type:e.StateType.Number,searchInParent:!0,name:"SIDE_BRUSH",required:!1,defaultRole:"value.usage.brush.side",defaultUnit:"%"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.vacuumCleaner},blinds:{states:[{role:/^level(\.blind)?$/,indicator:!1,type:e.StateType.Number,write:!0,enums:m.roleOrEnumBlind,name:"SET",required:!0,defaultRole:"level.blind",defaultUnit:"%"},{role:/^value(\.blind)?$/,indicator:!1,type:e.StateType.Number,enums:m.roleOrEnumBlind,name:"ACTUAL",required:!1,defaultRole:"value.blind",defaultUnit:"%"},{role:/^(button|action)\.stop(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop.blind"},{role:/^(button|action)\.open(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"OPEN",required:!1,noSubscribe:!0,defaultRole:"button.open.blind"},{role:/^(button|action)\.close(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"CLOSE",required:!1,noSubscribe:!0,defaultRole:"button.close.blind"},{role:/^level(\.open)?\.tilt$/,indicator:!1,type:e.StateType.Number,write:!0,enums:m.roleOrEnumBlind,name:"TILT_SET",required:!1,defaultRole:"level.tilt"},{role:/^value(\.open)?\.tilt$/,indicator:!1,type:e.StateType.Number,enums:m.roleOrEnumBlind,name:"TILT_ACTUAL",required:!1,defaultRole:"value.tilt"},{role:/^(button|action)\.stop\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop.tilt"},{role:/^(button|action)\.open\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_OPEN",required:!1,noSubscribe:!0,defaultRole:"button.open.tilt"},{role:/^(button|action)\.close\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_CLOSE",required:!1,noSubscribe:!0,defaultRole:"button.close.tilt"},t.direction,t.direction_enum,t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.blind},blindButtons:{states:[{role:/^(button|action)\.stop(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"STOP",required:!0,noSubscribe:!0,defaultRole:"button.stop.blind"},{role:/^(button|action)\.open(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"OPEN",required:!0,noSubscribe:!0,defaultRole:"button.open.blind"},{role:/^(button|action)\.close(\.blind)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"CLOSE",required:!0,noSubscribe:!0,defaultRole:"button.close.blind"},{role:/^level\.tilt$/,indicator:!1,type:e.StateType.Number,write:!0,enums:m.roleOrEnumBlind,name:"TILT_SET",required:!1,defaultRole:"level.tilt"},{role:/^value\.tilt$/,indicator:!1,type:e.StateType.Number,enums:m.roleOrEnumBlind,name:"TILT_ACTUAL",required:!1,defaultRole:"value.tilt"},{role:/^(button|action)\.stop\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop.tilt"},{role:/^(button|action)\.open\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_OPEN",required:!1,noSubscribe:!0,defaultRole:"button.open.tilt"},{role:/^(button|action)\.close\.tilt$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumBlind,name:"TILT_CLOSE",required:!1,noSubscribe:!0,defaultRole:"button.close.tilt"},t.direction,t.direction_enum,t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.blindButtons},gate:{states:[{role:/^switch(\.gate)?$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumGate,name:"SET",required:!0,defaultRole:"switch.gate"},{role:/^value(\.(position|gate))?$/,indicator:!1,type:e.StateType.Number,enums:m.roleOrEnumGate,name:"ACTUAL",required:!1,defaultRole:"value.blind",defaultUnit:"%",ignoreRole:p},{role:/^(button|action)\.stop$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumGate,name:"STOP",required:!1,noSubscribe:!0,defaultRole:"button.stop"},t.direction,t.direction_enum,t.working,t.unreach,t.maintain,t.error],type:e.Types.gate},weatherCurrent:{states:[{role:/^value(\.temperature)?$/,indicator:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.temperature",defaultUnit:"°C"},{role:/^weather\.icon$/,indicator:!1,name:"ICON",required:!0,defaultRole:"weather.icon"},{role:/^value\.precipitation\.chance$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION_CHANCE",defaultRole:"value.precipitation.chance",defaultUnit:"%"},{role:/^value\.precipitation\.type$/,indicator:!1,type:e.StateType.Number,name:"PRECIPITATION_TYPE",defaultRole:"value.precipitation.type",defaultStates:{0:"NO",1:"RAIN",2:"SNOW",3:"HAIL"}},{role:/^value\.pressure$/,indicator:!1,type:e.StateType.Number,name:"PRESSURE",defaultRole:"value.pressure",defaultUnit:"mbar"},{role:/^value\.pressure\.tendency$/,indicator:!1,type:e.StateType.String,name:"PRESSURE_TENDENCY",defaultRole:"value.pressure.tendency"},{role:/^value\.temperature\.windchill$/,indicator:!1,type:e.StateType.Number,name:"REAL_FEEL_TEMPERATURE",defaultRole:"value.temperature.windchill",defaultUnit:"°C"},{role:/^value\.humidity$/,indicator:!1,type:e.StateType.Number,name:"HUMIDITY",defaultRole:"value.humidity",defaultUnit:"%"},{role:/^value\.uv$/,indicator:!1,type:e.StateType.Number,name:"UV",defaultRole:"value.uv"},{role:/^weather\.state$/,indicator:!1,type:e.StateType.String,name:"WEATHER",defaultRole:"weather.state"},{role:/^value\.direction\.wind$/,indicator:!1,type:e.StateType.String,name:"WIND_DIRECTION",defaultRole:"value.direction.wind",defaultUnit:"°"},{role:/^value\.speed\.wind\.gust$/,indicator:!1,type:e.StateType.Number,name:"WIND_GUST",defaultRole:"value.speed.wind.gust",defaultUnit:"km/h"},{role:/^value\.speed\.wind$/,indicator:!1,type:e.StateType.Number,name:"WIND_SPEED",defaultRole:"value.speed.wind$",defaultUnit:"km/h"},t.lowbat,t.unreach,t.maintain,t.error,t.battery],type:e.Types.weatherCurrent},camera:{states:[{role:/^link\.camera(\.\w+)?$/,indicator:!1,type:e.StateType.String,name:"URL",required:!0,defaultRole:"link.camera"},{role:/^switch(\.camera)?\.autofocus$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"AUTOFOCUS",required:!1,defaultRole:"switch.camera.autofocus"},{role:/^switch(\.camera)?\.autowhitebalance$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"AUTOWHITEBALANCE",required:!1,defaultRole:"switch.camera.autowhitebalance"},{role:/^switch(\.camera)?\.brightness$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"BRIGHTNESS",required:!1,defaultRole:"switch.camera.brightness"},{role:/^switch(\.camera)?\.nightmode$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"NIGHTMODE",required:!1,defaultRole:"switch.camera.nightmode"},{role:/^level(\.camera)?\.position$|^level(\.camera)?(\.ptz)$/,indicator:!1,type:e.StateType.Number,write:!0,name:"PTZ",required:!1,defaultRole:"level.camera.position"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.camera,enumRequired:!1},lock:{states:[{role:/^switch\.lock$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"SET",required:!0,defaultRole:"switch.lock"},{role:/^state$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ACTUAL",required:!1,defaultRole:"state"},{indicator:!1,type:e.StateType.Boolean,write:!0,read:!1,name:"OPEN",required:!1,noSubscribe:!0,defaultRole:"button",ignoreRole:p},{role:/^(state|sensor)(\.door)?$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"DOOR_STATE",required:!1,defaultRole:"sensor.door",ignoreRole:p},t.direction,t.direction_enum,t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.lock},motion:{states:[{role:/^(state\.)?motion$|^sensor\.motion$/,indicator:!1,type:e.StateType.Boolean,name:"ACTUAL",required:!0,defaultRole:"sensor.motion",ignoreRole:p},{role:/brightness$/,indicator:!1,type:e.StateType.Number,name:"SECOND",required:!1,defaultRole:"value.brightness",defaultUnit:"lux",ignoreRole:p},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.motion},window:{states:[{role:/^(state|sensor)(\.window)?/,indicator:!1,type:e.StateType.Boolean,enums:m.roleOrEnumWindow,name:"ACTUAL",required:!0,defaultRole:"sensor.window",ignoreRole:p},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.window},windowTilt:{states:[{role:/^state$|^value(\.window)?$/,indicator:!1,type:e.StateType.Number,enums:m.roleOrEnumWindow,name:"ACTUAL",required:!0,defaultRole:"value.window"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.windowTilt},fireAlarm:{states:[{role:/^(state|sensor|indicator)(\.alarm)?\.fire$/,indicator:!1,type:e.StateType.Boolean,name:"ACTUAL",required:!0,defaultRole:"sensor.alarm.fire",defaultChannelRole:"sensor.alarm.fire"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.fireAlarm,enumRequired:!1},floodAlarm:{states:[{role:/^(state|sensor|indicator)(\.alarm)?\.flood$/,indicator:!1,type:e.StateType.Boolean,name:"ACTUAL",required:!0,defaultRole:"sensor.alarm.flood",defaultChannelRole:"sensor.alarm.flood"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.floodAlarm},door:{states:[{role:/^(state|sensor)(\.door)?/,indicator:!1,type:e.StateType.Boolean,write:!1,enums:m.roleOrEnumDoor,name:"ACTUAL",required:!0,defaultRole:"sensor.door"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.door},dimmer:{states:[{role:/^level(\.dimmer)?$|^level\.brightness$/,indicator:!1,type:e.StateType.Number,write:!0,enums:m.roleOrEnumLight,name:"SET",required:!0,defaultRole:"level.dimmer",ignoreRole:/^level\.dimspeed$/,defaultUnit:"%"},{role:/^value(\.dimmer)?$/,indicator:!1,type:e.StateType.Number,write:!1,enums:m.roleOrEnumLight,name:"ACTUAL",required:!1,defaultRole:"value.dimmer",defaultUnit:"%"},{role:/^switch(\.light)?$|^state$/,indicator:!1,type:e.StateType.Boolean,write:!0,enums:m.roleOrEnumLight,name:"ON_SET",required:!1,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,enums:m.roleOrEnumLight,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},{role:/^time\.(span|interval)$/,indicator:!1,type:e.StateType.Number,write:!0,enums:m.roleOrEnumLight,name:"TRANSITION_TIME",required:!1,defaultRole:"time.span",defaultUnit:"ms"},...Object.values(A),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.dimmer},light:{states:[{role:/^switch(\.light)?$|^state$/,enums:m.roleOrEnumLight,indicator:!1,type:e.StateType.Boolean,write:!0,name:"SET",required:!0,defaultRole:"switch.light"},{role:/^(state|switch|sensor)\.light|switch$/,indicator:!1,type:e.StateType.Boolean,write:!1,enums:m.roleOrEnumLight,name:"ON_ACTUAL",required:!1,defaultRole:"sensor.light",ignoreRole:p},...Object.values(A),t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.light},volume:{states:[{role:/^level\.volume$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"SET",required:!0,defaultRole:"level.volume",defaultUnit:"%"},{role:/^value\.volume$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"ACTUAL",required:!1,defaultRole:"value.volume",defaultUnit:"%"},{role:/^media\.mute$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"MUTE",required:!1,defaultRole:"media.mute"},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.volume},locationOne:{states:[{role:/^value\.gps$/,indicator:!1,type:e.StateType.String,write:!1,name:"GPS",required:!0,defaultRole:"value.gps"},{role:/^value\.gps\.elevation$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ELEVATION",required:!1,defaultRole:"value.gps.elevation"},{role:/^value(\.gps)?\.radius$/,indicator:!1,type:e.StateType.Number,write:!1,name:"RADIUS",required:!1,defaultRole:"value.gps.radius"},{role:/^value(\.gps)?\.accuracy$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ACCURACY",required:!1,defaultRole:"value.gps.accuracy"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.locationOne},location:{states:[{role:/^value(\.gps)?\.longitude$/,indicator:!1,type:e.StateType.Number,write:!1,name:"LONGITUDE",required:!0,defaultRole:"value.gps.longitude",defaultUnit:"°"},{role:/^value(\.gps)?\.latitude$/,indicator:!1,type:e.StateType.Number,write:!1,name:"LATITUDE",required:!0,defaultRole:"value.gps.latitude",defaultUnit:"°"},{role:/^value(\.gps)?\.elevation$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ELEVATION",required:!1,defaultRole:"value.gps.elevation"},{role:/^value(\.gps)?\.radius$/,indicator:!1,type:e.StateType.Number,write:!1,name:"RADIUS",required:!1,defaultRole:"value.gps.radius"},{role:/^value(\.gps)?\.accuracy$/,indicator:!1,type:e.StateType.Number,write:!1,name:"ACCURACY",required:!1,defaultRole:"value.gps.accuracy"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.location},volumeGroup:{states:[{role:/^level\.volume\.group?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"SET",required:!0,defaultRole:"level.volume.group",defaultUnit:"%"},{role:/^value\.volume\.group$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"ACTUAL",required:!1,defaultRole:"value.volume.group",defaultUnit:"%"},{role:/^media\.mute\.group$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"MUTE",required:!1,defaultRole:"media.mute.group"},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.volumeGroup},levelSlider:{states:[{role:/^level(\..*)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!0,name:"SET",required:!0,defaultRole:"level",defaultUnit:"%",ignoreRole:p},{role:/^value(\..*)?$/,indicator:!1,type:e.StateType.Number,min:e.StateType.Number,max:e.StateType.Number,write:!1,name:"ACTUAL",required:!1,defaultRole:"value",defaultUnit:"%",ignoreRole:p},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.slider},socket:{states:[{role:/^switch(\.active)?$|^state$/,indicator:!1,type:e.StateType.Boolean,write:!0,name:"SET",required:!0,defaultRole:"switch"},{role:/^state(\.active)?$/,indicator:!1,type:e.StateType.Boolean,write:!1,name:"ACTUAL",required:!1,defaultRole:"sensor.switch"},...Object.values(A),t.working,t.unreach,t.lowbat,t.maintain,t.error],type:e.Types.socket},button:{states:[{role:/^(button|action)(\.[.\w]+)?$/,indicator:!1,type:e.StateType.Boolean,read:!1,write:!0,name:"SET",required:!0,noSubscribe:!0,defaultRole:"button"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.button},buttonSensor:{states:[{role:/^button(\.[.\w]+)?$/,indicator:!1,type:e.StateType.Boolean,read:!0,write:!1,name:"PRESS",required:!0,defaultRole:"button.press"},{role:/^button\.long/,indicator:!1,type:e.StateType.Boolean,read:!0,write:!1,name:"PRESS_LONG",required:!1,defaultRole:"button.long"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.buttonSensor},temperature:{states:[{role:/\.temperature$/,indicator:!1,write:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.temperature",defaultUnit:"°C"},{role:/\.humidity$/,indicator:!1,write:!1,type:e.StateType.Number,name:"SECOND",required:!1,defaultRole:"value.humidity",defaultUnit:"%"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.temperature},humidity:{states:[{role:/\.humidity$/,indicator:!1,write:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.humidity",defaultUnit:"%"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.humidity},illuminance:{states:[{role:/\.brightness$/,indicator:!1,write:!1,type:e.StateType.Number,name:"ACTUAL",required:!0,defaultRole:"value.brightness",defaultUnit:"lux"},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.illuminance},image:{states:[{role:/\.icon$|^icon$|^icon\.|\.icon\.|\.chart\.url\.|\.chart\.url$|^url.icon$/,indicator:!1,write:!1,type:e.StateType.String,name:"URL",defaultRole:"icon",required:!0,ignoreRole:p},t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.image},info:{states:[{indicator:!1,name:"ACTUAL",required:!0,multiple:!0,noDeviceDetection:!0,ignoreRole:/\.inhibit$/,defaultRole:"state"},t.working,t.unreach,t.lowbat,t.maintain,t.error,t.battery],type:e.Types.info}};Object.defineProperty(W,"__esModule",{value:!0});W.ChannelDetector=void 0;const N=B,U=R,_=H;let ae=class ${constructor(){this.enums=null,this.cache={}}_applyPattern(r,a,l,o,u){var n,s;if(!((n=r[a])===null||n===void 0)&&n.common){let d=null;if(l.role&&(d=l.role.test(r[a].common.role||""),d&&l.channelRole)){const S=(0,U.getParentId)(a),h=((s=r[S])===null||s===void 0?void 0:s.common.role)||"";h&&(r[S].type==="channel"||r[S].type==="device")?d=l.channelRole.test(h):d=!1}if(d===!1)return!1;if(l.type){if(typeof l.type=="string"){if(l.type!==r[a].common.type)return!1}else if(Array.isArray(l.type)){let S=!1;for(let h=0;h<l.type.length;h++)if(l.type[h]===r[a].common.type){S=!0;break}if(!S)return!1}}if(l.objectType&&r[a].type!==l.objectType||l.stateName&&!l.stateName.test(a)||l.unit&&l.unit!==r[a].common.unit)return!1;if(l.ignoreRole){const S=r[a].common.role||"";if(S&&l.ignoreRole.test(S))return!1}if(l.indicator===!1&&(r[a].common.role||"").match(/^indicator(\.[.\w]+)?$/))return!1;if(l.state){const S=a.split(".").pop()||"";if(S&&!l.state.test(S))return!1}const v=l.defaultRole&&r[a].common.role===l.defaultRole,T=l.defaultUnit?r[a].common.unit===l.defaultUnit:!1;if(l.min===N.StateType.Number&&typeof r[a].common.min!==N.StateType.Number&&(!T||r[a].common.unit!=="%")||l.max===N.StateType.Number&&typeof r[a].common.max!==N.StateType.Number&&(!T||r[a].common.unit!=="%"))return!1;if(!v){if(l.write!==void 0&&l.write!==!!r[a].common.write||l.read!==void 0&&l.read!==(r[a].common.read===void 0?!0:r[a].common.read))return!1;if(typeof l.enums=="function"){const S=this._getEnumsForId(r,a,u);if(!o&&!l.enums(r[a],S||[]))return!1}}return!0}return!1}_getEnumsForId(r,a,l){var o;this.enums||(this.enums=(0,U.getFunctionEnums)(r,l));const u=[];if(this.enums.forEach(n=>{r[n].common.members.includes(a)&&u.push(n)}),!u.length&&((o=r[a])===null||o===void 0?void 0:o.type)==="state"){const n=(0,U.getParentId)(a);r[n]&&(r[n].type==="channel"||r[n].type==="device")&&this.enums.forEach(s=>{r[s].common.members.includes(n)&&u.push(s)})}return u.length?u:null}static copyState(r,a){const l=a||JSON.parse(JSON.stringify(r));return l.original=r.original||r,"enums"in r&&r.enums&&(l.enums=r.enums),"role"in r&&r.role&&(l.role=r.role),"channelRole"in r&&r.channelRole&&(l.channelRole=r.channelRole),l}_testOneState(r){var a,l,o,u,n,s;const d=r.objects,v=r.pattern,T=r.state,S=r.channelStates,h=r.usedIds,g=r.usedInCurrentDevice,I=r.ignoreIndicators,C=r.ignoreEnums,D=r.sortedKeys;let c=r.result,q=!1;for(const y of S)if(!(T.name==="COVER"&&(c!=null&&c.states.find(b=>b.id&&b.name==="COVER")))){if(T.indicator&&I){const f=y.split(".").pop()||"";if(f&&I.includes(f))continue}if(!T.indicator){if(g.includes(y))continue;if(!T.notSingle){if(!r.detectAllPossibleDevices){if(h.includes(y))continue}}}if(this._applyPattern(d,y,T,C,D)){if(c||(c=JSON.parse(JSON.stringify(_.patterns[v])),r.result=c,c==null||c.states.forEach((b,f)=>$.copyState(_.patterns[v].states[f],b))),c.states.find(({id:b})=>b===y))q=!0;else for(const b of c.states)if(b.name===T.name){if(b.id){let f;r.favorId&&(y===r.favorId?f=!0:b.id===r.favorId&&(f=!1));const P=(o=(l=(a=d[b.id])===null||a===void 0?void 0:a.common)===null||l===void 0?void 0:l.role)!==null&&o!==void 0?o:"",w=(s=(n=(u=d[y])===null||u===void 0?void 0:u.common)===null||n===void 0?void 0:n.role)!==null&&s!==void 0?s:"",E=b.defaultRole;if(E&&f===void 0&&(w===E?f=!0:P===E&&(f=!1)),f===void 0){const O=w.split("."),M=O.length,G=P.split("."),F=G.length;w===""||O[0]==="state"&&G[0]!=="state"?f=!1:O[0]!=="state"&&G[0]==="state"||M>F?f=!0:M<F?f=!1:f=O[0]!=="state"}if(!f)break}b.id=y,q=!0;break}if(q&&(T.indicator||g.push(y),T.multiple&&S.length>1)){for(const b of S)if(b!==y&&(T.indicator||!g.includes(b)&&(T.notSingle||!h.includes(b)))&&this._ap