zwave-js-ui
Version:
Z-Wave Control Panel and MQTT Gateway
5 lines (4 loc) • 8.86 kB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./prismeditor.esm-BTzr7KLE.js","./index-CtTdmJsx.js","./index-2j-kvxFz.css"])))=>i.map(i=>d[i]);
import{_ as s,m as n,u as r,p as l,n as d}from"./index-CtTdmJsx.js";const o={components:{PrismEditor:()=>s(()=>import("./prismeditor.esm-BTzr7KLE.js"),__vite__mapDeps([0,1,2]),import.meta.url).then(a=>a.PrismEditor)},props:{value:Boolean,gw_type:Number,title:String,editedValue:Object,devices:Array},watch:{value(a){this.$refs.form&&this.$refs.form.resetValidation(),a&&(this.isNew=!this.editedValue.device)}},computed:{...n(r,["gateway","mqtt"]),deviceValues(){const a=this.devices.find(e=>e.value==this.editedValue.device);return a?a.values:[]},deviceClasses(){const a=this.editedValue.value;return a?a.commandClass===48?["battery","cold","connectivity","door","garage_door","gas","heat","light","lock","moisture","motion","moving","occupancy","opening","plug","power","presence","problem","safety","smoke","sound","vibration","window"]:this.isSensor(a)?["battery","humidity","illuminance","signal_strength","temperature","power","power_factor","pressure","timestamp","current","energy","voltage"]:a.commandClass===38?["awning","blind","curtain","damper","door","garage","gate","shade","shutter","window"]:[]:[]},requiredIntensity(){return!this.editedValue.enablePoll||this.editedValue.enablePoll&&this.editedValue.pollInterval>=10||"Minimun interval is 10 seconds"},requiredTopic(){return this.gw_type!==2||!!this.editedValue.topic||"Topic required"}},data(){return{isNew:null,valid:!0,required:a=>!!a||"This field is required"}},methods:{highlighter(a){return l.highlight(a,l.languages.js)},isSensor(a){return a&&(a.commandClass===49||a.commandClass===50)}}};var c=function(){var e=this,t=e._self._c;return t("v-dialog",{attrs:{"max-width":"500px",persistent:""},model:{value:e.value,callback:function(i){e.value=i},expression:"value"}},[t("v-card",[t("v-card-title",[t("span",{staticClass:"headline"},[e._v(e._s(e.title))])]),t("v-card-text",[t("v-container",{attrs:{"grid-list-md":""}},[t("v-form",{ref:"form",attrs:{"lazy-validation":""},model:{value:e.valid,callback:function(i){e.valid=i},expression:"valid"}},[t("v-row",[t("v-col",{attrs:{cols:"12"}},[t("v-select",{attrs:{label:"Device",required:"",rules:[e.required],"item-text":"name",items:e.devices},model:{value:e.editedValue.device,callback:function(i){e.$set(e.editedValue,"device",i)},expression:"editedValue.device"}})],1),t("v-col",{attrs:{cols:"12"}},[t("v-select",{attrs:{label:"Value",hint:e.editedValue.value?e.editedValue.value.description:"",required:"","return-object":"",rules:[e.required],"item-text":"label","item-value":"id",items:e.deviceValues},scopedSlots:e._u([{key:"selection",fn:function({item:i}){return[e._v(" "+e._s((i.label||i.id)+(i.endpoint>1?" - Endpoint "+i.endpoint:""))+" ")]}},{key:"item",fn:function({item:i}){return[t("v-list-item-content",[t("v-list-item-title",[e._v(e._s((i.label||i.id)+(i.endpoint>0?" - Endpoint "+i.endpoint:"")))]),t("v-list-item-subtitle",{staticClass:"text-truncate text-no-wrap",staticStyle:{"max-width":"500px"}},[e._v(e._s(i.description))])],1)]}}]),model:{value:e.editedValue.value,callback:function(i){e.$set(e.editedValue,"value",i)},expression:"editedValue.value"}})],1),!this.mqtt.disabled&&this.gateway.hassDiscovery?t("v-col",{attrs:{cols:"12"}},[t("v-select",{attrs:{label:"Device Class",hint:"Specify a device class for Home assistant","item-text":"name",items:e.deviceClasses},model:{value:e.editedValue.device_class,callback:function(i){e.$set(e.editedValue,"device_class",i)},expression:"editedValue.device_class"}})],1):e._e(),e.isSensor(e.editedValue.value)?t("v-col",{attrs:{cols:"12"}},[t("v-text-field",{attrs:{hint:"Specify a device icon for Home assistant, format is <prefix>:<icons-alias> (Eg: 'mdi:water'). Check http://materialdesignicons.com/",label:"Device Icon"},model:{value:e.editedValue.icon,callback:function(i){e.$set(e.editedValue,"icon",e._n(i))},expression:"editedValue.icon"}})],1):e._e(),this.mqtt.disabled?e._e():t("v-col",{attrs:{cols:"12"}},[t("v-text-field",{attrs:{label:"Topic",rules:[e.requiredTopic],required:""},model:{value:e.editedValue.topic,callback:function(i){e.$set(e.editedValue,"topic",typeof i=="string"?i.trim():i)},expression:"editedValue.topic"}})],1),this.mqtt.disabled?e._e():t("v-col",{attrs:{cols:"6"}},[t("v-select",{attrs:{label:"QoS",hint:"If specified, overrides the default QoS in MQTT settings",items:[{text:"",value:void 0},{text:"0: At most once",value:0},{text:"1: At least once",value:1},{text:"2: Exactly once",value:2}],"persistent-hint":"",required:"",type:"number"},model:{value:e.editedValue.qos,callback:function(i){e.$set(e.editedValue,"qos",i)},expression:"editedValue.qos"}})],1),this.mqtt.disabled?e._e():t("v-col",{attrs:{cols:"6"}},[t("v-select",{attrs:{label:"Retain","persistent-hint":"",hint:"If specified, overrides the default retain in MQTT settings",items:[{text:"",value:void 0},{text:"True",value:!0},{text:"False",value:!1}],required:"",type:"number"},model:{value:e.editedValue.retain,callback:function(i){e.$set(e.editedValue,"retain",i)},expression:"editedValue.retain"}})],1),t("v-col",{attrs:{cols:"12"}},[t("v-text-field",{attrs:{label:"Post operation",hint:"Example: '/10' '*100' '+20'",required:""},model:{value:e.editedValue.postOperation,callback:function(i){e.$set(e.editedValue,"postOperation",i)},expression:"editedValue.postOperation"}})],1),t("v-col",{attrs:{cols:"6"}},[t("v-checkbox",{attrs:{label:"Poll",hint:"Enable poll of this value. ATTENTION: This could create lot traffic in your network and kill the life of battery powered devices. Use at your own risk","persistent-hint":""},model:{value:e.editedValue.enablePoll,callback:function(i){e.$set(e.editedValue,"enablePoll",i)},expression:"editedValue.enablePoll"}})],1),e.editedValue.enablePoll?t("v-col",{attrs:{cols:"6"}},[t("v-text-field",{attrs:{label:"Poll interval",hint:"Seconds between to wait between poll requests. The timer starts when the request ends",rules:[e.requiredIntensity],suffix:"seconds",required:"",type:"number"},model:{value:e.editedValue.pollInterval,callback:function(i){e.$set(e.editedValue,"pollInterval",e._n(i))},expression:"editedValue.pollInterval"}})],1):e._e(),e.editedValue.value&&e.editedValue.value.commandClass===112?t("v-col",{attrs:{cols:"6"}},[t("v-checkbox",{attrs:{label:"Enable discovery",hint:"Configuration CC values are disabled by default in MQTT discovery. Set this to true to force enable them","persistent-hint":""},model:{value:e.editedValue.ccConfigEnableDiscovery,callback:function(i){e.$set(e.editedValue,"ccConfigEnableDiscovery",i)},expression:`
editedValue.ccConfigEnableDiscovery
`}})],1):e._e(),t("v-col",{attrs:{cols:"6"}},[t("v-checkbox",{attrs:{label:"Parse send",hint:"Create a function that parse the value sent via MQTT","persistent-hint":""},model:{value:e.editedValue.parseSend,callback:function(i){e.$set(e.editedValue,"parseSend",i)},expression:"editedValue.parseSend"}})],1),e.editedValue.parseSend?t("v-container",[t("p",[e._v(" Write the function here. Args are: "),t("code",[e._v("value")]),e._v(", "),t("code",[e._v("valueId")]),e._v(", "),t("code",[e._v("node")]),e._v(", "),t("code",[e._v("logger")]),e._v(". The function is sync and must return the parsed "),t("code",[e._v("value")]),e._v(". ")]),t("prism-editor",{attrs:{lineNumbers:"",language:"js",highlight:e.highlighter},model:{value:e.editedValue.sendFunction,callback:function(i){e.$set(e.editedValue,"sendFunction",i)},expression:"editedValue.sendFunction"}})],1):e._e(),t("v-col",{attrs:{cols:"6"}},[t("v-checkbox",{attrs:{label:"Parse receive",hint:"Create a function that parse the received value from MQTT","persistent-hint":""},model:{value:e.editedValue.parseReceive,callback:function(i){e.$set(e.editedValue,"parseReceive",i)},expression:"editedValue.parseReceive"}})],1),e.editedValue.parseReceive?t("v-container",[t("p",[e._v(" Write the function here. Args are: "),t("code",[e._v("value")]),e._v(", "),t("code",[e._v("valueId")]),e._v(", "),t("code",[e._v("node")]),e._v(", "),t("code",[e._v("logger")]),e._v(". The function is sync and must return the parsed "),t("code",[e._v("value")]),e._v(". ")]),t("prism-editor",{attrs:{lineNumbers:"",language:"js",highlight:e.highlighter},model:{value:e.editedValue.receiveFunction,callback:function(i){e.$set(e.editedValue,"receiveFunction",i)},expression:"editedValue.receiveFunction"}})],1):e._e()],1)],1)],1)],1),t("v-card-actions",[t("v-spacer"),t("v-btn",{attrs:{color:"blue darken-1",text:""},on:{click:function(i){return e.$emit("close")}}},[e._v("Cancel")]),t("v-btn",{attrs:{color:"blue darken-1",text:""},on:{click:function(i){e.$refs.form.validate()&&e.$emit("save")}}},[e._v(e._s(e.isNew?"Add":"Update"))])],1)],1)],1)},u=[],v=d(o,c,u,!1,null,"15f2ac17");const m=v.exports;export{m as default};